<?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>51601</bug_id>
          
          <creation_ts>2010-12-24 14:15:40 -0800</creation_ts>
          <short_desc>WML Parser should treat line/column number in a consistent way</short_desc>
          <delta_ts>2011-01-06 12:53:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Joone Hur">joone</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>peter.rybin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>326747</commentid>
    <comment_count>0</comment_count>
    <who name="Joone Hur">joone</who>
    <bug_when>2010-12-24 14:15:40 -0800</bug_when>
    <thetext>Currently, XML Parser treats line/column number as 1-based values, but WML ErrorHandler treat them as 0-based.
Therefore, we need to treat them in a consistent way, but I&apos;m not sure which way is best.
When considering the current implementation, it seems to be easier to allow WML ErrorHandler to use 1-based values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326782</commentid>
    <comment_count>1</comment_count>
      <attachid>77432</attachid>
    <who name="Joone Hur">joone</who>
    <bug_when>2010-12-24 17:43:39 -0800</bug_when>
    <thetext>Created attachment 77432
Proposed Patch

This patch includes https://bugs.webkit.org/attachment.cgi?id=76395</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326827</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Rybin">peter.rybin</who>
    <bug_when>2010-12-25 13:47:41 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=77432) [details]
&gt; Proposed Patch
&gt; 
&gt; This patch includes https://bugs.webkit.org/attachment.cgi?id=76395

LGTM (I&apos;m not a reviewer)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326829</commentid>
    <comment_count>3</comment_count>
      <attachid>77432</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-25 13:59:50 -0800</bug_when>
    <thetext>Comment on attachment 77432
Proposed Patch

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

In general looks good.  It hink this needs one more round though, given teh nits.

And thanks peter!  Unofficial reviews are *always* welcome (and are infact &quot;required&quot; if you ever plan to be a reviewer)

&gt; WebCore/dom/XMLDocumentParser.cpp:151
&gt; +    handleError(type, m, TextPosition1(WTF::OneBasedNumber::fromOneBasedInt(lineNumber), WTF::OneBasedNumber::fromOneBasedInt(columnNumber)));

This is really the only way to construct a TextPosition1?  Seems cumbersome.

&gt; WebCore/dom/XMLDocumentParser.h:89
&gt; +        void handleError(ErrorType, const char* message, TextPosition1 position);

The arg name for &quot;position&quot; isn&apos;t needed.

&gt; WebCore/dom/XMLDocumentParser.h:108
&gt; +        // This method is introduced to temporary legalize existing line/column

legalize?  What law? :)

All sentences should start with a capital and end with a period. :)

&gt; WebCore/dom/XMLDocumentParser.h:214
&gt; +        TextPosition1 m_lastErrorPosition;

Much nicer!

&gt; WebCore/dom/XMLDocumentParserLibxml2.cpp:560
&gt; +    , m_lastErrorPosition(TextPosition1::belowRangePosition())

Seems we might want the default TextPosition constructor to do this, no?  Then we wouldndt&apos; even need these lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326834</commentid>
    <comment_count>4</comment_count>
    <who name="Peter Rybin">peter.rybin</who>
    <bug_when>2010-12-25 14:40:54 -0800</bug_when>
    <thetext>&gt; &gt; WebCore/dom/XMLDocumentParser.cpp:151
&gt; &gt; +    handleError(type, m, TextPosition1(WTF::OneBasedNumber::fromOneBasedInt(lineNumber), WTF::OneBasedNumber::fromOneBasedInt(columnNumber)));
&gt; 
&gt; This is really the only way to construct a TextPosition1?  Seems cumbersome.

This isn&apos;t really polished for everyday use so far. E.g. ZeroBasedNumber/OneBasedNumber types needs namespace qualifier. 

I think the API should be extended as needed.
The main limitation I had in mind was we should be able to merge corresponding types in the future (TextPosition0/TextPosition1 -&gt; TextPosition), so we can&apos;t have a constructor that accepts ints and all int-dealing methods should have names saying &quot;zero based&quot; or &quot;one based&quot;.
As for now TextPosition0/TextPosition1 accurately denote what kind of ints was used in the place before refactoring (to help prove that we didn&apos;t break anything).

&gt; &gt; WebCore/dom/XMLDocumentParser.h:108
&gt; &gt; +        // This method is introduced to temporary legalize existing line/column
&gt; legalize?  What law? :)

A law that strictly separates 0-based and 1-based integers from each other -- we have to break it in this one place.
Anyway I&apos;m fine with changing wording :)

&gt; &gt; WebCore/dom/XMLDocumentParserLibxml2.cpp:560
&gt; &gt; +    , m_lastErrorPosition(TextPosition1::belowRangePosition())
&gt; Seems we might want the default TextPosition constructor to do this, no?  Then we wouldndt&apos; even need these lines.

Unfortunately there are 2 defaults: &quot;below range&quot; and &quot;base&quot; (-1 and 0 for 0-based). It&apos;s fine to choose in favor of one of them, historically I just wanted to have my patch as transparent as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327099</commentid>
    <comment_count>5</comment_count>
      <attachid>77516</attachid>
    <who name="Joone Hur">joone</who>
    <bug_when>2010-12-27 12:59:59 -0800</bug_when>
    <thetext>Created attachment 77516
Proposed Patch2

How about using &quot;allow&quot; instead of &quot;legalize&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327373</commentid>
    <comment_count>6</comment_count>
      <attachid>77516</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-28 14:17:53 -0800</bug_when>
    <thetext>Comment on attachment 77516
Proposed Patch2

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

&gt; WebCore/dom/XMLDocumentParser.h:109
&gt; +        // This method is introduced to temporary allow existing line/column
&gt; +        // coordinate bug: it is believed that numbers that originally were zero-based
&gt; +        // eventually becomes one-based.

This comment isn&apos;t really english and doesn&apos;t make any sense to me.  I think we could just remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327403</commentid>
    <comment_count>7</comment_count>
      <attachid>77584</attachid>
    <who name="Joone Hur">joone</who>
    <bug_when>2010-12-28 15:29:09 -0800</bug_when>
    <thetext>Created attachment 77584
Proposed Patch3

The comment has been removed. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327453</commentid>
    <comment_count>8</comment_count>
      <attachid>77584</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-28 17:34:55 -0800</bug_when>
    <thetext>Comment on attachment 77584
Proposed Patch3

Rejecting attachment 77584 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-3&apos;, &apos;build-and-test&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--test&apos;, &apos;--non-interactive&apos;]&quot; exit_code: 2
Last 500 characters of output:
........................
fast/multicol/span ............
fast/overflow ...............................................
fast/parser ..................................................................................................................................
fast/parser/xhtml-alternate-entities.xml -&gt; failed

Exiting early after 1 failures. 15360 tests run.
288.85s total testing time

15359 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
6 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/7206236</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327465</commentid>
    <comment_count>9</comment_count>
      <attachid>77584</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-28 18:01:30 -0800</bug_when>
    <thetext>Comment on attachment 77584
Proposed Patch3

Rejecting attachment 77584 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;build-and-test&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--test&apos;, &apos;--non-interactive&apos;]&quot; exit_code: 2
Last 500 characters of output:
........................
fast/multicol/span ............
fast/overflow ...............................................
fast/parser ..................................................................................................................................
fast/parser/xhtml-alternate-entities.xml -&gt; failed

Exiting early after 1 failures. 15360 tests run.
282.30s total testing time

15359 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
6 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/7272234</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328452</commentid>
    <comment_count>10</comment_count>
      <attachid>77785</attachid>
    <who name="Joone Hur">joone</who>
    <bug_when>2011-01-02 17:16:05 -0800</bug_when>
    <thetext>Created attachment 77785
Proposed Patch4

Fixed the DRT test fail.

XML Parser reports only the first parsing error even if there are many errors on the same line.
However, the latest patch reports all errors on the same line, so I fixed the patch as follows,

bool operator==(const TextPosition&amp; other) { return m_line == other.m_line &amp;&amp; m_column == other.m_column; }
bool operator!=(const TextPosition&amp; other) { return !((*this) == other); }

=&gt; 

bool operator==(const TextPosition&amp; other) { return m_line == other.m_line &amp;&amp; m_column == other.m_column; }
bool operator!=(const TextPosition&amp; other) { return m_line != other.m_line &amp;&amp; m_column != other.m_column; }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328466</commentid>
    <comment_count>11</comment_count>
    <who name="Peter Rybin">peter.rybin</who>
    <bug_when>2011-01-02 19:13:23 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=77785) [details]
&gt; Proposed Patch4
&gt; 
&gt; Fixed the DRT test fail.
&gt; 
&gt; XML Parser reports only the first parsing error even if there are many errors on the same line.
&gt; However, the latest patch reports all errors on the same line, so I fixed the patch as follows,
&gt; 
&gt; bool operator==(const TextPosition&amp; other) { return m_line == other.m_line &amp;&amp; m_column == other.m_column; }
&gt; bool operator!=(const TextPosition&amp; other) { return !((*this) == other); }
&gt; 
&gt; =&gt; 
&gt; 
&gt; bool operator==(const TextPosition&amp; other) { return m_line == other.m_line &amp;&amp; m_column == other.m_column; }
&gt; bool operator!=(const TextPosition&amp; other) { return m_line != other.m_line &amp;&amp; m_column != other.m_column; }

This change looks extremely suspicious. It alters semantics of operator &quot;!=&quot; quite unexpectedly.

My guess is that the original code contains wrong boolean operator by mistake (ignore the error if it is at the same COLUMN as the previous one 100 lines above?). Anyway it was committed in r7094 in year 2004 so it&apos;s hard to find out for sure.

I would propose we either:
- consider the current code as a mistake and fix test expectations (do show all errors) or
- keep the original logic in new terms:
   m_lastErrorPosition.m_line != position.m_line &amp;&amp; m_lastErrorPosition.m_column != position.m_column
   (TextPosition may or may not retain its now-unused operator)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328487</commentid>
    <comment_count>12</comment_count>
    <who name="Joone Hur">joone</who>
    <bug_when>2011-01-02 23:49:50 -0800</bug_when>
    <thetext>(In reply to comment #11)

&gt; 
&gt; I would propose we either:
&gt; - consider the current code as a mistake and fix test expectations (do show all errors) or
&gt; - keep the original logic in new terms:
&gt;    m_lastErrorPosition.m_line != position.m_line &amp;&amp; m_lastErrorPosition.m_column != position.m_column
&gt;    (TextPosition may or may not retain its now-unused operator)

Firefox also just shows the first error, so I think the second solution would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328489</commentid>
    <comment_count>13</comment_count>
      <attachid>77792</attachid>
    <who name="Joone Hur">joone</who>
    <bug_when>2011-01-02 23:52:42 -0800</bug_when>
    <thetext>Created attachment 77792
Proposed Patch5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329469</commentid>
    <comment_count>14</comment_count>
    <who name="Joone Hur">joone</who>
    <bug_when>2011-01-05 00:47:41 -0800</bug_when>
    <thetext>Is this patch okay to land?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329632</commentid>
    <comment_count>15</comment_count>
      <attachid>77792</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-05 10:17:43 -0800</bug_when>
    <thetext>Comment on attachment 77792
Proposed Patch5

Looks OK to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329658</commentid>
    <comment_count>16</comment_count>
    <who name="Peter Rybin">peter.rybin</who>
    <bug_when>2011-01-05 10:56:22 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created an attachment (id=77792) [details]
&gt; Proposed Patch5

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329939</commentid>
    <comment_count>17</comment_count>
      <attachid>77792</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-05 17:54:26 -0800</bug_when>
    <thetext>Comment on attachment 77792
Proposed Patch5

Rejecting attachment 77792 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;build-and-test&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--test&apos;, &apos;--non-interactive&apos;]&quot; exit_code: 2
Last 500 characters of output:
ml .............................
fast/images .........................................................
fast/inline-block ..............
fast/inline ..............................
fast/innerHTML ................
fast/inspector-support ......
fast/invalid .......................
fast/invalid/junk-data.xml -&gt; failed

Exiting early after 1 failures. 8935 tests run.
205.19s total testing time

8934 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
6 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/7248412</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330140</commentid>
    <comment_count>18</comment_count>
      <attachid>78119</attachid>
    <who name="Joone Hur">joone</who>
    <bug_when>2011-01-06 07:40:01 -0800</bug_when>
    <thetext>Created attachment 78119
Proposed Patch6

fast/invalid/junk-data.xml -&gt; failed 
The above fail has been fixed by using belowBase() instead of base() to initialize to 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330236</commentid>
    <comment_count>19</comment_count>
      <attachid>78119</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-06 11:09:17 -0800</bug_when>
    <thetext>Comment on attachment 78119
Proposed Patch6

I&apos;m not sure I see any change between this and the last diff, but OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330339</commentid>
    <comment_count>20</comment_count>
      <attachid>78119</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-06 12:53:38 -0800</bug_when>
    <thetext>Comment on attachment 78119
Proposed Patch6

Clearing flags on attachment: 78119

Committed r75188: &lt;http://trac.webkit.org/changeset/75188&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330340</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-06 12:53:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77432</attachid>
            <date>2010-12-24 17:43:39 -0800</date>
            <delta_ts>2010-12-27 12:59:59 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>wml_TextPosition.patch</filename>
            <type>text/plain</type>
            <size>10215</size>
            <attacher name="Joone Hur">joone</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA4M2E3NGI3Li4xYWQyMmFmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTAtMTItMjQgIEpvb25lIEh1ciAgPGpvb25lQGtsZHAub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdNTCBQYXJzZXIgc2hvdWxkIHRy
ZWF0IGxpbmUvY29sdW1uIG51bWJlciBpbiBhIGNvbnNpc3RlbnQgd2F5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTYwMQorCisgICAgICAgIEFkZCB0
aGUgZXF1YWxpdHkgb3BlcmF0b3JzIHRvIFRleHRQb3NpdGlvbiBjbGFzcy4KKworICAgICAgICAq
IHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oOgorICAgICAgICAoV1RGOjpUZXh0UG9zaXRpb246Om9w
ZXJhdG9yPT0pOiBBZGRlZC4KKyAgICAgICAgKFdURjo6VGV4dFBvc2l0aW9uOjpvcGVyYXRvciE9
KTogQWRkZWQuCisgICAgICAgIChXVEY6Olplcm9CYXNlZE51bWJlcjo6b3BlcmF0b3I9PSk6IEFk
ZGVkLgorICAgICAgICAoV1RGOjpaZXJvQmFzZWROdW1iZXI6Om9wZXJhdG9yIT0pOiBBZGRlZC4K
KyAgICAgICAgKFdURjo6T25lQmFzZWROdW1iZXI6Om9wZXJhdG9yPT0pOiBBZGRlZC4KKyAgICAg
ICAgKFdURjo6T25lQmFzZWROdW1iZXI6Om9wZXJhdG9yIT0pOiBBZGRlZC4KKwogMjAxMC0xMi0y
NCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0
L1RleHRQb3NpdGlvbi5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvVGV4dFBvc2l0aW9uLmgK
aW5kZXggNjNkYzU5NC4uZTQ3YTNiYSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL3Rl
eHQvVGV4dFBvc2l0aW9uLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvVGV4dFBvc2l0
aW9uLmgKQEAgLTY2LDYgKzY2LDkgQEAgcHVibGljOgogICAgIH0KICAgICBUZXh0UG9zaXRpb24o
KSB7fQogCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRleHRQb3NpdGlvbiYgb3RoZXIpIHsg
cmV0dXJuIG1fbGluZSA9PSBvdGhlci5tX2xpbmUgJiYgbV9jb2x1bW4gPT0gb3RoZXIubV9jb2x1
bW47IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgVGV4dFBvc2l0aW9uJiBvdGhlcikgeyBy
ZXR1cm4gISgoKnRoaXMpID09IG90aGVyKTsgfQorCiAgICAgLy8gQSAnbWluaW11bScgdmFsdWUg
b2YgcG9zaXRpb24sIHVzZWQgYXMgYSBkZWZhdWx0IHZhbHVlLgogICAgIHN0YXRpYyBUZXh0UG9z
aXRpb248TlVNQkVSPiBtaW5pbXVtUG9zaXRpb24oKSB7IHJldHVybiBUZXh0UG9zaXRpb248TlVN
QkVSPihOVU1CRVI6OmJhc2UoKSwgTlVNQkVSOjpiYXNlKCkpOyB9CiAKQEAgLTg5LDYgKzkyLDkg
QEAgcHVibGljOgogCiAgICAgT25lQmFzZWROdW1iZXIgY29udmVydFRvT25lQmFzZWQoKSBjb25z
dDsKIAorICAgIGJvb2wgb3BlcmF0b3I9PShaZXJvQmFzZWROdW1iZXIgb3RoZXIpIHsgcmV0dXJu
IG1fdmFsdWUgPT0gb3RoZXIubV92YWx1ZTsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShaZXJvQmFz
ZWROdW1iZXIgb3RoZXIpIHsgcmV0dXJuICEoKCp0aGlzKSA9PSBvdGhlcik7IH0KKwogICAgIHN0
YXRpYyBaZXJvQmFzZWROdW1iZXIgYmFzZSgpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMgWmVy
b0Jhc2VkTnVtYmVyIGJlbG93QmFzZSgpIHsgcmV0dXJuIC0xOyB9CiAKQEAgLTEwNyw2ICsxMTMs
OSBAQCBwdWJsaWM6CiAgICAgaW50IGNvbnZlcnRBc1plcm9CYXNlZEludCgpIGNvbnN0IHsgcmV0
dXJuIG1fdmFsdWUgLSAxOyB9CiAgICAgWmVyb0Jhc2VkTnVtYmVyIGNvbnZlcnRUb1plcm9CYXNl
ZCgpIGNvbnN0IHsgcmV0dXJuIFplcm9CYXNlZE51bWJlcjo6ZnJvbVplcm9CYXNlZEludChtX3Zh
bHVlIC0gMSk7IH0KIAorICAgIGJvb2wgb3BlcmF0b3I9PShPbmVCYXNlZE51bWJlciBvdGhlcikg
eyByZXR1cm4gbV92YWx1ZSA9PSBvdGhlci5tX3ZhbHVlOyB9CisgICAgYm9vbCBvcGVyYXRvciE9
KE9uZUJhc2VkTnVtYmVyIG90aGVyKSB7IHJldHVybiAhKCgqdGhpcykgPT0gb3RoZXIpOyB9CisK
ICAgICBzdGF0aWMgT25lQmFzZWROdW1iZXIgYmFzZSgpIHsgcmV0dXJuIDE7IH0KICAgICBzdGF0
aWMgT25lQmFzZWROdW1iZXIgYmVsb3dCYXNlKCkgeyByZXR1cm4gMDsgfQogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ0ZWQ2NDMuLjJi
MDBlNjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTItMjQgIEpvb25lIEh1ciAgPGpvb25lQGtsZHAu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdN
TCBQYXJzZXIgc2hvdWxkIHRyZWF0IGxpbmUvY29sdW1uIG51bWJlciBpbiBhIGNvbnNpc3RlbnQg
d2F5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTYw
MQorCisgICAgICAgIFhNTCBQYXJzZXIgdHJlYXRzIGxpbmUvY29sdW1uIG51bWJlciBhcyAxLWJh
c2VkIHZhbHVlcywgYnV0IFdNTCBFcnJvckhhbmRsZXIgdHJlYXQgdGhlbSBhcyAwLWJhc2VkLgor
ICAgICAgICBUaGVyZWZvcmUsIHRoaXMgcGF0Y2ggYWxsb3dzIFdNTCBFcnJvckhhbmRsZXIgdG8g
dXNlIDEtYmFzZWQgdmFsdWVzLgorCisgICAgICAgICogZG9tL1hNTERvY3VtZW50UGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpoYW5kbGVFcnJvcik6IFRy
ZWF0IGxpbmUvY29sdW1uIG51bWJlciBhcyAxIGJhc2VkIHZhbHVlcy4KKyAgICAgICAgKiBkb20v
WE1MRG9jdW1lbnRQYXJzZXIuaDogTWFrZSB0ZXh0UG9zaXRpb25PbmVCYXNlZCBwdWJsaWMgYW5k
IEFkZCBUZXh0UG9zaXRpb24xKG1fbGFzdEVycm9yUG9zaXRpb24pIHRvIGtlZXAgZXJyb3IgbGlu
ZS9jb2x1bW4gbnVtYmVyLgorICAgICAgICAqIGRvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OlhNTERvY3VtZW50UGFy
c2VyKTogSW5pdGlhbGl6ZSBtX2xhc3RFcnJvclBvc2l0aW9uLiAKKyAgICAgICAgKiBkb20vWE1M
RG9jdW1lbnRQYXJzZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNl
cjo6WE1MRG9jdW1lbnRQYXJzZXIpOiBJbml0aWFsaXplIG1fbGFzdEVycm9yUG9zaXRpb24uIAor
ICAgICAgICAqIHdtbC9XTUxFcnJvckhhbmRsaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJl
cG9ydFdNTEVycm9yKTogVXNlIDEgYmFzZWQgdmFsdWUgaW5zdGVhZCBvZiAwIGJhc2VkIHZhbHVl
IHRvIHJlcG9ydCBlcnJvciBsaW5lL2NvbHVtbiBudW1iZXIuCisKIDIwMTAtMTItMjQgIERhbiBC
ZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IHRoZSBRdCBi
dWlsZCBhZnRlciByNzQ2NDguCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBh
cnNlci5jcHAgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggMjdiMGZk
NC4uZTc0Mjc5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3Bw
CisrKyBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMTQ4LDE4ICsxNDgs
MjIgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6YXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmlu
ZyYgcykKIAogdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6aGFuZGxlRXJyb3IoRXJyb3JUeXBlIHR5
cGUsIGNvbnN0IGNoYXIqIG0sIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyKQogewot
ICAgIGlmICh0eXBlID09IGZhdGFsIHx8IChtX2Vycm9yQ291bnQgPCBtYXhFcnJvcnMgJiYgbV9s
YXN0RXJyb3JMaW5lICE9IGxpbmVOdW1iZXIgJiYgbV9sYXN0RXJyb3JDb2x1bW4gIT0gY29sdW1u
TnVtYmVyKSkgeworICAgIGhhbmRsZUVycm9yKHR5cGUsIG0sIFRleHRQb3NpdGlvbjEoV1RGOjpP
bmVCYXNlZE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KGxpbmVOdW1iZXIpLCBXVEY6Ok9uZUJhc2Vk
TnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoY29sdW1uTnVtYmVyKSkpOworfQorCit2b2lkIFhNTERv
Y3VtZW50UGFyc2VyOjpoYW5kbGVFcnJvcihFcnJvclR5cGUgdHlwZSwgY29uc3QgY2hhciogbSwg
VGV4dFBvc2l0aW9uMSBwb3NpdGlvbikKK3sKKyAgICBpZiAodHlwZSA9PSBmYXRhbCB8fCAobV9l
cnJvckNvdW50IDwgbWF4RXJyb3JzICYmIG1fbGFzdEVycm9yUG9zaXRpb24gIT0gcG9zaXRpb24p
KSB7CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgICAgY2FzZSB3YXJuaW5nOgot
ICAgICAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlcyArPSBtYWtlU3RyaW5nKCJ3YXJuaW5nIG9u
IGxpbmUgIiwgU3RyaW5nOjpudW1iZXIobGluZU51bWJlciksICIgYXQgY29sdW1uICIsIFN0cmlu
Zzo6bnVtYmVyKGNvbHVtbk51bWJlciksICI6ICIsIG0pOworICAgICAgICAgICAgICAgIG1fZXJy
b3JNZXNzYWdlcyArPSBtYWtlU3RyaW5nKCJ3YXJuaW5nIG9uIGxpbmUgIiwgU3RyaW5nOjpudW1i
ZXIocG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCkpLCAiIGF0IGNvbHVtbiAiLCBTdHJpbmc6
Om51bWJlcihwb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKSwgIjogIiwgbSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIGZhdGFsOgogICAgICAgICAgICAg
Y2FzZSBub25GYXRhbDoKLSAgICAgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZXMgKz0gbWFrZVN0
cmluZygiZXJyb3Igb24gbGluZSAiLCBTdHJpbmc6Om51bWJlcihsaW5lTnVtYmVyKSwgIiBhdCBj
b2x1bW4gIiwgU3RyaW5nOjpudW1iZXIoY29sdW1uTnVtYmVyKSwgIjogIiwgbSk7CisgICAgICAg
ICAgICAgICAgbV9lcnJvck1lc3NhZ2VzICs9IG1ha2VTdHJpbmcoImVycm9yIG9uIGxpbmUgIiwg
U3RyaW5nOjpudW1iZXIocG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCkpLCAiIGF0IGNvbHVt
biAiLCBTdHJpbmc6Om51bWJlcihwb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKSwgIjog
IiwgbSk7CiAgICAgICAgIH0KIAotICAgICAgICBtX2xhc3RFcnJvckxpbmUgPSBsaW5lTnVtYmVy
OwotICAgICAgICBtX2xhc3RFcnJvckNvbHVtbiA9IGNvbHVtbk51bWJlcjsKKyAgICAgICAgbV9s
YXN0RXJyb3JQb3NpdGlvbiA9IHBvc2l0aW9uOwogICAgICAgICArK21fZXJyb3JDb3VudDsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmggYi9XZWJD
b3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IDExMzcwZmEuLjJkZWI2MzUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9kb20v
WE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtODYsNiArODYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIC8vIEV4cG9zZWQgZm9yIGNhbGxiYWNrczoKICAgICAgICAgZW51bSBFcnJvclR5
cGUgeyB3YXJuaW5nLCBub25GYXRhbCwgZmF0YWwgfTsKICAgICAgICAgdm9pZCBoYW5kbGVFcnJv
cihFcnJvclR5cGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29s
dW1uTnVtYmVyKTsKKyAgICAgICAgdm9pZCBoYW5kbGVFcnJvcihFcnJvclR5cGUsIGNvbnN0IGNo
YXIqIG1lc3NhZ2UsIFRleHRQb3NpdGlvbjEgcG9zaXRpb24pOwogCiAgICAgICAgIHZvaWQgc2V0
SXNYSFRNTERvY3VtZW50KGJvb2wgaXNYSFRNTCkgeyBtX2lzWEhUTUxEb2N1bWVudCA9IGlzWEhU
TUw7IH0KICAgICAgICAgYm9vbCBpc1hIVE1MRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2lz
WEhUTUxEb2N1bWVudDsgfQpAQCAtMTA0LDYgKzEwNSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFRleHRQb3NpdGlvbjAgdGV4dFBvc2l0aW9uKCkgY29uc3Q7CiAKICAgICAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNYTUxWZXJzaW9uKGNvbnN0IFN0cmluZyYpOworICAgICAgICAv
LyBUaGlzIG1ldGhvZCBpcyBpbnRyb2R1Y2VkIHRvIHRlbXBvcmFyeSBsZWdhbGl6ZSBleGlzdGlu
ZyBsaW5lL2NvbHVtbgorICAgICAgICAvLyBjb29yZGluYXRlIGJ1ZzogaXQgaXMgYmVsaWV2ZWQg
dGhhdCBudW1iZXJzIHRoYXQgb3JpZ2luYWxseSB3ZXJlIHplcm8tYmFzZWQKKyAgICAgICAgLy8g
ZXZlbnR1YWxseSBiZWNvbWVzIG9uZS1iYXNlZC4KKyAgICAgICAgLy8gRklYTUU6IEludmVzdGln
YXRlIGFuZCBnZXQgcmlkIG9mIHRoaXMgbWV0aG9kLgorICAgICAgICBUZXh0UG9zaXRpb24xIHRl
eHRQb3NpdGlvbk9uZUJhc2VkKCkgY29uc3Q7CiAKICAgICBwcml2YXRlOgogICAgICAgICBYTUxE
b2N1bWVudFBhcnNlcihEb2N1bWVudCosIEZyYW1lVmlldyogPSAwKTsKQEAgLTEzMSwxMSArMTM3
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGFwcGVuZEZyYWdtZW50U291
cmNlKGNvbnN0IFN0cmluZyYpOwogCiAKLSAgICAgICAgLy8gVGhpcyBtZXRob2QgaXMgaW50cm9k
dWNlZCB0byB0ZW1wb3JhcnkgbGVnYWxpemUgZXhpc3RpbmcgbGluZS9jb2x1bW4KLSAgICAgICAg
Ly8gY29vcmRpbmF0ZSBidWc6IGl0IGlzIGJlbGlldmVkIHRoYXQgbnVtYmVycyB0aGF0IG9yaWdp
bmFsbHkgd2VyZSB6ZXJvLWJhc2VkCi0gICAgICAgIC8vIGV2ZW50dWFsbHkgYmVjb21lcyBvbmUt
YmFzZWQuCi0gICAgICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSBhbmQgZ2V0IHJpZCBvZiB0aGlz
IG1ldGhvZC4KLSAgICAgICAgVGV4dFBvc2l0aW9uMSB0ZXh0UG9zaXRpb25PbmVCYXNlZCgpIGNv
bnN0OwogCiAjaWYgVVNFKFFYTUxTVFJFQU0pCiBwcml2YXRlOgpAQCAtMjEwLDggKzIxMSw3IEBA
IHB1YmxpYzoKICAgICAgICAgYm9vbCBtX2ZpbmlzaENhbGxlZDsKIAogICAgICAgICBpbnQgbV9l
cnJvckNvdW50OwotICAgICAgICBpbnQgbV9sYXN0RXJyb3JMaW5lOwotICAgICAgICBpbnQgbV9s
YXN0RXJyb3JDb2x1bW47CisgICAgICAgIFRleHRQb3NpdGlvbjEgbV9sYXN0RXJyb3JQb3NpdGlv
bjsKICAgICAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlczsKIAogICAgICAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fcGVuZGluZ1NjcmlwdDsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9XZWJDb3JlL2RvbS9YTUxE
b2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IDIzZjk4ODMuLjBmNmI0YjQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvV2ViQ29y
ZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtNTU3LDggKzU1Nyw3IEBAIFhN
TERvY3VtZW50UGFyc2VyOjpYTUxEb2N1bWVudFBhcnNlcihEb2N1bWVudCogZG9jdW1lbnQsIEZy
YW1lVmlldyogZnJhbWVWaWV3KQogICAgICwgbV9yZXF1ZXN0aW5nU2NyaXB0KGZhbHNlKQogICAg
ICwgbV9maW5pc2hDYWxsZWQoZmFsc2UpCiAgICAgLCBtX2Vycm9yQ291bnQoMCkKLSAgICAsIG1f
bGFzdEVycm9yTGluZSgwKQotICAgICwgbV9sYXN0RXJyb3JDb2x1bW4oMCkKKyAgICAsIG1fbGFz
dEVycm9yUG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAg
LCBtX3BlbmRpbmdTY3JpcHQoMCkKICAgICAsIG1fc2NyaXB0U3RhcnRQb3NpdGlvbihUZXh0UG9z
aXRpb24xOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fcGFyc2luZ0ZyYWdtZW50KGZh
bHNlKQpAQCAtNTg0LDggKzU4Myw3IEBAIFhNTERvY3VtZW50UGFyc2VyOjpYTUxEb2N1bWVudFBh
cnNlcihEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRWxlbWVudCogcGFyZW50CiAgICAgLCBt
X3JlcXVlc3RpbmdTY3JpcHQoZmFsc2UpCiAgICAgLCBtX2ZpbmlzaENhbGxlZChmYWxzZSkKICAg
ICAsIG1fZXJyb3JDb3VudCgwKQotICAgICwgbV9sYXN0RXJyb3JMaW5lKDApCi0gICAgLCBtX2xh
c3RFcnJvckNvbHVtbigwKQorICAgICwgbV9sYXN0RXJyb3JQb3NpdGlvbihUZXh0UG9zaXRpb24x
OjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fcGVuZGluZ1NjcmlwdCgwKQogICAgICwg
bV9zY3JpcHRTdGFydFBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQb3NpdGlvbigp
KQogICAgICwgbV9wYXJzaW5nRnJhZ21lbnQodHJ1ZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L1hNTERvY3VtZW50UGFyc2VyUXQuY3BwIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJR
dC5jcHAKaW5kZXggZTkwNWUzMS4uZDBiZjg4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vWE1M
RG9jdW1lbnRQYXJzZXJRdC5jcHAKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJR
dC5jcHAKQEAgLTEwMiw4ICsxMDIsNyBAQCBYTUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQ
YXJzZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBGcmFtZVZpZXcqIGZyYW1lVmlldykKICAgICAsIG1f
cmVxdWVzdGluZ1NjcmlwdChmYWxzZSkKICAgICAsIG1fZmluaXNoQ2FsbGVkKGZhbHNlKQogICAg
ICwgbV9lcnJvckNvdW50KDApCi0gICAgLCBtX2xhc3RFcnJvckxpbmUoMCkKLSAgICAsIG1fbGFz
dEVycm9yQ29sdW1uKDApCisgICAgLCBtX2xhc3RFcnJvclBvc2l0aW9uKFRleHRQb3NpdGlvbjE6
OmJlbG93UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV9wZW5kaW5nU2NyaXB0KDApCiAgICAgLCBt
X3NjcmlwdFN0YXJ0UG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkp
CiAgICAgLCBtX3BhcnNpbmdGcmFnbWVudChmYWxzZSkKQEAgLTEyOSw4ICsxMjgsNyBAQCBYTUxE
b2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFnbWVudCogZnJhZ21l
bnQsIEVsZW1lbnQqIHBhcmVudAogICAgICwgbV9yZXF1ZXN0aW5nU2NyaXB0KGZhbHNlKQogICAg
ICwgbV9maW5pc2hDYWxsZWQoZmFsc2UpCiAgICAgLCBtX2Vycm9yQ291bnQoMCkKLSAgICAsIG1f
bGFzdEVycm9yTGluZSgwKQotICAgICwgbV9sYXN0RXJyb3JDb2x1bW4oMCkKKyAgICAsIG1fbGFz
dEVycm9yUG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAg
LCBtX3BlbmRpbmdTY3JpcHQoMCkKICAgICAsIG1fc2NyaXB0U3RhcnRQb3NpdGlvbihUZXh0UG9z
aXRpb24xOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fcGFyc2luZ0ZyYWdtZW50KHRy
dWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcCBiL1dlYkNv
cmUvd21sL1dNTEVycm9ySGFuZGxpbmcuY3BwCmluZGV4IGRjMGI4ZGYuLmE0OWE3MWIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvd21sL1dNTEVycm9ySGFuZGxpbmcuY3BwCisrKyBiL1dlYkNvcmUvd21s
L1dNTEVycm9ySGFuZGxpbmcuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgcmVwb3J0V01MRXJy
b3IoRG9jdW1lbnQqIGRvYywgV01MRXJyb3JDb2RlIGVycm9yKQogICAgICAgICBpZiAoIXBhcnNl
ci0+d2VsbEZvcm1lZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHBhcnNlci0+
aGFuZGxlRXJyb3IoWE1MRG9jdW1lbnRQYXJzZXI6OmZhdGFsLCBlcnJvck1lc3NhZ2UubGF0aW4x
KCkuZGF0YSgpLCBwYXJzZXItPnRleHRQb3NpdGlvbigpLm1fbGluZS56ZXJvQmFzZWRJbnQoKSwg
cGFyc2VyLT50ZXh0UG9zaXRpb24oKS5tX2NvbHVtbi56ZXJvQmFzZWRJbnQoKSk7CisgICAgICAg
IHBhcnNlci0+aGFuZGxlRXJyb3IoWE1MRG9jdW1lbnRQYXJzZXI6OmZhdGFsLCBlcnJvck1lc3Nh
Z2UubGF0aW4xKCkuZGF0YSgpLCBwYXJzZXItPnRleHRQb3NpdGlvbk9uZUJhc2VkKCkpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIEZyYW1lKiBmcmFtZSA9IGRvYy0+ZnJhbWUoKTsKICAgICAgICAg
aWYgKCFmcmFtZSkK
</data>
<flag name="review"
          id="68566"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77516</attachid>
            <date>2010-12-27 12:59:59 -0800</date>
            <delta_ts>2010-12-28 15:29:09 -0800</delta_ts>
            <desc>Proposed Patch2</desc>
            <filename>wml_TextPosition2.patch</filename>
            <type>text/plain</type>
            <size>10261</size>
            <attacher name="Joone Hur">joone</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBlM2RkZWIxLi43ZGU0MmUxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTAtMTItMjggIEpvb25lIEh1ciAgPGpvb25lQGtsZHAub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdNTCBQYXJzZXIgc2hvdWxkIHRy
ZWF0IGxpbmUvY29sdW1uIG51bWJlciBpbiBhIGNvbnNpc3RlbnQgd2F5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTYwMQorCisgICAgICAgIEFkZCB0
aGUgZXF1YWxpdHkgb3BlcmF0b3JzIHRvIFRleHRQb3NpdGlvbiBjbGFzcy4KKworICAgICAgICAq
IHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oOgorICAgICAgICAoV1RGOjpUZXh0UG9zaXRpb246Om9w
ZXJhdG9yPT0pOiBBZGRlZC4KKyAgICAgICAgKFdURjo6VGV4dFBvc2l0aW9uOjpvcGVyYXRvciE9
KTogQWRkZWQuCisgICAgICAgIChXVEY6Olplcm9CYXNlZE51bWJlcjo6b3BlcmF0b3I9PSk6IEFk
ZGVkLgorICAgICAgICAoV1RGOjpaZXJvQmFzZWROdW1iZXI6Om9wZXJhdG9yIT0pOiBBZGRlZC4K
KyAgICAgICAgKFdURjo6T25lQmFzZWROdW1iZXI6Om9wZXJhdG9yPT0pOiBBZGRlZC4KKyAgICAg
ICAgKFdURjo6T25lQmFzZWROdW1iZXI6Om9wZXJhdG9yIT0pOiBBZGRlZC4KKwogMjAxMC0xMi0y
NiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9UZXh0UG9z
aXRpb24uaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1RleHRQb3NpdGlvbi5oCmluZGV4IDYz
ZGM1OTQuLmU0N2EzYmEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1RleHRQ
b3NpdGlvbi5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1RleHRQb3NpdGlvbi5oCkBA
IC02Niw2ICs2Niw5IEBAIHB1YmxpYzoKICAgICB9CiAgICAgVGV4dFBvc2l0aW9uKCkge30KIAor
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBUZXh0UG9zaXRpb24mIG90aGVyKSB7IHJldHVybiBt
X2xpbmUgPT0gb3RoZXIubV9saW5lICYmIG1fY29sdW1uID09IG90aGVyLm1fY29sdW1uOyB9Cisg
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFRleHRQb3NpdGlvbiYgb3RoZXIpIHsgcmV0dXJuICEo
KCp0aGlzKSA9PSBvdGhlcik7IH0KKwogICAgIC8vIEEgJ21pbmltdW0nIHZhbHVlIG9mIHBvc2l0
aW9uLCB1c2VkIGFzIGEgZGVmYXVsdCB2YWx1ZS4KICAgICBzdGF0aWMgVGV4dFBvc2l0aW9uPE5V
TUJFUj4gbWluaW11bVBvc2l0aW9uKCkgeyByZXR1cm4gVGV4dFBvc2l0aW9uPE5VTUJFUj4oTlVN
QkVSOjpiYXNlKCksIE5VTUJFUjo6YmFzZSgpKTsgfQogCkBAIC04OSw2ICs5Miw5IEBAIHB1Ymxp
YzoKIAogICAgIE9uZUJhc2VkTnVtYmVyIGNvbnZlcnRUb09uZUJhc2VkKCkgY29uc3Q7CiAKKyAg
ICBib29sIG9wZXJhdG9yPT0oWmVyb0Jhc2VkTnVtYmVyIG90aGVyKSB7IHJldHVybiBtX3ZhbHVl
ID09IG90aGVyLm1fdmFsdWU7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oWmVyb0Jhc2VkTnVtYmVy
IG90aGVyKSB7IHJldHVybiAhKCgqdGhpcykgPT0gb3RoZXIpOyB9CisKICAgICBzdGF0aWMgWmVy
b0Jhc2VkTnVtYmVyIGJhc2UoKSB7IHJldHVybiAwOyB9CiAgICAgc3RhdGljIFplcm9CYXNlZE51
bWJlciBiZWxvd0Jhc2UoKSB7IHJldHVybiAtMTsgfQogCkBAIC0xMDcsNiArMTEzLDkgQEAgcHVi
bGljOgogICAgIGludCBjb252ZXJ0QXNaZXJvQmFzZWRJbnQoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlIC0gMTsgfQogICAgIFplcm9CYXNlZE51bWJlciBjb252ZXJ0VG9aZXJvQmFzZWQoKSBjb25z
dCB7IHJldHVybiBaZXJvQmFzZWROdW1iZXI6OmZyb21aZXJvQmFzZWRJbnQobV92YWx1ZSAtIDEp
OyB9CiAKKyAgICBib29sIG9wZXJhdG9yPT0oT25lQmFzZWROdW1iZXIgb3RoZXIpIHsgcmV0dXJu
IG1fdmFsdWUgPT0gb3RoZXIubV92YWx1ZTsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShPbmVCYXNl
ZE51bWJlciBvdGhlcikgeyByZXR1cm4gISgoKnRoaXMpID09IG90aGVyKTsgfQorCiAgICAgc3Rh
dGljIE9uZUJhc2VkTnVtYmVyIGJhc2UoKSB7IHJldHVybiAxOyB9CiAgICAgc3RhdGljIE9uZUJh
c2VkTnVtYmVyIGJlbG93QmFzZSgpIHsgcmV0dXJuIDA7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YTI1MGE1Li44ODRkZjE0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDEwLTEyLTI4ICBKb29uZSBIdXIgIDxqb29uZUBrbGRwLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXTUwgUGFyc2Vy
IHNob3VsZCB0cmVhdCBsaW5lL2NvbHVtbiBudW1iZXIgaW4gYSBjb25zaXN0ZW50IHdheQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE2MDEKKworICAg
ICAgICBYTUwgUGFyc2VyIHRyZWF0cyBsaW5lL2NvbHVtbiBudW1iZXIgYXMgMS1iYXNlZCB2YWx1
ZXMsIGJ1dCBXTUwgRXJyb3JIYW5kbGVyIHRyZWF0IHRoZW0gYXMgMC1iYXNlZC4KKyAgICAgICAg
VGhlcmVmb3JlLCB0aGlzIHBhdGNoIGFsbG93cyBXTUwgRXJyb3JIYW5kbGVyIHRvIHVzZSAxLWJh
c2VkIHZhbHVlcy4KKworICAgICAgICAqIGRvbS9YTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6aGFuZGxlRXJyb3IpOiBUcmVhdCBsaW5l
L2NvbHVtbiBudW1iZXIgYXMgMSBiYXNlZCB2YWx1ZXMuCisgICAgICAgICogZG9tL1hNTERvY3Vt
ZW50UGFyc2VyLmg6IE1ha2UgdGV4dFBvc2l0aW9uT25lQmFzZWQgcHVibGljIGFuZCBBZGQgVGV4
dFBvc2l0aW9uMShtX2xhc3RFcnJvclBvc2l0aW9uKSB0byBrZWVwIGVycm9yIGxpbmUvY29sdW1u
IG51bWJlci4KKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpYTUxEb2N1bWVudFBhcnNlcik6IElu
aXRpYWxpemUgbV9sYXN0RXJyb3JQb3NpdGlvbi4gCisgICAgICAgICogZG9tL1hNTERvY3VtZW50
UGFyc2VyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OlhNTERv
Y3VtZW50UGFyc2VyKTogSW5pdGlhbGl6ZSBtX2xhc3RFcnJvclBvc2l0aW9uLiAKKyAgICAgICAg
KiB3bWwvV01MRXJyb3JIYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRXTUxF
cnJvcik6IFVzZSAxIGJhc2VkIHZhbHVlIGluc3RlYWQgb2YgMCBiYXNlZCB2YWx1ZSB0byByZXBv
cnQgZXJyb3IgbGluZS9jb2x1bW4gbnVtYmVyLgorCiAyMDEwLTEyLTI3ICBBbnRvbiBNdWhpbiAg
PGFudG9ubUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4u
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAgYi9XZWJDb3Jl
L2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggMjdiMGZkNC4uZTc0Mjc5MyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvZG9t
L1hNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMTQ4LDE4ICsxNDgsMjIgQEAgdm9pZCBYTUxEb2N1
bWVudFBhcnNlcjo6YXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgcykKIAogdm9pZCBYTUxE
b2N1bWVudFBhcnNlcjo6aGFuZGxlRXJyb3IoRXJyb3JUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIG0s
IGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyKQogewotICAgIGlmICh0eXBlID09IGZh
dGFsIHx8IChtX2Vycm9yQ291bnQgPCBtYXhFcnJvcnMgJiYgbV9sYXN0RXJyb3JMaW5lICE9IGxp
bmVOdW1iZXIgJiYgbV9sYXN0RXJyb3JDb2x1bW4gIT0gY29sdW1uTnVtYmVyKSkgeworICAgIGhh
bmRsZUVycm9yKHR5cGUsIG0sIFRleHRQb3NpdGlvbjEoV1RGOjpPbmVCYXNlZE51bWJlcjo6ZnJv
bU9uZUJhc2VkSW50KGxpbmVOdW1iZXIpLCBXVEY6Ok9uZUJhc2VkTnVtYmVyOjpmcm9tT25lQmFz
ZWRJbnQoY29sdW1uTnVtYmVyKSkpOworfQorCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpoYW5k
bGVFcnJvcihFcnJvclR5cGUgdHlwZSwgY29uc3QgY2hhciogbSwgVGV4dFBvc2l0aW9uMSBwb3Np
dGlvbikKK3sKKyAgICBpZiAodHlwZSA9PSBmYXRhbCB8fCAobV9lcnJvckNvdW50IDwgbWF4RXJy
b3JzICYmIG1fbGFzdEVycm9yUG9zaXRpb24gIT0gcG9zaXRpb24pKSB7CiAgICAgICAgIHN3aXRj
aCAodHlwZSkgewogICAgICAgICAgICAgY2FzZSB3YXJuaW5nOgotICAgICAgICAgICAgICAgIG1f
ZXJyb3JNZXNzYWdlcyArPSBtYWtlU3RyaW5nKCJ3YXJuaW5nIG9uIGxpbmUgIiwgU3RyaW5nOjpu
dW1iZXIobGluZU51bWJlciksICIgYXQgY29sdW1uICIsIFN0cmluZzo6bnVtYmVyKGNvbHVtbk51
bWJlciksICI6ICIsIG0pOworICAgICAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlcyArPSBtYWtl
U3RyaW5nKCJ3YXJuaW5nIG9uIGxpbmUgIiwgU3RyaW5nOjpudW1iZXIocG9zaXRpb24ubV9saW5l
Lm9uZUJhc2VkSW50KCkpLCAiIGF0IGNvbHVtbiAiLCBTdHJpbmc6Om51bWJlcihwb3NpdGlvbi5t
X2NvbHVtbi5vbmVCYXNlZEludCgpKSwgIjogIiwgbSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBjYXNlIGZhdGFsOgogICAgICAgICAgICAgY2FzZSBub25GYXRhbDoKLSAg
ICAgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZXMgKz0gbWFrZVN0cmluZygiZXJyb3Igb24gbGlu
ZSAiLCBTdHJpbmc6Om51bWJlcihsaW5lTnVtYmVyKSwgIiBhdCBjb2x1bW4gIiwgU3RyaW5nOjpu
dW1iZXIoY29sdW1uTnVtYmVyKSwgIjogIiwgbSk7CisgICAgICAgICAgICAgICAgbV9lcnJvck1l
c3NhZ2VzICs9IG1ha2VTdHJpbmcoImVycm9yIG9uIGxpbmUgIiwgU3RyaW5nOjpudW1iZXIocG9z
aXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCkpLCAiIGF0IGNvbHVtbiAiLCBTdHJpbmc6Om51bWJl
cihwb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKSwgIjogIiwgbSk7CiAgICAgICAgIH0K
IAotICAgICAgICBtX2xhc3RFcnJvckxpbmUgPSBsaW5lTnVtYmVyOwotICAgICAgICBtX2xhc3RF
cnJvckNvbHVtbiA9IGNvbHVtbk51bWJlcjsKKyAgICAgICAgbV9sYXN0RXJyb3JQb3NpdGlvbiA9
IHBvc2l0aW9uOwogICAgICAgICArK21fZXJyb3JDb3VudDsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVu
dFBhcnNlci5oCmluZGV4IDExMzcwZmEuLmFiZDBjZTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L1hNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIu
aApAQCAtODYsNiArODYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIEV4cG9z
ZWQgZm9yIGNhbGxiYWNrczoKICAgICAgICAgZW51bSBFcnJvclR5cGUgeyB3YXJuaW5nLCBub25G
YXRhbCwgZmF0YWwgfTsKICAgICAgICAgdm9pZCBoYW5kbGVFcnJvcihFcnJvclR5cGUsIGNvbnN0
IGNoYXIqIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyKTsKKyAgICAg
ICAgdm9pZCBoYW5kbGVFcnJvcihFcnJvclR5cGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIFRleHRQ
b3NpdGlvbjEpOwogCiAgICAgICAgIHZvaWQgc2V0SXNYSFRNTERvY3VtZW50KGJvb2wgaXNYSFRN
TCkgeyBtX2lzWEhUTUxEb2N1bWVudCA9IGlzWEhUTUw7IH0KICAgICAgICAgYm9vbCBpc1hIVE1M
RG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2lzWEhUTUxEb2N1bWVudDsgfQpAQCAtMTAxLDcg
KzEwMiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gV01MRXJyb3JIYW5k
bGluZyB1c2VzIHRoZXNlIGZ1bmN0aW9ucy4KICAgICAgICAgdmlydHVhbCBib29sIHdlbGxGb3Jt
ZWQoKSBjb25zdCB7IHJldHVybiAhbV9zYXdFcnJvcjsgfQorCiAgICAgICAgIFRleHRQb3NpdGlv
bjAgdGV4dFBvc2l0aW9uKCkgY29uc3Q7CisgICAgICAgIC8vIFRoaXMgbWV0aG9kIGlzIGludHJv
ZHVjZWQgdG8gdGVtcG9yYXJ5IGFsbG93IGV4aXN0aW5nIGxpbmUvY29sdW1uCisgICAgICAgIC8v
IGNvb3JkaW5hdGUgYnVnOiBpdCBpcyBiZWxpZXZlZCB0aGF0IG51bWJlcnMgdGhhdCBvcmlnaW5h
bGx5IHdlcmUgemVyby1iYXNlZAorICAgICAgICAvLyBldmVudHVhbGx5IGJlY29tZXMgb25lLWJh
c2VkLgorICAgICAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgYW5kIGdldCByaWQgb2YgdGhpcyBt
ZXRob2QuCisgICAgICAgIFRleHRQb3NpdGlvbjEgdGV4dFBvc2l0aW9uT25lQmFzZWQoKSBjb25z
dDsKIAogICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1hNTFZlcnNpb24oY29uc3QgU3RyaW5n
Jik7CiAKQEAgLTEzMCwxMyArMTM3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAg
IGJvb2wgYXBwZW5kRnJhZ21lbnRTb3VyY2UoY29uc3QgU3RyaW5nJik7CiAKLQotICAgICAgICAv
LyBUaGlzIG1ldGhvZCBpcyBpbnRyb2R1Y2VkIHRvIHRlbXBvcmFyeSBsZWdhbGl6ZSBleGlzdGlu
ZyBsaW5lL2NvbHVtbgotICAgICAgICAvLyBjb29yZGluYXRlIGJ1ZzogaXQgaXMgYmVsaWV2ZWQg
dGhhdCBudW1iZXJzIHRoYXQgb3JpZ2luYWxseSB3ZXJlIHplcm8tYmFzZWQKLSAgICAgICAgLy8g
ZXZlbnR1YWxseSBiZWNvbWVzIG9uZS1iYXNlZC4KLSAgICAgICAgLy8gRklYTUU6IEludmVzdGln
YXRlIGFuZCBnZXQgcmlkIG9mIHRoaXMgbWV0aG9kLgotICAgICAgICBUZXh0UG9zaXRpb24xIHRl
eHRQb3NpdGlvbk9uZUJhc2VkKCkgY29uc3Q7Ci0KICNpZiBVU0UoUVhNTFNUUkVBTSkKIHByaXZh
dGU6CiAgICAgICAgIHZvaWQgcGFyc2UoKTsKQEAgLTIxMCw4ICsyMTAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGJvb2wgbV9maW5pc2hDYWxsZWQ7CiAKICAgICAgICAgaW50IG1fZXJyb3JDb3VudDsK
LSAgICAgICAgaW50IG1fbGFzdEVycm9yTGluZTsKLSAgICAgICAgaW50IG1fbGFzdEVycm9yQ29s
dW1uOworICAgICAgICBUZXh0UG9zaXRpb24xIG1fbGFzdEVycm9yUG9zaXRpb247CiAgICAgICAg
IFN0cmluZyBtX2Vycm9yTWVzc2FnZXM7CiAKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkU2NyaXB0PiBtX3BlbmRpbmdTY3JpcHQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Y
TUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJz
ZXJMaWJ4bWwyLmNwcAppbmRleCAyM2Y5ODgzLi4wZjZiNGI0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1hNTERv
Y3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTU1Nyw4ICs1NTcsNyBAQCBYTUxEb2N1bWVudFBh
cnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBGcmFtZVZpZXcqIGZy
YW1lVmlldykKICAgICAsIG1fcmVxdWVzdGluZ1NjcmlwdChmYWxzZSkKICAgICAsIG1fZmluaXNo
Q2FsbGVkKGZhbHNlKQogICAgICwgbV9lcnJvckNvdW50KDApCi0gICAgLCBtX2xhc3RFcnJvckxp
bmUoMCkKLSAgICAsIG1fbGFzdEVycm9yQ29sdW1uKDApCisgICAgLCBtX2xhc3RFcnJvclBvc2l0
aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV9wZW5kaW5n
U2NyaXB0KDApCiAgICAgLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVs
b3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3BhcnNpbmdGcmFnbWVudChmYWxzZSkKQEAgLTU4
NCw4ICs1ODMsNyBAQCBYTUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1l
bnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIHBhcmVudAogICAgICwgbV9yZXF1ZXN0aW5n
U2NyaXB0KGZhbHNlKQogICAgICwgbV9maW5pc2hDYWxsZWQoZmFsc2UpCiAgICAgLCBtX2Vycm9y
Q291bnQoMCkKLSAgICAsIG1fbGFzdEVycm9yTGluZSgwKQotICAgICwgbV9sYXN0RXJyb3JDb2x1
bW4oMCkKKyAgICAsIG1fbGFzdEVycm9yUG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5n
ZVBvc2l0aW9uKCkpCiAgICAgLCBtX3BlbmRpbmdTY3JpcHQoMCkKICAgICAsIG1fc2NyaXB0U3Rh
cnRQb3NpdGlvbihUZXh0UG9zaXRpb24xOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1f
cGFyc2luZ0ZyYWdtZW50KHRydWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVu
dFBhcnNlclF0LmNwcCBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwCmluZGV4
IGU5MDVlMzEuLmQwYmY4OGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFy
c2VyUXQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwCkBAIC0x
MDIsOCArMTAyLDcgQEAgWE1MRG9jdW1lbnRQYXJzZXI6OlhNTERvY3VtZW50UGFyc2VyKERvY3Vt
ZW50KiBkb2N1bWVudCwgRnJhbWVWaWV3KiBmcmFtZVZpZXcpCiAgICAgLCBtX3JlcXVlc3RpbmdT
Y3JpcHQoZmFsc2UpCiAgICAgLCBtX2ZpbmlzaENhbGxlZChmYWxzZSkKICAgICAsIG1fZXJyb3JD
b3VudCgwKQotICAgICwgbV9sYXN0RXJyb3JMaW5lKDApCi0gICAgLCBtX2xhc3RFcnJvckNvbHVt
bigwKQorICAgICwgbV9sYXN0RXJyb3JQb3NpdGlvbihUZXh0UG9zaXRpb24xOjpiZWxvd1Jhbmdl
UG9zaXRpb24oKSkKICAgICAsIG1fcGVuZGluZ1NjcmlwdCgwKQogICAgICwgbV9zY3JpcHRTdGFy
dFBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV9w
YXJzaW5nRnJhZ21lbnQoZmFsc2UpCkBAIC0xMjksOCArMTI4LDcgQEAgWE1MRG9jdW1lbnRQYXJz
ZXI6OlhNTERvY3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBFbGVtZW50
KiBwYXJlbnQKICAgICAsIG1fcmVxdWVzdGluZ1NjcmlwdChmYWxzZSkKICAgICAsIG1fZmluaXNo
Q2FsbGVkKGZhbHNlKQogICAgICwgbV9lcnJvckNvdW50KDApCi0gICAgLCBtX2xhc3RFcnJvckxp
bmUoMCkKLSAgICAsIG1fbGFzdEVycm9yQ29sdW1uKDApCisgICAgLCBtX2xhc3RFcnJvclBvc2l0
aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV9wZW5kaW5n
U2NyaXB0KDApCiAgICAgLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVs
b3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3BhcnNpbmdGcmFnbWVudCh0cnVlKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS93bWwvV01MRXJyb3JIYW5kbGluZy5jcHAgYi9XZWJDb3JlL3dtbC9XTUxF
cnJvckhhbmRsaW5nLmNwcAppbmRleCBkYzBiOGRmLi5hNDlhNzFiIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcAorKysgYi9XZWJDb3JlL3dtbC9XTUxFcnJvckhh
bmRsaW5nLmNwcApAQCAtNDgsNyArNDgsNyBAQCB2b2lkIHJlcG9ydFdNTEVycm9yKERvY3VtZW50
KiBkb2MsIFdNTEVycm9yQ29kZSBlcnJvcikKICAgICAgICAgaWYgKCFwYXJzZXItPndlbGxGb3Jt
ZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBwYXJzZXItPmhhbmRsZUVycm9y
KFhNTERvY3VtZW50UGFyc2VyOjpmYXRhbCwgZXJyb3JNZXNzYWdlLmxhdGluMSgpLmRhdGEoKSwg
cGFyc2VyLT50ZXh0UG9zaXRpb24oKS5tX2xpbmUuemVyb0Jhc2VkSW50KCksIHBhcnNlci0+dGV4
dFBvc2l0aW9uKCkubV9jb2x1bW4uemVyb0Jhc2VkSW50KCkpOworICAgICAgICBwYXJzZXItPmhh
bmRsZUVycm9yKFhNTERvY3VtZW50UGFyc2VyOjpmYXRhbCwgZXJyb3JNZXNzYWdlLmxhdGluMSgp
LmRhdGEoKSwgcGFyc2VyLT50ZXh0UG9zaXRpb25PbmVCYXNlZCgpKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBGcmFtZSogZnJhbWUgPSBkb2MtPmZyYW1lKCk7CiAgICAgICAgIGlmICghZnJhbWUp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77584</attachid>
            <date>2010-12-28 15:29:09 -0800</date>
            <delta_ts>2011-01-02 17:16:05 -0800</delta_ts>
            <desc>Proposed Patch3</desc>
            <filename>wml_TextPosition3.patch</filename>
            <type>text/plain</type>
            <size>10003</size>
            <attacher name="Joone Hur">joone</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBlMjViZDUwLi5mMzFjNTg3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTAtMTItMjggIEpvb25lIEh1ciAgPGpvb25lQGtsZHAub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdNTCBQYXJzZXIgc2hvdWxkIHRy
ZWF0IGxpbmUvY29sdW1uIG51bWJlciBpbiBhIGNvbnNpc3RlbnQgd2F5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTYwMQorCisgICAgICAgIEFkZCB0
aGUgZXF1YWxpdHkgb3BlcmF0b3JzIHRvIFRleHRQb3NpdGlvbiBjbGFzcy4KKworICAgICAgICAq
IHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oOgorICAgICAgICAoV1RGOjpUZXh0UG9zaXRpb246Om9w
ZXJhdG9yPT0pOiBBZGRlZC4KKyAgICAgICAgKFdURjo6VGV4dFBvc2l0aW9uOjpvcGVyYXRvciE9
KTogQWRkZWQuCisgICAgICAgIChXVEY6Olplcm9CYXNlZE51bWJlcjo6b3BlcmF0b3I9PSk6IEFk
ZGVkLgorICAgICAgICAoV1RGOjpaZXJvQmFzZWROdW1iZXI6Om9wZXJhdG9yIT0pOiBBZGRlZC4K
KyAgICAgICAgKFdURjo6T25lQmFzZWROdW1iZXI6Om9wZXJhdG9yPT0pOiBBZGRlZC4KKyAgICAg
ICAgKFdURjo6T25lQmFzZWROdW1iZXI6Om9wZXJhdG9yIT0pOiBBZGRlZC4KKwogMjAxMC0xMi0y
OCAgSGVsZGVyIENvcnJlaWEgIDxoZWxkZXJAc2VuY2hhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1Rl
eHRQb3NpdGlvbi5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvVGV4dFBvc2l0aW9uLmgKaW5k
ZXggNjNkYzU5NC4uZTQ3YTNiYSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQv
VGV4dFBvc2l0aW9uLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvVGV4dFBvc2l0aW9u
LmgKQEAgLTY2LDYgKzY2LDkgQEAgcHVibGljOgogICAgIH0KICAgICBUZXh0UG9zaXRpb24oKSB7
fQogCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRleHRQb3NpdGlvbiYgb3RoZXIpIHsgcmV0
dXJuIG1fbGluZSA9PSBvdGhlci5tX2xpbmUgJiYgbV9jb2x1bW4gPT0gb3RoZXIubV9jb2x1bW47
IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgVGV4dFBvc2l0aW9uJiBvdGhlcikgeyByZXR1
cm4gISgoKnRoaXMpID09IG90aGVyKTsgfQorCiAgICAgLy8gQSAnbWluaW11bScgdmFsdWUgb2Yg
cG9zaXRpb24sIHVzZWQgYXMgYSBkZWZhdWx0IHZhbHVlLgogICAgIHN0YXRpYyBUZXh0UG9zaXRp
b248TlVNQkVSPiBtaW5pbXVtUG9zaXRpb24oKSB7IHJldHVybiBUZXh0UG9zaXRpb248TlVNQkVS
PihOVU1CRVI6OmJhc2UoKSwgTlVNQkVSOjpiYXNlKCkpOyB9CiAKQEAgLTg5LDYgKzkyLDkgQEAg
cHVibGljOgogCiAgICAgT25lQmFzZWROdW1iZXIgY29udmVydFRvT25lQmFzZWQoKSBjb25zdDsK
IAorICAgIGJvb2wgb3BlcmF0b3I9PShaZXJvQmFzZWROdW1iZXIgb3RoZXIpIHsgcmV0dXJuIG1f
dmFsdWUgPT0gb3RoZXIubV92YWx1ZTsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShaZXJvQmFzZWRO
dW1iZXIgb3RoZXIpIHsgcmV0dXJuICEoKCp0aGlzKSA9PSBvdGhlcik7IH0KKwogICAgIHN0YXRp
YyBaZXJvQmFzZWROdW1iZXIgYmFzZSgpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMgWmVyb0Jh
c2VkTnVtYmVyIGJlbG93QmFzZSgpIHsgcmV0dXJuIC0xOyB9CiAKQEAgLTEwNyw2ICsxMTMsOSBA
QCBwdWJsaWM6CiAgICAgaW50IGNvbnZlcnRBc1plcm9CYXNlZEludCgpIGNvbnN0IHsgcmV0dXJu
IG1fdmFsdWUgLSAxOyB9CiAgICAgWmVyb0Jhc2VkTnVtYmVyIGNvbnZlcnRUb1plcm9CYXNlZCgp
IGNvbnN0IHsgcmV0dXJuIFplcm9CYXNlZE51bWJlcjo6ZnJvbVplcm9CYXNlZEludChtX3ZhbHVl
IC0gMSk7IH0KIAorICAgIGJvb2wgb3BlcmF0b3I9PShPbmVCYXNlZE51bWJlciBvdGhlcikgeyBy
ZXR1cm4gbV92YWx1ZSA9PSBvdGhlci5tX3ZhbHVlOyB9CisgICAgYm9vbCBvcGVyYXRvciE9KE9u
ZUJhc2VkTnVtYmVyIG90aGVyKSB7IHJldHVybiAhKCgqdGhpcykgPT0gb3RoZXIpOyB9CisKICAg
ICBzdGF0aWMgT25lQmFzZWROdW1iZXIgYmFzZSgpIHsgcmV0dXJuIDE7IH0KICAgICBzdGF0aWMg
T25lQmFzZWROdW1iZXIgYmVsb3dCYXNlKCkgeyByZXR1cm4gMDsgfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDcwZGFiNWIuLjBmMDVk
ZTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTItMjggIEpvb25lIEh1ciAgPGpvb25lQGtsZHAub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdNTCBQ
YXJzZXIgc2hvdWxkIHRyZWF0IGxpbmUvY29sdW1uIG51bWJlciBpbiBhIGNvbnNpc3RlbnQgd2F5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTYwMQor
CisgICAgICAgIFhNTCBQYXJzZXIgdHJlYXRzIGxpbmUvY29sdW1uIG51bWJlciBhcyAxLWJhc2Vk
IHZhbHVlcywgYnV0IFdNTCBFcnJvckhhbmRsZXIgdHJlYXQgdGhlbSBhcyAwLWJhc2VkLgorICAg
ICAgICBUaGVyZWZvcmUsIHRoaXMgcGF0Y2ggYWxsb3dzIFdNTCBFcnJvckhhbmRsZXIgdG8gdXNl
IDEtYmFzZWQgdmFsdWVzLgorCisgICAgICAgICogZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpoYW5kbGVFcnJvcik6IFRyZWF0
IGxpbmUvY29sdW1uIG51bWJlciBhcyAxIGJhc2VkIHZhbHVlcy4KKyAgICAgICAgKiBkb20vWE1M
RG9jdW1lbnRQYXJzZXIuaDogTWFrZSB0ZXh0UG9zaXRpb25PbmVCYXNlZCBwdWJsaWMgYW5kIEFk
ZCBUZXh0UG9zaXRpb24xKG1fbGFzdEVycm9yUG9zaXRpb24pIHRvIGtlZXAgZXJyb3IgbGluZS9j
b2x1bW4gbnVtYmVyLgorICAgICAgICAqIGRvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OlhNTERvY3VtZW50UGFyc2Vy
KTogSW5pdGlhbGl6ZSBtX2xhc3RFcnJvclBvc2l0aW9uLiAKKyAgICAgICAgKiBkb20vWE1MRG9j
dW1lbnRQYXJzZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6
WE1MRG9jdW1lbnRQYXJzZXIpOiBJbml0aWFsaXplIG1fbGFzdEVycm9yUG9zaXRpb24uIAorICAg
ICAgICAqIHdtbC9XTUxFcnJvckhhbmRsaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9y
dFdNTEVycm9yKTogVXNlIDEgYmFzZWQgdmFsdWUgaW5zdGVhZCBvZiAwIGJhc2VkIHZhbHVlIHRv
IHJlcG9ydCBlcnJvciBsaW5lL2NvbHVtbiBudW1iZXIuCisKIDIwMTAtMTItMjggIEphbiBFcmlr
IEhhbnNzZW4gIDxqaGFuc3NlbkBzZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3Bw
IGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDI3YjBmZDQuLmU3NDI3
OTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9X
ZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTE0OCwxOCArMTQ4LDIyIEBAIHZv
aWQgWE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHMpCiAK
IHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmhhbmRsZUVycm9yKEVycm9yVHlwZSB0eXBlLCBjb25z
dCBjaGFyKiBtLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlcikKIHsKLSAgICBpZiAo
dHlwZSA9PSBmYXRhbCB8fCAobV9lcnJvckNvdW50IDwgbWF4RXJyb3JzICYmIG1fbGFzdEVycm9y
TGluZSAhPSBsaW5lTnVtYmVyICYmIG1fbGFzdEVycm9yQ29sdW1uICE9IGNvbHVtbk51bWJlcikp
IHsKKyAgICBoYW5kbGVFcnJvcih0eXBlLCBtLCBUZXh0UG9zaXRpb24xKFdURjo6T25lQmFzZWRO
dW1iZXI6OmZyb21PbmVCYXNlZEludChsaW5lTnVtYmVyKSwgV1RGOjpPbmVCYXNlZE51bWJlcjo6
ZnJvbU9uZUJhc2VkSW50KGNvbHVtbk51bWJlcikpKTsKK30KKwordm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6aGFuZGxlRXJyb3IoRXJyb3JUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIG0sIFRleHRQb3Np
dGlvbjEgcG9zaXRpb24pCit7CisgICAgaWYgKHR5cGUgPT0gZmF0YWwgfHwgKG1fZXJyb3JDb3Vu
dCA8IG1heEVycm9ycyAmJiBtX2xhc3RFcnJvclBvc2l0aW9uICE9IHBvc2l0aW9uKSkgewogICAg
ICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgIGNhc2Ugd2FybmluZzoKLSAgICAgICAg
ICAgICAgICBtX2Vycm9yTWVzc2FnZXMgKz0gbWFrZVN0cmluZygid2FybmluZyBvbiBsaW5lICIs
IFN0cmluZzo6bnVtYmVyKGxpbmVOdW1iZXIpLCAiIGF0IGNvbHVtbiAiLCBTdHJpbmc6Om51bWJl
cihjb2x1bW5OdW1iZXIpLCAiOiAiLCBtKTsKKyAgICAgICAgICAgICAgICBtX2Vycm9yTWVzc2Fn
ZXMgKz0gbWFrZVN0cmluZygid2FybmluZyBvbiBsaW5lICIsIFN0cmluZzo6bnVtYmVyKHBvc2l0
aW9uLm1fbGluZS5vbmVCYXNlZEludCgpKSwgIiBhdCBjb2x1bW4gIiwgU3RyaW5nOjpudW1iZXIo
cG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSksICI6ICIsIG0pOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBmYXRhbDoKICAgICAgICAgICAgIGNhc2Ugbm9u
RmF0YWw6Ci0gICAgICAgICAgICAgICAgbV9lcnJvck1lc3NhZ2VzICs9IG1ha2VTdHJpbmcoImVy
cm9yIG9uIGxpbmUgIiwgU3RyaW5nOjpudW1iZXIobGluZU51bWJlciksICIgYXQgY29sdW1uICIs
IFN0cmluZzo6bnVtYmVyKGNvbHVtbk51bWJlciksICI6ICIsIG0pOworICAgICAgICAgICAgICAg
IG1fZXJyb3JNZXNzYWdlcyArPSBtYWtlU3RyaW5nKCJlcnJvciBvbiBsaW5lICIsIFN0cmluZzo6
bnVtYmVyKHBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpKSwgIiBhdCBjb2x1bW4gIiwgU3Ry
aW5nOjpudW1iZXIocG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSksICI6ICIsIG0pOwog
ICAgICAgICB9CiAKLSAgICAgICAgbV9sYXN0RXJyb3JMaW5lID0gbGluZU51bWJlcjsKLSAgICAg
ICAgbV9sYXN0RXJyb3JDb2x1bW4gPSBjb2x1bW5OdW1iZXI7CisgICAgICAgIG1fbGFzdEVycm9y
UG9zaXRpb24gPSBwb3NpdGlvbjsKICAgICAgICAgKyttX2Vycm9yQ291bnQ7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9kb20v
WE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCAxMTM3MGZhLi43NTMzYzViIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1dlYkNvcmUvZG9tL1hNTERvY3Vt
ZW50UGFyc2VyLmgKQEAgLTg2LDYgKzg2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICAvLyBFeHBvc2VkIGZvciBjYWxsYmFja3M6CiAgICAgICAgIGVudW0gRXJyb3JUeXBlIHsgd2Fy
bmluZywgbm9uRmF0YWwsIGZhdGFsIH07CiAgICAgICAgIHZvaWQgaGFuZGxlRXJyb3IoRXJyb3JU
eXBlLCBjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJl
cik7CisgICAgICAgIHZvaWQgaGFuZGxlRXJyb3IoRXJyb3JUeXBlLCBjb25zdCBjaGFyKiBtZXNz
YWdlLCBUZXh0UG9zaXRpb24xKTsKIAogICAgICAgICB2b2lkIHNldElzWEhUTUxEb2N1bWVudChi
b29sIGlzWEhUTUwpIHsgbV9pc1hIVE1MRG9jdW1lbnQgPSBpc1hIVE1MOyB9CiAgICAgICAgIGJv
b2wgaXNYSFRNTERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9pc1hIVE1MRG9jdW1lbnQ7IH0K
QEAgLTEwMSw3ICsxMDIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gV01M
RXJyb3JIYW5kbGluZyB1c2VzIHRoZXNlIGZ1bmN0aW9ucy4KICAgICAgICAgdmlydHVhbCBib29s
IHdlbGxGb3JtZWQoKSBjb25zdCB7IHJldHVybiAhbV9zYXdFcnJvcjsgfQorCiAgICAgICAgIFRl
eHRQb3NpdGlvbjAgdGV4dFBvc2l0aW9uKCkgY29uc3Q7CisgICAgICAgIFRleHRQb3NpdGlvbjEg
dGV4dFBvc2l0aW9uT25lQmFzZWQoKSBjb25zdDsKIAogICAgICAgICBzdGF0aWMgYm9vbCBzdXBw
b3J0c1hNTFZlcnNpb24oY29uc3QgU3RyaW5nJik7CiAKQEAgLTEzMCwxMyArMTMzLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wgYXBwZW5kRnJhZ21lbnRTb3VyY2UoY29u
c3QgU3RyaW5nJik7CiAKLQotICAgICAgICAvLyBUaGlzIG1ldGhvZCBpcyBpbnRyb2R1Y2VkIHRv
IHRlbXBvcmFyeSBsZWdhbGl6ZSBleGlzdGluZyBsaW5lL2NvbHVtbgotICAgICAgICAvLyBjb29y
ZGluYXRlIGJ1ZzogaXQgaXMgYmVsaWV2ZWQgdGhhdCBudW1iZXJzIHRoYXQgb3JpZ2luYWxseSB3
ZXJlIHplcm8tYmFzZWQKLSAgICAgICAgLy8gZXZlbnR1YWxseSBiZWNvbWVzIG9uZS1iYXNlZC4K
LSAgICAgICAgLy8gRklYTUU6IEludmVzdGlnYXRlIGFuZCBnZXQgcmlkIG9mIHRoaXMgbWV0aG9k
LgotICAgICAgICBUZXh0UG9zaXRpb24xIHRleHRQb3NpdGlvbk9uZUJhc2VkKCkgY29uc3Q7Ci0K
ICNpZiBVU0UoUVhNTFNUUkVBTSkKIHByaXZhdGU6CiAgICAgICAgIHZvaWQgcGFyc2UoKTsKQEAg
LTIxMCw4ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV9maW5pc2hDYWxsZWQ7CiAK
ICAgICAgICAgaW50IG1fZXJyb3JDb3VudDsKLSAgICAgICAgaW50IG1fbGFzdEVycm9yTGluZTsK
LSAgICAgICAgaW50IG1fbGFzdEVycm9yQ29sdW1uOworICAgICAgICBUZXh0UG9zaXRpb24xIG1f
bGFzdEVycm9yUG9zaXRpb247CiAgICAgICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZXM7CiAKICAg
ICAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX3BlbmRpbmdTY3JpcHQ7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIv
V2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCAyM2Y5ODgzLi4w
ZjZiNGI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIu
Y3BwCisrKyBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTU1
Nyw4ICs1NTcsNyBAQCBYTUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1l
bnQqIGRvY3VtZW50LCBGcmFtZVZpZXcqIGZyYW1lVmlldykKICAgICAsIG1fcmVxdWVzdGluZ1Nj
cmlwdChmYWxzZSkKICAgICAsIG1fZmluaXNoQ2FsbGVkKGZhbHNlKQogICAgICwgbV9lcnJvckNv
dW50KDApCi0gICAgLCBtX2xhc3RFcnJvckxpbmUoMCkKLSAgICAsIG1fbGFzdEVycm9yQ29sdW1u
KDApCisgICAgLCBtX2xhc3RFcnJvclBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQ
b3NpdGlvbigpKQogICAgICwgbV9wZW5kaW5nU2NyaXB0KDApCiAgICAgLCBtX3NjcmlwdFN0YXJ0
UG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3Bh
cnNpbmdGcmFnbWVudChmYWxzZSkKQEAgLTU4NCw4ICs1ODMsNyBAQCBYTUxEb2N1bWVudFBhcnNl
cjo6WE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQq
IHBhcmVudAogICAgICwgbV9yZXF1ZXN0aW5nU2NyaXB0KGZhbHNlKQogICAgICwgbV9maW5pc2hD
YWxsZWQoZmFsc2UpCiAgICAgLCBtX2Vycm9yQ291bnQoMCkKLSAgICAsIG1fbGFzdEVycm9yTGlu
ZSgwKQotICAgICwgbV9sYXN0RXJyb3JDb2x1bW4oMCkKKyAgICAsIG1fbGFzdEVycm9yUG9zaXRp
b24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3BlbmRpbmdT
Y3JpcHQoMCkKICAgICAsIG1fc2NyaXB0U3RhcnRQb3NpdGlvbihUZXh0UG9zaXRpb24xOjpiZWxv
d1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fcGFyc2luZ0ZyYWdtZW50KHRydWUpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcCBiL1dlYkNvcmUvZG9tL1hN
TERvY3VtZW50UGFyc2VyUXQuY3BwCmluZGV4IGU5MDVlMzEuLmQwYmY4OGQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1hN
TERvY3VtZW50UGFyc2VyUXQuY3BwCkBAIC0xMDIsOCArMTAyLDcgQEAgWE1MRG9jdW1lbnRQYXJz
ZXI6OlhNTERvY3VtZW50UGFyc2VyKERvY3VtZW50KiBkb2N1bWVudCwgRnJhbWVWaWV3KiBmcmFt
ZVZpZXcpCiAgICAgLCBtX3JlcXVlc3RpbmdTY3JpcHQoZmFsc2UpCiAgICAgLCBtX2ZpbmlzaENh
bGxlZChmYWxzZSkKICAgICAsIG1fZXJyb3JDb3VudCgwKQotICAgICwgbV9sYXN0RXJyb3JMaW5l
KDApCi0gICAgLCBtX2xhc3RFcnJvckNvbHVtbigwKQorICAgICwgbV9sYXN0RXJyb3JQb3NpdGlv
bihUZXh0UG9zaXRpb24xOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fcGVuZGluZ1Nj
cmlwdCgwKQogICAgICwgbV9zY3JpcHRTdGFydFBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93
UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV9wYXJzaW5nRnJhZ21lbnQoZmFsc2UpCkBAIC0xMjks
OCArMTI4LDcgQEAgWE1MRG9jdW1lbnRQYXJzZXI6OlhNTERvY3VtZW50UGFyc2VyKERvY3VtZW50
RnJhZ21lbnQqIGZyYWdtZW50LCBFbGVtZW50KiBwYXJlbnQKICAgICAsIG1fcmVxdWVzdGluZ1Nj
cmlwdChmYWxzZSkKICAgICAsIG1fZmluaXNoQ2FsbGVkKGZhbHNlKQogICAgICwgbV9lcnJvckNv
dW50KDApCi0gICAgLCBtX2xhc3RFcnJvckxpbmUoMCkKLSAgICAsIG1fbGFzdEVycm9yQ29sdW1u
KDApCisgICAgLCBtX2xhc3RFcnJvclBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQ
b3NpdGlvbigpKQogICAgICwgbV9wZW5kaW5nU2NyaXB0KDApCiAgICAgLCBtX3NjcmlwdFN0YXJ0
UG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3Bh
cnNpbmdGcmFnbWVudCh0cnVlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93bWwvV01MRXJyb3JIYW5k
bGluZy5jcHAgYi9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcAppbmRleCBkYzBiOGRm
Li5hNDlhNzFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcAor
KysgYi9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcApAQCAtNDgsNyArNDgsNyBAQCB2
b2lkIHJlcG9ydFdNTEVycm9yKERvY3VtZW50KiBkb2MsIFdNTEVycm9yQ29kZSBlcnJvcikKICAg
ICAgICAgaWYgKCFwYXJzZXItPndlbGxGb3JtZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBwYXJzZXItPmhhbmRsZUVycm9yKFhNTERvY3VtZW50UGFyc2VyOjpmYXRhbCwgZXJy
b3JNZXNzYWdlLmxhdGluMSgpLmRhdGEoKSwgcGFyc2VyLT50ZXh0UG9zaXRpb24oKS5tX2xpbmUu
emVyb0Jhc2VkSW50KCksIHBhcnNlci0+dGV4dFBvc2l0aW9uKCkubV9jb2x1bW4uemVyb0Jhc2Vk
SW50KCkpOworICAgICAgICBwYXJzZXItPmhhbmRsZUVycm9yKFhNTERvY3VtZW50UGFyc2VyOjpm
YXRhbCwgZXJyb3JNZXNzYWdlLmxhdGluMSgpLmRhdGEoKSwgcGFyc2VyLT50ZXh0UG9zaXRpb25P
bmVCYXNlZCgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBGcmFtZSogZnJhbWUgPSBkb2MtPmZy
YW1lKCk7CiAgICAgICAgIGlmICghZnJhbWUpCg==
</data>
<flag name="review"
          id="68728"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="68729"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77785</attachid>
            <date>2011-01-02 17:16:05 -0800</date>
            <delta_ts>2011-01-02 23:52:42 -0800</delta_ts>
            <desc>Proposed Patch4</desc>
            <filename>wml_TextPosition4.patch</filename>
            <type>text/plain</type>
            <size>10111</size>
            <attacher name="Joone Hur">joone</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGFkNjUzODIuLjczYTJjMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTAxLTAzICBKb29uZSBIdXIgIDxq
b29uZUBrbGRwLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXTUwgUGFyc2VyIHNob3VsZCB0cmVhdCBsaW5lL2NvbHVtbiBudW1iZXIgaW4gYSBj
b25zaXN0ZW50IHdheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTE2MDEKKworICAgICAgICBBZGQgdGhlIGVxdWFsaXR5IG9wZXJhdG9ycyB0byBUZXh0
UG9zaXRpb24gY2xhc3MuCisKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0UG9zaXRpb24uaDoKKyAg
ICAgICAgKFdURjo6VGV4dFBvc2l0aW9uOjpvcGVyYXRvcj09KTogQWRkZWQuCisgICAgICAgIChX
VEY6OlRleHRQb3NpdGlvbjo6b3BlcmF0b3IhPSk6IEFkZGVkLgorICAgICAgICAoV1RGOjpaZXJv
QmFzZWROdW1iZXI6Om9wZXJhdG9yPT0pOiBBZGRlZC4KKyAgICAgICAgKFdURjo6WmVyb0Jhc2Vk
TnVtYmVyOjpvcGVyYXRvciE9KTogQWRkZWQuCisgICAgICAgIChXVEY6Ok9uZUJhc2VkTnVtYmVy
OjpvcGVyYXRvcj09KTogQWRkZWQuCisgICAgICAgIChXVEY6Ok9uZUJhc2VkTnVtYmVyOjpvcGVy
YXRvciE9KTogQWRkZWQuCisKIDIwMTEtMDEtMDIgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lA
d2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggR1RLKyBidWlsZCBhZnRlciByNzQ4NTUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvVGV4dFBvc2l0aW9uLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvVGV4dFBvc2l0aW9uLmgKaW5kZXggNjNkYzU5
NC4uNzhmOWJhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1Rl
eHRQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9UZXh0UG9z
aXRpb24uaApAQCAtNjYsNiArNjYsOSBAQCBwdWJsaWM6CiAgICAgfQogICAgIFRleHRQb3NpdGlv
bigpIHt9CiAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgVGV4dFBvc2l0aW9uJiBvdGhlcikg
eyByZXR1cm4gbV9saW5lID09IG90aGVyLm1fbGluZSAmJiBtX2NvbHVtbiA9PSBvdGhlci5tX2Nv
bHVtbjsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBUZXh0UG9zaXRpb24mIG90aGVyKSB7
IHJldHVybiBtX2xpbmUgIT0gb3RoZXIubV9saW5lICYmIG1fY29sdW1uICE9IG90aGVyLm1fY29s
dW1uOyB9CisKICAgICAvLyBBICdtaW5pbXVtJyB2YWx1ZSBvZiBwb3NpdGlvbiwgdXNlZCBhcyBh
IGRlZmF1bHQgdmFsdWUuCiAgICAgc3RhdGljIFRleHRQb3NpdGlvbjxOVU1CRVI+IG1pbmltdW1Q
b3NpdGlvbigpIHsgcmV0dXJuIFRleHRQb3NpdGlvbjxOVU1CRVI+KE5VTUJFUjo6YmFzZSgpLCBO
VU1CRVI6OmJhc2UoKSk7IH0KIApAQCAtODksNiArOTIsOSBAQCBwdWJsaWM6CiAKICAgICBPbmVC
YXNlZE51bWJlciBjb252ZXJ0VG9PbmVCYXNlZCgpIGNvbnN0OwogCisgICAgYm9vbCBvcGVyYXRv
cj09KFplcm9CYXNlZE51bWJlciBvdGhlcikgeyByZXR1cm4gbV92YWx1ZSA9PSBvdGhlci5tX3Zh
bHVlOyB9CisgICAgYm9vbCBvcGVyYXRvciE9KFplcm9CYXNlZE51bWJlciBvdGhlcikgeyByZXR1
cm4gISgoKnRoaXMpID09IG90aGVyKTsgfQorCiAgICAgc3RhdGljIFplcm9CYXNlZE51bWJlciBi
YXNlKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBaZXJvQmFzZWROdW1iZXIgYmVsb3dCYXNl
KCkgeyByZXR1cm4gLTE7IH0KIApAQCAtMTA3LDYgKzExMyw5IEBAIHB1YmxpYzoKICAgICBpbnQg
Y29udmVydEFzWmVyb0Jhc2VkSW50KCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZSAtIDE7IH0KICAg
ICBaZXJvQmFzZWROdW1iZXIgY29udmVydFRvWmVyb0Jhc2VkKCkgY29uc3QgeyByZXR1cm4gWmVy
b0Jhc2VkTnVtYmVyOjpmcm9tWmVyb0Jhc2VkSW50KG1fdmFsdWUgLSAxKTsgfQogCisgICAgYm9v
bCBvcGVyYXRvcj09KE9uZUJhc2VkTnVtYmVyIG90aGVyKSB7IHJldHVybiBtX3ZhbHVlID09IG90
aGVyLm1fdmFsdWU7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oT25lQmFzZWROdW1iZXIgb3RoZXIp
IHsgcmV0dXJuICEoKCp0aGlzKSA9PSBvdGhlcik7IH0KKwogICAgIHN0YXRpYyBPbmVCYXNlZE51
bWJlciBiYXNlKCkgeyByZXR1cm4gMTsgfQogICAgIHN0YXRpYyBPbmVCYXNlZE51bWJlciBiZWxv
d0Jhc2UoKSB7IHJldHVybiAwOyB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJkY2VhNy4uMmNkMDdmOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxMC0wMS0wMyAgSm9vbmUgSHVyICA8am9vbmVAa2xkcC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV01MIFBhcnNlciBzaG91bGQgdHJlYXQg
bGluZS9jb2x1bW4gbnVtYmVyIGluIGEgY29uc2lzdGVudCB3YXkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNjAxCisKKyAgICAgICAgWE1MIFBhcnNl
ciB0cmVhdHMgbGluZS9jb2x1bW4gbnVtYmVyIGFzIDEtYmFzZWQgdmFsdWVzLCBidXQgV01MIEVy
cm9ySGFuZGxlciB0cmVhdCB0aGVtIGFzIDAtYmFzZWQuCisgICAgICAgIFRoZXJlZm9yZSwgdGhp
cyBwYXRjaCBhbGxvd3MgV01MIEVycm9ySGFuZGxlciB0byB1c2UgMS1iYXNlZCB2YWx1ZXMuCisK
KyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
WE1MRG9jdW1lbnRQYXJzZXI6OmhhbmRsZUVycm9yKTogVHJlYXQgbGluZS9jb2x1bW4gbnVtYmVy
IGFzIDEgYmFzZWQgdmFsdWVzLgorICAgICAgICAqIGRvbS9YTUxEb2N1bWVudFBhcnNlci5oOiBN
YWtlIHRleHRQb3NpdGlvbk9uZUJhc2VkIHB1YmxpYyBhbmQgQWRkIFRleHRQb3NpdGlvbjEobV9s
YXN0RXJyb3JQb3NpdGlvbikgdG8ga2VlcCBlcnJvciBsaW5lL2NvbHVtbiBudW1iZXIuCisgICAg
ICAgICogZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIpOiBJbml0aWFsaXplIG1fbGFz
dEVycm9yUG9zaXRpb24uIAorICAgICAgICAqIGRvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpYTUxEb2N1bWVudFBhcnNlcik6
IEluaXRpYWxpemUgbV9sYXN0RXJyb3JQb3NpdGlvbi4gCisgICAgICAgICogd21sL1dNTEVycm9y
SGFuZGxpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVwb3J0V01MRXJyb3IpOiBVc2UgMSBi
YXNlZCB2YWx1ZSBpbnN0ZWFkIG9mIDAgYmFzZWQgdmFsdWUgdG8gcmVwb3J0IGVycm9yIGxpbmUv
Y29sdW1uIG51bWJlci4KKwogMjAxMS0wMS0wMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIFdpbkNFIGJ1aWxkIGZpeCBmb3Igcjc0
ODY4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvV2Vi
Q29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDI3YjBmZDQuLmU3NDI3OTMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9XZWJDb3Jl
L2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTE0OCwxOCArMTQ4LDIyIEBAIHZvaWQgWE1M
RG9jdW1lbnRQYXJzZXI6OmFwcGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHMpCiAKIHZvaWQg
WE1MRG9jdW1lbnRQYXJzZXI6OmhhbmRsZUVycm9yKEVycm9yVHlwZSB0eXBlLCBjb25zdCBjaGFy
KiBtLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlcikKIHsKLSAgICBpZiAodHlwZSA9
PSBmYXRhbCB8fCAobV9lcnJvckNvdW50IDwgbWF4RXJyb3JzICYmIG1fbGFzdEVycm9yTGluZSAh
PSBsaW5lTnVtYmVyICYmIG1fbGFzdEVycm9yQ29sdW1uICE9IGNvbHVtbk51bWJlcikpIHsKKyAg
ICBoYW5kbGVFcnJvcih0eXBlLCBtLCBUZXh0UG9zaXRpb24xKFdURjo6T25lQmFzZWROdW1iZXI6
OmZyb21PbmVCYXNlZEludChsaW5lTnVtYmVyKSwgV1RGOjpPbmVCYXNlZE51bWJlcjo6ZnJvbU9u
ZUJhc2VkSW50KGNvbHVtbk51bWJlcikpKTsKK30KKwordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6
aGFuZGxlRXJyb3IoRXJyb3JUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIG0sIFRleHRQb3NpdGlvbjEg
cG9zaXRpb24pCit7CisgICAgaWYgKHR5cGUgPT0gZmF0YWwgfHwgKG1fZXJyb3JDb3VudCA8IG1h
eEVycm9ycyAmJiBtX2xhc3RFcnJvclBvc2l0aW9uICE9IHBvc2l0aW9uKSkgewogICAgICAgICBz
d2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgIGNhc2Ugd2FybmluZzoKLSAgICAgICAgICAgICAg
ICBtX2Vycm9yTWVzc2FnZXMgKz0gbWFrZVN0cmluZygid2FybmluZyBvbiBsaW5lICIsIFN0cmlu
Zzo6bnVtYmVyKGxpbmVOdW1iZXIpLCAiIGF0IGNvbHVtbiAiLCBTdHJpbmc6Om51bWJlcihjb2x1
bW5OdW1iZXIpLCAiOiAiLCBtKTsKKyAgICAgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZXMgKz0g
bWFrZVN0cmluZygid2FybmluZyBvbiBsaW5lICIsIFN0cmluZzo6bnVtYmVyKHBvc2l0aW9uLm1f
bGluZS5vbmVCYXNlZEludCgpKSwgIiBhdCBjb2x1bW4gIiwgU3RyaW5nOjpudW1iZXIocG9zaXRp
b24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSksICI6ICIsIG0pOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSBmYXRhbDoKICAgICAgICAgICAgIGNhc2Ugbm9uRmF0YWw6
Ci0gICAgICAgICAgICAgICAgbV9lcnJvck1lc3NhZ2VzICs9IG1ha2VTdHJpbmcoImVycm9yIG9u
IGxpbmUgIiwgU3RyaW5nOjpudW1iZXIobGluZU51bWJlciksICIgYXQgY29sdW1uICIsIFN0cmlu
Zzo6bnVtYmVyKGNvbHVtbk51bWJlciksICI6ICIsIG0pOworICAgICAgICAgICAgICAgIG1fZXJy
b3JNZXNzYWdlcyArPSBtYWtlU3RyaW5nKCJlcnJvciBvbiBsaW5lICIsIFN0cmluZzo6bnVtYmVy
KHBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpKSwgIiBhdCBjb2x1bW4gIiwgU3RyaW5nOjpu
dW1iZXIocG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSksICI6ICIsIG0pOwogICAgICAg
ICB9CiAKLSAgICAgICAgbV9sYXN0RXJyb3JMaW5lID0gbGluZU51bWJlcjsKLSAgICAgICAgbV9s
YXN0RXJyb3JDb2x1bW4gPSBjb2x1bW5OdW1iZXI7CisgICAgICAgIG1fbGFzdEVycm9yUG9zaXRp
b24gPSBwb3NpdGlvbjsKICAgICAgICAgKyttX2Vycm9yQ291bnQ7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9kb20vWE1MRG9j
dW1lbnRQYXJzZXIuaAppbmRleCAxMTM3MGZhLi43NTMzYzViIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFy
c2VyLmgKQEAgLTg2LDYgKzg2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBF
eHBvc2VkIGZvciBjYWxsYmFja3M6CiAgICAgICAgIGVudW0gRXJyb3JUeXBlIHsgd2FybmluZywg
bm9uRmF0YWwsIGZhdGFsIH07CiAgICAgICAgIHZvaWQgaGFuZGxlRXJyb3IoRXJyb3JUeXBlLCBj
b25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlcik7Cisg
ICAgICAgIHZvaWQgaGFuZGxlRXJyb3IoRXJyb3JUeXBlLCBjb25zdCBjaGFyKiBtZXNzYWdlLCBU
ZXh0UG9zaXRpb24xKTsKIAogICAgICAgICB2b2lkIHNldElzWEhUTUxEb2N1bWVudChib29sIGlz
WEhUTUwpIHsgbV9pc1hIVE1MRG9jdW1lbnQgPSBpc1hIVE1MOyB9CiAgICAgICAgIGJvb2wgaXNY
SFRNTERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9pc1hIVE1MRG9jdW1lbnQ7IH0KQEAgLTEw
MSw3ICsxMDIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gV01MRXJyb3JI
YW5kbGluZyB1c2VzIHRoZXNlIGZ1bmN0aW9ucy4KICAgICAgICAgdmlydHVhbCBib29sIHdlbGxG
b3JtZWQoKSBjb25zdCB7IHJldHVybiAhbV9zYXdFcnJvcjsgfQorCiAgICAgICAgIFRleHRQb3Np
dGlvbjAgdGV4dFBvc2l0aW9uKCkgY29uc3Q7CisgICAgICAgIFRleHRQb3NpdGlvbjEgdGV4dFBv
c2l0aW9uT25lQmFzZWQoKSBjb25zdDsKIAogICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1hN
TFZlcnNpb24oY29uc3QgU3RyaW5nJik7CiAKQEAgLTEzMCwxMyArMTMzLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wgYXBwZW5kRnJhZ21lbnRTb3VyY2UoY29uc3QgU3Ry
aW5nJik7CiAKLQotICAgICAgICAvLyBUaGlzIG1ldGhvZCBpcyBpbnRyb2R1Y2VkIHRvIHRlbXBv
cmFyeSBsZWdhbGl6ZSBleGlzdGluZyBsaW5lL2NvbHVtbgotICAgICAgICAvLyBjb29yZGluYXRl
IGJ1ZzogaXQgaXMgYmVsaWV2ZWQgdGhhdCBudW1iZXJzIHRoYXQgb3JpZ2luYWxseSB3ZXJlIHpl
cm8tYmFzZWQKLSAgICAgICAgLy8gZXZlbnR1YWxseSBiZWNvbWVzIG9uZS1iYXNlZC4KLSAgICAg
ICAgLy8gRklYTUU6IEludmVzdGlnYXRlIGFuZCBnZXQgcmlkIG9mIHRoaXMgbWV0aG9kLgotICAg
ICAgICBUZXh0UG9zaXRpb24xIHRleHRQb3NpdGlvbk9uZUJhc2VkKCkgY29uc3Q7Ci0KICNpZiBV
U0UoUVhNTFNUUkVBTSkKIHByaXZhdGU6CiAgICAgICAgIHZvaWQgcGFyc2UoKTsKQEAgLTIxMCw4
ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV9maW5pc2hDYWxsZWQ7CiAKICAgICAg
ICAgaW50IG1fZXJyb3JDb3VudDsKLSAgICAgICAgaW50IG1fbGFzdEVycm9yTGluZTsKLSAgICAg
ICAgaW50IG1fbGFzdEVycm9yQ29sdW1uOworICAgICAgICBUZXh0UG9zaXRpb24xIG1fbGFzdEVy
cm9yUG9zaXRpb247CiAgICAgICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZXM7CiAKICAgICAgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX3BlbmRpbmdTY3JpcHQ7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvV2ViQ29y
ZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCAyM2Y5ODgzLi4wZjZiNGI0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCisr
KyBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTU1Nyw4ICs1
NTcsNyBAQCBYTUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnQqIGRv
Y3VtZW50LCBGcmFtZVZpZXcqIGZyYW1lVmlldykKICAgICAsIG1fcmVxdWVzdGluZ1NjcmlwdChm
YWxzZSkKICAgICAsIG1fZmluaXNoQ2FsbGVkKGZhbHNlKQogICAgICwgbV9lcnJvckNvdW50KDAp
Ci0gICAgLCBtX2xhc3RFcnJvckxpbmUoMCkKLSAgICAsIG1fbGFzdEVycm9yQ29sdW1uKDApCisg
ICAgLCBtX2xhc3RFcnJvclBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQb3NpdGlv
bigpKQogICAgICwgbV9wZW5kaW5nU2NyaXB0KDApCiAgICAgLCBtX3NjcmlwdFN0YXJ0UG9zaXRp
b24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3BhcnNpbmdG
cmFnbWVudChmYWxzZSkKQEAgLTU4NCw4ICs1ODMsNyBAQCBYTUxEb2N1bWVudFBhcnNlcjo6WE1M
RG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIHBhcmVu
dAogICAgICwgbV9yZXF1ZXN0aW5nU2NyaXB0KGZhbHNlKQogICAgICwgbV9maW5pc2hDYWxsZWQo
ZmFsc2UpCiAgICAgLCBtX2Vycm9yQ291bnQoMCkKLSAgICAsIG1fbGFzdEVycm9yTGluZSgwKQot
ICAgICwgbV9sYXN0RXJyb3JDb2x1bW4oMCkKKyAgICAsIG1fbGFzdEVycm9yUG9zaXRpb24oVGV4
dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3BlbmRpbmdTY3JpcHQo
MCkKICAgICAsIG1fc2NyaXB0U3RhcnRQb3NpdGlvbihUZXh0UG9zaXRpb24xOjpiZWxvd1Jhbmdl
UG9zaXRpb24oKSkKICAgICAsIG1fcGFyc2luZ0ZyYWdtZW50KHRydWUpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcCBiL1dlYkNvcmUvZG9tL1hNTERvY3Vt
ZW50UGFyc2VyUXQuY3BwCmluZGV4IGU5MDVlMzEuLmQwYmY4OGQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1hNTERvY3Vt
ZW50UGFyc2VyUXQuY3BwCkBAIC0xMDIsOCArMTAyLDcgQEAgWE1MRG9jdW1lbnRQYXJzZXI6OlhN
TERvY3VtZW50UGFyc2VyKERvY3VtZW50KiBkb2N1bWVudCwgRnJhbWVWaWV3KiBmcmFtZVZpZXcp
CiAgICAgLCBtX3JlcXVlc3RpbmdTY3JpcHQoZmFsc2UpCiAgICAgLCBtX2ZpbmlzaENhbGxlZChm
YWxzZSkKICAgICAsIG1fZXJyb3JDb3VudCgwKQotICAgICwgbV9sYXN0RXJyb3JMaW5lKDApCi0g
ICAgLCBtX2xhc3RFcnJvckNvbHVtbigwKQorICAgICwgbV9sYXN0RXJyb3JQb3NpdGlvbihUZXh0
UG9zaXRpb24xOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fcGVuZGluZ1NjcmlwdCgw
KQogICAgICwgbV9zY3JpcHRTdGFydFBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQ
b3NpdGlvbigpKQogICAgICwgbV9wYXJzaW5nRnJhZ21lbnQoZmFsc2UpCkBAIC0xMjksOCArMTI4
LDcgQEAgWE1MRG9jdW1lbnRQYXJzZXI6OlhNTERvY3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21l
bnQqIGZyYWdtZW50LCBFbGVtZW50KiBwYXJlbnQKICAgICAsIG1fcmVxdWVzdGluZ1NjcmlwdChm
YWxzZSkKICAgICAsIG1fZmluaXNoQ2FsbGVkKGZhbHNlKQogICAgICwgbV9lcnJvckNvdW50KDAp
Ci0gICAgLCBtX2xhc3RFcnJvckxpbmUoMCkKLSAgICAsIG1fbGFzdEVycm9yQ29sdW1uKDApCisg
ICAgLCBtX2xhc3RFcnJvclBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQb3NpdGlv
bigpKQogICAgICwgbV9wZW5kaW5nU2NyaXB0KDApCiAgICAgLCBtX3NjcmlwdFN0YXJ0UG9zaXRp
b24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3BhcnNpbmdG
cmFnbWVudCh0cnVlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93bWwvV01MRXJyb3JIYW5kbGluZy5j
cHAgYi9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcAppbmRleCBkYzBiOGRmLi5hNDlh
NzFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcAorKysgYi9X
ZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcApAQCAtNDgsNyArNDgsNyBAQCB2b2lkIHJl
cG9ydFdNTEVycm9yKERvY3VtZW50KiBkb2MsIFdNTEVycm9yQ29kZSBlcnJvcikKICAgICAgICAg
aWYgKCFwYXJzZXItPndlbGxGb3JtZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBwYXJzZXItPmhhbmRsZUVycm9yKFhNTERvY3VtZW50UGFyc2VyOjpmYXRhbCwgZXJyb3JNZXNz
YWdlLmxhdGluMSgpLmRhdGEoKSwgcGFyc2VyLT50ZXh0UG9zaXRpb24oKS5tX2xpbmUuemVyb0Jh
c2VkSW50KCksIHBhcnNlci0+dGV4dFBvc2l0aW9uKCkubV9jb2x1bW4uemVyb0Jhc2VkSW50KCkp
OworICAgICAgICBwYXJzZXItPmhhbmRsZUVycm9yKFhNTERvY3VtZW50UGFyc2VyOjpmYXRhbCwg
ZXJyb3JNZXNzYWdlLmxhdGluMSgpLmRhdGEoKSwgcGFyc2VyLT50ZXh0UG9zaXRpb25PbmVCYXNl
ZCgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBGcmFtZSogZnJhbWUgPSBkb2MtPmZyYW1lKCk7
CiAgICAgICAgIGlmICghZnJhbWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77792</attachid>
            <date>2011-01-02 23:52:42 -0800</date>
            <delta_ts>2011-01-06 07:40:01 -0800</delta_ts>
            <desc>Proposed Patch5</desc>
            <filename>wml_TextPosition5.patch</filename>
            <type>text/plain</type>
            <size>10145</size>
            <attacher name="Joone Hur">joone</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGFkNjUzODIuLjczYTJjMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTAxLTAzICBKb29uZSBIdXIgIDxq
b29uZUBrbGRwLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXTUwgUGFyc2VyIHNob3VsZCB0cmVhdCBsaW5lL2NvbHVtbiBudW1iZXIgaW4gYSBj
b25zaXN0ZW50IHdheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTE2MDEKKworICAgICAgICBBZGQgdGhlIGVxdWFsaXR5IG9wZXJhdG9ycyB0byBUZXh0
UG9zaXRpb24gY2xhc3MuCisKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0UG9zaXRpb24uaDoKKyAg
ICAgICAgKFdURjo6VGV4dFBvc2l0aW9uOjpvcGVyYXRvcj09KTogQWRkZWQuCisgICAgICAgIChX
VEY6OlRleHRQb3NpdGlvbjo6b3BlcmF0b3IhPSk6IEFkZGVkLgorICAgICAgICAoV1RGOjpaZXJv
QmFzZWROdW1iZXI6Om9wZXJhdG9yPT0pOiBBZGRlZC4KKyAgICAgICAgKFdURjo6WmVyb0Jhc2Vk
TnVtYmVyOjpvcGVyYXRvciE9KTogQWRkZWQuCisgICAgICAgIChXVEY6Ok9uZUJhc2VkTnVtYmVy
OjpvcGVyYXRvcj09KTogQWRkZWQuCisgICAgICAgIChXVEY6Ok9uZUJhc2VkTnVtYmVyOjpvcGVy
YXRvciE9KTogQWRkZWQuCisKIDIwMTEtMDEtMDIgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lA
d2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggR1RLKyBidWlsZCBhZnRlciByNzQ4NTUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvVGV4dFBvc2l0aW9uLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvVGV4dFBvc2l0aW9uLmgKaW5kZXggNjNkYzU5
NC4uZTQ3YTNiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1Rl
eHRQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9UZXh0UG9z
aXRpb24uaApAQCAtNjYsNiArNjYsOSBAQCBwdWJsaWM6CiAgICAgfQogICAgIFRleHRQb3NpdGlv
bigpIHt9CiAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgVGV4dFBvc2l0aW9uJiBvdGhlcikg
eyByZXR1cm4gbV9saW5lID09IG90aGVyLm1fbGluZSAmJiBtX2NvbHVtbiA9PSBvdGhlci5tX2Nv
bHVtbjsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBUZXh0UG9zaXRpb24mIG90aGVyKSB7
IHJldHVybiAhKCgqdGhpcykgPT0gb3RoZXIpOyB9CisKICAgICAvLyBBICdtaW5pbXVtJyB2YWx1
ZSBvZiBwb3NpdGlvbiwgdXNlZCBhcyBhIGRlZmF1bHQgdmFsdWUuCiAgICAgc3RhdGljIFRleHRQ
b3NpdGlvbjxOVU1CRVI+IG1pbmltdW1Qb3NpdGlvbigpIHsgcmV0dXJuIFRleHRQb3NpdGlvbjxO
VU1CRVI+KE5VTUJFUjo6YmFzZSgpLCBOVU1CRVI6OmJhc2UoKSk7IH0KIApAQCAtODksNiArOTIs
OSBAQCBwdWJsaWM6CiAKICAgICBPbmVCYXNlZE51bWJlciBjb252ZXJ0VG9PbmVCYXNlZCgpIGNv
bnN0OwogCisgICAgYm9vbCBvcGVyYXRvcj09KFplcm9CYXNlZE51bWJlciBvdGhlcikgeyByZXR1
cm4gbV92YWx1ZSA9PSBvdGhlci5tX3ZhbHVlOyB9CisgICAgYm9vbCBvcGVyYXRvciE9KFplcm9C
YXNlZE51bWJlciBvdGhlcikgeyByZXR1cm4gISgoKnRoaXMpID09IG90aGVyKTsgfQorCiAgICAg
c3RhdGljIFplcm9CYXNlZE51bWJlciBiYXNlKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBa
ZXJvQmFzZWROdW1iZXIgYmVsb3dCYXNlKCkgeyByZXR1cm4gLTE7IH0KIApAQCAtMTA3LDYgKzEx
Myw5IEBAIHB1YmxpYzoKICAgICBpbnQgY29udmVydEFzWmVyb0Jhc2VkSW50KCkgY29uc3QgeyBy
ZXR1cm4gbV92YWx1ZSAtIDE7IH0KICAgICBaZXJvQmFzZWROdW1iZXIgY29udmVydFRvWmVyb0Jh
c2VkKCkgY29uc3QgeyByZXR1cm4gWmVyb0Jhc2VkTnVtYmVyOjpmcm9tWmVyb0Jhc2VkSW50KG1f
dmFsdWUgLSAxKTsgfQogCisgICAgYm9vbCBvcGVyYXRvcj09KE9uZUJhc2VkTnVtYmVyIG90aGVy
KSB7IHJldHVybiBtX3ZhbHVlID09IG90aGVyLm1fdmFsdWU7IH0KKyAgICBib29sIG9wZXJhdG9y
IT0oT25lQmFzZWROdW1iZXIgb3RoZXIpIHsgcmV0dXJuICEoKCp0aGlzKSA9PSBvdGhlcik7IH0K
KwogICAgIHN0YXRpYyBPbmVCYXNlZE51bWJlciBiYXNlKCkgeyByZXR1cm4gMTsgfQogICAgIHN0
YXRpYyBPbmVCYXNlZE51bWJlciBiZWxvd0Jhc2UoKSB7IHJldHVybiAwOyB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJkY2VhNy4u
MmNkMDdmOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wMS0wMyAgSm9vbmUgSHVyICA8am9vbmVAa2xk
cC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V01MIFBhcnNlciBzaG91bGQgdHJlYXQgbGluZS9jb2x1bW4gbnVtYmVyIGluIGEgY29uc2lzdGVu
dCB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUx
NjAxCisKKyAgICAgICAgWE1MIFBhcnNlciB0cmVhdHMgbGluZS9jb2x1bW4gbnVtYmVyIGFzIDEt
YmFzZWQgdmFsdWVzLCBidXQgV01MIEVycm9ySGFuZGxlciB0cmVhdCB0aGVtIGFzIDAtYmFzZWQu
CisgICAgICAgIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBhbGxvd3MgV01MIEVycm9ySGFuZGxlciB0
byB1c2UgMS1iYXNlZCB2YWx1ZXMuCisKKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmhhbmRsZUVycm9yKTog
VHJlYXQgbGluZS9jb2x1bW4gbnVtYmVyIGFzIDEgYmFzZWQgdmFsdWVzLgorICAgICAgICAqIGRv
bS9YTUxEb2N1bWVudFBhcnNlci5oOiBNYWtlIHRleHRQb3NpdGlvbk9uZUJhc2VkIHB1YmxpYyBh
bmQgQWRkIFRleHRQb3NpdGlvbjEobV9sYXN0RXJyb3JQb3NpdGlvbikgdG8ga2VlcCBlcnJvciBs
aW5lL2NvbHVtbiBudW1iZXIuCisgICAgICAgICogZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1s
Mi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQ
YXJzZXIpOiBJbml0aWFsaXplIG1fbGFzdEVycm9yUG9zaXRpb24uIAorICAgICAgICAqIGRvbS9Y
TUxEb2N1bWVudFBhcnNlclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFy
c2VyOjpYTUxEb2N1bWVudFBhcnNlcik6IEluaXRpYWxpemUgbV9sYXN0RXJyb3JQb3NpdGlvbi4g
CisgICAgICAgICogd21sL1dNTEVycm9ySGFuZGxpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cmVwb3J0V01MRXJyb3IpOiBVc2UgMSBiYXNlZCB2YWx1ZSBpbnN0ZWFkIG9mIDAgYmFzZWQgdmFs
dWUgdG8gcmVwb3J0IGVycm9yIGxpbmUvY29sdW1uIG51bWJlci4KKwogMjAxMS0wMS0wMiAgUGF0
cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
IFdpbkNFIGJ1aWxkIGZpeCBmb3Igcjc0ODY4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1M
RG9jdW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmlu
ZGV4IDI3YjBmZDQuLjY4YzhkZDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50
UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTE0
OCwxOCArMTQ4LDIyIEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZChjb25zdCBTZWdt
ZW50ZWRTdHJpbmcmIHMpCiAKIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmhhbmRsZUVycm9yKEVy
cm9yVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBtLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51
bWJlcikKIHsKLSAgICBpZiAodHlwZSA9PSBmYXRhbCB8fCAobV9lcnJvckNvdW50IDwgbWF4RXJy
b3JzICYmIG1fbGFzdEVycm9yTGluZSAhPSBsaW5lTnVtYmVyICYmIG1fbGFzdEVycm9yQ29sdW1u
ICE9IGNvbHVtbk51bWJlcikpIHsKKyAgICBoYW5kbGVFcnJvcih0eXBlLCBtLCBUZXh0UG9zaXRp
b24xKFdURjo6T25lQmFzZWROdW1iZXI6OmZyb21PbmVCYXNlZEludChsaW5lTnVtYmVyKSwgV1RG
OjpPbmVCYXNlZE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KGNvbHVtbk51bWJlcikpKTsKK30KKwor
dm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6aGFuZGxlRXJyb3IoRXJyb3JUeXBlIHR5cGUsIGNvbnN0
IGNoYXIqIG0sIFRleHRQb3NpdGlvbjEgcG9zaXRpb24pCit7CisgICAgaWYgKHR5cGUgPT0gZmF0
YWwgfHwgKG1fZXJyb3JDb3VudCA8IG1heEVycm9ycyAmJiBtX2xhc3RFcnJvclBvc2l0aW9uLm1f
bGluZSAhPSBwb3NpdGlvbi5tX2xpbmUgJiYgbV9sYXN0RXJyb3JQb3NpdGlvbi5tX2NvbHVtbiAh
PSBwb3NpdGlvbi5tX2NvbHVtbikpIHsKICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAg
ICAgICBjYXNlIHdhcm5pbmc6Ci0gICAgICAgICAgICAgICAgbV9lcnJvck1lc3NhZ2VzICs9IG1h
a2VTdHJpbmcoIndhcm5pbmcgb24gbGluZSAiLCBTdHJpbmc6Om51bWJlcihsaW5lTnVtYmVyKSwg
IiBhdCBjb2x1bW4gIiwgU3RyaW5nOjpudW1iZXIoY29sdW1uTnVtYmVyKSwgIjogIiwgbSk7Cisg
ICAgICAgICAgICAgICAgbV9lcnJvck1lc3NhZ2VzICs9IG1ha2VTdHJpbmcoIndhcm5pbmcgb24g
bGluZSAiLCBTdHJpbmc6Om51bWJlcihwb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSksICIg
YXQgY29sdW1uICIsIFN0cmluZzo6bnVtYmVyKHBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50
KCkpLCAiOiAiLCBtKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug
ZmF0YWw6CiAgICAgICAgICAgICBjYXNlIG5vbkZhdGFsOgotICAgICAgICAgICAgICAgIG1fZXJy
b3JNZXNzYWdlcyArPSBtYWtlU3RyaW5nKCJlcnJvciBvbiBsaW5lICIsIFN0cmluZzo6bnVtYmVy
KGxpbmVOdW1iZXIpLCAiIGF0IGNvbHVtbiAiLCBTdHJpbmc6Om51bWJlcihjb2x1bW5OdW1iZXIp
LCAiOiAiLCBtKTsKKyAgICAgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZXMgKz0gbWFrZVN0cmlu
ZygiZXJyb3Igb24gbGluZSAiLCBTdHJpbmc6Om51bWJlcihwb3NpdGlvbi5tX2xpbmUub25lQmFz
ZWRJbnQoKSksICIgYXQgY29sdW1uICIsIFN0cmluZzo6bnVtYmVyKHBvc2l0aW9uLm1fY29sdW1u
Lm9uZUJhc2VkSW50KCkpLCAiOiAiLCBtKTsKICAgICAgICAgfQogCi0gICAgICAgIG1fbGFzdEVy
cm9yTGluZSA9IGxpbmVOdW1iZXI7Ci0gICAgICAgIG1fbGFzdEVycm9yQ29sdW1uID0gY29sdW1u
TnVtYmVyOworICAgICAgICBtX2xhc3RFcnJvclBvc2l0aW9uID0gcG9zaXRpb247CiAgICAgICAg
ICsrbV9lcnJvckNvdW50OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MRG9j
dW1lbnRQYXJzZXIuaCBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmgKaW5kZXggMTEz
NzBmYS4uNzUzM2M1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIu
aAorKysgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCkBAIC04Niw2ICs4Niw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gRXhwb3NlZCBmb3IgY2FsbGJhY2tzOgog
ICAgICAgICBlbnVtIEVycm9yVHlwZSB7IHdhcm5pbmcsIG5vbkZhdGFsLCBmYXRhbCB9OwogICAg
ICAgICB2b2lkIGhhbmRsZUVycm9yKEVycm9yVHlwZSwgY29uc3QgY2hhciogbWVzc2FnZSwgaW50
IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIpOworICAgICAgICB2b2lkIGhhbmRsZUVycm9y
KEVycm9yVHlwZSwgY29uc3QgY2hhciogbWVzc2FnZSwgVGV4dFBvc2l0aW9uMSk7CiAKICAgICAg
ICAgdm9pZCBzZXRJc1hIVE1MRG9jdW1lbnQoYm9vbCBpc1hIVE1MKSB7IG1faXNYSFRNTERvY3Vt
ZW50ID0gaXNYSFRNTDsgfQogICAgICAgICBib29sIGlzWEhUTUxEb2N1bWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1faXNYSFRNTERvY3VtZW50OyB9CkBAIC0xMDEsNyArMTAyLDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIC8vIFdNTEVycm9ySGFuZGxpbmcgdXNlcyB0aGVzZSBmdW5j
dGlvbnMuCiAgICAgICAgIHZpcnR1YWwgYm9vbCB3ZWxsRm9ybWVkKCkgY29uc3QgeyByZXR1cm4g
IW1fc2F3RXJyb3I7IH0KKwogICAgICAgICBUZXh0UG9zaXRpb24wIHRleHRQb3NpdGlvbigpIGNv
bnN0OworICAgICAgICBUZXh0UG9zaXRpb24xIHRleHRQb3NpdGlvbk9uZUJhc2VkKCkgY29uc3Q7
CiAKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNYTUxWZXJzaW9uKGNvbnN0IFN0cmluZyYp
OwogCkBAIC0xMzAsMTMgKzEzMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBi
b29sIGFwcGVuZEZyYWdtZW50U291cmNlKGNvbnN0IFN0cmluZyYpOwogCi0KLSAgICAgICAgLy8g
VGhpcyBtZXRob2QgaXMgaW50cm9kdWNlZCB0byB0ZW1wb3JhcnkgbGVnYWxpemUgZXhpc3Rpbmcg
bGluZS9jb2x1bW4KLSAgICAgICAgLy8gY29vcmRpbmF0ZSBidWc6IGl0IGlzIGJlbGlldmVkIHRo
YXQgbnVtYmVycyB0aGF0IG9yaWdpbmFsbHkgd2VyZSB6ZXJvLWJhc2VkCi0gICAgICAgIC8vIGV2
ZW50dWFsbHkgYmVjb21lcyBvbmUtYmFzZWQuCi0gICAgICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0
ZSBhbmQgZ2V0IHJpZCBvZiB0aGlzIG1ldGhvZC4KLSAgICAgICAgVGV4dFBvc2l0aW9uMSB0ZXh0
UG9zaXRpb25PbmVCYXNlZCgpIGNvbnN0OwotCiAjaWYgVVNFKFFYTUxTVFJFQU0pCiBwcml2YXRl
OgogICAgICAgICB2b2lkIHBhcnNlKCk7CkBAIC0yMTAsOCArMjA2LDcgQEAgcHVibGljOgogICAg
ICAgICBib29sIG1fZmluaXNoQ2FsbGVkOwogCiAgICAgICAgIGludCBtX2Vycm9yQ291bnQ7Ci0g
ICAgICAgIGludCBtX2xhc3RFcnJvckxpbmU7Ci0gICAgICAgIGludCBtX2xhc3RFcnJvckNvbHVt
bjsKKyAgICAgICAgVGV4dFBvc2l0aW9uMSBtX2xhc3RFcnJvclBvc2l0aW9uOwogICAgICAgICBT
dHJpbmcgbV9lcnJvck1lc3NhZ2VzOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFNjcmlwdD4gbV9wZW5kaW5nU2NyaXB0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1M
RG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2Vy
TGlieG1sMi5jcHAKaW5kZXggMjNmOTg4My4uMGY2YjRiNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9XZWJDb3JlL2RvbS9YTUxEb2N1
bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC01NTcsOCArNTU3LDcgQEAgWE1MRG9jdW1lbnRQYXJz
ZXI6OlhNTERvY3VtZW50UGFyc2VyKERvY3VtZW50KiBkb2N1bWVudCwgRnJhbWVWaWV3KiBmcmFt
ZVZpZXcpCiAgICAgLCBtX3JlcXVlc3RpbmdTY3JpcHQoZmFsc2UpCiAgICAgLCBtX2ZpbmlzaENh
bGxlZChmYWxzZSkKICAgICAsIG1fZXJyb3JDb3VudCgwKQotICAgICwgbV9sYXN0RXJyb3JMaW5l
KDApCi0gICAgLCBtX2xhc3RFcnJvckNvbHVtbigwKQorICAgICwgbV9sYXN0RXJyb3JQb3NpdGlv
bihUZXh0UG9zaXRpb24xOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fcGVuZGluZ1Nj
cmlwdCgwKQogICAgICwgbV9zY3JpcHRTdGFydFBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93
UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV9wYXJzaW5nRnJhZ21lbnQoZmFsc2UpCkBAIC01ODQs
OCArNTgzLDcgQEAgWE1MRG9jdW1lbnRQYXJzZXI6OlhNTERvY3VtZW50UGFyc2VyKERvY3VtZW50
RnJhZ21lbnQqIGZyYWdtZW50LCBFbGVtZW50KiBwYXJlbnQKICAgICAsIG1fcmVxdWVzdGluZ1Nj
cmlwdChmYWxzZSkKICAgICAsIG1fZmluaXNoQ2FsbGVkKGZhbHNlKQogICAgICwgbV9lcnJvckNv
dW50KDApCi0gICAgLCBtX2xhc3RFcnJvckxpbmUoMCkKLSAgICAsIG1fbGFzdEVycm9yQ29sdW1u
KDApCisgICAgLCBtX2xhc3RFcnJvclBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQ
b3NpdGlvbigpKQogICAgICwgbV9wZW5kaW5nU2NyaXB0KDApCiAgICAgLCBtX3NjcmlwdFN0YXJ0
UG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3Bh
cnNpbmdGcmFnbWVudCh0cnVlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQ
YXJzZXJRdC5jcHAgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcAppbmRleCBl
OTA1ZTMxLi5kMGJmODhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNl
clF0LmNwcAorKysgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcApAQCAtMTAy
LDggKzEwMiw3IEBAIFhNTERvY3VtZW50UGFyc2VyOjpYTUxEb2N1bWVudFBhcnNlcihEb2N1bWVu
dCogZG9jdW1lbnQsIEZyYW1lVmlldyogZnJhbWVWaWV3KQogICAgICwgbV9yZXF1ZXN0aW5nU2Ny
aXB0KGZhbHNlKQogICAgICwgbV9maW5pc2hDYWxsZWQoZmFsc2UpCiAgICAgLCBtX2Vycm9yQ291
bnQoMCkKLSAgICAsIG1fbGFzdEVycm9yTGluZSgwKQotICAgICwgbV9sYXN0RXJyb3JDb2x1bW4o
MCkKKyAgICAsIG1fbGFzdEVycm9yUG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBv
c2l0aW9uKCkpCiAgICAgLCBtX3BlbmRpbmdTY3JpcHQoMCkKICAgICAsIG1fc2NyaXB0U3RhcnRQ
b3NpdGlvbihUZXh0UG9zaXRpb24xOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fcGFy
c2luZ0ZyYWdtZW50KGZhbHNlKQpAQCAtMTI5LDggKzEyOCw3IEBAIFhNTERvY3VtZW50UGFyc2Vy
OjpYTUxEb2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRWxlbWVudCog
cGFyZW50CiAgICAgLCBtX3JlcXVlc3RpbmdTY3JpcHQoZmFsc2UpCiAgICAgLCBtX2ZpbmlzaENh
bGxlZChmYWxzZSkKICAgICAsIG1fZXJyb3JDb3VudCgwKQotICAgICwgbV9sYXN0RXJyb3JMaW5l
KDApCi0gICAgLCBtX2xhc3RFcnJvckNvbHVtbigwKQorICAgICwgbV9sYXN0RXJyb3JQb3NpdGlv
bihUZXh0UG9zaXRpb24xOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fcGVuZGluZ1Nj
cmlwdCgwKQogICAgICwgbV9zY3JpcHRTdGFydFBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93
UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV9wYXJzaW5nRnJhZ21lbnQodHJ1ZSkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvd21sL1dNTEVycm9ySGFuZGxpbmcuY3BwIGIvV2ViQ29yZS93bWwvV01MRXJy
b3JIYW5kbGluZy5jcHAKaW5kZXggZGMwYjhkZi4uYTQ5YTcxYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS93bWwvV01MRXJyb3JIYW5kbGluZy5jcHAKKysrIGIvV2ViQ29yZS93bWwvV01MRXJyb3JIYW5k
bGluZy5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCByZXBvcnRXTUxFcnJvcihEb2N1bWVudCog
ZG9jLCBXTUxFcnJvckNvZGUgZXJyb3IpCiAgICAgICAgIGlmICghcGFyc2VyLT53ZWxsRm9ybWVk
KCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgcGFyc2VyLT5oYW5kbGVFcnJvcihY
TUxEb2N1bWVudFBhcnNlcjo6ZmF0YWwsIGVycm9yTWVzc2FnZS5sYXRpbjEoKS5kYXRhKCksIHBh
cnNlci0+dGV4dFBvc2l0aW9uKCkubV9saW5lLnplcm9CYXNlZEludCgpLCBwYXJzZXItPnRleHRQ
b3NpdGlvbigpLm1fY29sdW1uLnplcm9CYXNlZEludCgpKTsKKyAgICAgICAgcGFyc2VyLT5oYW5k
bGVFcnJvcihYTUxEb2N1bWVudFBhcnNlcjo6ZmF0YWwsIGVycm9yTWVzc2FnZS5sYXRpbjEoKS5k
YXRhKCksIHBhcnNlci0+dGV4dFBvc2l0aW9uT25lQmFzZWQoKSk7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgRnJhbWUqIGZyYW1lID0gZG9jLT5mcmFtZSgpOwogICAgICAgICBpZiAoIWZyYW1lKQo=
</data>
<flag name="review"
          id="68978"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="68979"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78119</attachid>
            <date>2011-01-06 07:40:01 -0800</date>
            <delta_ts>2011-01-06 12:53:37 -0800</delta_ts>
            <desc>Proposed Patch6</desc>
            <filename>wml_TextPosition6.patch</filename>
            <type>text/plain</type>
            <size>10624</size>
            <attacher name="Joone Hur">joone</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdiMjUwYzMuLjg3MjE0ZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTAxLTA2ICBKb29uZSBIdXIgIDxq
b29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdNTCBQYXJzZXIgc2hvdWxkIHRyZWF0IGxpbmUvY29sdW1uIG51
bWJlciBpbiBhIGNvbnNpc3RlbnQgd2F5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MTYwMQorCisgICAgICAgIEFkZCB0aGUgZXF1YWxpdHkgb3BlcmF0
b3JzIHRvIFRleHRQb3NpdGlvbiBjbGFzcy4KKworICAgICAgICAqIHd0Zi90ZXh0L1RleHRQb3Np
dGlvbi5oOgorICAgICAgICAoV1RGOjpUZXh0UG9zaXRpb246Om9wZXJhdG9yPT0pOiBBZGRlZC4K
KyAgICAgICAgKFdURjo6VGV4dFBvc2l0aW9uOjpvcGVyYXRvciE9KTogQWRkZWQuCisgICAgICAg
IChXVEY6OlRleHRQb3NpdGlvbjo6YmVsb3dSYW5nZVBvc2l0aW9uKTogVXNlIGJlbG93QmFzZSgp
IGluc3RlYWQgb2YgYmFzZSgpLgorICAgICAgICAoV1RGOjpaZXJvQmFzZWROdW1iZXI6Om9wZXJh
dG9yPT0pOiBBZGRlZC4KKyAgICAgICAgKFdURjo6WmVyb0Jhc2VkTnVtYmVyOjpvcGVyYXRvciE9
KTogQWRkZWQuCisgICAgICAgIChXVEY6Ok9uZUJhc2VkTnVtYmVyOjpvcGVyYXRvcj09KTogQWRk
ZWQuCisgICAgICAgIChXVEY6Ok9uZUJhc2VkTnVtYmVyOjpvcGVyYXRvciE9KTogQWRkZWQuCisK
IDIwMTEtMDEtMDUgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXaW5kb3dzIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvdGV4dC9UZXh0UG9zaXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4
dC9UZXh0UG9zaXRpb24uaAppbmRleCA2M2RjNTk0Li45ZjQyNmVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvVGV4dFBvc2l0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1RleHRQb3NpdGlvbi5oCkBAIC02NiwxMSArNjYsMTQgQEAg
cHVibGljOgogICAgIH0KICAgICBUZXh0UG9zaXRpb24oKSB7fQogCisgICAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFRleHRQb3NpdGlvbiYgb3RoZXIpIHsgcmV0dXJuIG1fbGluZSA9PSBvdGhlci5t
X2xpbmUgJiYgbV9jb2x1bW4gPT0gb3RoZXIubV9jb2x1bW47IH0KKyAgICBib29sIG9wZXJhdG9y
IT0oY29uc3QgVGV4dFBvc2l0aW9uJiBvdGhlcikgeyByZXR1cm4gISgoKnRoaXMpID09IG90aGVy
KTsgfQorCiAgICAgLy8gQSAnbWluaW11bScgdmFsdWUgb2YgcG9zaXRpb24sIHVzZWQgYXMgYSBk
ZWZhdWx0IHZhbHVlLgogICAgIHN0YXRpYyBUZXh0UG9zaXRpb248TlVNQkVSPiBtaW5pbXVtUG9z
aXRpb24oKSB7IHJldHVybiBUZXh0UG9zaXRpb248TlVNQkVSPihOVU1CRVI6OmJhc2UoKSwgTlVN
QkVSOjpiYXNlKCkpOyB9CiAKICAgICAvLyBBIHZhbHVlIHdpdGggbGluZSB2YWx1ZSBsZXNzIHRo
YW4gYSBtaW5pbXVtOyB1c2VkIGFzIGFuIGltcG9zc2libGUgcG9zaXRpb24uCi0gICAgc3RhdGlj
IFRleHRQb3NpdGlvbjxOVU1CRVI+IGJlbG93UmFuZ2VQb3NpdGlvbigpIHsgcmV0dXJuIFRleHRQ
b3NpdGlvbjxOVU1CRVI+KE5VTUJFUjo6YmVsb3dCYXNlKCksIE5VTUJFUjo6YmFzZSgpKTsgfQor
ICAgIHN0YXRpYyBUZXh0UG9zaXRpb248TlVNQkVSPiBiZWxvd1JhbmdlUG9zaXRpb24oKSB7IHJl
dHVybiBUZXh0UG9zaXRpb248TlVNQkVSPihOVU1CRVI6OmJlbG93QmFzZSgpLCBOVU1CRVI6OmJl
bG93QmFzZSgpKTsgfQogCiAgICAgTlVNQkVSIG1fbGluZTsKICAgICBOVU1CRVIgbV9jb2x1bW47
CkBAIC04OSw2ICs5Miw5IEBAIHB1YmxpYzoKIAogICAgIE9uZUJhc2VkTnVtYmVyIGNvbnZlcnRU
b09uZUJhc2VkKCkgY29uc3Q7CiAKKyAgICBib29sIG9wZXJhdG9yPT0oWmVyb0Jhc2VkTnVtYmVy
IG90aGVyKSB7IHJldHVybiBtX3ZhbHVlID09IG90aGVyLm1fdmFsdWU7IH0KKyAgICBib29sIG9w
ZXJhdG9yIT0oWmVyb0Jhc2VkTnVtYmVyIG90aGVyKSB7IHJldHVybiAhKCgqdGhpcykgPT0gb3Ro
ZXIpOyB9CisKICAgICBzdGF0aWMgWmVyb0Jhc2VkTnVtYmVyIGJhc2UoKSB7IHJldHVybiAwOyB9
CiAgICAgc3RhdGljIFplcm9CYXNlZE51bWJlciBiZWxvd0Jhc2UoKSB7IHJldHVybiAtMTsgfQog
CkBAIC0xMDcsNiArMTEzLDkgQEAgcHVibGljOgogICAgIGludCBjb252ZXJ0QXNaZXJvQmFzZWRJ
bnQoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlIC0gMTsgfQogICAgIFplcm9CYXNlZE51bWJlciBj
b252ZXJ0VG9aZXJvQmFzZWQoKSBjb25zdCB7IHJldHVybiBaZXJvQmFzZWROdW1iZXI6OmZyb21a
ZXJvQmFzZWRJbnQobV92YWx1ZSAtIDEpOyB9CiAKKyAgICBib29sIG9wZXJhdG9yPT0oT25lQmFz
ZWROdW1iZXIgb3RoZXIpIHsgcmV0dXJuIG1fdmFsdWUgPT0gb3RoZXIubV92YWx1ZTsgfQorICAg
IGJvb2wgb3BlcmF0b3IhPShPbmVCYXNlZE51bWJlciBvdGhlcikgeyByZXR1cm4gISgoKnRoaXMp
ID09IG90aGVyKTsgfQorCiAgICAgc3RhdGljIE9uZUJhc2VkTnVtYmVyIGJhc2UoKSB7IHJldHVy
biAxOyB9CiAgICAgc3RhdGljIE9uZUJhc2VkTnVtYmVyIGJlbG93QmFzZSgpIHsgcmV0dXJuIDA7
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA1ZGJlNzJkLi5hN2I4ZGZlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTAxLTA2ICBKb29uZSBI
dXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdNTCBQYXJzZXIgc2hvdWxkIHRyZWF0IGxpbmUvY29s
dW1uIG51bWJlciBpbiBhIGNvbnNpc3RlbnQgd2F5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTYwMQorCisgICAgICAgIFhNTCBQYXJzZXIgdHJlYXRz
IGxpbmUvY29sdW1uIG51bWJlciBhcyAxLWJhc2VkIHZhbHVlcywgYnV0IFdNTCBFcnJvckhhbmRs
ZXIgdHJlYXQgdGhlbSBhcyAwLWJhc2VkLgorICAgICAgICBUaGVyZWZvcmUsIHRoaXMgcGF0Y2gg
YWxsb3dzIFdNTCBFcnJvckhhbmRsZXIgdG8gdXNlIDEtYmFzZWQgdmFsdWVzLgorCisgICAgICAg
ICogZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3Vt
ZW50UGFyc2VyOjpoYW5kbGVFcnJvcik6IFRyZWF0IGxpbmUvY29sdW1uIG51bWJlciBhcyAxIGJh
c2VkIHZhbHVlcy4KKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXIuaDogTWFrZSB0ZXh0
UG9zaXRpb25PbmVCYXNlZCBwdWJsaWMgYW5kIEFkZCBUZXh0UG9zaXRpb24xKG1fbGFzdEVycm9y
UG9zaXRpb24pIHRvIGtlZXAgZXJyb3IgbGluZS9jb2x1bW4gbnVtYmVyLgorICAgICAgICAqIGRv
bS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9j
dW1lbnRQYXJzZXI6OlhNTERvY3VtZW50UGFyc2VyKTogSW5pdGlhbGl6ZSBtX2xhc3RFcnJvclBv
c2l0aW9uLiAKKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIpOiBJbml0aWFs
aXplIG1fbGFzdEVycm9yUG9zaXRpb24uIAorICAgICAgICAqIHdtbC9XTUxFcnJvckhhbmRsaW5n
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydFdNTEVycm9yKTogVXNlIDEgYmFzZWQgdmFs
dWUgaW5zdGVhZCBvZiAwIGJhc2VkIHZhbHVlIHRvIHJlcG9ydCBlcnJvciBsaW5lL2NvbHVtbiBu
dW1iZXIuCisKIDIwMTEtMDEtMDYgIEhlbGRlciBDb3JyZWlhICA8aGVsZGVyQHNlbmNoYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAgYi9XZWJDb3JlL2RvbS9Y
TUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggMjdiMGZkNC4uNjhjOGRkOSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1hNTERv
Y3VtZW50UGFyc2VyLmNwcApAQCAtMTQ4LDE4ICsxNDgsMjIgQEAgdm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6YXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgcykKIAogdm9pZCBYTUxEb2N1bWVu
dFBhcnNlcjo6aGFuZGxlRXJyb3IoRXJyb3JUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIG0sIGludCBs
aW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyKQogewotICAgIGlmICh0eXBlID09IGZhdGFsIHx8
IChtX2Vycm9yQ291bnQgPCBtYXhFcnJvcnMgJiYgbV9sYXN0RXJyb3JMaW5lICE9IGxpbmVOdW1i
ZXIgJiYgbV9sYXN0RXJyb3JDb2x1bW4gIT0gY29sdW1uTnVtYmVyKSkgeworICAgIGhhbmRsZUVy
cm9yKHR5cGUsIG0sIFRleHRQb3NpdGlvbjEoV1RGOjpPbmVCYXNlZE51bWJlcjo6ZnJvbU9uZUJh
c2VkSW50KGxpbmVOdW1iZXIpLCBXVEY6Ok9uZUJhc2VkTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQo
Y29sdW1uTnVtYmVyKSkpOworfQorCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpoYW5kbGVFcnJv
cihFcnJvclR5cGUgdHlwZSwgY29uc3QgY2hhciogbSwgVGV4dFBvc2l0aW9uMSBwb3NpdGlvbikK
K3sKKyAgICBpZiAodHlwZSA9PSBmYXRhbCB8fCAobV9lcnJvckNvdW50IDwgbWF4RXJyb3JzICYm
IG1fbGFzdEVycm9yUG9zaXRpb24ubV9saW5lICE9IHBvc2l0aW9uLm1fbGluZSAmJiBtX2xhc3RF
cnJvclBvc2l0aW9uLm1fY29sdW1uICE9IHBvc2l0aW9uLm1fY29sdW1uKSkgewogICAgICAgICBz
d2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgIGNhc2Ugd2FybmluZzoKLSAgICAgICAgICAgICAg
ICBtX2Vycm9yTWVzc2FnZXMgKz0gbWFrZVN0cmluZygid2FybmluZyBvbiBsaW5lICIsIFN0cmlu
Zzo6bnVtYmVyKGxpbmVOdW1iZXIpLCAiIGF0IGNvbHVtbiAiLCBTdHJpbmc6Om51bWJlcihjb2x1
bW5OdW1iZXIpLCAiOiAiLCBtKTsKKyAgICAgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZXMgKz0g
bWFrZVN0cmluZygid2FybmluZyBvbiBsaW5lICIsIFN0cmluZzo6bnVtYmVyKHBvc2l0aW9uLm1f
bGluZS5vbmVCYXNlZEludCgpKSwgIiBhdCBjb2x1bW4gIiwgU3RyaW5nOjpudW1iZXIocG9zaXRp
b24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSksICI6ICIsIG0pOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSBmYXRhbDoKICAgICAgICAgICAgIGNhc2Ugbm9uRmF0YWw6
Ci0gICAgICAgICAgICAgICAgbV9lcnJvck1lc3NhZ2VzICs9IG1ha2VTdHJpbmcoImVycm9yIG9u
IGxpbmUgIiwgU3RyaW5nOjpudW1iZXIobGluZU51bWJlciksICIgYXQgY29sdW1uICIsIFN0cmlu
Zzo6bnVtYmVyKGNvbHVtbk51bWJlciksICI6ICIsIG0pOworICAgICAgICAgICAgICAgIG1fZXJy
b3JNZXNzYWdlcyArPSBtYWtlU3RyaW5nKCJlcnJvciBvbiBsaW5lICIsIFN0cmluZzo6bnVtYmVy
KHBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpKSwgIiBhdCBjb2x1bW4gIiwgU3RyaW5nOjpu
dW1iZXIocG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSksICI6ICIsIG0pOwogICAgICAg
ICB9CiAKLSAgICAgICAgbV9sYXN0RXJyb3JMaW5lID0gbGluZU51bWJlcjsKLSAgICAgICAgbV9s
YXN0RXJyb3JDb2x1bW4gPSBjb2x1bW5OdW1iZXI7CisgICAgICAgIG1fbGFzdEVycm9yUG9zaXRp
b24gPSBwb3NpdGlvbjsKICAgICAgICAgKyttX2Vycm9yQ291bnQ7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9kb20vWE1MRG9j
dW1lbnRQYXJzZXIuaAppbmRleCAxMTM3MGZhLi43NTMzYzViIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFy
c2VyLmgKQEAgLTg2LDYgKzg2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBF
eHBvc2VkIGZvciBjYWxsYmFja3M6CiAgICAgICAgIGVudW0gRXJyb3JUeXBlIHsgd2FybmluZywg
bm9uRmF0YWwsIGZhdGFsIH07CiAgICAgICAgIHZvaWQgaGFuZGxlRXJyb3IoRXJyb3JUeXBlLCBj
b25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlcik7Cisg
ICAgICAgIHZvaWQgaGFuZGxlRXJyb3IoRXJyb3JUeXBlLCBjb25zdCBjaGFyKiBtZXNzYWdlLCBU
ZXh0UG9zaXRpb24xKTsKIAogICAgICAgICB2b2lkIHNldElzWEhUTUxEb2N1bWVudChib29sIGlz
WEhUTUwpIHsgbV9pc1hIVE1MRG9jdW1lbnQgPSBpc1hIVE1MOyB9CiAgICAgICAgIGJvb2wgaXNY
SFRNTERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9pc1hIVE1MRG9jdW1lbnQ7IH0KQEAgLTEw
MSw3ICsxMDIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gV01MRXJyb3JI
YW5kbGluZyB1c2VzIHRoZXNlIGZ1bmN0aW9ucy4KICAgICAgICAgdmlydHVhbCBib29sIHdlbGxG
b3JtZWQoKSBjb25zdCB7IHJldHVybiAhbV9zYXdFcnJvcjsgfQorCiAgICAgICAgIFRleHRQb3Np
dGlvbjAgdGV4dFBvc2l0aW9uKCkgY29uc3Q7CisgICAgICAgIFRleHRQb3NpdGlvbjEgdGV4dFBv
c2l0aW9uT25lQmFzZWQoKSBjb25zdDsKIAogICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1hN
TFZlcnNpb24oY29uc3QgU3RyaW5nJik7CiAKQEAgLTEzMCwxMyArMTMzLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wgYXBwZW5kRnJhZ21lbnRTb3VyY2UoY29uc3QgU3Ry
aW5nJik7CiAKLQotICAgICAgICAvLyBUaGlzIG1ldGhvZCBpcyBpbnRyb2R1Y2VkIHRvIHRlbXBv
cmFyeSBsZWdhbGl6ZSBleGlzdGluZyBsaW5lL2NvbHVtbgotICAgICAgICAvLyBjb29yZGluYXRl
IGJ1ZzogaXQgaXMgYmVsaWV2ZWQgdGhhdCBudW1iZXJzIHRoYXQgb3JpZ2luYWxseSB3ZXJlIHpl
cm8tYmFzZWQKLSAgICAgICAgLy8gZXZlbnR1YWxseSBiZWNvbWVzIG9uZS1iYXNlZC4KLSAgICAg
ICAgLy8gRklYTUU6IEludmVzdGlnYXRlIGFuZCBnZXQgcmlkIG9mIHRoaXMgbWV0aG9kLgotICAg
ICAgICBUZXh0UG9zaXRpb24xIHRleHRQb3NpdGlvbk9uZUJhc2VkKCkgY29uc3Q7Ci0KICNpZiBV
U0UoUVhNTFNUUkVBTSkKIHByaXZhdGU6CiAgICAgICAgIHZvaWQgcGFyc2UoKTsKQEAgLTIxMCw4
ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV9maW5pc2hDYWxsZWQ7CiAKICAgICAg
ICAgaW50IG1fZXJyb3JDb3VudDsKLSAgICAgICAgaW50IG1fbGFzdEVycm9yTGluZTsKLSAgICAg
ICAgaW50IG1fbGFzdEVycm9yQ29sdW1uOworICAgICAgICBUZXh0UG9zaXRpb24xIG1fbGFzdEVy
cm9yUG9zaXRpb247CiAgICAgICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZXM7CiAKICAgICAgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX3BlbmRpbmdTY3JpcHQ7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvV2ViQ29y
ZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCAyM2Y5ODgzLi4wZjZiNGI0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCisr
KyBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTU1Nyw4ICs1
NTcsNyBAQCBYTUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnQqIGRv
Y3VtZW50LCBGcmFtZVZpZXcqIGZyYW1lVmlldykKICAgICAsIG1fcmVxdWVzdGluZ1NjcmlwdChm
YWxzZSkKICAgICAsIG1fZmluaXNoQ2FsbGVkKGZhbHNlKQogICAgICwgbV9lcnJvckNvdW50KDAp
Ci0gICAgLCBtX2xhc3RFcnJvckxpbmUoMCkKLSAgICAsIG1fbGFzdEVycm9yQ29sdW1uKDApCisg
ICAgLCBtX2xhc3RFcnJvclBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQb3NpdGlv
bigpKQogICAgICwgbV9wZW5kaW5nU2NyaXB0KDApCiAgICAgLCBtX3NjcmlwdFN0YXJ0UG9zaXRp
b24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3BhcnNpbmdG
cmFnbWVudChmYWxzZSkKQEAgLTU4NCw4ICs1ODMsNyBAQCBYTUxEb2N1bWVudFBhcnNlcjo6WE1M
RG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIHBhcmVu
dAogICAgICwgbV9yZXF1ZXN0aW5nU2NyaXB0KGZhbHNlKQogICAgICwgbV9maW5pc2hDYWxsZWQo
ZmFsc2UpCiAgICAgLCBtX2Vycm9yQ291bnQoMCkKLSAgICAsIG1fbGFzdEVycm9yTGluZSgwKQot
ICAgICwgbV9sYXN0RXJyb3JDb2x1bW4oMCkKKyAgICAsIG1fbGFzdEVycm9yUG9zaXRpb24oVGV4
dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3BlbmRpbmdTY3JpcHQo
MCkKICAgICAsIG1fc2NyaXB0U3RhcnRQb3NpdGlvbihUZXh0UG9zaXRpb24xOjpiZWxvd1Jhbmdl
UG9zaXRpb24oKSkKICAgICAsIG1fcGFyc2luZ0ZyYWdtZW50KHRydWUpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcCBiL1dlYkNvcmUvZG9tL1hNTERvY3Vt
ZW50UGFyc2VyUXQuY3BwCmluZGV4IGU5MDVlMzEuLmQwYmY4OGQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1hNTERvY3Vt
ZW50UGFyc2VyUXQuY3BwCkBAIC0xMDIsOCArMTAyLDcgQEAgWE1MRG9jdW1lbnRQYXJzZXI6OlhN
TERvY3VtZW50UGFyc2VyKERvY3VtZW50KiBkb2N1bWVudCwgRnJhbWVWaWV3KiBmcmFtZVZpZXcp
CiAgICAgLCBtX3JlcXVlc3RpbmdTY3JpcHQoZmFsc2UpCiAgICAgLCBtX2ZpbmlzaENhbGxlZChm
YWxzZSkKICAgICAsIG1fZXJyb3JDb3VudCgwKQotICAgICwgbV9sYXN0RXJyb3JMaW5lKDApCi0g
ICAgLCBtX2xhc3RFcnJvckNvbHVtbigwKQorICAgICwgbV9sYXN0RXJyb3JQb3NpdGlvbihUZXh0
UG9zaXRpb24xOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fcGVuZGluZ1NjcmlwdCgw
KQogICAgICwgbV9zY3JpcHRTdGFydFBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQ
b3NpdGlvbigpKQogICAgICwgbV9wYXJzaW5nRnJhZ21lbnQoZmFsc2UpCkBAIC0xMjksOCArMTI4
LDcgQEAgWE1MRG9jdW1lbnRQYXJzZXI6OlhNTERvY3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21l
bnQqIGZyYWdtZW50LCBFbGVtZW50KiBwYXJlbnQKICAgICAsIG1fcmVxdWVzdGluZ1NjcmlwdChm
YWxzZSkKICAgICAsIG1fZmluaXNoQ2FsbGVkKGZhbHNlKQogICAgICwgbV9lcnJvckNvdW50KDAp
Ci0gICAgLCBtX2xhc3RFcnJvckxpbmUoMCkKLSAgICAsIG1fbGFzdEVycm9yQ29sdW1uKDApCisg
ICAgLCBtX2xhc3RFcnJvclBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQb3NpdGlv
bigpKQogICAgICwgbV9wZW5kaW5nU2NyaXB0KDApCiAgICAgLCBtX3NjcmlwdFN0YXJ0UG9zaXRp
b24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCiAgICAgLCBtX3BhcnNpbmdG
cmFnbWVudCh0cnVlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93bWwvV01MRXJyb3JIYW5kbGluZy5j
cHAgYi9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcAppbmRleCBkYzBiOGRmLi5hNDlh
NzFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcAorKysgYi9X
ZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcApAQCAtNDgsNyArNDgsNyBAQCB2b2lkIHJl
cG9ydFdNTEVycm9yKERvY3VtZW50KiBkb2MsIFdNTEVycm9yQ29kZSBlcnJvcikKICAgICAgICAg
aWYgKCFwYXJzZXItPndlbGxGb3JtZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBwYXJzZXItPmhhbmRsZUVycm9yKFhNTERvY3VtZW50UGFyc2VyOjpmYXRhbCwgZXJyb3JNZXNz
YWdlLmxhdGluMSgpLmRhdGEoKSwgcGFyc2VyLT50ZXh0UG9zaXRpb24oKS5tX2xpbmUuemVyb0Jh
c2VkSW50KCksIHBhcnNlci0+dGV4dFBvc2l0aW9uKCkubV9jb2x1bW4uemVyb0Jhc2VkSW50KCkp
OworICAgICAgICBwYXJzZXItPmhhbmRsZUVycm9yKFhNTERvY3VtZW50UGFyc2VyOjpmYXRhbCwg
ZXJyb3JNZXNzYWdlLmxhdGluMSgpLmRhdGEoKSwgcGFyc2VyLT50ZXh0UG9zaXRpb25PbmVCYXNl
ZCgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBGcmFtZSogZnJhbWUgPSBkb2MtPmZyYW1lKCk7
CiAgICAgICAgIGlmICghZnJhbWUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>