<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>65395</bug_id>
          
          <creation_ts>2011-07-29 14:39:43 -0700</creation_ts>
          <short_desc>Regional indicator symbols that are combined should behave as a single character when editing</short_desc>
          <delta_ts>2011-08-18 14:56:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>dglazkov</cc>
    
    <cc>hbono</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>444116</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-07-29 14:39:43 -0700</bug_when>
    <thetext>When two regional indicator symbols combine to form a single flag, the insertion point or a selection boundary should not be allowed between them, and delete commands should delete the pair as a unit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444117</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-07-29 14:39:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/9866836&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444244</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-07-29 20:57:38 -0700</bug_when>
    <thetext>Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444246</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-07-29 21:01:12 -0700</bug_when>
    <thetext>Because they were most likely entered as a single symbol, and because the behavior when the insertion point is between the two symbols is unexpected and most likely undesirable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444249</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-07-29 21:38:19 -0700</bug_when>
    <thetext>Does the Unicode spec agree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444304</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-07-30 11:17:32 -0700</bug_when>
    <thetext>That’s a good question. I am not sure where and how the Unicode standard address this sort of question. For example, is it the Unicode standard that dictates WebKit’s behavior for decomposed sequences such as e + ´ vs. Hebrew letters with vowel marks such as א + ָ

Can you help me look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444315</commentid>
    <comment_count>6</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-07-30 11:50:25 -0700</bug_when>
    <thetext>I found this note in UAX #29 &lt;http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries&gt;:
“Font-based information may be required to determine the appropriate unit to use for UI purposes, such as identification of boundaries for first-letter paragraph styling. For example, such a unit could be a ligature formed of two grapheme clusters, such as لا (Arabic lam + alef).”

I think it may apply here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444373</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-07-30 20:50:00 -0700</bug_when>
    <thetext>In more technical terms, my question was whether these symbols form extended grapheme clusters. In WebCore, these are returned by characterBreakIterator, which just calls ICU.

We sometimes allow cursor positioning inside extended grapheme clusters. We should probably never disallow cursor positioning at a place where a character break can occur (e.g. for truncation).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444374</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-07-30 20:57:24 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; In more technical terms, my question was whether these symbols form extended grapheme clusters.

I believe that the answer is “not by default, but possibly by tailoring”.

&gt; In WebCore, these are returned by characterBreakIterator, which just calls ICU.
&gt; 
&gt; We sometimes allow cursor positioning inside extended grapheme clusters. We should probably never disallow cursor positioning at a place where a character break can occur (e.g. for truncation).

It now occurs to me that WebKit should also prohibit line breaks between two regional indicator symbols that combine, even in line wrapping modes that allow breaking between “characters”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449170</commentid>
    <comment_count>9</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-08-10 08:38:10 -0700</bug_when>
    <thetext>For ICU-based ports, this is probably going to be resolved externally to WebKit via &lt;http://unicode.org/cldr/trac/ticket/4076&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451137</commentid>
    <comment_count>10</comment_count>
      <attachid>103927</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-15 10:48:41 -0700</bug_when>
    <thetext>Created attachment 103927
part 1 - backspace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451140</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-15 10:49:45 -0700</bug_when>
    <thetext>Some EWS bots are expected to fail due to respective platforms not using ICU. I&apos;ll add the test to skipped lists when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451182</commentid>
    <comment_count>12</comment_count>
      <attachid>103927</attachid>
    <who name="">mitz</who>
    <bug_when>2011-08-15 11:44:54 -0700</bug_when>
    <thetext>Comment on attachment 103927
part 1 - backspace

View in context: https://bugs.webkit.org/attachment.cgi?id=103927&amp;action=review

&gt; Source/WebCore/ChangeLog:14
&gt; +        (WebCore::RenderText::previousOffsetForBackwardDeletion):

No comment?

&gt; Source/WebCore/rendering/RenderText.cpp:1504
&gt; +    // Pairs of regional indicators are combined into flag emoji.

s/are/may be/. Most pairs don’t make up a flag.

&gt; Source/WebCore/rendering/RenderText.cpp:1536
&gt; +        // We assume that regional indicators came in pairs. Otherwise we&apos;d need to perform unlimited lookahead
&gt; +        // to determine whether to delete an odd one at the end.
&gt; +        if (isRegionalIndicator(character)) {
&gt; +            if (sawRegionalIndicator)
&gt; +                break;
&gt; +            sawRegionalIndicator = true;
&gt; +            continue;
&gt; +        }

How will this treat a sequence of regional indicator, mark, regional indicator?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451187</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-15 11:56:56 -0700</bug_when>
    <thetext>&gt; No comment?

Yup. Any suggestions that would be helpful for people reading the ChangeLog?

&gt; &gt; Source/WebCore/rendering/RenderText.cpp:1504
&gt; &gt; +    // Pairs of regional indicators are combined into flag emoji.

they all do when deleting, and all that can practically occur do in rendering.

&gt; How will this treat a sequence of regional indicator, mark, regional indicator?

It will delete mark, regional indicator (i.e. correctly, I think). Should I add a test for this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451190</commentid>
    <comment_count>14</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-08-15 12:02:24 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; No comment?
&gt; 
&gt; Yup. Any suggestions that would be helpful for people reading the ChangeLog?

A description of the new behavior.

&gt; 
&gt; &gt; &gt; Source/WebCore/rendering/RenderText.cpp:1504
&gt; &gt; &gt; +    // Pairs of regional indicators are combined into flag emoji.
&gt; 
&gt; they all do when deleting, and all that can practically occur do in rendering.

I think this comment is saying something that’s not true. I’m not sure how it helps. I’m fine with removing it or with making a more truthful statement.

&gt; 
&gt; &gt; How will this treat a sequence of regional indicator, mark, regional indicator?
&gt; 
&gt; It will delete mark, regional indicator (i.e. correctly, I think). Should I add a test for this case?

Interesting. So the fact that the boolean is never reset to false really never matters?

Please add tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451202</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-15 12:11:41 -0700</bug_when>
    <thetext>&gt;A description of the new behavior.

I don&apos;t understand what you are saying. Do you want something like:

&gt; +        (WebCore::RenderText::previousOffsetForBackwardDeletion): Fix this bug.

?

&gt; I think this comment is saying something that’s not true. I’m not sure how it helps. I’m fine with removing it or with making a more truthful statement.

Regional indicators and their extremely weird implementation is certainly not something many people in the world know about. This comment answers both questions and provides keywords for further searching.

Unless you can suggest a better comment, I&apos;m going to keep it as is.

&gt; Interesting. So the fact that the boolean is never reset to false really never matters?

We certainly never want to reset it to false - that would mean that we delete a terribly long sequence of characters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451241</commentid>
    <comment_count>16</comment_count>
      <attachid>103927</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-15 13:00:10 -0700</bug_when>
    <thetext>Comment on attachment 103927
part 1 - backspace

I realized that I didn&apos;t include my test in the patch. Also, Dan convinced me to fix another edge case that I didn&apos;t care about at first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451286</commentid>
    <comment_count>17</comment_count>
      <attachid>103951</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-15 14:23:26 -0700</bug_when>
    <thetext>Created attachment 103951
part 1 - backspace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451291</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-15 14:26:51 -0700</bug_when>
    <thetext>Attachment 103951 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/edit...&quot; exit_code: 1

LayoutTests/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451301</commentid>
    <comment_count>19</comment_count>
      <attachid>103955</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-15 14:37:26 -0700</bug_when>
    <thetext>Created attachment 103955
part 1 - backspace

Patch preparation fail. Still need EWS results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451302</commentid>
    <comment_count>20</comment_count>
      <attachid>103956</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-15 14:38:20 -0700</bug_when>
    <thetext>Created attachment 103956
part 1 - backspace

More fail...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451312</commentid>
    <comment_count>21</comment_count>
      <attachid>103956</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-15 15:08:07 -0700</bug_when>
    <thetext>Comment on attachment 103956
part 1 - backspace

Attachment 103956 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9380913

New failing tests:
editing/deleting/regional-indicators.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451331</commentid>
    <comment_count>22</comment_count>
      <attachid>103956</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-15 15:39:50 -0700</bug_when>
    <thetext>Comment on attachment 103956
part 1 - backspace

Hmm, I&apos;m surprised that Qt, Gtk and EFL all pass, but OK. Not sure what could be wrong with Chromium, need to see failing results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451364</commentid>
    <comment_count>23</comment_count>
      <attachid>103956</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-15 16:18:39 -0700</bug_when>
    <thetext>Comment on attachment 103956
part 1 - backspace

Rejecting attachment 103956 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=ec2-cq-02&apos;, &apos;--port...&quot; exit_code: 2

Last 500 characters of output:
deleting/regional-indicators.html = TEXT

Regressions: Unexpected image mismatch : (5)
  fast/text/atsui-multiple-renderers.html = IMAGE
  fast/text/international/danda-space.html = IMAGE
  fast/text/international/thai-baht-space.html = IMAGE
  fast/text/international/thai-line-breaks.html = IMAGE
  platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html = IMAGE

Regressions: Unexpected image and text mismatch : (1)
  svg/custom/svg-fonts-word-spacing.html = IMAGE+TEXT



Full output: http://queues.webkit.org/results/9380937</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451381</commentid>
    <comment_count>24</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-15 16:38:15 -0700</bug_when>
    <thetext>There is something wrong going on with the chromium bot.

Committed manually as &lt;http://trac.webkit.org/r93068&gt;, and reverted an accidental change in &lt;http://trac.webkit.org/changeset/93069&gt;.

Keeping the bug open for other fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451416</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-15 17:31:33 -0700</bug_when>
    <thetext>&gt; There is something wrong going on with the chromium bot.

Nothing is wrong with the bot.  I&apos;ve filed https://bugs.webkit.org/show_bug.cgi?id=66268 about this test failing on Chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452313</commentid>
    <comment_count>26</comment_count>
      <attachid>104185</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-17 10:03:32 -0700</bug_when>
    <thetext>Created attachment 104185
part 2 - cursor movement iterator (WIP)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452320</commentid>
    <comment_count>27</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-17 10:11:35 -0700</bug_when>
    <thetext>In the attached patch for cursor movement iterator, I have changed ICU rules in the same way that is being considered for mainstream ICU in &lt;http://unicode.org/cldr/trac/ticket/4076&gt;. While this change works with default ICU character break rules, it does not work with our customized rules for cursor movement, and I cannot figure out why.

CC&apos;ing Hironori Bono, who wrote our custom rules. The problem is that for a string of several national flag characters, we get a break opportunity inside a flag. For example, with asterisk denoting a single regional indicator symbol (AKA half of an emoji flag), I&apos;m getting these breaks:

|****|*|*|

While for a sequence of two flags, breaks are correct:

|**|**|</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452960</commentid>
    <comment_count>28</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2011-08-18 04:50:02 -0700</bug_when>
    <thetext>Greetings Alexey,

Thank you for noticing it.
Even though I have not investigated this issue so deeply, it seems to be a side-effect of the &apos;!!chain;&apos; rule. I will update the rule so it works with regional indicator symbols.

Regards,

Hironori Bono
E-mail: hbono@chromium.org</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453075</commentid>
    <comment_count>29</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-18 08:56:44 -0700</bug_when>
    <thetext>This turned out to be my mistake - I copied the rules from ICU patch incorrectly. I&apos;ll post an updated patch shortly, sorry for the noise!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453159</commentid>
    <comment_count>30</comment_count>
      <attachid>104367</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-18 11:10:47 -0700</bug_when>
    <thetext>Created attachment 104367
part 2 - cursor movement iterator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453166</commentid>
    <comment_count>31</comment_count>
      <attachid>104367</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-18 11:19:16 -0700</bug_when>
    <thetext>Comment on attachment 104367
part 2 - cursor movement iterator

Will need failing results on non-ICU platforms...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453309</commentid>
    <comment_count>32</comment_count>
      <attachid>104367</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-18 13:33:11 -0700</bug_when>
    <thetext>Comment on attachment 104367
part 2 - cursor movement iterator

Clearing flags on attachment: 104367

Committed r93344: &lt;http://trac.webkit.org/changeset/93344&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453310</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-18 13:33:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453371</commentid>
    <comment_count>34</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-18 14:52:19 -0700</bug_when>
    <thetext>Landed failing results for Qt in r93351, filed bug 66500.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453378</commentid>
    <comment_count>35</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-18 14:56:54 -0700</bug_when>
    <thetext>Bug 66501/r93353 for Gtk.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103927</attachid>
            <date>2011-08-15 10:48:41 -0700</date>
            <delta_ts>2011-08-15 14:23:26 -0700</delta_ts>
            <desc>part 1 - backspace</desc>
            <filename>RegionalIndicatorBackspace.txt</filename>
            <type>text/plain</type>
            <size>2453</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMDQ3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMTUgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVnaW9uYWwgaW5kaWNhdG9y
IHN5bWJvbHMgdGhhdCBhcmUgY29tYmluZWQgc2hvdWxkIGJlaGF2ZSBhcyBhIHNpbmdsZSBjaGFy
YWN0ZXIgd2hlbiBlZGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NTM5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBhcnQgb25lOiBtYWtlIGJhY2tzcGFjZSB3b3JrLgorCisgICAgICAgIFRlc3Q6
IGVkaXRpbmcvZGVsZXRpbmcvcmVnaW9uYWwtaW5kaWNhdG9ycy5odG1sCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1JlZ2lvbmFsSW5k
aWNhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnByZXZpb3VzT2Zmc2V0Rm9y
QmFja3dhcmREZWxldGlvbik6CisKIDIwMTEtMDgtMTIgIEplZmYgTWlsbGVyICA8amVmZm1AYXBw
bGUuY29tPgogCiAgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpwbGF5
ZXJJdGVtU3RhdHVzKCkgc2hvdWxkIHJldHVybiBNZWRpYVBsYXllckFWUGxheWVySXRlbVN0YXR1
c0RvZXNOb3RFeGlzdCBpZiB0aGVyZSBpcyBubyBBVlBsYXllckl0ZW0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlzaW9uIDkzMDAyKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDk5
LDYgKzE0OTksMTIgQEAgaW5saW5lIGJvb2wgaXNNYXJrKFVDaGFyMzIgYykKICAgICByZXR1cm4g
Y2hhclR5cGUgPT0gVV9OT05fU1BBQ0lOR19NQVJLIHx8IGNoYXJUeXBlID09IFVfRU5DTE9TSU5H
X01BUksgfHwgY2hhclR5cGUgPT0gVV9DT01CSU5JTkdfU1BBQ0lOR19NQVJLOwogfQogCitpbmxp
bmUgYm9vbCBpc1JlZ2lvbmFsSW5kaWNhdG9yKFVDaGFyMzIgYykKK3sKKyAgICAvLyBQYWlycyBv
ZiByZWdpb25hbCBpbmRpY2F0b3JzIGFyZSBjb21iaW5lZCBpbnRvIGZsYWcgZW1vamkuCisgICAg
cmV0dXJuIDB4MUYxRTYgPD0gYyAmJiBjIDw9IDB4MUYxRkY7Cit9CisKICNlbmRpZgogCiBpbnQg
UmVuZGVyVGV4dDo6cHJldmlvdXNPZmZzZXRGb3JCYWNrd2FyZERlbGV0aW9uKGludCBjdXJyZW50
KSBjb25zdApAQCAtMTUwNyw2ICsxNTEzLDcgQEAgaW50IFJlbmRlclRleHQ6OnByZXZpb3VzT2Zm
c2V0Rm9yQmFja3dhcgogICAgIEFTU0VSVChtX3RleHQpOwogICAgIFN0cmluZ0ltcGwmIHRleHQg
PSAqbV90ZXh0LmltcGwoKTsKICAgICBVQ2hhcjMyIGNoYXJhY3RlcjsKKyAgICBib29sIHNhd1Jl
Z2lvbmFsSW5kaWNhdG9yID0gZmFsc2U7CiAgICAgd2hpbGUgKGN1cnJlbnQgPiAwKSB7CiAgICAg
ICAgIGlmIChVMTZfSVNfVFJBSUwodGV4dFstLWN1cnJlbnRdKSkKICAgICAgICAgICAgIC0tY3Vy
cmVudDsKQEAgLTE1MTksNiArMTUyNiwxNSBAQCBpbnQgUmVuZGVyVGV4dDo6cHJldmlvdXNPZmZz
ZXRGb3JCYWNrd2FyCiAgICAgICAgIGlmICgoY2hhcmFjdGVyID49IDB4MDUzMCkgJiYgKGNoYXJh
Y3RlciA8IDB4MTk1MCkpCiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICAvLyBXZSBhc3N1
bWUgdGhhdCByZWdpb25hbCBpbmRpY2F0b3JzIGNhbWUgaW4gcGFpcnMuIE90aGVyd2lzZSB3ZSdk
IG5lZWQgdG8gcGVyZm9ybSB1bmxpbWl0ZWQgbG9va2FoZWFkCisgICAgICAgIC8vIHRvIGRldGVy
bWluZSB3aGV0aGVyIHRvIGRlbGV0ZSBhbiBvZGQgb25lIGF0IHRoZSBlbmQuCisgICAgICAgIGlm
IChpc1JlZ2lvbmFsSW5kaWNhdG9yKGNoYXJhY3RlcikpIHsKKyAgICAgICAgICAgIGlmIChzYXdS
ZWdpb25hbEluZGljYXRvcikKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHNh
d1JlZ2lvbmFsSW5kaWNhdG9yID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CisKICAgICAgICAgaWYgKCFpc01hcmsoY2hhcmFjdGVyKSAmJiAoY2hhcmFjdGVyICE9IDB4
RkY5RSkgJiYgKGNoYXJhY3RlciAhPSAweEZGOUYpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103951</attachid>
            <date>2011-08-15 14:23:26 -0700</date>
            <delta_ts>2011-08-15 14:37:26 -0700</delta_ts>
            <desc>part 1 - backspace</desc>
            <filename>RegionalIndicatorBackspace.txt</filename>
            <type>text/plain</type>
            <size>5391</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMDQ3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDgtMTUgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVnaW9uYWwgaW5kaWNhdG9y
IHN5bWJvbHMgdGhhdCBhcmUgY29tYmluZWQgc2hvdWxkIGJlaGF2ZSBhcyBhIHNpbmdsZSBjaGFy
YWN0ZXIgd2hlbiBlZGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NTM5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBhcnQgb25lOiBtYWtlIGJhY2tzcGFjZSB3b3JrLgorCisgICAgICAgIFRlc3Q6
IGVkaXRpbmcvZGVsZXRpbmcvcmVnaW9uYWwtaW5kaWNhdG9ycy5odG1sCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1JlZ2lvbmFsSW5k
aWNhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnByZXZpb3VzT2Zmc2V0Rm9y
QmFja3dhcmREZWxldGlvbik6IEFkZGVkIGEgc3BlY2lhbCBjYXNlIGZvciByZWdpb25hbAorICAg
ICAgICBpbmRpY2F0b3Igc3ltYm9scy4KKwogMjAxMS0wOC0xMiAgSmVmZiBNaWxsZXIgIDxqZWZm
bUBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6
OnBsYXllckl0ZW1TdGF0dXMoKSBzaG91bGQgcmV0dXJuIE1lZGlhUGxheWVyQVZQbGF5ZXJJdGVt
U3RhdHVzRG9lc05vdEV4aXN0IGlmIHRoZXJlIGlzIG5vIEFWUGxheWVySXRlbQpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkocmV2aXNpb24gOTMwMDIpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE0OTksNiArMTQ5OSwxMiBAQCBpbmxpbmUgYm9vbCBpc01hcmsoVUNoYXIzMiBjKQogICAgIHJl
dHVybiBjaGFyVHlwZSA9PSBVX05PTl9TUEFDSU5HX01BUksgfHwgY2hhclR5cGUgPT0gVV9FTkNM
T1NJTkdfTUFSSyB8fCBjaGFyVHlwZSA9PSBVX0NPTUJJTklOR19TUEFDSU5HX01BUks7CiB9CiAK
K2lubGluZSBib29sIGlzUmVnaW9uYWxJbmRpY2F0b3IoVUNoYXIzMiBjKQoreworICAgIC8vIE5h
dGlvbmFsIGZsYWcgZW1vamkgZWFjaCBjb25zaXN0cyBvZiBhIHBhaXIgb2YgcmVnaW9uYWwgaW5k
aWNhdG9yIHN5bWJvbHMuCisgICAgcmV0dXJuIDB4MUYxRTYgPD0gYyAmJiBjIDw9IDB4MUYxRkY7
Cit9CisKICNlbmRpZgogCiBpbnQgUmVuZGVyVGV4dDo6cHJldmlvdXNPZmZzZXRGb3JCYWNrd2Fy
ZERlbGV0aW9uKGludCBjdXJyZW50KSBjb25zdApAQCAtMTUwNyw2ICsxNTEzLDcgQEAgaW50IFJl
bmRlclRleHQ6OnByZXZpb3VzT2Zmc2V0Rm9yQmFja3dhcgogICAgIEFTU0VSVChtX3RleHQpOwog
ICAgIFN0cmluZ0ltcGwmIHRleHQgPSAqbV90ZXh0LmltcGwoKTsKICAgICBVQ2hhcjMyIGNoYXJh
Y3RlcjsKKyAgICBib29sIHNhd1JlZ2lvbmFsSW5kaWNhdG9yID0gZmFsc2U7CiAgICAgd2hpbGUg
KGN1cnJlbnQgPiAwKSB7CiAgICAgICAgIGlmIChVMTZfSVNfVFJBSUwodGV4dFstLWN1cnJlbnRd
KSkKICAgICAgICAgICAgIC0tY3VycmVudDsKQEAgLTE1MTUsMTAgKzE1MjIsMjUgQEAgaW50IFJl
bmRlclRleHQ6OnByZXZpb3VzT2Zmc2V0Rm9yQmFja3dhcgogCiAgICAgICAgIFVDaGFyMzIgY2hh
cmFjdGVyID0gdGV4dC5jaGFyYWN0ZXJTdGFydGluZ0F0KGN1cnJlbnQpOwogCisgICAgICAgIGlm
IChzYXdSZWdpb25hbEluZGljYXRvcikgeworICAgICAgICAgICAgLy8gV2UgZG9uJ3QgY2hlY2sg
aWYgdGhlIHBhaXIgb2YgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMgYmVmb3JlIGN1cnJlbnQg
cG9zaXRpb24gY2FuIGFjdHVhbGx5IGJlIGNvbWJpbmVkCisgICAgICAgICAgICAvLyBpbnRvIGEg
ZmxhZywgYW5kIGp1c3QgZGVsZXRlIGl0LiBUaGlzIG1heSBub3QgYWdyZWUgd2l0aCBob3cgdGhl
IHBhaXIgaXMgcmVuZGVyZWQgaW4gZWRnZSBjYXNlcywKKyAgICAgICAgICAgIC8vIGJ1dCBpcyBn
b29kIGVub3VnaCBpbiBwcmFjdGljZS4KKyAgICAgICAgICAgIGlmIChpc1JlZ2lvbmFsSW5kaWNh
dG9yKGNoYXJhY3RlcikpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAvLyBE
b24ndCBkZWxldGUgYSBwcmVjZWRpbmcgY2hhcmFjdGVyIHRoYXQgaXNuJ3QgYSByZWdpb25hbCBp
bmRpY2F0b3Igc3ltYm9sLgorICAgICAgICAgICAgVTE2X0ZXRF8xX1VOU0FGRSh0ZXh0LCBjdXJy
ZW50KTsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIFdlIGRvbid0IGNvbWJpbmUgY2hhcmFjdGVy
cyBpbiBBcm1lbmlhbiAuLi4gTGltYnUgcmFuZ2UgZm9yIGJhY2t3YXJkIGRlbGV0aW9uLgogICAg
ICAgICBpZiAoKGNoYXJhY3RlciA+PSAweDA1MzApICYmIChjaGFyYWN0ZXIgPCAweDE5NTApKQog
ICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgaWYgKGlzUmVnaW9uYWxJbmRpY2F0b3IoY2hh
cmFjdGVyKSkgeworICAgICAgICAgICAgc2F3UmVnaW9uYWxJbmRpY2F0b3IgPSB0cnVlOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoIWlzTWFyayhjaGFy
YWN0ZXIpICYmIChjaGFyYWN0ZXIgIT0gMHhGRjlFKSAmJiAoY2hhcmFjdGVyICE9IDB4RkY5Rikp
CiAgICAgICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MzA0NykKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisy
MDExLTA4LTE1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAg
IE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5n
L3JlZ2lvbmFsLWluZGljYXRvcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL2RlbGV0aW5nL3JlZ2lvbmFsLWluZGljYXRvcnMuaHRtbDogQWRkZWQuCisKIDIwMTEtMDgt
MTUgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVu
dCBwcm9wZXIgaGFuZGxpbmcgb2YgZm9jdXNpbi9mb2N1c291dCBldmVudHMgaW4gcmVnYXJkIHRv
IHNoYWRvdyBET00gYm91bmRhcmllcy4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRp
bmcvcmVnaW9uYWwtaW5kaWNhdG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9kZWxldGluZy9yZWdpb25hbC1pbmRpY2F0b3JzLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvcmVnaW9uYWwtaW5k
aWNhdG9ycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0
ZXN0IGNoZWNrcyBob3cgYmFja3NwYWNpbmcgd29ya3Mgd2l0aCByZWdpb25hbCBpbmRpY2F0b3Ig
Y2hhcmFjdGVycy4KKworYQorMS4gRGVsZXRlIGEgZmxhZzogUEFTUworMi4gRGVsZXRlIGEgbG9u
ZSByZWdpb25hbCBpbmRpY2F0b3IgY2hhcmFjdGVyOiBQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2RlbGV0aW5nL3JlZ2lvbmFsLWluZGljYXRvcnMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3JlZ2lvbmFsLWluZGljYXRvcnMuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvcmVnaW9uYWwtaW5kaWNh
dG9ycy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLTgiLz4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGNoZWNrcyBob3cgYmFj
a3NwYWNpbmcgd29ya3Mgd2l0aCByZWdpb25hbCBpbmRpY2F0b3IgY2hhcmFjdGVycy48L3A+Cis8
ZGl2IGNvbnRlbnRlZGl0YWJsZSBpZD0idGVzdCI+8J+Hr/Cfh7Xwn4ev8J+HtfCfh6/wn4e1PC9k
aXY+IDwhLS0gKGopKHApKGopKHApKGopKHApIC0tPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCit2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKK3ZhciBhZnRl
ckxhc3RJbmRpY2F0b3IgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworYWZ0ZXJMYXN0SW5kaWNh
dG9yLnNldFN0YXJ0KGRpdi5maXJzdENoaWxkLCAxMik7Citkb2N1bWVudC5nZXRTZWxlY3Rpb24o
KS5hZGRSYW5nZShhZnRlckxhc3RJbmRpY2F0b3IpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkRl
bGV0ZSIpOworZG9jdW1lbnQud3JpdGUoIjEuIERlbGV0ZSBhIGZsYWc6ICIgKyAoZGl2LnRleHRD
b250ZW50ID09ICLwn4ev8J+HtfCfh6/wn4e1IiA/ICJQQVNTIiA6ICJGQUlMIikgKyAiPGJyPiIp
OworCitkaXYuaW5uZXJUZXh0ID0gImHwn4evIiAvLyBhLCAoaikKK2FmdGVyTGFzdEluZGljYXRv
ci5zZXRTdGFydChkaXYuZmlyc3RDaGlsZCwgMyk7Citkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5h
ZGRSYW5nZShhZnRlckxhc3RJbmRpY2F0b3IpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkRlbGV0
ZSIpOworZG9jdW1lbnQud3JpdGUoIjIuIERlbGV0ZSBhIGxvbmUgcmVnaW9uYWwgaW5kaWNhdG9y
IGNoYXJhY3RlcjogIiArIChkaXYudGV4dENvbnRlbnQgPT0gImEiID8gIlBBU1MiIDogIkZBSUwi
KSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="99670"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103955</attachid>
            <date>2011-08-15 14:37:26 -0700</date>
            <delta_ts>2011-08-15 14:38:20 -0700</delta_ts>
            <desc>part 1 - backspace</desc>
            <filename>RegionalIndicatorBackspace.txt</filename>
            <type>text/plain</type>
            <size>2991</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMDQ3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDgtMTUgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVnaW9uYWwgaW5kaWNhdG9y
IHN5bWJvbHMgdGhhdCBhcmUgY29tYmluZWQgc2hvdWxkIGJlaGF2ZSBhcyBhIHNpbmdsZSBjaGFy
YWN0ZXIgd2hlbiBlZGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NTM5NQorCisgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCisK
KyAgICAgICAgUGFydCBvbmU6IG1ha2UgYmFja3NwYWNlIHdvcmsuCisKKyAgICAgICAgVGVzdDog
ZWRpdGluZy9kZWxldGluZy9yZWdpb25hbC1pbmRpY2F0b3JzLmh0bWwKKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzUmVnaW9uYWxJbmRp
Y2F0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6cHJldmlvdXNPZmZzZXRGb3JC
YWNrd2FyZERlbGV0aW9uKTogQWRkZWQgYSBzcGVjaWFsIGNhc2UgZm9yIHJlZ2lvbmFsCisgICAg
ICAgIGluZGljYXRvciBzeW1ib2xzLgorCiAyMDExLTA4LTEyICBKZWZmIE1pbGxlciAgPGplZmZt
QGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6
cGxheWVySXRlbVN0YXR1cygpIHNob3VsZCByZXR1cm4gTWVkaWFQbGF5ZXJBVlBsYXllckl0ZW1T
dGF0dXNEb2VzTm90RXhpc3QgaWYgdGhlcmUgaXMgbm8gQVZQbGF5ZXJJdGVtCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiA5MzAwMikKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTQ5OSw2ICsxNDk5LDEyIEBAIGlubGluZSBib29sIGlzTWFyayhVQ2hhcjMyIGMpCiAgICAgcmV0
dXJuIGNoYXJUeXBlID09IFVfTk9OX1NQQUNJTkdfTUFSSyB8fCBjaGFyVHlwZSA9PSBVX0VOQ0xP
U0lOR19NQVJLIHx8IGNoYXJUeXBlID09IFVfQ09NQklOSU5HX1NQQUNJTkdfTUFSSzsKIH0KIAor
aW5saW5lIGJvb2wgaXNSZWdpb25hbEluZGljYXRvcihVQ2hhcjMyIGMpCit7CisgICAgLy8gTmF0
aW9uYWwgZmxhZyBlbW9qaSBlYWNoIGNvbnNpc3RzIG9mIGEgcGFpciBvZiByZWdpb25hbCBpbmRp
Y2F0b3Igc3ltYm9scy4KKyAgICByZXR1cm4gMHgxRjFFNiA8PSBjICYmIGMgPD0gMHgxRjFGRjsK
K30KKwogI2VuZGlmCiAKIGludCBSZW5kZXJUZXh0OjpwcmV2aW91c09mZnNldEZvckJhY2t3YXJk
RGVsZXRpb24oaW50IGN1cnJlbnQpIGNvbnN0CkBAIC0xNTA3LDYgKzE1MTMsNyBAQCBpbnQgUmVu
ZGVyVGV4dDo6cHJldmlvdXNPZmZzZXRGb3JCYWNrd2FyCiAgICAgQVNTRVJUKG1fdGV4dCk7CiAg
ICAgU3RyaW5nSW1wbCYgdGV4dCA9ICptX3RleHQuaW1wbCgpOwogICAgIFVDaGFyMzIgY2hhcmFj
dGVyOworICAgIGJvb2wgc2F3UmVnaW9uYWxJbmRpY2F0b3IgPSBmYWxzZTsKICAgICB3aGlsZSAo
Y3VycmVudCA+IDApIHsKICAgICAgICAgaWYgKFUxNl9JU19UUkFJTCh0ZXh0Wy0tY3VycmVudF0p
KQogICAgICAgICAgICAgLS1jdXJyZW50OwpAQCAtMTUxNSwxMCArMTUyMiwyNSBAQCBpbnQgUmVu
ZGVyVGV4dDo6cHJldmlvdXNPZmZzZXRGb3JCYWNrd2FyCiAKICAgICAgICAgVUNoYXIzMiBjaGFy
YWN0ZXIgPSB0ZXh0LmNoYXJhY3RlclN0YXJ0aW5nQXQoY3VycmVudCk7CiAKKyAgICAgICAgaWYg
KHNhd1JlZ2lvbmFsSW5kaWNhdG9yKSB7CisgICAgICAgICAgICAvLyBXZSBkb24ndCBjaGVjayBp
ZiB0aGUgcGFpciBvZiByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scyBiZWZvcmUgY3VycmVudCBw
b3NpdGlvbiBjYW4gYWN0dWFsbHkgYmUgY29tYmluZWQKKyAgICAgICAgICAgIC8vIGludG8gYSBm
bGFnLCBhbmQganVzdCBkZWxldGUgaXQuIFRoaXMgbWF5IG5vdCBhZ3JlZSB3aXRoIGhvdyB0aGUg
cGFpciBpcyByZW5kZXJlZCBpbiBlZGdlIGNhc2VzLAorICAgICAgICAgICAgLy8gYnV0IGlzIGdv
b2QgZW5vdWdoIGluIHByYWN0aWNlLgorICAgICAgICAgICAgaWYgKGlzUmVnaW9uYWxJbmRpY2F0
b3IoY2hhcmFjdGVyKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIERv
bid0IGRlbGV0ZSBhIHByZWNlZGluZyBjaGFyYWN0ZXIgdGhhdCBpc24ndCBhIHJlZ2lvbmFsIGlu
ZGljYXRvciBzeW1ib2wuCisgICAgICAgICAgICBVMTZfRldEXzFfVU5TQUZFKHRleHQsIGN1cnJl
bnQpOworICAgICAgICB9CisKICAgICAgICAgLy8gV2UgZG9uJ3QgY29tYmluZSBjaGFyYWN0ZXJz
IGluIEFybWVuaWFuIC4uLiBMaW1idSByYW5nZSBmb3IgYmFja3dhcmQgZGVsZXRpb24uCiAgICAg
ICAgIGlmICgoY2hhcmFjdGVyID49IDB4MDUzMCkgJiYgKGNoYXJhY3RlciA8IDB4MTk1MCkpCiAg
ICAgICAgICAgICBicmVhazsKIAorICAgICAgICBpZiAoaXNSZWdpb25hbEluZGljYXRvcihjaGFy
YWN0ZXIpKSB7CisgICAgICAgICAgICBzYXdSZWdpb25hbEluZGljYXRvciA9IHRydWU7CisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICghaXNNYXJrKGNoYXJh
Y3RlcikgJiYgKGNoYXJhY3RlciAhPSAweEZGOUUpICYmIChjaGFyYWN0ZXIgIT0gMHhGRjlGKSkK
ICAgICAgICAgICAgIGJyZWFrOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103956</attachid>
            <date>2011-08-15 14:38:20 -0700</date>
            <delta_ts>2011-08-15 16:18:39 -0700</delta_ts>
            <desc>part 1 - backspace</desc>
            <filename>RegionalIndicatorBackspace.txt</filename>
            <type>text/plain</type>
            <size>5493</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMDQ3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDgtMTUgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVnaW9uYWwgaW5kaWNhdG9y
IHN5bWJvbHMgdGhhdCBhcmUgY29tYmluZWQgc2hvdWxkIGJlaGF2ZSBhcyBhIHNpbmdsZSBjaGFy
YWN0ZXIgd2hlbiBlZGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NTM5NQorCisgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCisK
KyAgICAgICAgUGFydCBvbmU6IG1ha2UgYmFja3NwYWNlIHdvcmsuCisKKyAgICAgICAgVGVzdDog
ZWRpdGluZy9kZWxldGluZy9yZWdpb25hbC1pbmRpY2F0b3JzLmh0bWwKKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzUmVnaW9uYWxJbmRp
Y2F0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6cHJldmlvdXNPZmZzZXRGb3JC
YWNrd2FyZERlbGV0aW9uKTogQWRkZWQgYSBzcGVjaWFsIGNhc2UgZm9yIHJlZ2lvbmFsCisgICAg
ICAgIGluZGljYXRvciBzeW1ib2xzLgorCiAyMDExLTA4LTEyICBKZWZmIE1pbGxlciAgPGplZmZt
QGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6
cGxheWVySXRlbVN0YXR1cygpIHNob3VsZCByZXR1cm4gTWVkaWFQbGF5ZXJBVlBsYXllckl0ZW1T
dGF0dXNEb2VzTm90RXhpc3QgaWYgdGhlcmUgaXMgbm8gQVZQbGF5ZXJJdGVtCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiA5MzAwMikKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTQ5OSw2ICsxNDk5LDEyIEBAIGlubGluZSBib29sIGlzTWFyayhVQ2hhcjMyIGMpCiAgICAgcmV0
dXJuIGNoYXJUeXBlID09IFVfTk9OX1NQQUNJTkdfTUFSSyB8fCBjaGFyVHlwZSA9PSBVX0VOQ0xP
U0lOR19NQVJLIHx8IGNoYXJUeXBlID09IFVfQ09NQklOSU5HX1NQQUNJTkdfTUFSSzsKIH0KIAor
aW5saW5lIGJvb2wgaXNSZWdpb25hbEluZGljYXRvcihVQ2hhcjMyIGMpCit7CisgICAgLy8gTmF0
aW9uYWwgZmxhZyBlbW9qaSBlYWNoIGNvbnNpc3RzIG9mIGEgcGFpciBvZiByZWdpb25hbCBpbmRp
Y2F0b3Igc3ltYm9scy4KKyAgICByZXR1cm4gMHgxRjFFNiA8PSBjICYmIGMgPD0gMHgxRjFGRjsK
K30KKwogI2VuZGlmCiAKIGludCBSZW5kZXJUZXh0OjpwcmV2aW91c09mZnNldEZvckJhY2t3YXJk
RGVsZXRpb24oaW50IGN1cnJlbnQpIGNvbnN0CkBAIC0xNTA3LDYgKzE1MTMsNyBAQCBpbnQgUmVu
ZGVyVGV4dDo6cHJldmlvdXNPZmZzZXRGb3JCYWNrd2FyCiAgICAgQVNTRVJUKG1fdGV4dCk7CiAg
ICAgU3RyaW5nSW1wbCYgdGV4dCA9ICptX3RleHQuaW1wbCgpOwogICAgIFVDaGFyMzIgY2hhcmFj
dGVyOworICAgIGJvb2wgc2F3UmVnaW9uYWxJbmRpY2F0b3IgPSBmYWxzZTsKICAgICB3aGlsZSAo
Y3VycmVudCA+IDApIHsKICAgICAgICAgaWYgKFUxNl9JU19UUkFJTCh0ZXh0Wy0tY3VycmVudF0p
KQogICAgICAgICAgICAgLS1jdXJyZW50OwpAQCAtMTUxNSwxMCArMTUyMiwyNSBAQCBpbnQgUmVu
ZGVyVGV4dDo6cHJldmlvdXNPZmZzZXRGb3JCYWNrd2FyCiAKICAgICAgICAgVUNoYXIzMiBjaGFy
YWN0ZXIgPSB0ZXh0LmNoYXJhY3RlclN0YXJ0aW5nQXQoY3VycmVudCk7CiAKKyAgICAgICAgaWYg
KHNhd1JlZ2lvbmFsSW5kaWNhdG9yKSB7CisgICAgICAgICAgICAvLyBXZSBkb24ndCBjaGVjayBp
ZiB0aGUgcGFpciBvZiByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scyBiZWZvcmUgY3VycmVudCBw
b3NpdGlvbiBjYW4gYWN0dWFsbHkgYmUgY29tYmluZWQKKyAgICAgICAgICAgIC8vIGludG8gYSBm
bGFnLCBhbmQganVzdCBkZWxldGUgaXQuIFRoaXMgbWF5IG5vdCBhZ3JlZSB3aXRoIGhvdyB0aGUg
cGFpciBpcyByZW5kZXJlZCBpbiBlZGdlIGNhc2VzLAorICAgICAgICAgICAgLy8gYnV0IGlzIGdv
b2QgZW5vdWdoIGluIHByYWN0aWNlLgorICAgICAgICAgICAgaWYgKGlzUmVnaW9uYWxJbmRpY2F0
b3IoY2hhcmFjdGVyKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIERv
bid0IGRlbGV0ZSBhIHByZWNlZGluZyBjaGFyYWN0ZXIgdGhhdCBpc24ndCBhIHJlZ2lvbmFsIGlu
ZGljYXRvciBzeW1ib2wuCisgICAgICAgICAgICBVMTZfRldEXzFfVU5TQUZFKHRleHQsIGN1cnJl
bnQpOworICAgICAgICB9CisKICAgICAgICAgLy8gV2UgZG9uJ3QgY29tYmluZSBjaGFyYWN0ZXJz
IGluIEFybWVuaWFuIC4uLiBMaW1idSByYW5nZSBmb3IgYmFja3dhcmQgZGVsZXRpb24uCiAgICAg
ICAgIGlmICgoY2hhcmFjdGVyID49IDB4MDUzMCkgJiYgKGNoYXJhY3RlciA8IDB4MTk1MCkpCiAg
ICAgICAgICAgICBicmVhazsKIAorICAgICAgICBpZiAoaXNSZWdpb25hbEluZGljYXRvcihjaGFy
YWN0ZXIpKSB7CisgICAgICAgICAgICBzYXdSZWdpb25hbEluZGljYXRvciA9IHRydWU7CisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICghaXNNYXJrKGNoYXJh
Y3RlcikgJiYgKGNoYXJhY3RlciAhPSAweEZGOUUpICYmIChjaGFyYWN0ZXIgIT0gMHhGRjlGKSkK
ICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMDQ3KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTEtMDgtMTUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMgdGhhdCBhcmUgY29tYmluZWQgc2hvdWxkIGJlaGF2
ZSBhcyBhIHNpbmdsZSBjaGFyYWN0ZXIgd2hlbiBlZGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTM5NQorCisgICAgICAgIFJldmlld2VkIGJ5
IERhbiBCZXJuc3RlaW4uCisKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL3JlZ2lvbmFsLWlu
ZGljYXRvcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5n
L3JlZ2lvbmFsLWluZGljYXRvcnMuaHRtbDogQWRkZWQuCisKIDIwMTEtMDgtMTUgIEhheWF0byBJ
dG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBwcm9wZXIgaGFu
ZGxpbmcgb2YgZm9jdXNpbi9mb2N1c291dCBldmVudHMgaW4gcmVnYXJkIHRvIHNoYWRvdyBET00g
Ym91bmRhcmllcy4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvcmVnaW9uYWwt
aW5kaWNhdG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9kZWxldGluZy9yZWdpb25hbC1pbmRpY2F0b3JzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvcmVnaW9uYWwtaW5kaWNhdG9ycy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyBo
b3cgYmFja3NwYWNpbmcgd29ya3Mgd2l0aCByZWdpb25hbCBpbmRpY2F0b3IgY2hhcmFjdGVycy4K
KworYQorMS4gRGVsZXRlIGEgZmxhZzogUEFTUworMi4gRGVsZXRlIGEgbG9uZSByZWdpb25hbCBp
bmRpY2F0b3IgY2hhcmFjdGVyOiBQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0
aW5nL3JlZ2lvbmFsLWluZGljYXRvcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2RlbGV0aW5nL3JlZ2lvbmFsLWluZGljYXRvcnMuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvcmVnaW9uYWwtaW5kaWNhdG9ycy5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGNoZWNrcyBob3cgYmFja3NwYWNpbmcgd29y
a3Mgd2l0aCByZWdpb25hbCBpbmRpY2F0b3IgY2hhcmFjdGVycy48L3A+Cis8ZGl2IGNvbnRlbnRl
ZGl0YWJsZSBpZD0idGVzdCI+8J+Hr/Cfh7Xwn4ev8J+HtfCfh6/wn4e1PC9kaXY+IDwhLS0gKGop
KHApKGopKHApKGopKHApIC0tPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgZGl2
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKK3ZhciBhZnRlckxhc3RJbmRpY2F0
b3IgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworYWZ0ZXJMYXN0SW5kaWNhdG9yLnNldFN0YXJ0
KGRpdi5maXJzdENoaWxkLCAxMik7Citkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5hZGRSYW5nZShh
ZnRlckxhc3RJbmRpY2F0b3IpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkRlbGV0ZSIpOworZG9j
dW1lbnQud3JpdGUoIjEuIERlbGV0ZSBhIGZsYWc6ICIgKyAoZGl2LnRleHRDb250ZW50ID09ICLw
n4ev8J+HtfCfh6/wn4e1IiA/ICJQQVNTIiA6ICJGQUlMIikgKyAiPGJyPiIpOworCitkaXYuaW5u
ZXJUZXh0ID0gImHwn4evIiAvLyBhLCAoaikKK2FmdGVyTGFzdEluZGljYXRvci5zZXRTdGFydChk
aXYuZmlyc3RDaGlsZCwgMyk7Citkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5hZGRSYW5nZShhZnRl
ckxhc3RJbmRpY2F0b3IpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkRlbGV0ZSIpOworZG9jdW1l
bnQud3JpdGUoIjIuIERlbGV0ZSBhIGxvbmUgcmVnaW9uYWwgaW5kaWNhdG9yIGNoYXJhY3Rlcjog
IiArIChkaXYudGV4dENvbnRlbnQgPT0gImEiID8gIlBBU1MiIDogIkZBSUwiKSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="99676"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104185</attachid>
            <date>2011-08-17 10:03:32 -0700</date>
            <delta_ts>2011-08-18 11:10:47 -0700</delta_ts>
            <desc>part 2 - cursor movement iterator (WIP)</desc>
            <filename>FlagCursorMovementIterator.txt</filename>
            <type>text/plain</type>
            <size>3653</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3JJQ1UuY3BwCShyZXZpc2lvbiA5MzA2NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzEs
NiArMTcxLDcgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0bwogICAg
IC8vICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0
ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOwogICAgIC8vICogQWRkZWQgcnVsZXMg
dGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJ
bmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7CiAgICAgLy8gKiBB
ZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFu
ZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgorICAgIC8vICogQWRkZWQgcnVs
ZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBrUnVsZXMgPQogICAgICAgICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJl
YWsgPSBDUn1dOyIKICAgICAgICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gTEZ9XTsiCkBAIC0yMDcsNiArMjA4LDcgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNv
ck1vdmVtZW50SXRlcmF0bwogICAgICAgICAiJE1hbDAgICAgPSBbXFx1MEQwNS1cXHUwRDM5XTsi
ICAgIC8vIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKICAgICAgICAgIiRNYWxWICAgID0gXFx1
MEQ0RDsiICAgICAgICAgICAgICAvLyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKICAgICAgICAgIiRN
YWwxICAgID0gW1xcdTBEMTUtXFx1MEQzOV07IiAgICAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4u
LEhhCisgICAgICAgICIkUkkgICAgICA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IiAvLyBF
bW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCiAgICAgICAgICIhIWNoYWluOyIKICAgICAgICAgIiEh
Zm9yd2FyZDsiCiAgICAgICAgICIkQ1IgJExGOyIKQEAgLTIxNSw2ICsyMTcsOCBAQCBUZXh0QnJl
YWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvCiAgICAgICAgICIoJExWVCB8ICRUKSAk
VDsiCiAgICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgogICAgICAgICAiW14k
Q29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgorICAgICAgICAiJFJJICRSSSAvICRSSTsi
CisgICAgICAgICIkUkkgJFJJOyIKICAgICAgICAgIiRIaW4wICRIaW5WICRIaW4xOyIgICAgICAg
ICAgICAgICAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKICAgICAgICAgIiRCZW4wICRC
ZW5WICRCZW4xOyIgICAgICAgICAgICAgICAvLyBCZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKICAg
ICAgICAgIiRQYW4wICRQYW5WICRQYW4xOyIgICAgICAgICAgICAgICAvLyBHdXJtdWtoaSBWaXJh
bWEgKGZvcndhcmQpCkBAIC0yMzAsNiArMjM0LDggQEAgVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNv
ck1vdmVtZW50SXRlcmF0bwogICAgICAgICAiJFQgKCRMVlQgfCAkVCk7IgogICAgICAgICAiJEV4
dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgogICAgICAgICAiJFNwYWNpbmdNYXJrIFte
JENvbnRyb2wgJENSICRMRl07IgorICAgICAgICAiJFJJICRSSSAvICRSSTsiCisgICAgICAgICIk
UkkgJFJJOyIKICAgICAgICAgIiRIaW4xICRIaW5WICRIaW4wOyIgICAgICAgICAgICAgICAvLyBE
ZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCiAgICAgICAgICIkQmVuMSAkQmVuViAkQmVuMDsi
ICAgICAgICAgICAgICAgLy8gQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQogICAgICAgICAiJFBh
bjEgJFBhblYgJFBhbjA7IiAgICAgICAgICAgICAgIC8vIEd1cm11a2hpIFZpcmFtYSAoYmFja3dh
cmQpCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9yZWdpb25hbC1pbmRpY2F0
b3JzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vcmVn
aW9uYWwtaW5kaWNhdG9ycy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vcmVnaW9uYWwtaW5kaWNhdG9ycy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDMyIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGNoZWNrcyBob3cgY2hhcmFjdGVy
IGJyZWFrcyBhcmUgY29tcHV0ZWQgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBjaGFyYWN0ZXJzLjwv
cD4KKzxkaXYgY29udGVudGVkaXRhYmxlIGlkPSJ0ZXN0Ij7wn4ev8J+HtfCfh6/wn4e18J+Hr/Cf
h7U8L2Rpdj4gPCEtLSAoaikocCkoaikocCkoaikocCkgLS0+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+CisKK3ZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVz
dCIpOwordmFyIGFmdGVyTGFzdEluZGljYXRvciA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisK
K2FmdGVyTGFzdEluZGljYXRvci5zZXRTdGFydChkaXYuZmlyc3RDaGlsZCwgMTIpOworZG9jdW1l
bnQuZ2V0U2VsZWN0aW9uKCkuYWRkUmFuZ2UoYWZ0ZXJMYXN0SW5kaWNhdG9yKTsKK2RvY3VtZW50
LmdldFNlbGVjdGlvbigpLm1vZGlmeSgiZXh0ZW5kIiwgImxlZnQiLCAiY2hhcmFjdGVyIik7Citz
aG91bGRCZSgiZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIn8J+Hr/Cfh7Un
Iik7CisKK2Rpdi5pbm5lclRleHQgPSAi8J+Hr/Cfh7Xwn4ev8J+HtSI7CithZnRlckxhc3RJbmRp
Y2F0b3Iuc2V0U3RhcnQoZGl2LmZpcnN0Q2hpbGQsIDgpOworZG9jdW1lbnQuZ2V0U2VsZWN0aW9u
KCkuYWRkUmFuZ2UoYWZ0ZXJMYXN0SW5kaWNhdG9yKTsKK2RvY3VtZW50LmdldFNlbGVjdGlvbigp
Lm1vZGlmeSgiZXh0ZW5kIiwgImxlZnQiLCAiY2hhcmFjdGVyIik7CitzaG91bGRCZSgiZG9jdW1l
bnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIn8J+Hr/Cfh7UnIik7CisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104367</attachid>
            <date>2011-08-18 11:10:47 -0700</date>
            <delta_ts>2011-08-18 13:33:11 -0700</delta_ts>
            <desc>part 2 - cursor movement iterator</desc>
            <filename>FlagCursorMovementIterator.txt</filename>
            <type>text/plain</type>
            <size>5905</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMzIwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMTggIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVnaW9uYWwgaW5kaWNhdG9y
IHN5bWJvbHMgdGhhdCBhcmUgY29tYmluZWQgc2hvdWxkIGJlaGF2ZSBhcyBhIHNpbmdsZSBjaGFy
YWN0ZXIgd2hlbiBlZGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NTM5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBhcnQgdHdvOiBtYWtlIGN1cnNvciBtb3ZlbWVudCBpdGVyYXRvciB3b3JrLiBU
aGlzIGZpeGVzIHRoZSBwcm9ibGVtIGZvciBzdHJpbmdzIHRoYXQgZG9uJ3QKKyAgICAgICAgY29u
dGFpbiBtb3JlIHRoYW4gdHdvIGZsYWdzIGluIGEgcm93LCBhcyBmaXhpbmcgaXQgY29tcGxldGVs
eSBkb2Vzbid0IHNlZW0gcG9zc2libGUgd2l0aCBJQ1UuCisKKyAgICAgICAgVGVzdDogZWRpdGlu
Zy9zZWxlY3Rpb24vcmVnaW9uYWwtaW5kaWNhdG9ycy5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcDogKFdlYkNvcmU6OmN1cnNvck1vdmVtZW50
SXRlcmF0b3IpOiBBZGRlZCBjdXN0b20KKyAgICAgICAgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGlj
YXRvciBzeW1ib2xzLgorCiAyMDExLTA4LTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IGNsYW5nIGxpYmMrKyBDKysweCBidWlsZApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRv
cklDVS5jcHAJKHJldmlzaW9uIDkzMDY2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MSw2ICsxNzEs
NyBAQCBUZXh0QnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvCiAgICAgLy8gKiBS
ZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVw
ZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7CiAgICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHBy
ZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxh
bmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKICAgICAvLyAqIEFkZGVkIHJ1
bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFs
Zi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCisgICAgLy8gKiBBZGRlZCBydWxlcyBmb3Ig
cmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGtSdWxl
cyA9CiAgICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENS
fV07IgogICAgICAgICAiJExGICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
Rn1dOyIKQEAgLTIwNyw2ICsyMDgsNyBAQCBUZXh0QnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1l
bnRJdGVyYXRvCiAgICAgICAgICIkTWFsMCAgICA9IFtcXHUwRDA1LVxcdTBEMzldOyIgICAgLy8g
TWFsYXlhbGFtIExldHRlciBBLC4uLixIYQogICAgICAgICAiJE1hbFYgICAgPSBcXHUwRDREOyIg
ICAgICAgICAgICAgIC8vIE1hbGF5YWxhbSBTaWduIFZpcmFtYQogICAgICAgICAiJE1hbDEgICAg
PSBbXFx1MEQxNS1cXHUwRDM5XTsiICAgIC8vIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyAg
ICAgICAgIiRSSSAgICAgID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiIC8vIEVtb2ppIHJl
Z2lvbmFsIGluZGljYXRvcnMKICAgICAgICAgIiEhY2hhaW47IgogICAgICAgICAiISFmb3J3YXJk
OyIKICAgICAgICAgIiRDUiAkTEY7IgpAQCAtMjE1LDYgKzIxNyw4IEBAIFRleHRCcmVha0l0ZXJh
dG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG8KICAgICAgICAgIigkTFZUIHwgJFQpICRUOyIKICAg
ICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsiCiAgICAgICAgICJbXiRDb250cm9s
ICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCisgICAgICAgICIkUkkgJFJJIC8gJFJJOyIKKyAgICAg
ICAgIiRSSSAkUkk7IgogICAgICAgICAiJEhpbjAgJEhpblYgJEhpbjE7IiAgICAgICAgICAgICAg
IC8vIERldmFuYWdhcmkgVmlyYW1hIChmb3J3YXJkKQogICAgICAgICAiJEJlbjAgJEJlblYgJEJl
bjE7IiAgICAgICAgICAgICAgIC8vIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQogICAgICAgICAi
JFBhbjAgJFBhblYgJFBhbjE7IiAgICAgICAgICAgICAgIC8vIEd1cm11a2hpIFZpcmFtYSAoZm9y
d2FyZCkKQEAgLTIzMCw2ICsyMzQsOCBAQCBUZXh0QnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1l
bnRJdGVyYXRvCiAgICAgICAgICIkVCAoJExWVCB8ICRUKTsiCiAgICAgICAgICIkRXh0ZW5kICAg
ICAgW14kQ29udHJvbCAkQ1IgJExGXTsiCiAgICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJv
bCAkQ1IgJExGXTsiCisgICAgICAgICIkUkkgJFJJIC8gJFJJICRSSTsiCisgICAgICAgICIkUkkg
JFJJOyIKICAgICAgICAgIiRIaW4xICRIaW5WICRIaW4wOyIgICAgICAgICAgICAgICAvLyBEZXZh
bmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCiAgICAgICAgICIkQmVuMSAkQmVuViAkQmVuMDsiICAg
ICAgICAgICAgICAgLy8gQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQogICAgICAgICAiJFBhbjEg
JFBhblYgJFBhbjA7IiAgICAgICAgICAgICAgIC8vIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQp
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA5MzMyMCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTA4LTE4ICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xz
IHRoYXQgYXJlIGNvbWJpbmVkIHNob3VsZCBiZWhhdmUgYXMgYSBzaW5nbGUgY2hhcmFjdGVyIHdo
ZW4gZWRpdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjUzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL3JlZ2lvbmFsLWluZGljYXRvcnMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9yZWdpb25hbC1pbmRpY2F0b3JzLmh0
bWw6IEFkZGVkLgorCiAyMDExLTA4LTE4ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgQWRkIGNoZWNrc3VtcyB0byBwbmcgcmVzdWx0cy4gIFN0aWxsIHRyeWluZyB0
byBmaW5kIG91dCB3aHkgdGhleQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
cmVnaW9uYWwtaW5kaWNhdG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vcmVnaW9uYWwtaW5kaWNhdG9ycy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9yZWdpb25hbC1pbmRp
Y2F0b3JzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitUaGlzIHRl
c3QgY2hlY2tzIGhvdyBjaGFyYWN0ZXIgYnJlYWtzIGFyZSBjb21wdXRlZCBmb3IgcmVnaW9uYWwg
aW5kaWNhdG9yIGNoYXJhY3RlcnMuCisKK/Cfh6/wn4e18J+Hr/Cfh7UKK1BBU1MgZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAn8J+Hr/Cfh7UnCitQQVNTIGRvY3VtZW50Lmdl
dFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgaXMgJ/Cfh6/wn4e1JworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL3JlZ2lvbmFsLWluZGljYXRvcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9yZWdpb25hbC1pbmRpY2F0b3JzLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9yZWdpb25hbC1pbmRpY2F0
b3JzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1VVEYtOCIvPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5U
aGlzIHRlc3QgY2hlY2tzIGhvdyBjaGFyYWN0ZXIgYnJlYWtzIGFyZSBjb21wdXRlZCBmb3IgcmVn
aW9uYWwgaW5kaWNhdG9yIGNoYXJhY3RlcnMuPC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9
InRlc3QiPvCfh6/wn4e18J+Hr/Cfh7Xwn4ev8J+HtTwvZGl2PiA8IS0tIChqKShwKShqKShwKShq
KShwKSAtLT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKwordmFyIGRpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7Cit2YXIgYWZ0ZXJMYXN0SW5kaWNhdG9y
ID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKKworYWZ0ZXJMYXN0SW5kaWNhdG9yLnNldFN0YXJ0
KGRpdi5maXJzdENoaWxkLCAxMik7Citkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5hZGRSYW5nZShh
ZnRlckxhc3RJbmRpY2F0b3IpOworZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRl
bmQiLCAibGVmdCIsICJjaGFyYWN0ZXIiKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRTZWxlY3Rp
b24oKS50b1N0cmluZygpIiwgIifwn4ev8J+HtSciKTsKKworZGl2LmlubmVyVGV4dCA9ICLwn4ev
8J+HtfCfh6/wn4e1IjsKK2FmdGVyTGFzdEluZGljYXRvci5zZXRTdGFydChkaXYuZmlyc3RDaGls
ZCwgOCk7Citkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5hZGRSYW5nZShhZnRlckxhc3RJbmRpY2F0
b3IpOworZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRlbmQiLCAibGVmdCIsICJj
aGFyYWN0ZXIiKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
IiwgIifwn4ev8J+HtSciKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>