<?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>83258</bug_id>
          
          <creation_ts>2012-04-05 01:50:17 -0700</creation_ts>
          <short_desc>Calendar Picker: Add code to open/close the calendar picker</short_desc>
          <delta_ts>2012-04-06 00:46:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>53961</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>596401</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-05 01:50:17 -0700</bug_when>
    <thetext>Calendar Picker: Add code to open/close the calendar picker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596418</commentid>
    <comment_count>1</comment_count>
      <attachid>135786</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-05 02:30:46 -0700</bug_when>
    <thetext>Created attachment 135786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596423</commentid>
    <comment_count>2</comment_count>
      <attachid>135786</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-05 02:42:01 -0700</bug_when>
    <thetext>Comment on attachment 135786
Patch

Attachment 135786 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12344006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596424</commentid>
    <comment_count>3</comment_count>
      <attachid>135786</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-05 02:42:13 -0700</bug_when>
    <thetext>Comment on attachment 135786
Patch

Attachment 135786 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12355003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596426</commentid>
    <comment_count>4</comment_count>
      <attachid>135786</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-05 02:43:49 -0700</bug_when>
    <thetext>Comment on attachment 135786
Patch

Attachment 135786 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12344005</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596427</commentid>
    <comment_count>5</comment_count>
      <attachid>135786</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-05 02:44:34 -0700</bug_when>
    <thetext>Comment on attachment 135786
Patch

Attachment 135786 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12249012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596428</commentid>
    <comment_count>6</comment_count>
      <attachid>135789</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-05 02:49:43 -0700</bug_when>
    <thetext>Created attachment 135789
Patch

Fix non-Chromium build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596448</commentid>
    <comment_count>7</comment_count>
      <attachid>135789</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-05 03:26:58 -0700</bug_when>
    <thetext>Comment on attachment 135789
Patch

Attachment 135789 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12341262</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596507</commentid>
    <comment_count>8</comment_count>
      <attachid>135810</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-05 05:38:18 -0700</bug_when>
    <thetext>Created attachment 135810
Patch 3

Fix Chromium-linux build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596511</commentid>
    <comment_count>9</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-05 05:44:28 -0700</bug_when>
    <thetext>Morita-san and I discussed how to test ENABLE_CALENDAR_PICKER code.

It gets possible by introducing mock functions for ChromeClient::openPagePopup and closePagePopup. Such mock should be installed by window.internals.

Anyway, we can&apos;t add tests until we enable ENABLE_INPUT_TYPE_DATE because we have no code paths to reach the ENABLE_CALENDAR_PICKER code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596512</commentid>
    <comment_count>10</comment_count>
      <attachid>135811</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-05 05:48:38 -0700</bug_when>
    <thetext>Created attachment 135811
Patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597190</commentid>
    <comment_count>11</comment_count>
      <attachid>135978</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-05 21:15:35 -0700</bug_when>
    <thetext>Created attachment 135978
Patch 5

Clean writeDocument() up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597229</commentid>
    <comment_count>12</comment_count>
      <attachid>135811</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-04-05 23:48:44 -0700</bug_when>
    <thetext>Comment on attachment 135811
Patch 4

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

Although this isn&apos;t related this change, I hope ChromeClient has no more #ifdefs and have a supplemental  instead.

&gt; Source/WebCore/html/shadow/CalendarPickerElement.cpp:163
&gt; +void CalendarPickerElement::writeDocument(DocumentWriter&amp; writer)

My personal feeling is that this kind of HTML generation won&apos;t be part of WebCore. I understand there are controversy though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597230</commentid>
    <comment_count>13</comment_count>
      <attachid>135811</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-05 23:58:33 -0700</bug_when>
    <thetext>Comment on attachment 135811
Patch 4

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

You added a comment to an obsolete attachment.

&gt;&gt; Source/WebCore/html/shadow/CalendarPickerElement.cpp:163
&gt;&gt; +void CalendarPickerElement::writeDocument(DocumentWriter&amp; writer)
&gt; 
&gt; My personal feeling is that this kind of HTML generation won&apos;t be part of WebCore. I understand there are controversy though.

Do you have alterative ideas?
This will be used by multiple platforms, and we wan&apos;t have much code in Chromium WebKit layer.  I don&apos;t think we have a choice other than WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597239</commentid>
    <comment_count>14</comment_count>
      <attachid>135978</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-06 00:46:02 -0700</bug_when>
    <thetext>Comment on attachment 135978
Patch 5

Clearing flags on attachment: 135978

Committed r113416: &lt;http://trac.webkit.org/changeset/113416&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597240</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-06 00:46:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135786</attachid>
            <date>2012-04-05 02:30:46 -0700</date>
            <delta_ts>2012-04-05 02:49:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83258-20120405183045.patch</filename>
            <type>text/plain</type>
            <size>18264</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGUyMTllMjU5MzE1YzYy
MTkyM2IzODdiYzY2MGU0ZTgzOGRlZjNjOS4uYWEyMzQ3ZWEyYTE1ZWFlZjQ5MDU5NzEzNjdhNzlh
ZGVmNzQ4OGIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTA0LTA1ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBDYWxlbmRhciBQaWNrZXI6
IEFkZCBjb2RlIHRvIG9wZW4vY2xvc2UgdGhlIGNhbGVuZGFyIHBpY2tlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMyNTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgY29k
ZSBpcyBub3QgdXNlZCBiZWNhdXNlIG9mIG5vIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZCBleGlzdGluZyBoZWFkZXIgZmlsZXMuCisKKyAgICAg
ICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0
VHlwZTo6RGF0ZUlucHV0VHlwZSk6CisgICAgICAgIE1vdmVkIGZyb20gRGF0ZUlucHV0VHlwZS5o
IGJlY2F1c2UgdGhlIGNvbnN0cnVjdG9yIGRlcGVuZHMgb24KKyAgICAgICAgQ2FsZW5kYXJQaWNr
ZXJFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgIFN0b3JlIGEgQ2FsZW5kYXJQaWNrZXJFbGVtZW50IG9iamVjdC4K
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKToK
KyAgICAgICAgUmVsZWFzZSB0aGUgQ2FsZW5kYXJQaWNrZXJFbGVtZW50IG9iamVjdC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmhhbmRsZUJsdXJFdmVudCk6CisgICAgICAgIENs
b3NlIHRoZSBjYWxlbmRhciBwaWNrZXIgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuCisgICAg
ICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmg6CisgICAgICAgIChEYXRlSW5wdXRUeXBlKToKKyAg
ICAgICAgLSBNb3ZlIHRoZSBjb25zdHJ1Y3RvciBkZWZpbml0aW9uIHRvIERhdGVJbnB1dFR5cGUu
Y3BwCisgICAgICAgIC0gQWRkIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucworICAgICAgICAtIEFkZCBt
X3BpY2tlckVsZW1lbnQgZGF0YSBtZW1iZXIuCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9DYWxl
bmRhclBpY2tlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJF
bGVtZW50Ojpob3N0SW5wdXQpOiBBIGhlbHBlciB0byBnZXQgdGhlIGhvc3QgPGlucHV0Pi4KKyAg
ICAgICAgKFdlYkNvcmU6OkNhbGVuZGFyUGlja2VyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cik6CisgICAgICAgIElmIHRoZSBlbGVtZW50IGlzIGNsaWNrZWQsIG9wZW4gYSBjYWxlbmRhciBw
aWNrZXIuCisgICAgICAgIChXZWJDb3JlOjpDYWxlbmRhclBpY2tlckVsZW1lbnQ6Om9wZW5Qb3B1
cCk6CisgICAgICAgIE9wZW5zIGEgY2FsZW5kYXIgcGlja2VyIGJ5IENocm9tZUNsaWVudDo6b3Bl
blBhZ2VQb3B1cCgpLgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJFbGVtZW50Ojpj
bG9zZVBvcHVwKToKKyAgICAgICAgQ2xvc2VzIGEgY2FsZW5kYXIgcGlja2VyIGJ5IENocm9tZUNs
aWVudDo6Y2xvc2VQYWdlUG9wdXAoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNhbGVuZGFyUGlja2Vy
RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgQ2xvc2VzIGEgY2FsZW5kYXIgcGlja2VyIHdoZW4g
dGhlIGVsZW1lbnQgbG9zZXMgYSByZW5kZXJlci4KKworICAgICAgICAoV2ViQ29yZTo6Q2FsZW5k
YXJQaWNrZXJFbGVtZW50Ojpjb250ZW50U2l6ZSk6CisgICAgICAgIFByb3ZpZGVzIHRoZSBpbml0
aWFsIHNpemUgb2YgYSBwb3B1cC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFN0cmluZyk6IEEgaGVs
cGVyIGZvciB3cml0ZURvY3VtZW50KCkuCisgICAgICAgIChXZWJDb3JlOjphZGRKYXZhU2NyaXB0
U3RyaW5nKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjphZGRTdHJpbmdQcm9wZXJ0eSk6IGRp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJFbGVtZW50Ojp3cml0ZURvY3Vt
ZW50KToKKyAgICAgICAgUHJvdmlkZXMgdGhlIHNvdXJjZSBvZiBhIHBvcHVwLiBUaGUgZnVuY3Rp
b24gY3JlYXRlcyBhIGNvbXBsZXRlIEhUTUwgd2l0aDoKKyAgICAgICAgLSBXZWJDb3JlL1Jlc291
cmNlcy9jYWxlbmRhclBpY2tlci5jc3MKKyAgICAgICAgLSBXZWJDb3JlL1Jlc291cmNlcy9jYWxl
bmRhclBpY2tlci5qcworICAgICAgICAtIEFuIG9iamVjdCB0byBwYXNzIGxvY2FsaXphdGlvbiBz
dHJpbmdzIGFuZCA8aW5wdXQ+IHN0YXRlCisgICAgICAgIChXZWJDb3JlOjpDYWxlbmRhclBpY2tl
ckVsZW1lbnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cCk6CisgICAgICAgIFNldHMgdGhlIHZhbHVl
IGZyb20gYSBjYWxlbmRhciBwaWNrZXIgdG8gdGhlIDxpbnB1dD4uCisgICAgICAgIChXZWJDb3Jl
OjpDYWxlbmRhclBpY2tlckVsZW1lbnQ6OmRpZENsb3NlUG9wdXApOgorICAgICAgICBDbGVhciB0
aGUgcG9wdXAgb2JqZWN0LgorICAgICAgICAqIGh0bWwvc2hhZG93L0NhbGVuZGFyUGlja2VyRWxl
bWVudC5oOgorICAgICAgICAoQ2FsZW5kYXJQaWNrZXJFbGVtZW50KTogQWRkIGRlY2xhcmF0aW9u
cy4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2FsZW5kYXJJQ1UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0Rmlyc3REYXlPZldlZWspOiBNYWtlIHN1cmUgdGhpcyBpcyAw
LWJhc2UuIFVDQUxfU1VOREFZIGlzIDEuCisKIDIwMTItMDQtMDQgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBKYXZhU2NyaXB0IGFuZCBDU1MgY29kZSBm
b3IgdGhlIGNhbGVuZGFyIHBpY2tlciBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCBlNzY5NGRiMDc4MjViMmU2ODgyZWZlNGE0NGIzNjlmNjE2YmJhYzU5Li41ZGY2
ZmI4ZDU0MDExYTA2MjUwY2M5NmJhYWJlY2UxNWNiYWQ0NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA0LTA1ICBLZW50IFRhbXVyYSAgPHRrZW50
QGNocm9taXVtLm9yZz4KKworICAgICAgICBDYWxlbmRhciBQaWNrZXI6IEFkZCBjb2RlIHRvIG9w
ZW4vY2xvc2UgdGhlIGNhbGVuZGFyIHBpY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMyNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6IEVuYWJsZSBFTkFCTEVfUEFHRV9Q
T1BVUCBmb3Igbm9uLUFuZHJvaWQKKyAgICAgICAgcGxhdGZvcm1zLiBUaGlzIGlzIG5lZWRlZCBi
ZWNhdXNlIEVOQUJMRV9DQUxFTkRBUl9QSUNLRVIgbm93IGRlcGVuZHMgb24KKyAgICAgICAgRU5B
QkxFX1BBR0VfUE9QVVAuCisgICAgICAgICogc3JjL0Nocm9lbUNsaWVudEltcGwuY3BwOiBBZGQg
c3R1YnMuCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om9wZW5QYWdlUG9wdXAp
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpjbG9zZVBhZ2VQb3B1cCk6Cisg
ICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDogQWRkIGRlY2xhcmF0aW9ucyBvZiBvcGVu
UGFnZVBvcHVwKCkgYW5kIGNsb3NlUGFnZVBvcHVwKCkuCisKIDIwMTItMDQtMDUgIEtpbnVrbyBZ
YXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEV4cG9zZSBEYXRhVHJhbnNm
ZXJJdGVtLmdldEFzRW50cnkoKSB0byBhbGxvdyB1c2VycyBhY2Nlc3MgZHJvcHBlZCBmaWxlcyBh
cyBGaWxlRW50cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkODVmZmI3NjMyNWNjNmRmNGFkNzdjNTI0
OTRhODZhZDc2ZjM2OWNmLi43NzViNjkxMTY5ZGIxZWMwZThmYzE0ZGYzMTRjMTI4MjE2NzM2NGE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMzcsNiArMjM3LDggQEAKICAgICAgICAgICAgICdwYWdl
L01lbW9yeUluZm8uaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlLmgnLAogICAgICAgICAgICAg
J3BhZ2UvUGFnZUdyb3VwLmgnLAorICAgICAgICAgICAgJ3BhZ2UvUGFnZVBvcHVwLmgnLAorICAg
ICAgICAgICAgJ3BhZ2UvUGFnZVBvcHVwQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFn
ZVNlcmlhbGl6ZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvUHJpbnRDb250ZXh0LmgnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZUlucHV0VHlwZS5jcHAKaW5kZXggMjRiZGQ4YmExNWQzMjAwMDE0MmZkOGZiMzljMTlmZjdhMGI0
ZDIzYS4uYTgyZjBhOTIzMmQ0ZTk0OGJkYzE1MTFkNzEwNjgyNDk5MTRjZTNhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCkBAIC00Niw2ICs0NiwxMSBAQCB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogc3RhdGljIGNvbnN0IGRvdWJsZSBkYXRlRGVmYXVsdFN0ZXAgPSAx
LjA7CiBzdGF0aWMgY29uc3QgZG91YmxlIGRhdGVTdGVwU2NhbGVGYWN0b3IgPSA4NjQwMDAwMC4w
OwogCitpbmxpbmUgRGF0ZUlucHV0VHlwZTo6RGF0ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
KiBlbGVtZW50KQorICAgIDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpCit7Cit9
CisKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBEYXRlSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCogZWxlbWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVJbnB1dFR5
cGUoZWxlbWVudCkpOwpAQCAtMTAzLDcgKzEwOCwxNCBAQCBib29sIERhdGVJbnB1dFR5cGU6OnNl
dE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUgdmFsdWUsIERhdGVDb21wb25lbnRz
Kgogdm9pZCBEYXRlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKLSAgICBjb250YWlu
ZXJFbGVtZW50KCktPmluc2VydEJlZm9yZShDYWxlbmRhclBpY2tlckVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KCktPmRvY3VtZW50KCkpLCBpbm5lckJsb2NrRWxlbWVudCgpLT5uZXh0U2libGluZygp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX3BpY2tlckVsZW1lbnQgPSBDYWxlbmRhclBp
Y2tlckVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpOworICAgIGNvbnRhaW5l
ckVsZW1lbnQoKS0+aW5zZXJ0QmVmb3JlKG1fcGlja2VyRWxlbWVudC5nZXQoKSwgaW5uZXJCbG9j
a0VsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cit9CisKK3Zv
aWQgRGF0ZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKQoreworICAgIFRleHRGaWVs
ZElucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKTsKKyAgICBtX3BpY2tlckVsZW1lbnQu
Y2xlYXIoKTsKIH0KIAogYm9vbCBEYXRlSW5wdXRUeXBlOjpuZWVkc0NvbnRhaW5lcigpIGNvbnN0
CkBAIC0xMTUsNiArMTI3LDEyIEBAIGJvb2wgRGF0ZUlucHV0VHlwZTo6c2hvdWxkSGF2ZVNwaW5C
dXR0b24oKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KKwordm9pZCBEYXRlSW5wdXRU
eXBlOjpoYW5kbGVCbHVyRXZlbnQoKQoreworICAgIGlmIChtX3BpY2tlckVsZW1lbnQpCisgICAg
ICAgIG1fcGlja2VyRWxlbWVudC0+Y2xvc2VQb3B1cCgpOworfQogI2VuZGlmIC8vIEVOQUJMRShD
QUxFTkRBUl9QSUNLRVIpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlSW5wdXRUeXBlLmgKaW5kZXggZjAyMGUyZTlhMGQ5N2IzZjc0NmU3NzZlNzk3YWQzMTIzMGE5
NWJkNC4uZDUwODVjMzJlYzA2MmFiMDEyMDljMThiODRhZWJlODU2MmFlNWM3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKQEAgLTMyLDE3ICszMiwyMCBAQAogI2RlZmluZSBEYXRl
SW5wdXRUeXBlX2gKIAogI2luY2x1ZGUgIkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEUpCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FsZW5kYXJQaWNrZXJFbGVtZW50OworCiBjbGFz
cyBEYXRlSW5wdXRUeXBlIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxl
bWVudCopOwogCiBwcml2YXRlOgotICAgIERhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCog
ZWxlbWVudCkgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgRGF0
ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0
ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGRvdWJsZSBtaW5pbXVtKCkgY29uc3QgT1ZFUlJJREU7CkBAIC01NCwxMCArNTcsMTQgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRv
dWJsZSwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklERTsKICNpZiBFTkFCTEUoQ0FMRU5E
QVJfUElDS0VSKQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUJsdXJFdmVudCgpIE9WRVJSSURFOwogCiAgICAgLy8gVGV4
dEZpZWxkSW5wdXRUeXBlIGZ1bmN0aW9ucwogICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NvbnRhaW5l
cigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRIYXZlU3BpbkJ1dHRv
bigpIGNvbnN0IE9WRVJSSURFOworCisgICAgUmVmUHRyPENhbGVuZGFyUGlja2VyRWxlbWVudD4g
bV9waWNrZXJFbGVtZW50OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9DYWxlbmRhclBpY2tlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmNwcAppbmRleCA0MWEzZDIwOWQwNDU4
ZjA1ZTY1ZDY2Y2E2ZWM2MWIzYWE4YzVlMTE5Li5jNGNhOTEwYjYzMDViMzgzNjk3YzVkNjQ4NzU5
MmNjNzk0ZjdjZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9DYWxl
bmRhclBpY2tlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Nh
bGVuZGFyUGlja2VyRWxlbWVudC5jcHAKQEAgLTMzLDcgKzMzLDE5IEBACiAKICNpZiBFTkFCTEUo
Q0FMRU5EQVJfUElDS0VSKQogCisjaW5jbHVkZSAiQ2FsZW5kYXJQaWNrZXIuaCIKKyNpbmNsdWRl
ICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJEYXRlQ29t
cG9uZW50cy5oIgorI2luY2x1ZGUgIkRvY3VtZW50V3JpdGVyLmgiCisjaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRl
ICJMb2NhbGl6ZWRDYWxlbmRhci5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRGV0YWlsc01hcmtlci5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC01Niw2ICs2OCwxNjEgQEAgUmVuZGVyT2JqZWN0KiBDYWxlbmRh
clBpY2tlckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVy
U3QKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyRGV0YWlsc01hcmtlcih0aGlzKTsKIH0K
IAoraW5saW5lIEhUTUxJbnB1dEVsZW1lbnQqIENhbGVuZGFyUGlja2VyRWxlbWVudDo6aG9zdElu
cHV0KCkKK3sKKyAgICBBU1NFUlQoc2hhZG93QW5jZXN0b3JOb2RlKCkpOworICAgIEFTU0VSVChz
aGFkb3dBbmNlc3Rvck5vZGUoKS0+aGFzVGFnTmFtZShpbnB1dFRhZykpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpOworfQor
Cit2b2lkIENhbGVuZGFyUGlja2VyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCog
ZXZlbnQpCit7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBob3N0SW5wdXQoKTsKKyAg
ICBpZiAoaW5wdXQtPnJlYWRPbmx5KCkgfHwgaW5wdXQtPmRpc2FibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50
KSB7CisgICAgICAgIG9wZW5Qb3B1cCgpOworICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRs
ZWQoKTsKKyAgICB9CisKKyAgICBpZiAoIWV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQorICAgICAg
ICBIVE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7Cit9CisKK3ZvaWQg
Q2FsZW5kYXJQaWNrZXJFbGVtZW50OjpvcGVuUG9wdXAoKQoreworICAgIGlmIChtX3BvcHVwKQor
ICAgICAgICByZXR1cm47CisgICAgaWYgKCFkb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBDaHJvbWUqIGNocm9tZSA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCk7
CisgICAgaWYgKCFjaHJvbWUpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWRvY3VtZW50KCkt
PnZpZXcoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEludFJlY3QgZWxlbWVudFJlY3RJblJvb3RW
aWV3ID0gZG9jdW1lbnQoKS0+dmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoaG9zdElucHV0KCkt
PmdldFJlY3QoKSk7CisgICAgbV9wb3B1cCA9IGNocm9tZS0+Y2xpZW50KCktPm9wZW5QYWdlUG9w
dXAodGhpcywgZWxlbWVudFJlY3RJblJvb3RWaWV3KTsKK30KKwordm9pZCBDYWxlbmRhclBpY2tl
ckVsZW1lbnQ6OmNsb3NlUG9wdXAoKQoreworICAgIGlmICghbV9wb3B1cCkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmICghZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgICAgICByZXR1cm47CisgICAg
Q2hyb21lKiBjaHJvbWUgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpOworICAgIGlmICgh
Y2hyb21lKQorICAgICAgICByZXR1cm47CisgICAgY2hyb21lLT5jbGllbnQoKS0+Y2xvc2VQYWdl
UG9wdXAobV9wb3B1cCk7Cit9CisKK3ZvaWQgQ2FsZW5kYXJQaWNrZXJFbGVtZW50OjpkZXRhY2go
KQoreworICAgIGNsb3NlUG9wdXAoKTsKKyAgICBIVE1MRGl2RWxlbWVudDo6ZGV0YWNoKCk7Cit9
CisKK0ludFNpemUgQ2FsZW5kYXJQaWNrZXJFbGVtZW50Ojpjb250ZW50U2l6ZSgpCit7CisgICAg
cmV0dXJuIEludFNpemUoMzIwLCAyNTYpOworfQorCisjZGVmaW5lIGFkZExpdGVyYWwobGl0ZXJh
bCwgd3JpdGVyKSAgICB3cml0ZXIuYWRkRGF0YShsaXRlcmFsLCBzaXplb2YobGl0ZXJhbCkgLSAx
KQorCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyLCBEb2N1
bWVudFdyaXRlciYgd3JpdGVyKQoreworICAgIENTdHJpbmcgc3RyOCA9IHN0ci51dGY4KCk7Cisg
ICAgd3JpdGVyLmFkZERhdGEoc3RyOC5kYXRhKCksIHN0cjgubGVuZ3RoKCkpOworfQorCitzdGF0
aWMgdm9pZCBhZGRKYXZhU2NyaXB0U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyLCBEb2N1bWVudFdy
aXRlciYgd3JpdGVyKQoreworICAgIGFkZExpdGVyYWwoIlwiIiwgd3JpdGVyKTsKKyAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoc3RyLmxlbmd0
aCgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3RyLmxlbmd0aCgpOyArK2kpIHsK
KyAgICAgICAgaWYgKHN0cltpXSA9PSAnXFwnIHx8IHN0cltpXSA9PSAnIicpCisgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RyW2ldKTsK
KyAgICB9CisgICAgYWRkU3RyaW5nKGJ1aWxkZXIudG9TdHJpbmcoKSwgd3JpdGVyKTsKKyAgICBh
ZGRMaXRlcmFsKCJcIiIsIHdyaXRlcik7Cit9CisKK3N0YXRpYyB2b2lkIGFkZFN0cmluZ1Byb3Bl
cnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIERvY3VtZW50V3JpdGVy
JiB3cml0ZXIpCit7CisgICAgYWRkTGl0ZXJhbCgiXCIiLCB3cml0ZXIpOworICAgIHdyaXRlci5h
ZGREYXRhKG5hbWUsIHN0cmxlbihuYW1lKSk7CisgICAgYWRkTGl0ZXJhbCgiXCI6ICIsIHdyaXRl
cik7CisgICAgYWRkSmF2YVNjcmlwdFN0cmluZyh2YWx1ZSwgd3JpdGVyKTsKKyAgICBhZGRMaXRl
cmFsKCIsXG4iLCB3cml0ZXIpOworfQorCit2b2lkIENhbGVuZGFyUGlja2VyRWxlbWVudDo6d3Jp
dGVEb2N1bWVudChEb2N1bWVudFdyaXRlciYgd3JpdGVyKQoreworICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0ID0gaG9zdElucHV0KCk7CisgICAgRGF0ZUNvbXBvbmVudHMgZGF0ZTsKKyAgICBk
YXRlLnNldE1pbGxpc2Vjb25kc1NpbmNlRXBvY2hGb3JEYXRlKGlucHV0LT5taW5pbXVtKCkpOwor
ICAgIFN0cmluZyBtaW5TdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCk7CisgICAgZGF0ZS5zZXRNaWxs
aXNlY29uZHNTaW5jZUVwb2NoRm9yRGF0ZShpbnB1dC0+bWF4aW11bSgpKTsKKyAgICBTdHJpbmcg
bWF4U3RyaW5nID0gZGF0ZS50b1N0cmluZygpOworICAgIGRvdWJsZSBzdGVwOworICAgIFN0cmlu
ZyBzdGVwU3RyaW5nID0gaW5wdXQtPmZhc3RHZXRBdHRyaWJ1dGUoc3RlcEF0dHIpOworICAgIGlm
IChzdGVwU3RyaW5nLmlzRW1wdHkoKSB8fCAhaW5wdXQtPmdldEFsbG93ZWRWYWx1ZVN0ZXAoJnN0
ZXApKQorICAgICAgICBzdGVwU3RyaW5nID0gIjEiOworICAgIFN0cmluZ0J1aWxkZXIgc291cmNl
OworICAgIGFkZExpdGVyYWwoIjwhRE9DVFlQRSBodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9J1VU
Ri04Jz48c3R5bGU+XG4iLCB3cml0ZXIpOworICAgIHdyaXRlci5hZGREYXRhKGNhbGVuZGFyUGlj
a2VyQ3NzLCBzaXplb2YoY2FsZW5kYXJQaWNrZXJDc3MpKTsKKyAgICBhZGRMaXRlcmFsKCI8L3N0
eWxlPjwvaGVhZD48Ym9keT48ZGl2IGlkPW1haW4+TG9hZGluZy4uLjwvZGl2PjxzY3JpcHQ+XG4i
CisgICAgICAgICAgICAgICAid2luZG93LmRpYWxvZ0FyZ3VtZW50cyA9IHtcbiIsIHdyaXRlcik7
CisgICAgYWRkU3RyaW5nUHJvcGVydHkoIm1pbiIsIG1pblN0cmluZywgd3JpdGVyKTsKKyAgICBh
ZGRTdHJpbmdQcm9wZXJ0eSgibWF4IiwgbWF4U3RyaW5nLCB3cml0ZXIpOworICAgIGFkZFN0cmlu
Z1Byb3BlcnR5KCJzdGVwIiwgc3RlcFN0cmluZywgd3JpdGVyKTsKKyAgICBpZiAoaW5wdXQtPnJl
cXVpcmVkKCkpCisgICAgICAgIGFkZExpdGVyYWwoIlwicmVxdWlyZWRcIjogdHJ1ZSxcbiIsIHdy
aXRlcik7CisgICAgZWxzZQorICAgICAgICBhZGRMaXRlcmFsKCJcInJlcXVpcmVkXCI6IGZhbHNl
LFxuIiwgd3JpdGVyKTsKKyAgICBhZGRTdHJpbmdQcm9wZXJ0eSgiY3VycmVudFZhbHVlIiwgaW5w
dXQtPnZhbHVlKCksIHdyaXRlcik7CisKKyAgICBhZGRTdHJpbmdQcm9wZXJ0eSgibG9jYWxlIiwg
ZGVmYXVsdExhbmd1YWdlKCksIHdyaXRlcik7CisgICAgYWRkU3RyaW5nUHJvcGVydHkoInRvZGF5
TGFiZWwiLCBjYWxlbmRhclRvZGF5VGV4dCgpLCB3cml0ZXIpOworICAgIGFkZFN0cmluZ1Byb3Bl
cnR5KCJjbGVhckxhYmVsIiwgY2FsZW5kYXJDbGVhclRleHQoKSwgd3JpdGVyKTsKKyAgICBhZGRM
aXRlcmFsKCJcIndlZWtTdGFydERheVwiOiAiLCB3cml0ZXIpOworICAgIGFkZFN0cmluZyhTdHJp
bmc6Om51bWJlcihmaXJzdERheU9mV2VlaygpKSwgd3JpdGVyKTsKKyAgICBhZGRMaXRlcmFsKCIs
XG4iLCB3cml0ZXIpOworICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtb250aHMgPSBtb250aExh
YmVscygpOworICAgIGFkZExpdGVyYWwoIlwibW9udGhMYWJlbHNcIiA6WyIsIHdyaXRlcik7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1vbnRocy5zaXplKCk7ICsraSkgeworICAgICAg
ICBhZGRKYXZhU2NyaXB0U3RyaW5nKG1vbnRoc1tpXSwgd3JpdGVyKTsKKyAgICAgICAgYWRkTGl0
ZXJhbCgiLCIsIHdyaXRlcik7CisgICAgfQorICAgIGFkZExpdGVyYWwoIl0sXG4iLCB3cml0ZXIp
OworICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB3ZWVrRGF5cyA9IHdlZWtEYXlTaG9ydExhYmVs
cygpOworICAgIGFkZExpdGVyYWwoIlwiZGF5TGFiZWxzXCIgOlsiLCB3cml0ZXIpOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCB3ZWVrRGF5cy5zaXplKCk7ICsraSkgeworICAgICAgICBh
ZGRKYXZhU2NyaXB0U3RyaW5nKHdlZWtEYXlzW2ldLCB3cml0ZXIpOworICAgICAgICBhZGRMaXRl
cmFsKCIsIiwgd3JpdGVyKTsKKyAgICB9CisgICAgYWRkTGl0ZXJhbCgiXSxcbiIsIHdyaXRlcik7
CisgICAgYWRkTGl0ZXJhbCgifVxuIiwgd3JpdGVyKTsKKyAgICB3cml0ZXIuYWRkRGF0YShjYWxl
bmRhclBpY2tlckpzLCBzaXplb2YoY2FsZW5kYXJQaWNrZXJKcykpOworICAgIGFkZExpdGVyYWwo
Ijwvc2NyaXB0PjwvYm9keT5cbiIsIHdyaXRlcik7Cit9CisKK3ZvaWQgQ2FsZW5kYXJQaWNrZXJF
bGVtZW50OjpzZXRWYWx1ZUFuZENsb3NlUG9wdXAoaW50IG51bVZhbHVlLCBjb25zdCBTdHJpbmcm
IHN0cmluZ1ZhbHVlKQoreworICAgIEFTU0VSVChtX3BvcHVwKTsKKyAgICBjbG9zZVBvcHVwKCk7
CisgICAgaWYgKG51bVZhbHVlID49IDApCisgICAgICAgIGhvc3RJbnB1dCgpLT5zZXRWYWx1ZShz
dHJpbmdWYWx1ZSwgRGlzcGF0Y2hDaGFuZ2VFdmVudCk7Cit9CisKK3ZvaWQgQ2FsZW5kYXJQaWNr
ZXJFbGVtZW50OjpkaWRDbG9zZVBvcHVwKCkKK3sKKyAgICBtX3BvcHVwID0gMDsKK30KKwogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbGVuZGFy
UGlja2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNr
ZXJFbGVtZW50LmgKaW5kZXggNTFjOWI4ZmFiZjVjZjg2NDhhNzk3YmI0NDZlYzhiNmExZjhiOWQ1
Ni4uNzc1NjEyNjc2NDkxNjJlMmE5MWVjNzgzMDljM2UyNTRlZjA1NmQxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmgKQEAgLTMy
LDE3ICszMiwzNCBAQAogI2RlZmluZSBDYWxlbmRhclBpY2tlckVsZW1lbnRfaAogCiAjaW5jbHVk
ZSAiSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQYWdlUG9wdXBDbGllbnQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDYWxlbmRhclBpY2tlckVsZW1lbnQgOiBwdWJsaWMg
SFRNTERpdkVsZW1lbnQgeworY2xhc3MgSFRNTElucHV0RWxlbWVudDsKK2NsYXNzIFBhZ2VQb3B1
cDsKKworY2xhc3MgQ2FsZW5kYXJQaWNrZXJFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50
LCBwdWJsaWMgUGFnZVBvcHVwQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDYWxlbmRhclBpY2tlckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHZvaWQgY2xv
c2VQb3B1cCgpOwogCiBwcml2YXRlOgogICAgIENhbGVuZGFyUGlja2VyRWxlbWVudChEb2N1bWVu
dCopOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSosIFJlbmRlclN0eWxlKikgT1ZFUlJJREU7Ci0gICAgLy8gRklYTUU6IGFkZCBjbGljayBoYW5k
bGluZy4KKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKSBPVkVSUklERTsKKworICAgIC8vIFBhZ2VQ
b3B1cENsaWVudCBmdW5jdGlvbnM6CisgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRTaXplKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdyaXRlRG9jdW1lbnQoRG9jdW1lbnRXcml0ZXIm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBbmRDbG9zZVBvcHVwKGludCwg
Y29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlUG9wdXAo
KSBPVkVSUklERTsKKworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGhvc3RJbnB1dCgpOworICAgIHZv
aWQgb3BlblBvcHVwKCk7CisKKyAgICBQYWdlUG9wdXAqIG1fcG9wdXA7CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZENhbGVuZGFySUNV
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2FsZW5kYXJJQ1Uu
Y3BwCmluZGV4IGRhMGE5MTRmMGI0MzkyMTk1MjNhMjI1ZWY1YmFlODUyYWNiYTZkM2IuLjQ1M2E5
Y2E1YjU2YTQwYTIxOWM4OGQzNDcyNDA5YTEzMTg5MDAyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2FsZW5kYXJJQ1UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2FsZW5kYXJJQ1UuY3BwCkBAIC0xNDcs
NyArMTQ3LDcgQEAgc3RhdGljIHVuc2lnbmVkIGdldEZpcnN0RGF5T2ZXZWVrKCkKICAgICBTY29w
ZWREYXRlRm9ybWF0IGRhdGVGb3JtYXQ7CiAgICAgaWYgKCFkYXRlRm9ybWF0LmdldCgpKQogICAg
ICAgICByZXR1cm4gMDsKLSAgICB1bnNpZ25lZCBmaXJzdERheSA9IHVjYWxfZ2V0QXR0cmlidXRl
KHVkYXRfZ2V0Q2FsZW5kYXIoZGF0ZUZvcm1hdC5nZXQoKSksIFVDQUxfRklSU1RfREFZX09GX1dF
RUspOworICAgIHVuc2lnbmVkIGZpcnN0RGF5ID0gdWNhbF9nZXRBdHRyaWJ1dGUodWRhdF9nZXRD
YWxlbmRhcihkYXRlRm9ybWF0LmdldCgpKSwgVUNBTF9GSVJTVF9EQVlfT0ZfV0VFSykgLSBVQ0FM
X1NVTkRBWTsKICAgICByZXR1cm4gZmlyc3REYXk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVh
dHVyZXMuZ3lwaQppbmRleCBiNDgwZTQ2MjJiOTkwMmEzNzAxMTVhMjNhMTM2YTA4ZDk0NWM3MDVk
Li4zY2NhZmViMjVmOGRkNmExN2RhOTM0YTM3ZWFkMDQxMzhkMGVhMTUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC0xMzAsMTEgKzEzMCwxMyBAQAogICAgICAgWydPUz09
ImFuZHJvaWQiJywgewogICAgICAgICAnZmVhdHVyZV9kZWZpbmVzJzogWwogICAgICAgICAgICdF
TkFCTEVfQ0FMRU5EQVJfUElDS0VSPTAnLAorICAgICAgICAgICdFTkFCTEVfUEFHRV9QT1BVUD0w
JywKICAgICAgICAgICAnRU5BQkxFX1dFQl9BVURJTz0wJywKICAgICAgICAgXSwKICAgICAgIH0s
IHsKICAgICAgICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsKICAgICAgICAgICAnRU5BQkxFX0NBTEVO
REFSX1BJQ0tFUj0xJywKKyAgICAgICAgICAnRU5BQkxFX1BBR0VfUE9QVVA9MScsCiAgICAgICAg
ICAgJ0VOQUJMRV9XRUJfQVVESU89MScsCiAgICAgICAgIF0sCiAgICAgICB9XSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggZjc2YjM2
NjlmZjRjMjZmOWFiYzYyY2QyNWM4OTg1N2YxNzQ3YmUxZC4uZmM2NzRhMTBmOTNlNGU3MzRmYzI3
ZmVkMjRiYjA3ZDMyMTBhZTUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTk4OCw2ICs5ODgsMTkgQEAgUGFzc1JlZlB0cjxTZWFy
Y2hQb3B1cE1lbnU+IENocm9tZUNsaWVudEltcGw6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGkKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUNocm9taXVt
KGNsaWVudCkpOwogfQogCisjaWYgRU5BQkxFKFBBR0VfUE9QVVApCitQYWdlUG9wdXAqIENocm9t
ZUNsaWVudEltcGw6Om9wZW5QYWdlUG9wdXAoUGFnZVBvcHVwQ2xpZW50KiwgY29uc3QgSW50UmVj
dCYpCit7CisgICAgLy8gRklYTUU6IEltcGVsZW1lbnQgdGhpcy4KKyAgICByZXR1cm4gMDsKK30K
Kwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjbG9zZVBhZ2VQb3B1cChQYWdlUG9wdXAqKQorewor
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKyNlbmRpZgorCiBib29sIENocm9tZUNs
aWVudEltcGw6OndpbGxBZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvKEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0KQogewogICAgIEFTU0VSVChpbnB1dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggNjI2MGE5N2RkM2Q3ZGU3YThkMTJhYjA2MTAy
OWVmNzYwZDA3YjMxMy4uNTg5NDE3N2UwMTIxZDE4ZDVlMzc0OWJiZDI2YjE4ZjI2OWRhOGU1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAt
MTk1LDYgKzE5NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVw
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVw
TWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0Owog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNl
YXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyNpZiBFTkFC
TEUoUEFHRV9QT1BVUCkKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2VQb3B1cCogb3BlblBhZ2VQ
b3B1cChXZWJDb3JlOjpQYWdlUG9wdXBDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlUGFnZVBvcHVwKFdlYkNvcmU6OlBhZ2VQ
b3B1cCopIE9WRVJSSURFOworI2VuZGlmCiAgICAgdmlydHVhbCBib29sIHdpbGxBZGRUZXh0Rmll
bGREZWNvcmF0aW9uc1RvKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQqKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgYWRkVGV4dEZpZWxkRGVjb3JhdGlvbnNUbyhXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50KikgT1ZFUlJJREU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135789</attachid>
            <date>2012-04-05 02:49:43 -0700</date>
            <delta_ts>2012-04-05 05:38:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83258-20120405184941.patch</filename>
            <type>text/plain</type>
            <size>18342</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGUyMTllMjU5MzE1YzYy
MTkyM2IzODdiYzY2MGU0ZTgzOGRlZjNjOS4uYWEyMzQ3ZWEyYTE1ZWFlZjQ5MDU5NzEzNjdhNzlh
ZGVmNzQ4OGIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTA0LTA1ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBDYWxlbmRhciBQaWNrZXI6
IEFkZCBjb2RlIHRvIG9wZW4vY2xvc2UgdGhlIGNhbGVuZGFyIHBpY2tlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMyNTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgY29k
ZSBpcyBub3QgdXNlZCBiZWNhdXNlIG9mIG5vIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZCBleGlzdGluZyBoZWFkZXIgZmlsZXMuCisKKyAgICAg
ICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0
VHlwZTo6RGF0ZUlucHV0VHlwZSk6CisgICAgICAgIE1vdmVkIGZyb20gRGF0ZUlucHV0VHlwZS5o
IGJlY2F1c2UgdGhlIGNvbnN0cnVjdG9yIGRlcGVuZHMgb24KKyAgICAgICAgQ2FsZW5kYXJQaWNr
ZXJFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgIFN0b3JlIGEgQ2FsZW5kYXJQaWNrZXJFbGVtZW50IG9iamVjdC4K
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKToK
KyAgICAgICAgUmVsZWFzZSB0aGUgQ2FsZW5kYXJQaWNrZXJFbGVtZW50IG9iamVjdC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmhhbmRsZUJsdXJFdmVudCk6CisgICAgICAgIENs
b3NlIHRoZSBjYWxlbmRhciBwaWNrZXIgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuCisgICAg
ICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmg6CisgICAgICAgIChEYXRlSW5wdXRUeXBlKToKKyAg
ICAgICAgLSBNb3ZlIHRoZSBjb25zdHJ1Y3RvciBkZWZpbml0aW9uIHRvIERhdGVJbnB1dFR5cGUu
Y3BwCisgICAgICAgIC0gQWRkIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucworICAgICAgICAtIEFkZCBt
X3BpY2tlckVsZW1lbnQgZGF0YSBtZW1iZXIuCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9DYWxl
bmRhclBpY2tlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJF
bGVtZW50Ojpob3N0SW5wdXQpOiBBIGhlbHBlciB0byBnZXQgdGhlIGhvc3QgPGlucHV0Pi4KKyAg
ICAgICAgKFdlYkNvcmU6OkNhbGVuZGFyUGlja2VyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cik6CisgICAgICAgIElmIHRoZSBlbGVtZW50IGlzIGNsaWNrZWQsIG9wZW4gYSBjYWxlbmRhciBw
aWNrZXIuCisgICAgICAgIChXZWJDb3JlOjpDYWxlbmRhclBpY2tlckVsZW1lbnQ6Om9wZW5Qb3B1
cCk6CisgICAgICAgIE9wZW5zIGEgY2FsZW5kYXIgcGlja2VyIGJ5IENocm9tZUNsaWVudDo6b3Bl
blBhZ2VQb3B1cCgpLgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJFbGVtZW50Ojpj
bG9zZVBvcHVwKToKKyAgICAgICAgQ2xvc2VzIGEgY2FsZW5kYXIgcGlja2VyIGJ5IENocm9tZUNs
aWVudDo6Y2xvc2VQYWdlUG9wdXAoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNhbGVuZGFyUGlja2Vy
RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgQ2xvc2VzIGEgY2FsZW5kYXIgcGlja2VyIHdoZW4g
dGhlIGVsZW1lbnQgbG9zZXMgYSByZW5kZXJlci4KKworICAgICAgICAoV2ViQ29yZTo6Q2FsZW5k
YXJQaWNrZXJFbGVtZW50Ojpjb250ZW50U2l6ZSk6CisgICAgICAgIFByb3ZpZGVzIHRoZSBpbml0
aWFsIHNpemUgb2YgYSBwb3B1cC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFN0cmluZyk6IEEgaGVs
cGVyIGZvciB3cml0ZURvY3VtZW50KCkuCisgICAgICAgIChXZWJDb3JlOjphZGRKYXZhU2NyaXB0
U3RyaW5nKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjphZGRTdHJpbmdQcm9wZXJ0eSk6IGRp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJFbGVtZW50Ojp3cml0ZURvY3Vt
ZW50KToKKyAgICAgICAgUHJvdmlkZXMgdGhlIHNvdXJjZSBvZiBhIHBvcHVwLiBUaGUgZnVuY3Rp
b24gY3JlYXRlcyBhIGNvbXBsZXRlIEhUTUwgd2l0aDoKKyAgICAgICAgLSBXZWJDb3JlL1Jlc291
cmNlcy9jYWxlbmRhclBpY2tlci5jc3MKKyAgICAgICAgLSBXZWJDb3JlL1Jlc291cmNlcy9jYWxl
bmRhclBpY2tlci5qcworICAgICAgICAtIEFuIG9iamVjdCB0byBwYXNzIGxvY2FsaXphdGlvbiBz
dHJpbmdzIGFuZCA8aW5wdXQ+IHN0YXRlCisgICAgICAgIChXZWJDb3JlOjpDYWxlbmRhclBpY2tl
ckVsZW1lbnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cCk6CisgICAgICAgIFNldHMgdGhlIHZhbHVl
IGZyb20gYSBjYWxlbmRhciBwaWNrZXIgdG8gdGhlIDxpbnB1dD4uCisgICAgICAgIChXZWJDb3Jl
OjpDYWxlbmRhclBpY2tlckVsZW1lbnQ6OmRpZENsb3NlUG9wdXApOgorICAgICAgICBDbGVhciB0
aGUgcG9wdXAgb2JqZWN0LgorICAgICAgICAqIGh0bWwvc2hhZG93L0NhbGVuZGFyUGlja2VyRWxl
bWVudC5oOgorICAgICAgICAoQ2FsZW5kYXJQaWNrZXJFbGVtZW50KTogQWRkIGRlY2xhcmF0aW9u
cy4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2FsZW5kYXJJQ1UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0Rmlyc3REYXlPZldlZWspOiBNYWtlIHN1cmUgdGhpcyBpcyAw
LWJhc2UuIFVDQUxfU1VOREFZIGlzIDEuCisKIDIwMTItMDQtMDQgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBKYXZhU2NyaXB0IGFuZCBDU1MgY29kZSBm
b3IgdGhlIGNhbGVuZGFyIHBpY2tlciBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCBlNzY5NGRiMDc4MjViMmU2ODgyZWZlNGE0NGIzNjlmNjE2YmJhYzU5Li41ZGY2
ZmI4ZDU0MDExYTA2MjUwY2M5NmJhYWJlY2UxNWNiYWQ0NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA0LTA1ICBLZW50IFRhbXVyYSAgPHRrZW50
QGNocm9taXVtLm9yZz4KKworICAgICAgICBDYWxlbmRhciBQaWNrZXI6IEFkZCBjb2RlIHRvIG9w
ZW4vY2xvc2UgdGhlIGNhbGVuZGFyIHBpY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMyNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6IEVuYWJsZSBFTkFCTEVfUEFHRV9Q
T1BVUCBmb3Igbm9uLUFuZHJvaWQKKyAgICAgICAgcGxhdGZvcm1zLiBUaGlzIGlzIG5lZWRlZCBi
ZWNhdXNlIEVOQUJMRV9DQUxFTkRBUl9QSUNLRVIgbm93IGRlcGVuZHMgb24KKyAgICAgICAgRU5B
QkxFX1BBR0VfUE9QVVAuCisgICAgICAgICogc3JjL0Nocm9lbUNsaWVudEltcGwuY3BwOiBBZGQg
c3R1YnMuCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om9wZW5QYWdlUG9wdXAp
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpjbG9zZVBhZ2VQb3B1cCk6Cisg
ICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDogQWRkIGRlY2xhcmF0aW9ucyBvZiBvcGVu
UGFnZVBvcHVwKCkgYW5kIGNsb3NlUGFnZVBvcHVwKCkuCisKIDIwMTItMDQtMDUgIEtpbnVrbyBZ
YXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEV4cG9zZSBEYXRhVHJhbnNm
ZXJJdGVtLmdldEFzRW50cnkoKSB0byBhbGxvdyB1c2VycyBhY2Nlc3MgZHJvcHBlZCBmaWxlcyBh
cyBGaWxlRW50cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkODVmZmI3NjMyNWNjNmRmNGFkNzdjNTI0
OTRhODZhZDc2ZjM2OWNmLi43NzViNjkxMTY5ZGIxZWMwZThmYzE0ZGYzMTRjMTI4MjE2NzM2NGE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMzcsNiArMjM3LDggQEAKICAgICAgICAgICAgICdwYWdl
L01lbW9yeUluZm8uaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlLmgnLAogICAgICAgICAgICAg
J3BhZ2UvUGFnZUdyb3VwLmgnLAorICAgICAgICAgICAgJ3BhZ2UvUGFnZVBvcHVwLmgnLAorICAg
ICAgICAgICAgJ3BhZ2UvUGFnZVBvcHVwQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFn
ZVNlcmlhbGl6ZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvUHJpbnRDb250ZXh0LmgnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZUlucHV0VHlwZS5jcHAKaW5kZXggMjRiZGQ4YmExNWQzMjAwMDE0MmZkOGZiMzljMTlmZjdhMGI0
ZDIzYS4uYTgyZjBhOTIzMmQ0ZTk0OGJkYzE1MTFkNzEwNjgyNDk5MTRjZTNhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCkBAIC00Niw2ICs0NiwxMSBAQCB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogc3RhdGljIGNvbnN0IGRvdWJsZSBkYXRlRGVmYXVsdFN0ZXAgPSAx
LjA7CiBzdGF0aWMgY29uc3QgZG91YmxlIGRhdGVTdGVwU2NhbGVGYWN0b3IgPSA4NjQwMDAwMC4w
OwogCitpbmxpbmUgRGF0ZUlucHV0VHlwZTo6RGF0ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
KiBlbGVtZW50KQorICAgIDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpCit7Cit9
CisKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBEYXRlSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCogZWxlbWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVJbnB1dFR5
cGUoZWxlbWVudCkpOwpAQCAtMTAzLDcgKzEwOCwxNCBAQCBib29sIERhdGVJbnB1dFR5cGU6OnNl
dE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUgdmFsdWUsIERhdGVDb21wb25lbnRz
Kgogdm9pZCBEYXRlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKLSAgICBjb250YWlu
ZXJFbGVtZW50KCktPmluc2VydEJlZm9yZShDYWxlbmRhclBpY2tlckVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KCktPmRvY3VtZW50KCkpLCBpbm5lckJsb2NrRWxlbWVudCgpLT5uZXh0U2libGluZygp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX3BpY2tlckVsZW1lbnQgPSBDYWxlbmRhclBp
Y2tlckVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpOworICAgIGNvbnRhaW5l
ckVsZW1lbnQoKS0+aW5zZXJ0QmVmb3JlKG1fcGlja2VyRWxlbWVudC5nZXQoKSwgaW5uZXJCbG9j
a0VsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cit9CisKK3Zv
aWQgRGF0ZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKQoreworICAgIFRleHRGaWVs
ZElucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKTsKKyAgICBtX3BpY2tlckVsZW1lbnQu
Y2xlYXIoKTsKIH0KIAogYm9vbCBEYXRlSW5wdXRUeXBlOjpuZWVkc0NvbnRhaW5lcigpIGNvbnN0
CkBAIC0xMTUsNiArMTI3LDEyIEBAIGJvb2wgRGF0ZUlucHV0VHlwZTo6c2hvdWxkSGF2ZVNwaW5C
dXR0b24oKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KKwordm9pZCBEYXRlSW5wdXRU
eXBlOjpoYW5kbGVCbHVyRXZlbnQoKQoreworICAgIGlmIChtX3BpY2tlckVsZW1lbnQpCisgICAg
ICAgIG1fcGlja2VyRWxlbWVudC0+Y2xvc2VQb3B1cCgpOworfQogI2VuZGlmIC8vIEVOQUJMRShD
QUxFTkRBUl9QSUNLRVIpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlSW5wdXRUeXBlLmgKaW5kZXggZjAyMGUyZTlhMGQ5N2IzZjc0NmU3NzZlNzk3YWQzMTIzMGE5
NWJkNC4uZDUwODVjMzJlYzA2MmFiMDEyMDljMThiODRhZWJlODU2MmFlNWM3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKQEAgLTMyLDE3ICszMiwyMCBAQAogI2RlZmluZSBEYXRl
SW5wdXRUeXBlX2gKIAogI2luY2x1ZGUgIkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEUpCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FsZW5kYXJQaWNrZXJFbGVtZW50OworCiBjbGFz
cyBEYXRlSW5wdXRUeXBlIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxl
bWVudCopOwogCiBwcml2YXRlOgotICAgIERhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCog
ZWxlbWVudCkgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgRGF0
ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0
ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGRvdWJsZSBtaW5pbXVtKCkgY29uc3QgT1ZFUlJJREU7CkBAIC01NCwxMCArNTcsMTQgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRv
dWJsZSwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklERTsKICNpZiBFTkFCTEUoQ0FMRU5E
QVJfUElDS0VSKQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUJsdXJFdmVudCgpIE9WRVJSSURFOwogCiAgICAgLy8gVGV4
dEZpZWxkSW5wdXRUeXBlIGZ1bmN0aW9ucwogICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NvbnRhaW5l
cigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRIYXZlU3BpbkJ1dHRv
bigpIGNvbnN0IE9WRVJSSURFOworCisgICAgUmVmUHRyPENhbGVuZGFyUGlja2VyRWxlbWVudD4g
bV9waWNrZXJFbGVtZW50OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9DYWxlbmRhclBpY2tlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmNwcAppbmRleCA0MWEzZDIwOWQwNDU4
ZjA1ZTY1ZDY2Y2E2ZWM2MWIzYWE4YzVlMTE5Li5jNGNhOTEwYjYzMDViMzgzNjk3YzVkNjQ4NzU5
MmNjNzk0ZjdjZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9DYWxl
bmRhclBpY2tlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Nh
bGVuZGFyUGlja2VyRWxlbWVudC5jcHAKQEAgLTMzLDcgKzMzLDE5IEBACiAKICNpZiBFTkFCTEUo
Q0FMRU5EQVJfUElDS0VSKQogCisjaW5jbHVkZSAiQ2FsZW5kYXJQaWNrZXIuaCIKKyNpbmNsdWRl
ICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJEYXRlQ29t
cG9uZW50cy5oIgorI2luY2x1ZGUgIkRvY3VtZW50V3JpdGVyLmgiCisjaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRl
ICJMb2NhbGl6ZWRDYWxlbmRhci5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRGV0YWlsc01hcmtlci5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC01Niw2ICs2OCwxNjEgQEAgUmVuZGVyT2JqZWN0KiBDYWxlbmRh
clBpY2tlckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVy
U3QKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyRGV0YWlsc01hcmtlcih0aGlzKTsKIH0K
IAoraW5saW5lIEhUTUxJbnB1dEVsZW1lbnQqIENhbGVuZGFyUGlja2VyRWxlbWVudDo6aG9zdElu
cHV0KCkKK3sKKyAgICBBU1NFUlQoc2hhZG93QW5jZXN0b3JOb2RlKCkpOworICAgIEFTU0VSVChz
aGFkb3dBbmNlc3Rvck5vZGUoKS0+aGFzVGFnTmFtZShpbnB1dFRhZykpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpOworfQor
Cit2b2lkIENhbGVuZGFyUGlja2VyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCog
ZXZlbnQpCit7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBob3N0SW5wdXQoKTsKKyAg
ICBpZiAoaW5wdXQtPnJlYWRPbmx5KCkgfHwgaW5wdXQtPmRpc2FibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50
KSB7CisgICAgICAgIG9wZW5Qb3B1cCgpOworICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRs
ZWQoKTsKKyAgICB9CisKKyAgICBpZiAoIWV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQorICAgICAg
ICBIVE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7Cit9CisKK3ZvaWQg
Q2FsZW5kYXJQaWNrZXJFbGVtZW50OjpvcGVuUG9wdXAoKQoreworICAgIGlmIChtX3BvcHVwKQor
ICAgICAgICByZXR1cm47CisgICAgaWYgKCFkb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBDaHJvbWUqIGNocm9tZSA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCk7
CisgICAgaWYgKCFjaHJvbWUpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWRvY3VtZW50KCkt
PnZpZXcoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEludFJlY3QgZWxlbWVudFJlY3RJblJvb3RW
aWV3ID0gZG9jdW1lbnQoKS0+dmlldygpLT5jb250ZW50c1RvUm9vdFZpZXcoaG9zdElucHV0KCkt
PmdldFJlY3QoKSk7CisgICAgbV9wb3B1cCA9IGNocm9tZS0+Y2xpZW50KCktPm9wZW5QYWdlUG9w
dXAodGhpcywgZWxlbWVudFJlY3RJblJvb3RWaWV3KTsKK30KKwordm9pZCBDYWxlbmRhclBpY2tl
ckVsZW1lbnQ6OmNsb3NlUG9wdXAoKQoreworICAgIGlmICghbV9wb3B1cCkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmICghZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgICAgICByZXR1cm47CisgICAg
Q2hyb21lKiBjaHJvbWUgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpOworICAgIGlmICgh
Y2hyb21lKQorICAgICAgICByZXR1cm47CisgICAgY2hyb21lLT5jbGllbnQoKS0+Y2xvc2VQYWdl
UG9wdXAobV9wb3B1cCk7Cit9CisKK3ZvaWQgQ2FsZW5kYXJQaWNrZXJFbGVtZW50OjpkZXRhY2go
KQoreworICAgIGNsb3NlUG9wdXAoKTsKKyAgICBIVE1MRGl2RWxlbWVudDo6ZGV0YWNoKCk7Cit9
CisKK0ludFNpemUgQ2FsZW5kYXJQaWNrZXJFbGVtZW50Ojpjb250ZW50U2l6ZSgpCit7CisgICAg
cmV0dXJuIEludFNpemUoMzIwLCAyNTYpOworfQorCisjZGVmaW5lIGFkZExpdGVyYWwobGl0ZXJh
bCwgd3JpdGVyKSAgICB3cml0ZXIuYWRkRGF0YShsaXRlcmFsLCBzaXplb2YobGl0ZXJhbCkgLSAx
KQorCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyLCBEb2N1
bWVudFdyaXRlciYgd3JpdGVyKQoreworICAgIENTdHJpbmcgc3RyOCA9IHN0ci51dGY4KCk7Cisg
ICAgd3JpdGVyLmFkZERhdGEoc3RyOC5kYXRhKCksIHN0cjgubGVuZ3RoKCkpOworfQorCitzdGF0
aWMgdm9pZCBhZGRKYXZhU2NyaXB0U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyLCBEb2N1bWVudFdy
aXRlciYgd3JpdGVyKQoreworICAgIGFkZExpdGVyYWwoIlwiIiwgd3JpdGVyKTsKKyAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoc3RyLmxlbmd0
aCgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3RyLmxlbmd0aCgpOyArK2kpIHsK
KyAgICAgICAgaWYgKHN0cltpXSA9PSAnXFwnIHx8IHN0cltpXSA9PSAnIicpCisgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RyW2ldKTsK
KyAgICB9CisgICAgYWRkU3RyaW5nKGJ1aWxkZXIudG9TdHJpbmcoKSwgd3JpdGVyKTsKKyAgICBh
ZGRMaXRlcmFsKCJcIiIsIHdyaXRlcik7Cit9CisKK3N0YXRpYyB2b2lkIGFkZFN0cmluZ1Byb3Bl
cnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIERvY3VtZW50V3JpdGVy
JiB3cml0ZXIpCit7CisgICAgYWRkTGl0ZXJhbCgiXCIiLCB3cml0ZXIpOworICAgIHdyaXRlci5h
ZGREYXRhKG5hbWUsIHN0cmxlbihuYW1lKSk7CisgICAgYWRkTGl0ZXJhbCgiXCI6ICIsIHdyaXRl
cik7CisgICAgYWRkSmF2YVNjcmlwdFN0cmluZyh2YWx1ZSwgd3JpdGVyKTsKKyAgICBhZGRMaXRl
cmFsKCIsXG4iLCB3cml0ZXIpOworfQorCit2b2lkIENhbGVuZGFyUGlja2VyRWxlbWVudDo6d3Jp
dGVEb2N1bWVudChEb2N1bWVudFdyaXRlciYgd3JpdGVyKQoreworICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0ID0gaG9zdElucHV0KCk7CisgICAgRGF0ZUNvbXBvbmVudHMgZGF0ZTsKKyAgICBk
YXRlLnNldE1pbGxpc2Vjb25kc1NpbmNlRXBvY2hGb3JEYXRlKGlucHV0LT5taW5pbXVtKCkpOwor
ICAgIFN0cmluZyBtaW5TdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCk7CisgICAgZGF0ZS5zZXRNaWxs
aXNlY29uZHNTaW5jZUVwb2NoRm9yRGF0ZShpbnB1dC0+bWF4aW11bSgpKTsKKyAgICBTdHJpbmcg
bWF4U3RyaW5nID0gZGF0ZS50b1N0cmluZygpOworICAgIGRvdWJsZSBzdGVwOworICAgIFN0cmlu
ZyBzdGVwU3RyaW5nID0gaW5wdXQtPmZhc3RHZXRBdHRyaWJ1dGUoc3RlcEF0dHIpOworICAgIGlm
IChzdGVwU3RyaW5nLmlzRW1wdHkoKSB8fCAhaW5wdXQtPmdldEFsbG93ZWRWYWx1ZVN0ZXAoJnN0
ZXApKQorICAgICAgICBzdGVwU3RyaW5nID0gIjEiOworICAgIFN0cmluZ0J1aWxkZXIgc291cmNl
OworICAgIGFkZExpdGVyYWwoIjwhRE9DVFlQRSBodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9J1VU
Ri04Jz48c3R5bGU+XG4iLCB3cml0ZXIpOworICAgIHdyaXRlci5hZGREYXRhKGNhbGVuZGFyUGlj
a2VyQ3NzLCBzaXplb2YoY2FsZW5kYXJQaWNrZXJDc3MpKTsKKyAgICBhZGRMaXRlcmFsKCI8L3N0
eWxlPjwvaGVhZD48Ym9keT48ZGl2IGlkPW1haW4+TG9hZGluZy4uLjwvZGl2PjxzY3JpcHQ+XG4i
CisgICAgICAgICAgICAgICAid2luZG93LmRpYWxvZ0FyZ3VtZW50cyA9IHtcbiIsIHdyaXRlcik7
CisgICAgYWRkU3RyaW5nUHJvcGVydHkoIm1pbiIsIG1pblN0cmluZywgd3JpdGVyKTsKKyAgICBh
ZGRTdHJpbmdQcm9wZXJ0eSgibWF4IiwgbWF4U3RyaW5nLCB3cml0ZXIpOworICAgIGFkZFN0cmlu
Z1Byb3BlcnR5KCJzdGVwIiwgc3RlcFN0cmluZywgd3JpdGVyKTsKKyAgICBpZiAoaW5wdXQtPnJl
cXVpcmVkKCkpCisgICAgICAgIGFkZExpdGVyYWwoIlwicmVxdWlyZWRcIjogdHJ1ZSxcbiIsIHdy
aXRlcik7CisgICAgZWxzZQorICAgICAgICBhZGRMaXRlcmFsKCJcInJlcXVpcmVkXCI6IGZhbHNl
LFxuIiwgd3JpdGVyKTsKKyAgICBhZGRTdHJpbmdQcm9wZXJ0eSgiY3VycmVudFZhbHVlIiwgaW5w
dXQtPnZhbHVlKCksIHdyaXRlcik7CisKKyAgICBhZGRTdHJpbmdQcm9wZXJ0eSgibG9jYWxlIiwg
ZGVmYXVsdExhbmd1YWdlKCksIHdyaXRlcik7CisgICAgYWRkU3RyaW5nUHJvcGVydHkoInRvZGF5
TGFiZWwiLCBjYWxlbmRhclRvZGF5VGV4dCgpLCB3cml0ZXIpOworICAgIGFkZFN0cmluZ1Byb3Bl
cnR5KCJjbGVhckxhYmVsIiwgY2FsZW5kYXJDbGVhclRleHQoKSwgd3JpdGVyKTsKKyAgICBhZGRM
aXRlcmFsKCJcIndlZWtTdGFydERheVwiOiAiLCB3cml0ZXIpOworICAgIGFkZFN0cmluZyhTdHJp
bmc6Om51bWJlcihmaXJzdERheU9mV2VlaygpKSwgd3JpdGVyKTsKKyAgICBhZGRMaXRlcmFsKCIs
XG4iLCB3cml0ZXIpOworICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtb250aHMgPSBtb250aExh
YmVscygpOworICAgIGFkZExpdGVyYWwoIlwibW9udGhMYWJlbHNcIiA6WyIsIHdyaXRlcik7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1vbnRocy5zaXplKCk7ICsraSkgeworICAgICAg
ICBhZGRKYXZhU2NyaXB0U3RyaW5nKG1vbnRoc1tpXSwgd3JpdGVyKTsKKyAgICAgICAgYWRkTGl0
ZXJhbCgiLCIsIHdyaXRlcik7CisgICAgfQorICAgIGFkZExpdGVyYWwoIl0sXG4iLCB3cml0ZXIp
OworICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB3ZWVrRGF5cyA9IHdlZWtEYXlTaG9ydExhYmVs
cygpOworICAgIGFkZExpdGVyYWwoIlwiZGF5TGFiZWxzXCIgOlsiLCB3cml0ZXIpOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCB3ZWVrRGF5cy5zaXplKCk7ICsraSkgeworICAgICAgICBh
ZGRKYXZhU2NyaXB0U3RyaW5nKHdlZWtEYXlzW2ldLCB3cml0ZXIpOworICAgICAgICBhZGRMaXRl
cmFsKCIsIiwgd3JpdGVyKTsKKyAgICB9CisgICAgYWRkTGl0ZXJhbCgiXSxcbiIsIHdyaXRlcik7
CisgICAgYWRkTGl0ZXJhbCgifVxuIiwgd3JpdGVyKTsKKyAgICB3cml0ZXIuYWRkRGF0YShjYWxl
bmRhclBpY2tlckpzLCBzaXplb2YoY2FsZW5kYXJQaWNrZXJKcykpOworICAgIGFkZExpdGVyYWwo
Ijwvc2NyaXB0PjwvYm9keT5cbiIsIHdyaXRlcik7Cit9CisKK3ZvaWQgQ2FsZW5kYXJQaWNrZXJF
bGVtZW50OjpzZXRWYWx1ZUFuZENsb3NlUG9wdXAoaW50IG51bVZhbHVlLCBjb25zdCBTdHJpbmcm
IHN0cmluZ1ZhbHVlKQoreworICAgIEFTU0VSVChtX3BvcHVwKTsKKyAgICBjbG9zZVBvcHVwKCk7
CisgICAgaWYgKG51bVZhbHVlID49IDApCisgICAgICAgIGhvc3RJbnB1dCgpLT5zZXRWYWx1ZShz
dHJpbmdWYWx1ZSwgRGlzcGF0Y2hDaGFuZ2VFdmVudCk7Cit9CisKK3ZvaWQgQ2FsZW5kYXJQaWNr
ZXJFbGVtZW50OjpkaWRDbG9zZVBvcHVwKCkKK3sKKyAgICBtX3BvcHVwID0gMDsKK30KKwogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbGVuZGFy
UGlja2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNr
ZXJFbGVtZW50LmgKaW5kZXggNTFjOWI4ZmFiZjVjZjg2NDhhNzk3YmI0NDZlYzhiNmExZjhiOWQ1
Ni4uZWI0MDY0NTZlNTI2ZjEwODQ0YTMxMzRlOTRjNTgzYjQ5NzBmZTU4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmgKQEAgLTMx
LDE5ICszMSwzOCBAQAogI2lmbmRlZiBDYWxlbmRhclBpY2tlckVsZW1lbnRfaAogI2RlZmluZSBD
YWxlbmRhclBpY2tlckVsZW1lbnRfaAogCisjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKICNp
bmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIlBhZ2VQb3B1cENsaWVudC5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENhbGVuZGFyUGlja2VyRWxlbWVudCA6IHB1
YmxpYyBIVE1MRGl2RWxlbWVudCB7CitjbGFzcyBIVE1MSW5wdXRFbGVtZW50OworY2xhc3MgUGFn
ZVBvcHVwOworCitjbGFzcyBDYWxlbmRhclBpY2tlckVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVs
ZW1lbnQsIHB1YmxpYyBQYWdlUG9wdXBDbGllbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENhbGVuZGFyUGlja2VyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgdm9p
ZCBjbG9zZVBvcHVwKCk7CiAKIHByaXZhdGU6CiAgICAgQ2FsZW5kYXJQaWNrZXJFbGVtZW50KERv
Y3VtZW50Kik7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBPVkVSUklERTsKLSAgICAvLyBGSVhNRTogYWRkIGNsaWNr
IGhhbmRsaW5nLgorICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpIE9WRVJSSURFOworCisgICAgLy8g
UGFnZVBvcHVwQ2xpZW50IGZ1bmN0aW9uczoKKyAgICB2aXJ0dWFsIEludFNpemUgY29udGVudFNp
emUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGVEb2N1bWVudChEb2N1bWVudFdy
aXRlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFuZENsb3NlUG9wdXAo
aW50LCBjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2VQ
b3B1cCgpIE9WRVJSSURFOworCisgICAgSFRNTElucHV0RWxlbWVudCogaG9zdElucHV0KCk7Cisg
ICAgdm9pZCBvcGVuUG9wdXAoKTsKKworICAgIFBhZ2VQb3B1cCogbV9wb3B1cDsKIH07CiAKIH0K
ICNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0xvY2FsaXplZENhbGVuZGFySUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxpemVkQ2FsZW5kYXJJQ1UuY3BwCmluZGV4IGRhMGE5MTRmMGI0MzkyMTk1MjNhMjI1ZWY1
YmFlODUyYWNiYTZkM2IuLjQ1M2E5Y2E1YjU2YTQwYTIxOWM4OGQzNDcyNDA5YTEzMTg5MDAyZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2FsZW5k
YXJJQ1UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2Fs
ZW5kYXJJQ1UuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgc3RhdGljIHVuc2lnbmVkIGdldEZpcnN0
RGF5T2ZXZWVrKCkKICAgICBTY29wZWREYXRlRm9ybWF0IGRhdGVGb3JtYXQ7CiAgICAgaWYgKCFk
YXRlRm9ybWF0LmdldCgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICB1bnNpZ25lZCBmaXJzdERh
eSA9IHVjYWxfZ2V0QXR0cmlidXRlKHVkYXRfZ2V0Q2FsZW5kYXIoZGF0ZUZvcm1hdC5nZXQoKSks
IFVDQUxfRklSU1RfREFZX09GX1dFRUspOworICAgIHVuc2lnbmVkIGZpcnN0RGF5ID0gdWNhbF9n
ZXRBdHRyaWJ1dGUodWRhdF9nZXRDYWxlbmRhcihkYXRlRm9ybWF0LmdldCgpKSwgVUNBTF9GSVJT
VF9EQVlfT0ZfV0VFSykgLSBVQ0FMX1NVTkRBWTsKICAgICByZXR1cm4gZmlyc3REYXk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCBiNDgwZTQ2MjJiOTkwMmEzNzAx
MTVhMjNhMTM2YTA4ZDk0NWM3MDVkLi4zY2NhZmViMjVmOGRkNmExN2RhOTM0YTM3ZWFkMDQxMzhk
MGVhMTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC0xMzAsMTEgKzEz
MCwxMyBAQAogICAgICAgWydPUz09ImFuZHJvaWQiJywgewogICAgICAgICAnZmVhdHVyZV9kZWZp
bmVzJzogWwogICAgICAgICAgICdFTkFCTEVfQ0FMRU5EQVJfUElDS0VSPTAnLAorICAgICAgICAg
ICdFTkFCTEVfUEFHRV9QT1BVUD0wJywKICAgICAgICAgICAnRU5BQkxFX1dFQl9BVURJTz0wJywK
ICAgICAgICAgXSwKICAgICAgIH0sIHsKICAgICAgICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsKICAg
ICAgICAgICAnRU5BQkxFX0NBTEVOREFSX1BJQ0tFUj0xJywKKyAgICAgICAgICAnRU5BQkxFX1BB
R0VfUE9QVVA9MScsCiAgICAgICAgICAgJ0VOQUJMRV9XRUJfQVVESU89MScsCiAgICAgICAgIF0s
CiAgICAgICB9XSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAKaW5kZXggZjc2YjM2NjlmZjRjMjZmOWFiYzYyY2QyNWM4OTg1N2YxNzQ3YmUxZC4u
ZmM2NzRhMTBmOTNlNGU3MzRmYzI3ZmVkMjRiYjA3ZDMyMTBhZTUyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTk4OCw2ICs5ODgs
MTkgQEAgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZUNsaWVudEltcGw6OmNyZWF0
ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGkKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNl
YXJjaFBvcHVwTWVudUNocm9taXVtKGNsaWVudCkpOwogfQogCisjaWYgRU5BQkxFKFBBR0VfUE9Q
VVApCitQYWdlUG9wdXAqIENocm9tZUNsaWVudEltcGw6Om9wZW5QYWdlUG9wdXAoUGFnZVBvcHVw
Q2xpZW50KiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgLy8gRklYTUU6IEltcGVsZW1lbnQgdGhp
cy4KKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjbG9zZVBhZ2VQ
b3B1cChQYWdlUG9wdXAqKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKyNl
bmRpZgorCiBib29sIENocm9tZUNsaWVudEltcGw6OndpbGxBZGRUZXh0RmllbGREZWNvcmF0aW9u
c1RvKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KQogewogICAgIEFTU0VSVChpbnB1dCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggNjI2MGE5
N2RkM2Q3ZGU3YThkMTJhYjA2MTAyOWVmNzYwZDA3YjMxMy4uNTg5NDE3N2UwMTIxZDE4ZDVlMzc0
OWJiZDI2YjE4ZjI2OWRhOGU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuaApAQCAtMTk1LDYgKzE5NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKKyNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
OlBhZ2VQb3B1cCogb3BlblBhZ2VQb3B1cChXZWJDb3JlOjpQYWdlUG9wdXBDbGllbnQqLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlUGFn
ZVBvcHVwKFdlYkNvcmU6OlBhZ2VQb3B1cCopIE9WRVJSSURFOworI2VuZGlmCiAgICAgdmlydHVh
bCBib29sIHdpbGxBZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkVGV4dEZpZWxkRGVjb3JhdGlv
bnNUbyhXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KikgT1ZFUlJJREU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135810</attachid>
            <date>2012-04-05 05:38:18 -0700</date>
            <delta_ts>2012-04-05 05:48:31 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-83258-20120405213815.patch</filename>
            <type>text/plain</type>
            <size>19761</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVhMGM0YzhkNWE0YWQx
NjVkM2QwNzQ2YzE0Y2QzN2JjMGE2NmFlOC4uYTIzZWIwOTQ0Mjk2MTc3YzI2YTZkMTViYzhmMDJj
MmQ0NzUzNWQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEyLTA0LTA1ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBDYWxlbmRhciBQaWNrZXI6
IEFkZCBjb2RlIHRvIG9wZW4vY2xvc2UgdGhlIGNhbGVuZGFyIHBpY2tlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMyNTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgY29k
ZSBpcyBub3QgdXNlZCBiZWNhdXNlIG9mIG5vIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZCBleGlzdGluZyBoZWFkZXIgZmlsZXMuCisKKyAgICAg
ICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0
VHlwZTo6RGF0ZUlucHV0VHlwZSk6CisgICAgICAgIE1vdmVkIGZyb20gRGF0ZUlucHV0VHlwZS5o
IGJlY2F1c2UgdGhlIGNvbnN0cnVjdG9yIGRlcGVuZHMgb24KKyAgICAgICAgQ2FsZW5kYXJQaWNr
ZXJFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgIFN0b3JlIGEgQ2FsZW5kYXJQaWNrZXJFbGVtZW50IG9iamVjdC4K
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKToK
KyAgICAgICAgUmVsZWFzZSB0aGUgQ2FsZW5kYXJQaWNrZXJFbGVtZW50IG9iamVjdC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmhhbmRsZUJsdXJFdmVudCk6CisgICAgICAgIENs
b3NlIHRoZSBjYWxlbmRhciBwaWNrZXIgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuCisgICAg
ICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmg6CisgICAgICAgIChEYXRlSW5wdXRUeXBlKToKKyAg
ICAgICAgLSBNb3ZlIHRoZSBjb25zdHJ1Y3RvciBkZWZpbml0aW9uIHRvIERhdGVJbnB1dFR5cGUu
Y3BwCisgICAgICAgIC0gQWRkIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucworICAgICAgICAtIEFkZCBt
X3BpY2tlckVsZW1lbnQgZGF0YSBtZW1iZXIuCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9DYWxl
bmRhclBpY2tlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJF
bGVtZW50Ojpob3N0SW5wdXQpOiBBIGhlbHBlciB0byBnZXQgdGhlIGhvc3QgPGlucHV0Pi4KKyAg
ICAgICAgKFdlYkNvcmU6OkNhbGVuZGFyUGlja2VyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cik6CisgICAgICAgIElmIHRoZSBlbGVtZW50IGlzIGNsaWNrZWQsIG9wZW4gYSBjYWxlbmRhciBw
aWNrZXIuCisgICAgICAgIChXZWJDb3JlOjpDYWxlbmRhclBpY2tlckVsZW1lbnQ6Om9wZW5Qb3B1
cCk6CisgICAgICAgIE9wZW5zIGEgY2FsZW5kYXIgcGlja2VyIGJ5IENocm9tZUNsaWVudDo6b3Bl
blBhZ2VQb3B1cCgpLgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJFbGVtZW50Ojpj
bG9zZVBvcHVwKToKKyAgICAgICAgQ2xvc2VzIGEgY2FsZW5kYXIgcGlja2VyIGJ5IENocm9tZUNs
aWVudDo6Y2xvc2VQYWdlUG9wdXAoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNhbGVuZGFyUGlja2Vy
RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgQ2xvc2VzIGEgY2FsZW5kYXIgcGlja2VyIHdoZW4g
dGhlIGVsZW1lbnQgbG9zZXMgYSByZW5kZXJlci4KKworICAgICAgICAoV2ViQ29yZTo6Q2FsZW5k
YXJQaWNrZXJFbGVtZW50Ojpjb250ZW50U2l6ZSk6CisgICAgICAgIFByb3ZpZGVzIHRoZSBpbml0
aWFsIHNpemUgb2YgYSBwb3B1cC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFN0cmluZyk6IEEgaGVs
cGVyIGZvciB3cml0ZURvY3VtZW50KCkuCisgICAgICAgIChXZWJDb3JlOjphZGRKYXZhU2NyaXB0
U3RyaW5nKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjphZGRTdHJpbmdQcm9wZXJ0eSk6IGRp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJFbGVtZW50Ojp3cml0ZURvY3Vt
ZW50KToKKyAgICAgICAgUHJvdmlkZXMgdGhlIHNvdXJjZSBvZiBhIHBvcHVwLiBUaGUgZnVuY3Rp
b24gY3JlYXRlcyBhIGNvbXBsZXRlIEhUTUwgd2l0aDoKKyAgICAgICAgLSBXZWJDb3JlL1Jlc291
cmNlcy9jYWxlbmRhclBpY2tlci5jc3MKKyAgICAgICAgLSBXZWJDb3JlL1Jlc291cmNlcy9jYWxl
bmRhclBpY2tlci5qcworICAgICAgICAtIEFuIG9iamVjdCB0byBwYXNzIGxvY2FsaXphdGlvbiBz
dHJpbmdzIGFuZCA8aW5wdXQ+IHN0YXRlCisgICAgICAgIChXZWJDb3JlOjpDYWxlbmRhclBpY2tl
ckVsZW1lbnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cCk6CisgICAgICAgIFNldHMgdGhlIHZhbHVl
IGZyb20gYSBjYWxlbmRhciBwaWNrZXIgdG8gdGhlIDxpbnB1dD4uCisgICAgICAgIChXZWJDb3Jl
OjpDYWxlbmRhclBpY2tlckVsZW1lbnQ6OmRpZENsb3NlUG9wdXApOgorICAgICAgICBDbGVhciB0
aGUgcG9wdXAgb2JqZWN0LgorICAgICAgICAqIGh0bWwvc2hhZG93L0NhbGVuZGFyUGlja2VyRWxl
bWVudC5oOgorICAgICAgICAoQ2FsZW5kYXJQaWNrZXJFbGVtZW50KTogQWRkIGRlY2xhcmF0aW9u
cy4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2FsZW5kYXJJQ1UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0Rmlyc3REYXlPZldlZWspOiBNYWtlIHN1cmUgdGhpcyBpcyAw
LWJhc2UuIFVDQUxfU1VOREFZIGlzIDEuCisKKzIwMTItMDQtMDUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGFiaWxp
dHkgdG8gY29weSByZXNvdXJjZSBVUkwgZnJvbSB3ZWIgaW5zcGVjdG9yJ3MgcmVzb3VyY2VzIHBh
Z2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzE3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCisKKyAgICAgICAgQWRk
ZWQgcmVxdWVzdGVkIGNvbnRleHQgbWVudSBpdGVtLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVJl
c291cmNlVHJlZUVsZW1lbnQucHJvdG90eXBlLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKwog
MjAxMi0wNC0wNCAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgZnJhbWUgZHVyYXRpb24gaW5zdGVhZCBvZiB0aW1l
IHJ1bGVyIGluIFRpbWVsaW5lIHBhbmVsJ3MgZnJhbWUgbW9kZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCBmYWRmNzc2ZjYxMTY0ZTFmNzI1MTczMDg4ZjhiODllY2M4YzM0MTY0Li43Yzlh
ZTZlOGRlYTZmYmRlNDVhMjE5YjczYzM4ODQ3M2YwMDE5NzFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA0LTA1ICBLZW50IFRhbXVyYSAgPHRrZW50
QGNocm9taXVtLm9yZz4KKworICAgICAgICBDYWxlbmRhciBQaWNrZXI6IEFkZCBjb2RlIHRvIG9w
ZW4vY2xvc2UgdGhlIGNhbGVuZGFyIHBpY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMyNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6IEVuYWJsZSBFTkFCTEVfUEFHRV9Q
T1BVUCBmb3Igbm9uLUFuZHJvaWQKKyAgICAgICAgcGxhdGZvcm1zLiBUaGlzIGlzIG5lZWRlZCBi
ZWNhdXNlIEVOQUJMRV9DQUxFTkRBUl9QSUNLRVIgbm93IGRlcGVuZHMgb24KKyAgICAgICAgRU5B
QkxFX1BBR0VfUE9QVVAuCisgICAgICAgICogc3JjL0Nocm9lbUNsaWVudEltcGwuY3BwOiBBZGQg
c3R1YnMuCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om9wZW5QYWdlUG9wdXAp
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpjbG9zZVBhZ2VQb3B1cCk6Cisg
ICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDogQWRkIGRlY2xhcmF0aW9ucyBvZiBvcGVu
UGFnZVBvcHVwKCkgYW5kIGNsb3NlUGFnZVBvcHVwKCkuCisKIDIwMTItMDQtMDUgIEhhbnMgV2Vu
bmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KIAogICAgICAgICB3ZWJraXRfdW5pdF90ZXN0cyBi
dWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDg1ZmZiNzYzMjVjYzZkZjRhZDc3YzUyNDk0
YTg2YWQ3NmYzNjljZi4uNzc1YjY5MTE2OWRiMWVjMGU4ZmMxNGRmMzE0YzEyODIxNjczNjRhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjM3LDYgKzIzNyw4IEBACiAgICAgICAgICAgICAncGFnZS9N
ZW1vcnlJbmZvLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZS5oJywKICAgICAgICAgICAgICdw
YWdlL1BhZ2VHcm91cC5oJywKKyAgICAgICAgICAgICdwYWdlL1BhZ2VQb3B1cC5oJywKKyAgICAg
ICAgICAgICdwYWdlL1BhZ2VQb3B1cENsaWVudC5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VT
ZXJpYWxpemVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oJywK
ICAgICAgICAgICAgICdwYWdlL1ByaW50Q29udGV4dC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJ
bnB1dFR5cGUuY3BwCmluZGV4IDI0YmRkOGJhMTVkMzIwMDAxNDJmZDhmYjM5YzE5ZmY3YTBiNGQy
M2EuLmE4MmYwYTkyMzJkNGU5NDhiZGMxNTExZDcxMDY4MjQ5OTE0Y2UzYTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcApAQCAtNDYsNiArNDYsMTEgQEAgdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIHN0YXRpYyBjb25zdCBkb3VibGUgZGF0ZURlZmF1bHRTdGVwID0gMS4w
Owogc3RhdGljIGNvbnN0IGRvdWJsZSBkYXRlU3RlcFNjYWxlRmFjdG9yID0gODY0MDAwMDAuMDsK
IAoraW5saW5lIERhdGVJbnB1dFR5cGU6OkRhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCog
ZWxlbWVudCkKKyAgICA6IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50KQoreworfQor
CiBQYXNzT3duUHRyPElucHV0VHlwZT4gRGF0ZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRlSW5wdXRUeXBl
KGVsZW1lbnQpKTsKQEAgLTEwMyw3ICsxMDgsMTQgQEAgYm9vbCBEYXRlSW5wdXRUeXBlOjpzZXRN
aWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlIHZhbHVlLCBEYXRlQ29tcG9uZW50cyoK
IHZvaWQgRGF0ZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7CiAgICAgQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7Ci0gICAgY29udGFpbmVy
RWxlbWVudCgpLT5pbnNlcnRCZWZvcmUoQ2FsZW5kYXJQaWNrZXJFbGVtZW50OjpjcmVhdGUoZWxl
bWVudCgpLT5kb2N1bWVudCgpKSwgaW5uZXJCbG9ja0VsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9waWNrZXJFbGVtZW50ID0gQ2FsZW5kYXJQaWNr
ZXJFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTsKKyAgICBjb250YWluZXJF
bGVtZW50KCktPmluc2VydEJlZm9yZShtX3BpY2tlckVsZW1lbnQuZ2V0KCksIGlubmVyQmxvY2tF
bGVtZW50KCktPm5leHRTaWJsaW5nKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworfQorCit2b2lk
IERhdGVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKK3sKKyAgICBUZXh0RmllbGRJ
bnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7CisgICAgbV9waWNrZXJFbGVtZW50LmNs
ZWFyKCk7CiB9CiAKIGJvb2wgRGF0ZUlucHV0VHlwZTo6bmVlZHNDb250YWluZXIoKSBjb25zdApA
QCAtMTE1LDYgKzEyNywxMiBAQCBib29sIERhdGVJbnB1dFR5cGU6OnNob3VsZEhhdmVTcGluQnV0
dG9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CisKK3ZvaWQgRGF0ZUlucHV0VHlw
ZTo6aGFuZGxlQmx1ckV2ZW50KCkKK3sKKyAgICBpZiAobV9waWNrZXJFbGVtZW50KQorICAgICAg
ICBtX3BpY2tlckVsZW1lbnQtPmNsb3NlUG9wdXAoKTsKK30KICNlbmRpZiAvLyBFTkFCTEUoQ0FM
RU5EQVJfUElDS0VSKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZUlucHV0VHlwZS5oCmluZGV4IGYwMjBlMmU5YTBkOTdiM2Y3NDZlNzc2ZTc5N2FkMzEyMzBhOTVi
ZDQuLmQ1MDg1YzMyZWMwNjJhYjAxMjA5YzE4Yjg0YWViZTg1NjJhZTVjNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZUlucHV0VHlwZS5oCkBAIC0zMiwxNyArMzIsMjAgQEAKICNkZWZpbmUgRGF0ZUlu
cHV0VHlwZV9oCiAKICNpbmNsdWRlICJCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCIKKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKQogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENhbGVuZGFyUGlja2VyRWxlbWVudDsKKwogY2xhc3Mg
RGF0ZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1l
bnQqKTsKIAogcHJpdmF0ZToKLSAgICBEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVs
ZW1lbnQpIDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIERhdGVJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCopOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIERhdGVD
b21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBk
b3VibGUgbWluaW11bSgpIGNvbnN0IE9WRVJSSURFOwpAQCAtNTQsMTAgKzU3LDE0IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3Vi
bGUsIERhdGVDb21wb25lbnRzKikgY29uc3QgT1ZFUlJJREU7CiAjaWYgRU5BQkxFKENBTEVOREFS
X1BJQ0tFUikKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U2hhZG93U3VidHJlZSgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVCbHVyRXZlbnQoKSBPVkVSUklERTsKIAogICAgIC8vIFRleHRG
aWVsZElucHV0VHlwZSBmdW5jdGlvbnMKICAgICB2aXJ0dWFsIGJvb2wgbmVlZHNDb250YWluZXIo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGF2ZVNwaW5CdXR0b24o
KSBjb25zdCBPVkVSUklERTsKKworICAgIFJlZlB0cjxDYWxlbmRhclBpY2tlckVsZW1lbnQ+IG1f
cGlja2VyRWxlbWVudDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0NhbGVuZGFyUGlja2VyRWxlbWVudC5jcHAKaW5kZXggNDFhM2QyMDlkMDQ1OGYw
NWU2NWQ2NmNhNmVjNjFiM2FhOGM1ZTExOS4uODVmYjc0Zjc4YWQ3NDZlMzI4ZjI0OTliOGQ1N2Ex
MzdjOGY5ZGJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5k
YXJQaWNrZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9DYWxl
bmRhclBpY2tlckVsZW1lbnQuY3BwCkBAIC0zMyw4ICszMywyMSBAQAogCiAjaWYgRU5BQkxFKENB
TEVOREFSX1BJQ0tFUikKIAorI2luY2x1ZGUgIkNhbGVuZGFyUGlja2VyLmgiCisjaW5jbHVkZSAi
Q2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiRGF0ZUNvbXBv
bmVudHMuaCIKKyNpbmNsdWRlICJEb2N1bWVudFdyaXRlci5oIgorI2luY2x1ZGUgIkV2ZW50Lmgi
CisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5jbHVkZSAi
TG9jYWxpemVkQ2FsZW5kYXIuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckRldGFpbHNNYXJrZXIuaCIKKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NTYsNiArNjksMTYxIEBAIFJlbmRlck9iamVjdCogQ2FsZW5kYXJQaWNrZXJFbGVtZW50OjpjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0CiAgICAgcmV0dXJuIG5ldyAo
YXJlbmEpIFJlbmRlckRldGFpbHNNYXJrZXIodGhpcyk7CiB9CiAKK2lubGluZSBIVE1MSW5wdXRF
bGVtZW50KiBDYWxlbmRhclBpY2tlckVsZW1lbnQ6Omhvc3RJbnB1dCgpCit7CisgICAgQVNTRVJU
KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKKyAgICBBU1NFUlQoc2hhZG93QW5jZXN0b3JOb2RlKCkt
Pmhhc1RhZ05hbWUoaW5wdXRUYWcpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0
RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKK30KKwordm9pZCBDYWxlbmRhclBpY2tl
ckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQoreworICAgIEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0ID0gaG9zdElucHV0KCk7CisgICAgaWYgKGlucHV0LT5yZWFkT25s
eSgpIHx8IGlucHV0LT5kaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCkgeworICAgICAgICBvcGVuUG9w
dXAoKTsKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgfQorCisgICAg
aWYgKCFldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKKyAgICAgICAgSFRNTERpdkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworfQorCit2b2lkIENhbGVuZGFyUGlja2VyRWxlbWVu
dDo6b3BlblBvcHVwKCkKK3sKKyAgICBpZiAobV9wb3B1cCkKKyAgICAgICAgcmV0dXJuOworICAg
IGlmICghZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgICAgICByZXR1cm47CisgICAgQ2hyb21lKiBj
aHJvbWUgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpOworICAgIGlmICghY2hyb21lKQor
ICAgICAgICByZXR1cm47CisgICAgaWYgKCFkb2N1bWVudCgpLT52aWV3KCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBJbnRSZWN0IGVsZW1lbnRSZWN0SW5Sb290VmlldyA9IGRvY3VtZW50KCktPnZp
ZXcoKS0+Y29udGVudHNUb1Jvb3RWaWV3KGhvc3RJbnB1dCgpLT5nZXRSZWN0KCkpOworICAgIG1f
cG9wdXAgPSBjaHJvbWUtPmNsaWVudCgpLT5vcGVuUGFnZVBvcHVwKHRoaXMsIGVsZW1lbnRSZWN0
SW5Sb290Vmlldyk7Cit9CisKK3ZvaWQgQ2FsZW5kYXJQaWNrZXJFbGVtZW50OjpjbG9zZVBvcHVw
KCkKK3sKKyAgICBpZiAoIW1fcG9wdXApCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWRvY3Vt
ZW50KCktPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworICAgIENocm9tZSogY2hyb21lID0gZG9j
dW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKTsKKyAgICBpZiAoIWNocm9tZSkKKyAgICAgICAgcmV0
dXJuOworICAgIGNocm9tZS0+Y2xpZW50KCktPmNsb3NlUGFnZVBvcHVwKG1fcG9wdXApOworfQor
Cit2b2lkIENhbGVuZGFyUGlja2VyRWxlbWVudDo6ZGV0YWNoKCkKK3sKKyAgICBjbG9zZVBvcHVw
KCk7CisgICAgSFRNTERpdkVsZW1lbnQ6OmRldGFjaCgpOworfQorCitJbnRTaXplIENhbGVuZGFy
UGlja2VyRWxlbWVudDo6Y29udGVudFNpemUoKQoreworICAgIHJldHVybiBJbnRTaXplKDMyMCwg
MjU2KTsKK30KKworI2RlZmluZSBhZGRMaXRlcmFsKGxpdGVyYWwsIHdyaXRlcikgICAgd3JpdGVy
LmFkZERhdGEobGl0ZXJhbCwgc2l6ZW9mKGxpdGVyYWwpIC0gMSkKKworc3RhdGljIGlubGluZSB2
b2lkIGFkZFN0cmluZyhjb25zdCBTdHJpbmcmIHN0ciwgRG9jdW1lbnRXcml0ZXImIHdyaXRlcikK
K3sKKyAgICBDU3RyaW5nIHN0cjggPSBzdHIudXRmOCgpOworICAgIHdyaXRlci5hZGREYXRhKHN0
cjguZGF0YSgpLCBzdHI4Lmxlbmd0aCgpKTsKK30KKworc3RhdGljIHZvaWQgYWRkSmF2YVNjcmlw
dFN0cmluZyhjb25zdCBTdHJpbmcmIHN0ciwgRG9jdW1lbnRXcml0ZXImIHdyaXRlcikKK3sKKyAg
ICBhZGRMaXRlcmFsKCJcIiIsIHdyaXRlcik7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwor
ICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KHN0ci5sZW5ndGgoKSk7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHN0ci5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIGlmIChzdHJbaV0g
PT0gJ1xcJyB8fCBzdHJbaV0gPT0gJyInKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xc
Jyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0cltpXSk7CisgICAgfQorICAgIGFkZFN0cmlu
ZyhidWlsZGVyLnRvU3RyaW5nKCksIHdyaXRlcik7CisgICAgYWRkTGl0ZXJhbCgiXCIiLCB3cml0
ZXIpOworfQorCitzdGF0aWMgdm9pZCBhZGRTdHJpbmdQcm9wZXJ0eShjb25zdCBjaGFyKiBuYW1l
LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBEb2N1bWVudFdyaXRlciYgd3JpdGVyKQoreworICAgIGFk
ZExpdGVyYWwoIlwiIiwgd3JpdGVyKTsKKyAgICB3cml0ZXIuYWRkRGF0YShuYW1lLCBzdHJsZW4o
bmFtZSkpOworICAgIGFkZExpdGVyYWwoIlwiOiAiLCB3cml0ZXIpOworICAgIGFkZEphdmFTY3Jp
cHRTdHJpbmcodmFsdWUsIHdyaXRlcik7CisgICAgYWRkTGl0ZXJhbCgiLFxuIiwgd3JpdGVyKTsK
K30KKwordm9pZCBDYWxlbmRhclBpY2tlckVsZW1lbnQ6OndyaXRlRG9jdW1lbnQoRG9jdW1lbnRX
cml0ZXImIHdyaXRlcikKK3sKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IGhvc3RJbnB1
dCgpOworICAgIERhdGVDb21wb25lbnRzIGRhdGU7CisgICAgZGF0ZS5zZXRNaWxsaXNlY29uZHNT
aW5jZUVwb2NoRm9yRGF0ZShpbnB1dC0+bWluaW11bSgpKTsKKyAgICBTdHJpbmcgbWluU3RyaW5n
ID0gZGF0ZS50b1N0cmluZygpOworICAgIGRhdGUuc2V0TWlsbGlzZWNvbmRzU2luY2VFcG9jaEZv
ckRhdGUoaW5wdXQtPm1heGltdW0oKSk7CisgICAgU3RyaW5nIG1heFN0cmluZyA9IGRhdGUudG9T
dHJpbmcoKTsKKyAgICBkb3VibGUgc3RlcDsKKyAgICBTdHJpbmcgc3RlcFN0cmluZyA9IGlucHV0
LT5mYXN0R2V0QXR0cmlidXRlKHN0ZXBBdHRyKTsKKyAgICBpZiAoc3RlcFN0cmluZy5pc0VtcHR5
KCkgfHwgIWlucHV0LT5nZXRBbGxvd2VkVmFsdWVTdGVwKCZzdGVwKSkKKyAgICAgICAgc3RlcFN0
cmluZyA9ICIxIjsKKyAgICBTdHJpbmdCdWlsZGVyIHNvdXJjZTsKKyAgICBhZGRMaXRlcmFsKCI8
IURPQ1RZUEUgaHRtbD48aGVhZD48bWV0YSBjaGFyc2V0PSdVVEYtOCc+PHN0eWxlPlxuIiwgd3Jp
dGVyKTsKKyAgICB3cml0ZXIuYWRkRGF0YShjYWxlbmRhclBpY2tlckNzcywgc2l6ZW9mKGNhbGVu
ZGFyUGlja2VyQ3NzKSk7CisgICAgYWRkTGl0ZXJhbCgiPC9zdHlsZT48L2hlYWQ+PGJvZHk+PGRp
diBpZD1tYWluPkxvYWRpbmcuLi48L2Rpdj48c2NyaXB0PlxuIgorICAgICAgICAgICAgICAgIndp
bmRvdy5kaWFsb2dBcmd1bWVudHMgPSB7XG4iLCB3cml0ZXIpOworICAgIGFkZFN0cmluZ1Byb3Bl
cnR5KCJtaW4iLCBtaW5TdHJpbmcsIHdyaXRlcik7CisgICAgYWRkU3RyaW5nUHJvcGVydHkoIm1h
eCIsIG1heFN0cmluZywgd3JpdGVyKTsKKyAgICBhZGRTdHJpbmdQcm9wZXJ0eSgic3RlcCIsIHN0
ZXBTdHJpbmcsIHdyaXRlcik7CisgICAgaWYgKGlucHV0LT5yZXF1aXJlZCgpKQorICAgICAgICBh
ZGRMaXRlcmFsKCJcInJlcXVpcmVkXCI6IHRydWUsXG4iLCB3cml0ZXIpOworICAgIGVsc2UKKyAg
ICAgICAgYWRkTGl0ZXJhbCgiXCJyZXF1aXJlZFwiOiBmYWxzZSxcbiIsIHdyaXRlcik7CisgICAg
YWRkU3RyaW5nUHJvcGVydHkoImN1cnJlbnRWYWx1ZSIsIGlucHV0LT52YWx1ZSgpLCB3cml0ZXIp
OworCisgICAgYWRkU3RyaW5nUHJvcGVydHkoImxvY2FsZSIsIGRlZmF1bHRMYW5ndWFnZSgpLCB3
cml0ZXIpOworICAgIGFkZFN0cmluZ1Byb3BlcnR5KCJ0b2RheUxhYmVsIiwgY2FsZW5kYXJUb2Rh
eVRleHQoKSwgd3JpdGVyKTsKKyAgICBhZGRTdHJpbmdQcm9wZXJ0eSgiY2xlYXJMYWJlbCIsIGNh
bGVuZGFyQ2xlYXJUZXh0KCksIHdyaXRlcik7CisgICAgYWRkTGl0ZXJhbCgiXCJ3ZWVrU3RhcnRE
YXlcIjogIiwgd3JpdGVyKTsKKyAgICBhZGRTdHJpbmcoU3RyaW5nOjpudW1iZXIoZmlyc3REYXlP
ZldlZWsoKSksIHdyaXRlcik7CisgICAgYWRkTGl0ZXJhbCgiLFxuIiwgd3JpdGVyKTsKKyAgICBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgbW9udGhzID0gbW9udGhMYWJlbHMoKTsKKyAgICBhZGRMaXRl
cmFsKCJcIm1vbnRoTGFiZWxzXCIgOlsiLCB3cml0ZXIpOworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtb250aHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYWRkSmF2YVNjcmlwdFN0cmlu
Zyhtb250aHNbaV0sIHdyaXRlcik7CisgICAgICAgIGFkZExpdGVyYWwoIiwiLCB3cml0ZXIpOwor
ICAgIH0KKyAgICBhZGRMaXRlcmFsKCJdLFxuIiwgd3JpdGVyKTsKKyAgICBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgd2Vla0RheXMgPSB3ZWVrRGF5U2hvcnRMYWJlbHMoKTsKKyAgICBhZGRMaXRlcmFs
KCJcImRheUxhYmVsc1wiIDpbIiwgd3JpdGVyKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgd2Vla0RheXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYWRkSmF2YVNjcmlwdFN0cmluZyh3
ZWVrRGF5c1tpXSwgd3JpdGVyKTsKKyAgICAgICAgYWRkTGl0ZXJhbCgiLCIsIHdyaXRlcik7Cisg
ICAgfQorICAgIGFkZExpdGVyYWwoIl0sXG4iLCB3cml0ZXIpOworICAgIGFkZExpdGVyYWwoIn1c
biIsIHdyaXRlcik7CisgICAgd3JpdGVyLmFkZERhdGEoY2FsZW5kYXJQaWNrZXJKcywgc2l6ZW9m
KGNhbGVuZGFyUGlja2VySnMpKTsKKyAgICBhZGRMaXRlcmFsKCI8L3NjcmlwdD48L2JvZHk+XG4i
LCB3cml0ZXIpOworfQorCit2b2lkIENhbGVuZGFyUGlja2VyRWxlbWVudDo6c2V0VmFsdWVBbmRD
bG9zZVBvcHVwKGludCBudW1WYWx1ZSwgY29uc3QgU3RyaW5nJiBzdHJpbmdWYWx1ZSkKK3sKKyAg
ICBBU1NFUlQobV9wb3B1cCk7CisgICAgY2xvc2VQb3B1cCgpOworICAgIGlmIChudW1WYWx1ZSA+
PSAwKQorICAgICAgICBob3N0SW5wdXQoKS0+c2V0VmFsdWUoc3RyaW5nVmFsdWUsIERpc3BhdGNo
Q2hhbmdlRXZlbnQpOworfQorCit2b2lkIENhbGVuZGFyUGlja2VyRWxlbWVudDo6ZGlkQ2xvc2VQ
b3B1cCgpCit7CisgICAgbV9wb3B1cCA9IDA7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9DYWxlbmRhclBpY2tlckVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbGVuZGFyUGlja2VyRWxlbWVudC5oCmluZGV4IDUx
YzliOGZhYmY1Y2Y4NjQ4YTc5N2JiNDQ2ZWM4YjZhMWY4YjlkNTYuLmViNDA2NDU2ZTUyNmYxMDg0
NGEzMTM0ZTk0YzU4M2I0OTcwZmU1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0NhbGVuZGFyUGlja2VyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0NhbGVuZGFyUGlja2VyRWxlbWVudC5oCkBAIC0zMSwxOSArMzEsMzggQEAKICNpZm5k
ZWYgQ2FsZW5kYXJQaWNrZXJFbGVtZW50X2gKICNkZWZpbmUgQ2FsZW5kYXJQaWNrZXJFbGVtZW50
X2gKIAorI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1l
bnQuaCIKKyNpbmNsdWRlICJQYWdlUG9wdXBDbGllbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBDYWxlbmRhclBpY2tlckVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQg
eworY2xhc3MgSFRNTElucHV0RWxlbWVudDsKK2NsYXNzIFBhZ2VQb3B1cDsKKworY2xhc3MgQ2Fs
ZW5kYXJQaWNrZXJFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50LCBwdWJsaWMgUGFnZVBv
cHVwQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYWxlbmRhclBpY2tl
ckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHZvaWQgY2xvc2VQb3B1cCgpOwogCiBw
cml2YXRlOgogICAgIENhbGVuZGFyUGlja2VyRWxlbWVudChEb2N1bWVudCopOwogICAgIHZpcnR1
YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxl
KikgT1ZFUlJJREU7Ci0gICAgLy8gRklYTUU6IGFkZCBjbGljayBoYW5kbGluZy4KKyAgICB2aXJ0
dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBkZXRhY2goKSBPVkVSUklERTsKKworICAgIC8vIFBhZ2VQb3B1cENsaWVudCBmdW5j
dGlvbnM6CisgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRTaXplKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHdyaXRlRG9jdW1lbnQoRG9jdW1lbnRXcml0ZXImKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBbmRDbG9zZVBvcHVwKGludCwgY29uc3QgU3RyaW5nJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlUG9wdXAoKSBPVkVSUklERTsKKwor
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGhvc3RJbnB1dCgpOworICAgIHZvaWQgb3BlblBvcHVwKCk7
CisKKyAgICBQYWdlUG9wdXAqIG1fcG9wdXA7CiB9OwogCiB9CiAjZW5kaWYKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5l
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwu
anMKaW5kZXggZjY0NmEyMmEzNTgxOTYxM2VkN2IyN2YxM2QxMmE3ZGY5YmYzYzZlMS4uZGE1MWIx
NjljYzcyMTgwOTlkNDk1NjY5OTdmYzllZDk5MTcxZWFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC0xMjUxLDYg
KzEyNTEsNyBAQCBXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZVRyZWVFbGVtZW50LnByb3RvdHlw
ZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBjb250ZXh0TWVudSA9IG5ldyBXZWJJbnNwZWN0b3Iu
Q29udGV4dE1lbnUoKTsKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0
b3Iub3BlbkxpbmtFeHRlcm5hbGx5TGFiZWwoKSwgV2ViSW5zcGVjdG9yLm9wZW5SZXNvdXJjZS5i
aW5kKFdlYkluc3BlY3RvciwgdGhpcy5fcmVzb3VyY2UudXJsLCBmYWxzZSkpOworICAgICAgICBj
b250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5jb3B5TGlua0FkZHJlc3NMYWJlbCgp
LCBJbnNwZWN0b3JGcm9udGVuZEhvc3QuY29weVRleHQuYmluZChJbnNwZWN0b3JGcm9udGVuZEhv
c3QsIHRoaXMuX3Jlc291cmNlLnVybCkpOwogICAgICAgICB0aGlzLl9hcHBlbmRPcGVuSW5OZXR3
b3JrUGFuZWxBY3Rpb24oY29udGV4dE1lbnUsIGV2ZW50KTsKICAgICAgICAgV2ViSW5zcGVjdG9y
LnBvcHVsYXRlUmVzb3VyY2VDb250ZXh0TWVudShjb250ZXh0TWVudSwgdGhpcy5fcmVzb3VyY2Uu
dXJsLCBudWxsKTsKICAgICAgICAgdGhpcy5fYXBwZW5kU2F2ZUFzQWN0aW9uKGNvbnRleHRNZW51
LCBldmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2Fs
aXplZENhbGVuZGFySUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxp
emVkQ2FsZW5kYXJJQ1UuY3BwCmluZGV4IGRhMGE5MTRmMGI0MzkyMTk1MjNhMjI1ZWY1YmFlODUy
YWNiYTZkM2IuLjQ1M2E5Y2E1YjU2YTQwYTIxOWM4OGQzNDcyNDA5YTEzMTg5MDAyZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2FsZW5kYXJJQ1Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2FsZW5kYXJJ
Q1UuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgc3RhdGljIHVuc2lnbmVkIGdldEZpcnN0RGF5T2ZX
ZWVrKCkKICAgICBTY29wZWREYXRlRm9ybWF0IGRhdGVGb3JtYXQ7CiAgICAgaWYgKCFkYXRlRm9y
bWF0LmdldCgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICB1bnNpZ25lZCBmaXJzdERheSA9IHVj
YWxfZ2V0QXR0cmlidXRlKHVkYXRfZ2V0Q2FsZW5kYXIoZGF0ZUZvcm1hdC5nZXQoKSksIFVDQUxf
RklSU1RfREFZX09GX1dFRUspOworICAgIHVuc2lnbmVkIGZpcnN0RGF5ID0gdWNhbF9nZXRBdHRy
aWJ1dGUodWRhdF9nZXRDYWxlbmRhcihkYXRlRm9ybWF0LmdldCgpKSwgVUNBTF9GSVJTVF9EQVlf
T0ZfV0VFSykgLSBVQ0FMX1NVTkRBWTsKICAgICByZXR1cm4gZmlyc3REYXk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCBiNDgwZTQ2MjJiOTkwMmEzNzAxMTVhMjNh
MTM2YTA4ZDk0NWM3MDVkLi4zY2NhZmViMjVmOGRkNmExN2RhOTM0YTM3ZWFkMDQxMzhkMGVhMTUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC0xMzAsMTEgKzEzMCwxMyBA
QAogICAgICAgWydPUz09ImFuZHJvaWQiJywgewogICAgICAgICAnZmVhdHVyZV9kZWZpbmVzJzog
WwogICAgICAgICAgICdFTkFCTEVfQ0FMRU5EQVJfUElDS0VSPTAnLAorICAgICAgICAgICdFTkFC
TEVfUEFHRV9QT1BVUD0wJywKICAgICAgICAgICAnRU5BQkxFX1dFQl9BVURJTz0wJywKICAgICAg
ICAgXSwKICAgICAgIH0sIHsKICAgICAgICAgJ2ZlYXR1cmVfZGVmaW5lcyc6IFsKICAgICAgICAg
ICAnRU5BQkxFX0NBTEVOREFSX1BJQ0tFUj0xJywKKyAgICAgICAgICAnRU5BQkxFX1BBR0VfUE9Q
VVA9MScsCiAgICAgICAgICAgJ0VOQUJMRV9XRUJfQVVESU89MScsCiAgICAgICAgIF0sCiAgICAg
ICB9XSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAKaW5kZXggZjc2YjM2NjlmZjRjMjZmOWFiYzYyY2QyNWM4OTg1N2YxNzQ3YmUxZC4uZmM2NzRh
MTBmOTNlNGU3MzRmYzI3ZmVkMjRiYjA3ZDMyMTBhZTUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTk4OCw2ICs5ODgsMTkgQEAg
UGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZUNsaWVudEltcGw6OmNyZWF0ZVNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGkKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBv
cHVwTWVudUNocm9taXVtKGNsaWVudCkpOwogfQogCisjaWYgRU5BQkxFKFBBR0VfUE9QVVApCitQ
YWdlUG9wdXAqIENocm9tZUNsaWVudEltcGw6Om9wZW5QYWdlUG9wdXAoUGFnZVBvcHVwQ2xpZW50
KiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgLy8gRklYTUU6IEltcGVsZW1lbnQgdGhpcy4KKyAg
ICByZXR1cm4gMDsKK30KKwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjbG9zZVBhZ2VQb3B1cChQ
YWdlUG9wdXAqKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKyNlbmRpZgor
CiBib29sIENocm9tZUNsaWVudEltcGw6OndpbGxBZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvKEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0KQogewogICAgIEFTU0VSVChpbnB1dCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggNjI2MGE5N2RkM2Q3
ZGU3YThkMTJhYjA2MTAyOWVmNzYwZDA3YjMxMy4uNTg5NDE3N2UwMTIxZDE4ZDVlMzc0OWJiZDI2
YjE4ZjI2OWRhOGU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuaApAQCAtMTk1LDYgKzE5NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IGhhc09wZW5lZFBvcHVwKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBj
b25zdDsKKyNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2VQ
b3B1cCogb3BlblBhZ2VQb3B1cChXZWJDb3JlOjpQYWdlUG9wdXBDbGllbnQqLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlUGFnZVBvcHVw
KFdlYkNvcmU6OlBhZ2VQb3B1cCopIE9WRVJSSURFOworI2VuZGlmCiAgICAgdmlydHVhbCBib29s
IHdpbGxBZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQq
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkVGV4dEZpZWxkRGVjb3JhdGlvbnNUbyhX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KikgT1ZFUlJJREU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135811</attachid>
            <date>2012-04-05 05:48:38 -0700</date>
            <delta_ts>2012-04-05 23:58:45 -0700</delta_ts>
            <desc>Patch 4</desc>
            <filename>bug-83258-20120405214836.patch</filename>
            <type>text/plain</type>
            <size>18395</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzE1NTNkMjZkNDA1NGE4
NDk5ZGE0Y2JiMzRiMjdkOGFhMzY2ZTRhNy4uYTIzZWIwOTQ0Mjk2MTc3YzI2YTZkMTViYzhmMDJj
MmQ0NzUzNWQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTA0LTA1ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBDYWxlbmRhciBQaWNrZXI6
IEFkZCBjb2RlIHRvIG9wZW4vY2xvc2UgdGhlIGNhbGVuZGFyIHBpY2tlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMyNTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgY29k
ZSBpcyBub3QgdXNlZCBiZWNhdXNlIG9mIG5vIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZCBleGlzdGluZyBoZWFkZXIgZmlsZXMuCisKKyAgICAg
ICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0
VHlwZTo6RGF0ZUlucHV0VHlwZSk6CisgICAgICAgIE1vdmVkIGZyb20gRGF0ZUlucHV0VHlwZS5o
IGJlY2F1c2UgdGhlIGNvbnN0cnVjdG9yIGRlcGVuZHMgb24KKyAgICAgICAgQ2FsZW5kYXJQaWNr
ZXJFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgIFN0b3JlIGEgQ2FsZW5kYXJQaWNrZXJFbGVtZW50IG9iamVjdC4K
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKToK
KyAgICAgICAgUmVsZWFzZSB0aGUgQ2FsZW5kYXJQaWNrZXJFbGVtZW50IG9iamVjdC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmhhbmRsZUJsdXJFdmVudCk6CisgICAgICAgIENs
b3NlIHRoZSBjYWxlbmRhciBwaWNrZXIgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuCisgICAg
ICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmg6CisgICAgICAgIChEYXRlSW5wdXRUeXBlKToKKyAg
ICAgICAgLSBNb3ZlIHRoZSBjb25zdHJ1Y3RvciBkZWZpbml0aW9uIHRvIERhdGVJbnB1dFR5cGUu
Y3BwCisgICAgICAgIC0gQWRkIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucworICAgICAgICAtIEFkZCBt
X3BpY2tlckVsZW1lbnQgZGF0YSBtZW1iZXIuCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9DYWxl
bmRhclBpY2tlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJF
bGVtZW50Ojpob3N0SW5wdXQpOiBBIGhlbHBlciB0byBnZXQgdGhlIGhvc3QgPGlucHV0Pi4KKyAg
ICAgICAgKFdlYkNvcmU6OkNhbGVuZGFyUGlja2VyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cik6CisgICAgICAgIElmIHRoZSBlbGVtZW50IGlzIGNsaWNrZWQsIG9wZW4gYSBjYWxlbmRhciBw
aWNrZXIuCisgICAgICAgIChXZWJDb3JlOjpDYWxlbmRhclBpY2tlckVsZW1lbnQ6Om9wZW5Qb3B1
cCk6CisgICAgICAgIE9wZW5zIGEgY2FsZW5kYXIgcGlja2VyIGJ5IENocm9tZUNsaWVudDo6b3Bl
blBhZ2VQb3B1cCgpLgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJFbGVtZW50Ojpj
bG9zZVBvcHVwKToKKyAgICAgICAgQ2xvc2VzIGEgY2FsZW5kYXIgcGlja2VyIGJ5IENocm9tZUNs
aWVudDo6Y2xvc2VQYWdlUG9wdXAoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNhbGVuZGFyUGlja2Vy
RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgQ2xvc2VzIGEgY2FsZW5kYXIgcGlja2VyIHdoZW4g
dGhlIGVsZW1lbnQgbG9zZXMgYSByZW5kZXJlci4KKworICAgICAgICAoV2ViQ29yZTo6Q2FsZW5k
YXJQaWNrZXJFbGVtZW50Ojpjb250ZW50U2l6ZSk6CisgICAgICAgIFByb3ZpZGVzIHRoZSBpbml0
aWFsIHNpemUgb2YgYSBwb3B1cC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFN0cmluZyk6IEEgaGVs
cGVyIGZvciB3cml0ZURvY3VtZW50KCkuCisgICAgICAgIChXZWJDb3JlOjphZGRKYXZhU2NyaXB0
U3RyaW5nKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjphZGRTdHJpbmdQcm9wZXJ0eSk6IGRp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJFbGVtZW50Ojp3cml0ZURvY3Vt
ZW50KToKKyAgICAgICAgUHJvdmlkZXMgdGhlIHNvdXJjZSBvZiBhIHBvcHVwLiBUaGUgZnVuY3Rp
b24gY3JlYXRlcyBhIGNvbXBsZXRlIEhUTUwgd2l0aDoKKyAgICAgICAgLSBXZWJDb3JlL1Jlc291
cmNlcy9jYWxlbmRhclBpY2tlci5jc3MKKyAgICAgICAgLSBXZWJDb3JlL1Jlc291cmNlcy9jYWxl
bmRhclBpY2tlci5qcworICAgICAgICAtIEFuIG9iamVjdCB0byBwYXNzIGxvY2FsaXphdGlvbiBz
dHJpbmdzIGFuZCA8aW5wdXQ+IHN0YXRlCisgICAgICAgIChXZWJDb3JlOjpDYWxlbmRhclBpY2tl
ckVsZW1lbnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cCk6CisgICAgICAgIFNldHMgdGhlIHZhbHVl
IGZyb20gYSBjYWxlbmRhciBwaWNrZXIgdG8gdGhlIDxpbnB1dD4uCisgICAgICAgIChXZWJDb3Jl
OjpDYWxlbmRhclBpY2tlckVsZW1lbnQ6OmRpZENsb3NlUG9wdXApOgorICAgICAgICBDbGVhciB0
aGUgcG9wdXAgb2JqZWN0LgorICAgICAgICAqIGh0bWwvc2hhZG93L0NhbGVuZGFyUGlja2VyRWxl
bWVudC5oOgorICAgICAgICAoQ2FsZW5kYXJQaWNrZXJFbGVtZW50KTogQWRkIGRlY2xhcmF0aW9u
cy4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2FsZW5kYXJJQ1UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0Rmlyc3REYXlPZldlZWspOiBNYWtlIHN1cmUgdGhpcyBpcyAw
LWJhc2UuIFVDQUxfU1VOREFZIGlzIDEuCisKIDIwMTItMDQtMDUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGFiaWxp
dHkgdG8gY29weSByZXNvdXJjZSBVUkwgZnJvbSB3ZWIgaW5zcGVjdG9yJ3MgcmVzb3VyY2VzIHBh
Z2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDVjMjZkOGI4YzM5Zjg5ZmRiMzJhOTc4
MzZhMzQzYTZhZTZmNThiZWIuLmMzYWY3YzVjYjViOGU2ZDQyNjU3MzFlY2MxZjU2ZTUyMDQ1OTc2
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDQt
MDUgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENhbGVuZGFy
IFBpY2tlcjogQWRkIGNvZGUgdG8gb3Blbi9jbG9zZSB0aGUgY2FsZW5kYXIgcGlja2VyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzI1OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmVhdHVyZXMuZ3lw
aTogRW5hYmxlIEVOQUJMRV9QQUdFX1BPUFVQIGZvciBub24tQW5kcm9pZAorICAgICAgICBwbGF0
Zm9ybXMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgRU5BQkxFX0NBTEVOREFSX1BJQ0tFUiBub3cg
ZGVwZW5kcyBvbgorICAgICAgICBFTkFCTEVfUEFHRV9QT1BVUC4KKyAgICAgICAgKiBzcmMvQ2hy
b2VtQ2xpZW50SW1wbC5jcHA6IEFkZCBzdHVicy4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50SW1wbDo6b3BlblBhZ2VQb3B1cCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudElt
cGw6OmNsb3NlUGFnZVBvcHVwKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOiBB
ZGQgZGVjbGFyYXRpb25zIG9mIG9wZW5QYWdlUG9wdXAoKSBhbmQgY2xvc2VQYWdlUG9wdXAoKS4K
KwogMjAxMi0wNC0wNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBbY2hyb21pdW1dIGNsZWFuIHVwIFdEVEZDOjpzYXZlQXMg
YWZ0ZXIgbWlncmF0aW9uIHRvIHNhdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQ4NWZmYjc2MzI1
Y2M2ZGY0YWQ3N2M1MjQ5NGE4NmFkNzZmMzY5Y2YuLjc3NWI2OTExNjlkYjFlYzBlOGZjMTRkZjMx
NGMxMjgyMTY3MzY0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIzNyw2ICsyMzcsOCBAQAogICAg
ICAgICAgICAgJ3BhZ2UvTWVtb3J5SW5mby5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2UuaCcs
CiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXAuaCcsCisgICAgICAgICAgICAncGFnZS9QYWdl
UG9wdXAuaCcsCisgICAgICAgICAgICAncGFnZS9QYWdlUG9wdXBDbGllbnQuaCcsCiAgICAgICAg
ICAgICAncGFnZS9QYWdlU2VyaWFsaXplci5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VWaXNp
YmlsaXR5U3RhdGUuaCcsCiAgICAgICAgICAgICAncGFnZS9QcmludENvbnRleHQuaCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRleCAyNGJkZDhiYTE1ZDMyMDAwMTQyZmQ4
ZmIzOWMxOWZmN2EwYjRkMjNhLi5hODJmMGE5MjMyZDRlOTQ4YmRjMTUxMWQ3MTA2ODI0OTkxNGNl
M2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAgLTQ2LDYgKzQ2LDEx
IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBzdGF0aWMgY29uc3QgZG91YmxlIGRhdGVE
ZWZhdWx0U3RlcCA9IDEuMDsKIHN0YXRpYyBjb25zdCBkb3VibGUgZGF0ZVN0ZXBTY2FsZUZhY3Rv
ciA9IDg2NDAwMDAwLjA7CiAKK2lubGluZSBEYXRlSW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCisgICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUo
ZWxlbWVudCkKK3sKK30KKwogUGFzc093blB0cjxJbnB1dFR5cGU+IERhdGVJbnB1dFR5cGU6OmNy
ZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewogICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgRGF0ZUlucHV0VHlwZShlbGVtZW50KSk7CkBAIC0xMDMsNyArMTA4LDE0IEBAIGJvb2wgRGF0
ZUlucHV0VHlwZTo6c2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSB2YWx1ZSwg
RGF0ZUNvbXBvbmVudHMqCiB2b2lkIERhdGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KQogewogICAgIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgp
OwotICAgIGNvbnRhaW5lckVsZW1lbnQoKS0+aW5zZXJ0QmVmb3JlKENhbGVuZGFyUGlja2VyRWxl
bWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSksIGlubmVyQmxvY2tFbGVtZW50KCkt
Pm5leHRTaWJsaW5nKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIG1fcGlja2VyRWxlbWVu
dCA9IENhbGVuZGFyUGlja2VyRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7
CisgICAgY29udGFpbmVyRWxlbWVudCgpLT5pbnNlcnRCZWZvcmUobV9waWNrZXJFbGVtZW50Lmdl
dCgpLCBpbm5lckJsb2NrRWxlbWVudCgpLT5uZXh0U2libGluZygpLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKK30KKwordm9pZCBEYXRlSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCit7
CisgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpOworICAgIG1f
cGlja2VyRWxlbWVudC5jbGVhcigpOwogfQogCiBib29sIERhdGVJbnB1dFR5cGU6Om5lZWRzQ29u
dGFpbmVyKCkgY29uc3QKQEAgLTExNSw2ICsxMjcsMTIgQEAgYm9vbCBEYXRlSW5wdXRUeXBlOjpz
aG91bGRIYXZlU3BpbkJ1dHRvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCit2
b2lkIERhdGVJbnB1dFR5cGU6OmhhbmRsZUJsdXJFdmVudCgpCit7CisgICAgaWYgKG1fcGlja2Vy
RWxlbWVudCkKKyAgICAgICAgbV9waWNrZXJFbGVtZW50LT5jbG9zZVBvcHVwKCk7Cit9CiAjZW5k
aWYgLy8gRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAppbmRleCBmMDIwZTJlOWEwZDk3YjNmNzQ2ZTc3
NmU3OTdhZDMxMjMwYTk1YmQ0Li5kNTA4NWMzMmVjMDYyYWIwMTIwOWMxOGI4NGFlYmU4NTYyYWU1
YzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaApAQCAtMzIsMTcgKzMyLDIwIEBA
CiAjZGVmaW5lIERhdGVJbnB1dFR5cGVfaAogCiAjaW5jbHVkZSAiQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiAjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfREFURSkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDYWxlbmRhclBpY2tlckVs
ZW1lbnQ7CisKIGNsYXNzIERhdGVJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJbnB1dFR5cGU+IGNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgRGF0ZUlucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50
KSB7IH0KKyAgICBEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqKTsKICAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBEYXRlQ29tcG9uZW50czo6VHlwZSBkYXRlVHlwZSgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW0oKSBjb25zdCBPVkVSUklERTsKQEAgLTU0LDEw
ICs1NywxNCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0
ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogI2lm
IEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1
YnRyZWUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveVNoYWRvd1N1YnRyZWUo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCkgT1ZFUlJJREU7
CiAKICAgICAvLyBUZXh0RmllbGRJbnB1dFR5cGUgZnVuY3Rpb25zCiAgICAgdmlydHVhbCBib29s
IG5lZWRzQ29udGFpbmVyKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZEhhdmVTcGluQnV0dG9uKCkgY29uc3QgT1ZFUlJJREU7CisKKyAgICBSZWZQdHI8Q2FsZW5kYXJQ
aWNrZXJFbGVtZW50PiBtX3BpY2tlckVsZW1lbnQ7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbGVuZGFyUGlja2VyRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9DYWxlbmRhclBpY2tlckVsZW1lbnQuY3BwCmluZGV4
IDQxYTNkMjA5ZDA0NThmMDVlNjVkNjZjYTZlYzYxYjNhYThjNWUxMTkuLjg1ZmI3NGY3OGFkNzQ2
ZTMyOGYyNDk5YjhkNTdhMTM3YzhmOWRiYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0NhbGVuZGFyUGlja2VyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmNwcApAQCAtMzMsOCArMzMsMjEgQEAK
IAogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAKKyNpbmNsdWRlICJDYWxlbmRhclBpY2tl
ci5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2lu
Y2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRXcml0ZXIuaCIKKyNp
bmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhUTUxJ
bnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJMYW5ndWFn
ZS5oIgorI2luY2x1ZGUgIkxvY2FsaXplZENhbGVuZGFyLmgiCisjaW5jbHVkZSAiTG9jYWxpemVk
U3RyaW5ncy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJEZXRhaWxzTWFy
a2VyLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTU2LDYgKzY5LDE2MSBAQCBSZW5kZXJPYmplY3QqIENhbGVuZGFyUGlj
a2VyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdAog
ICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJEZXRhaWxzTWFya2VyKHRoaXMpOwogfQogCitp
bmxpbmUgSFRNTElucHV0RWxlbWVudCogQ2FsZW5kYXJQaWNrZXJFbGVtZW50Ojpob3N0SW5wdXQo
KQoreworICAgIEFTU0VSVChzaGFkb3dBbmNlc3Rvck5vZGUoKSk7CisgICAgQVNTRVJUKHNoYWRv
d0FuY2VzdG9yTm9kZSgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dBbmNlc3Rvck5vZGUoKSk7Cit9CisKK3Zv
aWQgQ2FsZW5kYXJQaWNrZXJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVu
dCkKK3sKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IGhvc3RJbnB1dCgpOworICAgIGlm
IChpbnB1dC0+cmVhZE9ubHkoKSB8fCBpbnB1dC0+ZGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQpIHsK
KyAgICAgICAgb3BlblBvcHVwKCk7CisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgp
OworICAgIH0KKworICAgIGlmICghZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgIEhU
TUxEaXZFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKK30KKwordm9pZCBDYWxl
bmRhclBpY2tlckVsZW1lbnQ6Om9wZW5Qb3B1cCgpCit7CisgICAgaWYgKG1fcG9wdXApCisgICAg
ICAgIHJldHVybjsKKyAgICBpZiAoIWRvY3VtZW50KCktPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIENocm9tZSogY2hyb21lID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKTsKKyAg
ICBpZiAoIWNocm9tZSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghZG9jdW1lbnQoKS0+dmll
dygpKQorICAgICAgICByZXR1cm47CisgICAgSW50UmVjdCBlbGVtZW50UmVjdEluUm9vdFZpZXcg
PSBkb2N1bWVudCgpLT52aWV3KCktPmNvbnRlbnRzVG9Sb290Vmlldyhob3N0SW5wdXQoKS0+Z2V0
UmVjdCgpKTsKKyAgICBtX3BvcHVwID0gY2hyb21lLT5jbGllbnQoKS0+b3BlblBhZ2VQb3B1cCh0
aGlzLCBlbGVtZW50UmVjdEluUm9vdFZpZXcpOworfQorCit2b2lkIENhbGVuZGFyUGlja2VyRWxl
bWVudDo6Y2xvc2VQb3B1cCgpCit7CisgICAgaWYgKCFtX3BvcHVwKQorICAgICAgICByZXR1cm47
CisgICAgaWYgKCFkb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKyAgICBDaHJv
bWUqIGNocm9tZSA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCk7CisgICAgaWYgKCFjaHJv
bWUpCisgICAgICAgIHJldHVybjsKKyAgICBjaHJvbWUtPmNsaWVudCgpLT5jbG9zZVBhZ2VQb3B1
cChtX3BvcHVwKTsKK30KKwordm9pZCBDYWxlbmRhclBpY2tlckVsZW1lbnQ6OmRldGFjaCgpCit7
CisgICAgY2xvc2VQb3B1cCgpOworICAgIEhUTUxEaXZFbGVtZW50OjpkZXRhY2goKTsKK30KKwor
SW50U2l6ZSBDYWxlbmRhclBpY2tlckVsZW1lbnQ6OmNvbnRlbnRTaXplKCkKK3sKKyAgICByZXR1
cm4gSW50U2l6ZSgzMjAsIDI1Nik7Cit9CisKKyNkZWZpbmUgYWRkTGl0ZXJhbChsaXRlcmFsLCB3
cml0ZXIpICAgIHdyaXRlci5hZGREYXRhKGxpdGVyYWwsIHNpemVvZihsaXRlcmFsKSAtIDEpCisK
K3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHIsIERvY3VtZW50
V3JpdGVyJiB3cml0ZXIpCit7CisgICAgQ1N0cmluZyBzdHI4ID0gc3RyLnV0ZjgoKTsKKyAgICB3
cml0ZXIuYWRkRGF0YShzdHI4LmRhdGEoKSwgc3RyOC5sZW5ndGgoKSk7Cit9CisKK3N0YXRpYyB2
b2lkIGFkZEphdmFTY3JpcHRTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHIsIERvY3VtZW50V3JpdGVy
JiB3cml0ZXIpCit7CisgICAgYWRkTGl0ZXJhbCgiXCIiLCB3cml0ZXIpOworICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eShzdHIubGVuZ3RoKCkp
OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoKCk7ICsraSkgeworICAg
ICAgICBpZiAoc3RyW2ldID09ICdcXCcgfHwgc3RyW2ldID09ICciJykKKyAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCdcXCcpOworICAgICAgICBidWlsZGVyLmFwcGVuZChzdHJbaV0pOworICAg
IH0KKyAgICBhZGRTdHJpbmcoYnVpbGRlci50b1N0cmluZygpLCB3cml0ZXIpOworICAgIGFkZExp
dGVyYWwoIlwiIiwgd3JpdGVyKTsKK30KKworc3RhdGljIHZvaWQgYWRkU3RyaW5nUHJvcGVydHko
Y29uc3QgY2hhciogbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRG9jdW1lbnRXcml0ZXImIHdy
aXRlcikKK3sKKyAgICBhZGRMaXRlcmFsKCJcIiIsIHdyaXRlcik7CisgICAgd3JpdGVyLmFkZERh
dGEobmFtZSwgc3RybGVuKG5hbWUpKTsKKyAgICBhZGRMaXRlcmFsKCJcIjogIiwgd3JpdGVyKTsK
KyAgICBhZGRKYXZhU2NyaXB0U3RyaW5nKHZhbHVlLCB3cml0ZXIpOworICAgIGFkZExpdGVyYWwo
IixcbiIsIHdyaXRlcik7Cit9CisKK3ZvaWQgQ2FsZW5kYXJQaWNrZXJFbGVtZW50Ojp3cml0ZURv
Y3VtZW50KERvY3VtZW50V3JpdGVyJiB3cml0ZXIpCit7CisgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBob3N0SW5wdXQoKTsKKyAgICBEYXRlQ29tcG9uZW50cyBkYXRlOworICAgIGRhdGUu
c2V0TWlsbGlzZWNvbmRzU2luY2VFcG9jaEZvckRhdGUoaW5wdXQtPm1pbmltdW0oKSk7CisgICAg
U3RyaW5nIG1pblN0cmluZyA9IGRhdGUudG9TdHJpbmcoKTsKKyAgICBkYXRlLnNldE1pbGxpc2Vj
b25kc1NpbmNlRXBvY2hGb3JEYXRlKGlucHV0LT5tYXhpbXVtKCkpOworICAgIFN0cmluZyBtYXhT
dHJpbmcgPSBkYXRlLnRvU3RyaW5nKCk7CisgICAgZG91YmxlIHN0ZXA7CisgICAgU3RyaW5nIHN0
ZXBTdHJpbmcgPSBpbnB1dC0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cik7CisgICAgaWYgKHN0
ZXBTdHJpbmcuaXNFbXB0eSgpIHx8ICFpbnB1dC0+Z2V0QWxsb3dlZFZhbHVlU3RlcCgmc3RlcCkp
CisgICAgICAgIHN0ZXBTdHJpbmcgPSAiMSI7CisgICAgU3RyaW5nQnVpbGRlciBzb3VyY2U7Cisg
ICAgYWRkTGl0ZXJhbCgiPCFET0NUWVBFIGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0nVVRGLTgn
PjxzdHlsZT5cbiIsIHdyaXRlcik7CisgICAgd3JpdGVyLmFkZERhdGEoY2FsZW5kYXJQaWNrZXJD
c3MsIHNpemVvZihjYWxlbmRhclBpY2tlckNzcykpOworICAgIGFkZExpdGVyYWwoIjwvc3R5bGU+
PC9oZWFkPjxib2R5PjxkaXYgaWQ9bWFpbj5Mb2FkaW5nLi4uPC9kaXY+PHNjcmlwdD5cbiIKKyAg
ICAgICAgICAgICAgICJ3aW5kb3cuZGlhbG9nQXJndW1lbnRzID0ge1xuIiwgd3JpdGVyKTsKKyAg
ICBhZGRTdHJpbmdQcm9wZXJ0eSgibWluIiwgbWluU3RyaW5nLCB3cml0ZXIpOworICAgIGFkZFN0
cmluZ1Byb3BlcnR5KCJtYXgiLCBtYXhTdHJpbmcsIHdyaXRlcik7CisgICAgYWRkU3RyaW5nUHJv
cGVydHkoInN0ZXAiLCBzdGVwU3RyaW5nLCB3cml0ZXIpOworICAgIGlmIChpbnB1dC0+cmVxdWly
ZWQoKSkKKyAgICAgICAgYWRkTGl0ZXJhbCgiXCJyZXF1aXJlZFwiOiB0cnVlLFxuIiwgd3JpdGVy
KTsKKyAgICBlbHNlCisgICAgICAgIGFkZExpdGVyYWwoIlwicmVxdWlyZWRcIjogZmFsc2UsXG4i
LCB3cml0ZXIpOworICAgIGFkZFN0cmluZ1Byb3BlcnR5KCJjdXJyZW50VmFsdWUiLCBpbnB1dC0+
dmFsdWUoKSwgd3JpdGVyKTsKKworICAgIGFkZFN0cmluZ1Byb3BlcnR5KCJsb2NhbGUiLCBkZWZh
dWx0TGFuZ3VhZ2UoKSwgd3JpdGVyKTsKKyAgICBhZGRTdHJpbmdQcm9wZXJ0eSgidG9kYXlMYWJl
bCIsIGNhbGVuZGFyVG9kYXlUZXh0KCksIHdyaXRlcik7CisgICAgYWRkU3RyaW5nUHJvcGVydHko
ImNsZWFyTGFiZWwiLCBjYWxlbmRhckNsZWFyVGV4dCgpLCB3cml0ZXIpOworICAgIGFkZExpdGVy
YWwoIlwid2Vla1N0YXJ0RGF5XCI6ICIsIHdyaXRlcik7CisgICAgYWRkU3RyaW5nKFN0cmluZzo6
bnVtYmVyKGZpcnN0RGF5T2ZXZWVrKCkpLCB3cml0ZXIpOworICAgIGFkZExpdGVyYWwoIixcbiIs
IHdyaXRlcik7CisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIG1vbnRocyA9IG1vbnRoTGFiZWxz
KCk7CisgICAgYWRkTGl0ZXJhbCgiXCJtb250aExhYmVsc1wiIDpbIiwgd3JpdGVyKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbW9udGhzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGFk
ZEphdmFTY3JpcHRTdHJpbmcobW9udGhzW2ldLCB3cml0ZXIpOworICAgICAgICBhZGRMaXRlcmFs
KCIsIiwgd3JpdGVyKTsKKyAgICB9CisgICAgYWRkTGl0ZXJhbCgiXSxcbiIsIHdyaXRlcik7Cisg
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHdlZWtEYXlzID0gd2Vla0RheVNob3J0TGFiZWxzKCk7
CisgICAgYWRkTGl0ZXJhbCgiXCJkYXlMYWJlbHNcIiA6WyIsIHdyaXRlcik7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHdlZWtEYXlzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGFkZEph
dmFTY3JpcHRTdHJpbmcod2Vla0RheXNbaV0sIHdyaXRlcik7CisgICAgICAgIGFkZExpdGVyYWwo
IiwiLCB3cml0ZXIpOworICAgIH0KKyAgICBhZGRMaXRlcmFsKCJdLFxuIiwgd3JpdGVyKTsKKyAg
ICBhZGRMaXRlcmFsKCJ9XG4iLCB3cml0ZXIpOworICAgIHdyaXRlci5hZGREYXRhKGNhbGVuZGFy
UGlja2VySnMsIHNpemVvZihjYWxlbmRhclBpY2tlckpzKSk7CisgICAgYWRkTGl0ZXJhbCgiPC9z
Y3JpcHQ+PC9ib2R5PlxuIiwgd3JpdGVyKTsKK30KKwordm9pZCBDYWxlbmRhclBpY2tlckVsZW1l
bnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cChpbnQgbnVtVmFsdWUsIGNvbnN0IFN0cmluZyYgc3Ry
aW5nVmFsdWUpCit7CisgICAgQVNTRVJUKG1fcG9wdXApOworICAgIGNsb3NlUG9wdXAoKTsKKyAg
ICBpZiAobnVtVmFsdWUgPj0gMCkKKyAgICAgICAgaG9zdElucHV0KCktPnNldFZhbHVlKHN0cmlu
Z1ZhbHVlLCBEaXNwYXRjaENoYW5nZUV2ZW50KTsKK30KKwordm9pZCBDYWxlbmRhclBpY2tlckVs
ZW1lbnQ6OmRpZENsb3NlUG9wdXAoKQoreworICAgIG1fcG9wdXAgPSAwOworfQorCiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNr
ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9DYWxlbmRhclBpY2tlckVs
ZW1lbnQuaAppbmRleCA1MWM5YjhmYWJmNWNmODY0OGE3OTdiYjQ0NmVjOGI2YTFmOGI5ZDU2Li5l
YjQwNjQ1NmU1MjZmMTA4NDRhMzEzNGU5NGM1ODNiNDk3MGZlNTgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9DYWxlbmRhclBpY2tlckVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9DYWxlbmRhclBpY2tlckVsZW1lbnQuaApAQCAtMzEsMTkg
KzMxLDM4IEBACiAjaWZuZGVmIENhbGVuZGFyUGlja2VyRWxlbWVudF9oCiAjZGVmaW5lIENhbGVu
ZGFyUGlja2VyRWxlbWVudF9oCiAKKyNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQogI2luY2x1
ZGUgIkhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiUGFnZVBvcHVwQ2xpZW50LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ2FsZW5kYXJQaWNrZXJFbGVtZW50IDogcHVibGlj
IEhUTUxEaXZFbGVtZW50IHsKK2NsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CitjbGFzcyBQYWdlUG9w
dXA7CisKK2NsYXNzIENhbGVuZGFyUGlja2VyRWxlbWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVu
dCwgcHVibGljIFBhZ2VQb3B1cENsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q2FsZW5kYXJQaWNrZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICB2b2lkIGNs
b3NlUG9wdXAoKTsKIAogcHJpdmF0ZToKICAgICBDYWxlbmRhclBpY2tlckVsZW1lbnQoRG9jdW1l
bnQqKTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEqLCBSZW5kZXJTdHlsZSopIE9WRVJSSURFOwotICAgIC8vIEZJWE1FOiBhZGQgY2xpY2sgaGFu
ZGxpbmcuCisgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCkgT1ZFUlJJREU7CisKKyAgICAvLyBQYWdl
UG9wdXBDbGllbnQgZnVuY3Rpb25zOgorICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50U2l6ZSgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZURvY3VtZW50KERvY3VtZW50V3JpdGVy
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQW5kQ2xvc2VQb3B1cChpbnQs
IGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZVBvcHVw
KCkgT1ZFUlJJREU7CisKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBob3N0SW5wdXQoKTsKKyAgICB2
b2lkIG9wZW5Qb3B1cCgpOworCisgICAgUGFnZVBvcHVwKiBtX3BvcHVwOwogfTsKIAogfQogI2Vu
ZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxpemVkQ2FsZW5kYXJJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGl6ZWRDYWxlbmRhcklDVS5jcHAKaW5kZXggZGEwYTkxNGYwYjQzOTIxOTUyM2EyMjVlZjViYWU4
NTJhY2JhNmQzYi4uNDUzYTljYTViNTZhNDBhMjE5Yzg4ZDM0NzI0MDlhMTMxODkwMDJkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWRDYWxlbmRhcklD
VS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWRDYWxlbmRh
cklDVS5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0Rmlyc3REYXlP
ZldlZWsoKQogICAgIFNjb3BlZERhdGVGb3JtYXQgZGF0ZUZvcm1hdDsKICAgICBpZiAoIWRhdGVG
b3JtYXQuZ2V0KCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHVuc2lnbmVkIGZpcnN0RGF5ID0g
dWNhbF9nZXRBdHRyaWJ1dGUodWRhdF9nZXRDYWxlbmRhcihkYXRlRm9ybWF0LmdldCgpKSwgVUNB
TF9GSVJTVF9EQVlfT0ZfV0VFSyk7CisgICAgdW5zaWduZWQgZmlyc3REYXkgPSB1Y2FsX2dldEF0
dHJpYnV0ZSh1ZGF0X2dldENhbGVuZGFyKGRhdGVGb3JtYXQuZ2V0KCkpLCBVQ0FMX0ZJUlNUX0RB
WV9PRl9XRUVLKSAtIFVDQUxfU1VOREFZOwogICAgIHJldHVybiBmaXJzdERheTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IGI0ODBlNDYyMmI5OTAyYTM3MDExNWEy
M2ExMzZhMDhkOTQ1YzcwNWQuLjNjY2FmZWIyNWY4ZGQ2YTE3ZGE5MzRhMzdlYWQwNDEzOGQwZWEx
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTEzMCwxMSArMTMwLDEz
IEBACiAgICAgICBbJ09TPT0iYW5kcm9pZCInLCB7CiAgICAgICAgICdmZWF0dXJlX2RlZmluZXMn
OiBbCiAgICAgICAgICAgJ0VOQUJMRV9DQUxFTkRBUl9QSUNLRVI9MCcsCisgICAgICAgICAgJ0VO
QUJMRV9QQUdFX1BPUFVQPTAnLAogICAgICAgICAgICdFTkFCTEVfV0VCX0FVRElPPTAnLAogICAg
ICAgICBdLAogICAgICAgfSwgewogICAgICAgICAnZmVhdHVyZV9kZWZpbmVzJzogWwogICAgICAg
ICAgICdFTkFCTEVfQ0FMRU5EQVJfUElDS0VSPTEnLAorICAgICAgICAgICdFTkFCTEVfUEFHRV9Q
T1BVUD0xJywKICAgICAgICAgICAnRU5BQkxFX1dFQl9BVURJTz0xJywKICAgICAgICAgXSwKICAg
ICAgIH1dLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcAppbmRleCBmNzZiMzY2OWZmNGMyNmY5YWJjNjJjZDI1Yzg5ODU3ZjE3NDdiZTFkLi5mYzY3
NGExMGY5M2U0ZTczNGZjMjdmZWQyNGJiMDdkMzIxMGFlNTI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtOTg4LDYgKzk4OCwxOSBA
QCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNo
UG9wdXBNZW51Q2hyb21pdW0oY2xpZW50KSk7CiB9CiAKKyNpZiBFTkFCTEUoUEFHRV9QT1BVUCkK
K1BhZ2VQb3B1cCogQ2hyb21lQ2xpZW50SW1wbDo6b3BlblBhZ2VQb3B1cChQYWdlUG9wdXBDbGll
bnQqLCBjb25zdCBJbnRSZWN0JikKK3sKKyAgICAvLyBGSVhNRTogSW1wZWxlbWVudCB0aGlzLgor
ICAgIHJldHVybiAwOworfQorCit2b2lkIENocm9tZUNsaWVudEltcGw6OmNsb3NlUGFnZVBvcHVw
KFBhZ2VQb3B1cCopCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQorI2VuZGlm
CisKIGJvb2wgQ2hyb21lQ2xpZW50SW1wbDo6d2lsbEFkZFRleHRGaWVsZERlY29yYXRpb25zVG8o
SFRNTElucHV0RWxlbWVudCogaW5wdXQpCiB7CiAgICAgQVNTRVJUKGlucHV0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCA2MjYwYTk3ZGQz
ZDdkZTdhOGQxMmFiMDYxMDI5ZWY3NjBkMDdiMzEzLi41ODk0MTc3ZTAxMjFkMThkNWUzNzQ5YmJk
MjZiMThmMjY5ZGE4ZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5oCkBAIC0xOTUsNiArMTk1LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCop
IGNvbnN0OworI2lmIEVOQUJMRShQQUdFX1BPUFVQKQorICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFn
ZVBvcHVwKiBvcGVuUGFnZVBvcHVwKFdlYkNvcmU6OlBhZ2VQb3B1cENsaWVudCosIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VQYWdlUG9w
dXAoV2ViQ29yZTo6UGFnZVBvcHVwKikgT1ZFUlJJREU7CisjZW5kaWYKICAgICB2aXJ0dWFsIGJv
b2wgd2lsbEFkZFRleHRGaWVsZERlY29yYXRpb25zVG8oV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhZGRUZXh0RmllbGREZWNvcmF0aW9uc1Rv
KFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQqKSBPVkVSUklERTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135978</attachid>
            <date>2012-04-05 21:15:35 -0700</date>
            <delta_ts>2012-04-06 00:46:02 -0700</delta_ts>
            <desc>Patch 5</desc>
            <filename>bug-83258-20120406131532.patch</filename>
            <type>text/plain</type>
            <size>18063</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzNDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDc2Mzc1MWVmODIwMThj
NGI5YWVjMTkyZGY3NmM4OWFhODE2NjBjYi4uOGUyYTIxNzFmYjhlZGQxZTJhYjdlZDI1MmU3MjZk
NGMyZGM2OGFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTA0LTA1ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBDYWxlbmRhciBQaWNrZXI6
IEFkZCBjb2RlIHRvIG9wZW4vY2xvc2UgdGhlIGNhbGVuZGFyIHBpY2tlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMyNTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgY29k
ZSBpcyBub3QgdXNlZCBiZWNhdXNlIG9mIG5vIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZCBleGlzdGluZyBoZWFkZXIgZmlsZXMuCisKKyAgICAg
ICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0
VHlwZTo6RGF0ZUlucHV0VHlwZSk6CisgICAgICAgIE1vdmVkIGZyb20gRGF0ZUlucHV0VHlwZS5o
IGJlY2F1c2UgdGhlIGNvbnN0cnVjdG9yIGRlcGVuZHMgb24KKyAgICAgICAgQ2FsZW5kYXJQaWNr
ZXJFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgIFN0b3JlIGEgQ2FsZW5kYXJQaWNrZXJFbGVtZW50IG9iamVjdC4K
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKToK
KyAgICAgICAgUmVsZWFzZSB0aGUgQ2FsZW5kYXJQaWNrZXJFbGVtZW50IG9iamVjdC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmhhbmRsZUJsdXJFdmVudCk6CisgICAgICAgIENs
b3NlIHRoZSBjYWxlbmRhciBwaWNrZXIgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuCisgICAg
ICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmg6CisgICAgICAgIChEYXRlSW5wdXRUeXBlKToKKyAg
ICAgICAgLSBNb3ZlIHRoZSBjb25zdHJ1Y3RvciBkZWZpbml0aW9uIHRvIERhdGVJbnB1dFR5cGUu
Y3BwCisgICAgICAgIC0gQWRkIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucworICAgICAgICAtIEFkZCBt
X3BpY2tlckVsZW1lbnQgZGF0YSBtZW1iZXIuCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9DYWxl
bmRhclBpY2tlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJF
bGVtZW50Ojpob3N0SW5wdXQpOiBBIGhlbHBlciB0byBnZXQgdGhlIGhvc3QgPGlucHV0Pi4KKyAg
ICAgICAgKFdlYkNvcmU6OkNhbGVuZGFyUGlja2VyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cik6CisgICAgICAgIElmIHRoZSBlbGVtZW50IGlzIGNsaWNrZWQsIG9wZW4gYSBjYWxlbmRhciBw
aWNrZXIuCisgICAgICAgIChXZWJDb3JlOjpDYWxlbmRhclBpY2tlckVsZW1lbnQ6Om9wZW5Qb3B1
cCk6CisgICAgICAgIE9wZW5zIGEgY2FsZW5kYXIgcGlja2VyIGJ5IENocm9tZUNsaWVudDo6b3Bl
blBhZ2VQb3B1cCgpLgorICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJFbGVtZW50Ojpj
bG9zZVBvcHVwKToKKyAgICAgICAgQ2xvc2VzIGEgY2FsZW5kYXIgcGlja2VyIGJ5IENocm9tZUNs
aWVudDo6Y2xvc2VQYWdlUG9wdXAoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNhbGVuZGFyUGlja2Vy
RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgQ2xvc2VzIGEgY2FsZW5kYXIgcGlja2VyIHdoZW4g
dGhlIGVsZW1lbnQgbG9zZXMgYSByZW5kZXJlci4KKworICAgICAgICAoV2ViQ29yZTo6Q2FsZW5k
YXJQaWNrZXJFbGVtZW50Ojpjb250ZW50U2l6ZSk6CisgICAgICAgIFByb3ZpZGVzIHRoZSBpbml0
aWFsIHNpemUgb2YgYSBwb3B1cC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFN0cmluZyk6IEEgaGVs
cGVyIGZvciB3cml0ZURvY3VtZW50KCkuCisgICAgICAgIChXZWJDb3JlOjphZGRKYXZhU2NyaXB0
U3RyaW5nKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjphZGRQcm9wZXJ0eSk6IGRpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Q2FsZW5kYXJQaWNrZXJFbGVtZW50Ojp3cml0ZURvY3VtZW50KToK
KyAgICAgICAgUHJvdmlkZXMgdGhlIHNvdXJjZSBvZiBhIHBvcHVwLiBUaGUgZnVuY3Rpb24gY3Jl
YXRlcyBhIGNvbXBsZXRlIEhUTUwgd2l0aDoKKyAgICAgICAgLSBXZWJDb3JlL1Jlc291cmNlcy9j
YWxlbmRhclBpY2tlci5jc3MKKyAgICAgICAgLSBXZWJDb3JlL1Jlc291cmNlcy9jYWxlbmRhclBp
Y2tlci5qcworICAgICAgICAtIEFuIG9iamVjdCB0byBwYXNzIGxvY2FsaXphdGlvbiBzdHJpbmdz
IGFuZCA8aW5wdXQ+IHN0YXRlCisgICAgICAgIChXZWJDb3JlOjpDYWxlbmRhclBpY2tlckVsZW1l
bnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cCk6CisgICAgICAgIFNldHMgdGhlIHZhbHVlIGZyb20g
YSBjYWxlbmRhciBwaWNrZXIgdG8gdGhlIDxpbnB1dD4uCisgICAgICAgIChXZWJDb3JlOjpDYWxl
bmRhclBpY2tlckVsZW1lbnQ6OmRpZENsb3NlUG9wdXApOgorICAgICAgICBDbGVhciB0aGUgcG9w
dXAgb2JqZWN0LgorICAgICAgICAqIGh0bWwvc2hhZG93L0NhbGVuZGFyUGlja2VyRWxlbWVudC5o
OgorICAgICAgICAoQ2FsZW5kYXJQaWNrZXJFbGVtZW50KTogQWRkIGRlY2xhcmF0aW9ucy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2FsZW5kYXJJQ1UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Z2V0Rmlyc3REYXlPZldlZWspOiBNYWtlIHN1cmUgdGhpcyBpcyAwLWJhc2Uu
IFVDQUxfU1VOREFZIGlzIDEuCisKIDIwMTItMDQtMDUgIERhdmlkIEJhcnRvbiAgPGRiYXJ0b25A
bWF0aHNjcmliZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGludHJpbnNpYyBwYWRkaW5nIGZyb20g
Y29udGVudEJveFJlY3QoKSwgZXRjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAxMTA3
M2YxNTQ2YjVlYTdhNDg5Yjk2NzAxM2FiNjMyNDk4MjZlNGJiLi4xZWY4ZjczNTI4ZmU0NDg4ZjEz
ODQ0MGJmY2M0NzJiOTFlN2QwOWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDEyLTA0LTA1ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4K
KworICAgICAgICBDYWxlbmRhciBQaWNrZXI6IEFkZCBjb2RlIHRvIG9wZW4vY2xvc2UgdGhlIGNh
bGVuZGFyIHBpY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODMyNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZlYXR1cmVzLmd5cGk6IEVuYWJsZSBFTkFCTEVfUEFHRV9QT1BVUCBmb3Igbm9uLUFu
ZHJvaWQKKyAgICAgICAgcGxhdGZvcm1zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIEVOQUJMRV9D
QUxFTkRBUl9QSUNLRVIgbm93IGRlcGVuZHMgb24KKyAgICAgICAgRU5BQkxFX1BBR0VfUE9QVVAu
CisgICAgICAgICogc3JjL0Nocm9lbUNsaWVudEltcGwuY3BwOiBBZGQgc3R1YnMuCisgICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om9wZW5QYWdlUG9wdXApOgorICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnRJbXBsOjpjbG9zZVBhZ2VQb3B1cCk6CisgICAgICAgICogc3JjL0No
cm9tZUNsaWVudEltcGwuaDogQWRkIGRlY2xhcmF0aW9ucyBvZiBvcGVuUGFnZVBvcHVwKCkgYW5k
IGNsb3NlUGFnZVBvcHVwKCkuCisKIDIwMTItMDQtMDUgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBtb3ZpbmcgYSBjdXJzb3Igb24gYSBt
aXNzcGVsbGVkIHdvcmQgc2hvdWxkIG5vdCByZW1vdmUgYSBtaXNzcGVsbGVkIHVuZGVybGluZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCmluZGV4IDk0N2NmYmQxNDUzOTMyMDU0NWQ3NTE4N2RmYWI3NTllOTU2Y2Vj
MDQuLmI1MWZlYWFjODMyMjE0ZGNmNDE3NGY2YzdhYWMxZTVhMjBhNGFhNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKQEAgLTIzOCw2ICsyMzgsOCBAQAogICAgICAgICAgICAgJ3BhZ2UvTWVtb3J5SW5mby5o
JywKICAgICAgICAgICAgICdwYWdlL1BhZ2UuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3Jv
dXAuaCcsCisgICAgICAgICAgICAncGFnZS9QYWdlUG9wdXAuaCcsCisgICAgICAgICAgICAncGFn
ZS9QYWdlUG9wdXBDbGllbnQuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlU2VyaWFsaXplci5o
JywKICAgICAgICAgICAgICdwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCcsCiAgICAgICAgICAg
ICAncGFnZS9QcmludENvbnRleHQuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNw
cAppbmRleCAyNGJkZDhiYTE1ZDMyMDAwMTQyZmQ4ZmIzOWMxOWZmN2EwYjRkMjNhLi5hODJmMGE5
MjMyZDRlOTQ4YmRjMTUxMWQ3MTA2ODI0OTkxNGNlM2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZUlucHV0VHlwZS5jcHAKQEAgLTQ2LDYgKzQ2LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiBzdGF0aWMgY29uc3QgZG91YmxlIGRhdGVEZWZhdWx0U3RlcCA9IDEuMDsKIHN0YXRpYyBj
b25zdCBkb3VibGUgZGF0ZVN0ZXBTY2FsZUZhY3RvciA9IDg2NDAwMDAwLjA7CiAKK2lubGluZSBE
YXRlSW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCisg
ICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkKK3sKK30KKwogUGFzc093blB0
cjxJbnB1dFR5cGU+IERhdGVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVt
ZW50KQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0ZUlucHV0VHlwZShlbGVtZW50KSk7
CkBAIC0xMDMsNyArMTA4LDE0IEBAIGJvb2wgRGF0ZUlucHV0VHlwZTo6c2V0TWlsbGlzZWNvbmRU
b0RhdGVDb21wb25lbnRzKGRvdWJsZSB2YWx1ZSwgRGF0ZUNvbXBvbmVudHMqCiB2b2lkIERhdGVJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewogICAgIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpOwotICAgIGNvbnRhaW5lckVsZW1lbnQoKS0+
aW5zZXJ0QmVmb3JlKENhbGVuZGFyUGlja2VyRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9j
dW1lbnQoKSksIGlubmVyQmxvY2tFbGVtZW50KCktPm5leHRTaWJsaW5nKCksIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgIG1fcGlja2VyRWxlbWVudCA9IENhbGVuZGFyUGlja2VyRWxlbWVudDo6
Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7CisgICAgY29udGFpbmVyRWxlbWVudCgpLT5p
bnNlcnRCZWZvcmUobV9waWNrZXJFbGVtZW50LmdldCgpLCBpbm5lckJsb2NrRWxlbWVudCgpLT5u
ZXh0U2libGluZygpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKK30KKwordm9pZCBEYXRlSW5wdXRU
eXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCit7CisgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjpk
ZXN0cm95U2hhZG93U3VidHJlZSgpOworICAgIG1fcGlja2VyRWxlbWVudC5jbGVhcigpOwogfQog
CiBib29sIERhdGVJbnB1dFR5cGU6Om5lZWRzQ29udGFpbmVyKCkgY29uc3QKQEAgLTExNSw2ICsx
MjcsMTIgQEAgYm9vbCBEYXRlSW5wdXRUeXBlOjpzaG91bGRIYXZlU3BpbkJ1dHRvbigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCit2b2lkIERhdGVJbnB1dFR5cGU6OmhhbmRsZUJs
dXJFdmVudCgpCit7CisgICAgaWYgKG1fcGlja2VyRWxlbWVudCkKKyAgICAgICAgbV9waWNrZXJF
bGVtZW50LT5jbG9zZVBvcHVwKCk7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKENBTEVOREFSX1BJQ0tF
UikKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUu
aAppbmRleCBmMDIwZTJlOWEwZDk3YjNmNzQ2ZTc3NmU3OTdhZDMxMjMwYTk1YmQ0Li5kNTA4NWMz
MmVjMDYyYWIwMTIwOWMxOGI4NGFlYmU4NTYyYWU1YzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJ
bnB1dFR5cGUuaApAQCAtMzIsMTcgKzMyLDIwIEBACiAjZGVmaW5lIERhdGVJbnB1dFR5cGVfaAog
CiAjaW5jbHVkZSAiQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgiCisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfREFURSkKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBDYWxlbmRhclBpY2tlckVsZW1lbnQ7CisKIGNsYXNzIERhdGVJbnB1dFR5
cGUgOiBwdWJsaWMgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc093blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Kik7CiAKIHBy
aXZhdGU6Ci0gICAgRGF0ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50KSB7IH0KKyAgICBEYXRlSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNv
bnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBEYXRlQ29tcG9uZW50czo6
VHlwZSBkYXRlVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgZG91YmxlIG1pbmlt
dW0oKSBjb25zdCBPVkVSUklERTsKQEAgLTU0LDEwICs1NywxNCBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRlQ29t
cG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAg
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGVzdHJveVNoYWRvd1N1YnRyZWUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlQmx1ckV2ZW50KCkgT1ZFUlJJREU7CiAKICAgICAvLyBUZXh0RmllbGRJbnB1dFR5
cGUgZnVuY3Rpb25zCiAgICAgdmlydHVhbCBib29sIG5lZWRzQ29udGFpbmVyKCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEhhdmVTcGluQnV0dG9uKCkgY29uc3QgT1ZF
UlJJREU7CisKKyAgICBSZWZQdHI8Q2FsZW5kYXJQaWNrZXJFbGVtZW50PiBtX3BpY2tlckVsZW1l
bnQ7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0NhbGVuZGFyUGlja2VyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9D
YWxlbmRhclBpY2tlckVsZW1lbnQuY3BwCmluZGV4IDQxYTNkMjA5ZDA0NThmMDVlNjVkNjZjYTZl
YzYxYjNhYThjNWUxMTkuLjNjNzJlOWIyMGY1ZjA0Mjk3MGMxMzQ4MjE1MzA1MWU5ZGNmNTY5MGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NhbGVuZGFyUGlja2VyRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJF
bGVtZW50LmNwcApAQCAtMzMsOCArMzMsMjEgQEAKIAogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNL
RVIpCiAKKyNpbmNsdWRlICJDYWxlbmRhclBpY2tlci5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgor
I2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRXcml0ZXIuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKKyNpbmNsdWRlICJMYW5ndWFnZS5oIgorI2luY2x1ZGUgIkxvY2FsaXplZENh
bGVuZGFyLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJSZW5kZXJEZXRhaWxzTWFya2VyLmgiCisjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU2LDYgKzY5LDE1
NSBAQCBSZW5kZXJPYmplY3QqIENhbGVuZGFyUGlja2VyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIo
UmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdAogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5k
ZXJEZXRhaWxzTWFya2VyKHRoaXMpOwogfQogCitpbmxpbmUgSFRNTElucHV0RWxlbWVudCogQ2Fs
ZW5kYXJQaWNrZXJFbGVtZW50Ojpob3N0SW5wdXQoKQoreworICAgIEFTU0VSVChzaGFkb3dBbmNl
c3Rvck5vZGUoKSk7CisgICAgQVNTRVJUKHNoYWRvd0FuY2VzdG9yTm9kZSgpLT5oYXNUYWdOYW1l
KGlucHV0VGFnKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihz
aGFkb3dBbmNlc3Rvck5vZGUoKSk7Cit9CisKK3ZvaWQgQ2FsZW5kYXJQaWNrZXJFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKK3sKKyAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dCA9IGhvc3RJbnB1dCgpOworICAgIGlmIChpbnB1dC0+cmVhZE9ubHkoKSB8fCBpbnB1
dC0+ZGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQpIHsKKyAgICAgICAgb3BlblBvcHVwKCk7CisgICAg
ICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgIH0KKworICAgIGlmICghZXZlbnQt
PmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgIEhUTUxEaXZFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKGV2ZW50KTsKK30KKwordm9pZCBDYWxlbmRhclBpY2tlckVsZW1lbnQ6Om9wZW5Qb3B1
cCgpCit7CisgICAgaWYgKG1fcG9wdXApCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWRvY3Vt
ZW50KCktPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworICAgIENocm9tZSogY2hyb21lID0gZG9j
dW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKTsKKyAgICBpZiAoIWNocm9tZSkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmICghZG9jdW1lbnQoKS0+dmlldygpKQorICAgICAgICByZXR1cm47CisgICAg
SW50UmVjdCBlbGVtZW50UmVjdEluUm9vdFZpZXcgPSBkb2N1bWVudCgpLT52aWV3KCktPmNvbnRl
bnRzVG9Sb290Vmlldyhob3N0SW5wdXQoKS0+Z2V0UmVjdCgpKTsKKyAgICBtX3BvcHVwID0gY2hy
b21lLT5jbGllbnQoKS0+b3BlblBhZ2VQb3B1cCh0aGlzLCBlbGVtZW50UmVjdEluUm9vdFZpZXcp
OworfQorCit2b2lkIENhbGVuZGFyUGlja2VyRWxlbWVudDo6Y2xvc2VQb3B1cCgpCit7CisgICAg
aWYgKCFtX3BvcHVwKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFkb2N1bWVudCgpLT5wYWdl
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBDaHJvbWUqIGNocm9tZSA9IGRvY3VtZW50KCktPnBh
Z2UoKS0+Y2hyb21lKCk7CisgICAgaWYgKCFjaHJvbWUpCisgICAgICAgIHJldHVybjsKKyAgICBj
aHJvbWUtPmNsaWVudCgpLT5jbG9zZVBhZ2VQb3B1cChtX3BvcHVwKTsKK30KKwordm9pZCBDYWxl
bmRhclBpY2tlckVsZW1lbnQ6OmRldGFjaCgpCit7CisgICAgY2xvc2VQb3B1cCgpOworICAgIEhU
TUxEaXZFbGVtZW50OjpkZXRhY2goKTsKK30KKworSW50U2l6ZSBDYWxlbmRhclBpY2tlckVsZW1l
bnQ6OmNvbnRlbnRTaXplKCkKK3sKKyAgICByZXR1cm4gSW50U2l6ZSgzMjAsIDI1Nik7Cit9CisK
KyNkZWZpbmUgYWRkTGl0ZXJhbChsaXRlcmFsLCB3cml0ZXIpICAgIHdyaXRlci5hZGREYXRhKGxp
dGVyYWwsIHNpemVvZihsaXRlcmFsKSAtIDEpCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRTdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHIsIERvY3VtZW50V3JpdGVyJiB3cml0ZXIpCit7CisgICAgQ1N0
cmluZyBzdHI4ID0gc3RyLnV0ZjgoKTsKKyAgICB3cml0ZXIuYWRkRGF0YShzdHI4LmRhdGEoKSwg
c3RyOC5sZW5ndGgoKSk7Cit9CisKK3N0YXRpYyB2b2lkIGFkZEphdmFTY3JpcHRTdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHIsIERvY3VtZW50V3JpdGVyJiB3cml0ZXIpCit7CisgICAgYWRkTGl0ZXJh
bCgiXCIiLCB3cml0ZXIpOworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVy
LnJlc2VydmVDYXBhY2l0eShzdHIubGVuZ3RoKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzdHIubGVuZ3RoKCk7ICsraSkgeworICAgICAgICBpZiAoc3RyW2ldID09ICdcXCcgfHwg
c3RyW2ldID09ICciJykKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcXCcpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZChzdHJbaV0pOworICAgIH0KKyAgICBhZGRTdHJpbmcoYnVpbGRlci50
b1N0cmluZygpLCB3cml0ZXIpOworICAgIGFkZExpdGVyYWwoIlwiIiwgd3JpdGVyKTsKK30KKwor
c3RhdGljIHZvaWQgYWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFtZSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSwgRG9jdW1lbnRXcml0ZXImIHdyaXRlcikKK3sKKyAgICB3cml0ZXIuYWRkRGF0YShuYW1l
LCBzdHJsZW4obmFtZSkpOworICAgIGFkZExpdGVyYWwoIjogIiwgd3JpdGVyKTsKKyAgICBhZGRK
YXZhU2NyaXB0U3RyaW5nKHZhbHVlLCB3cml0ZXIpOworICAgIGFkZExpdGVyYWwoIixcbiIsIHdy
aXRlcik7Cit9CisKK3N0YXRpYyB2b2lkIGFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiB2YWx1ZXMsIERvY3VtZW50V3JpdGVyJiB3cml0ZXIpCit7Cisg
ICAgd3JpdGVyLmFkZERhdGEobmFtZSwgc3RybGVuKG5hbWUpKTsKKyAgICBhZGRMaXRlcmFsKCI6
IFsiLCB3cml0ZXIpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgaWYgKGkpCisgICAgICAgICAgICBhZGRMaXRlcmFsKCIsIiwgd3Jp
dGVyKTsKKyAgICAgICAgYWRkSmF2YVNjcmlwdFN0cmluZyh2YWx1ZXNbaV0sIHdyaXRlcik7Cisg
ICAgfQorICAgIGFkZExpdGVyYWwoIl0sXG4iLCB3cml0ZXIpOworfQorCit2b2lkIENhbGVuZGFy
UGlja2VyRWxlbWVudDo6d3JpdGVEb2N1bWVudChEb2N1bWVudFdyaXRlciYgd3JpdGVyKQorewor
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gaG9zdElucHV0KCk7CisgICAgRGF0ZUNvbXBv
bmVudHMgZGF0ZTsKKyAgICBkYXRlLnNldE1pbGxpc2Vjb25kc1NpbmNlRXBvY2hGb3JEYXRlKGlu
cHV0LT5taW5pbXVtKCkpOworICAgIFN0cmluZyBtaW5TdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCk7
CisgICAgZGF0ZS5zZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yRGF0ZShpbnB1dC0+bWF4aW11
bSgpKTsKKyAgICBTdHJpbmcgbWF4U3RyaW5nID0gZGF0ZS50b1N0cmluZygpOworICAgIGRvdWJs
ZSBzdGVwOworICAgIFN0cmluZyBzdGVwU3RyaW5nID0gaW5wdXQtPmZhc3RHZXRBdHRyaWJ1dGUo
c3RlcEF0dHIpOworICAgIGlmIChzdGVwU3RyaW5nLmlzRW1wdHkoKSB8fCAhaW5wdXQtPmdldEFs
bG93ZWRWYWx1ZVN0ZXAoJnN0ZXApKQorICAgICAgICBzdGVwU3RyaW5nID0gIjEiOworCisgICAg
YWRkTGl0ZXJhbCgiPCFET0NUWVBFIGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0nVVRGLTgnPjxz
dHlsZT5cbiIsIHdyaXRlcik7CisgICAgd3JpdGVyLmFkZERhdGEoY2FsZW5kYXJQaWNrZXJDc3Ms
IHNpemVvZihjYWxlbmRhclBpY2tlckNzcykpOworICAgIGFkZExpdGVyYWwoIjwvc3R5bGU+PC9o
ZWFkPjxib2R5PjxkaXYgaWQ9bWFpbj5Mb2FkaW5nLi4uPC9kaXY+PHNjcmlwdD5cbiIKKyAgICAg
ICAgICAgICAgICJ3aW5kb3cuZGlhbG9nQXJndW1lbnRzID0ge1xuIiwgd3JpdGVyKTsKKyAgICBh
ZGRQcm9wZXJ0eSgibWluIiwgbWluU3RyaW5nLCB3cml0ZXIpOworICAgIGFkZFByb3BlcnR5KCJt
YXgiLCBtYXhTdHJpbmcsIHdyaXRlcik7CisgICAgYWRkUHJvcGVydHkoInN0ZXAiLCBzdGVwU3Ry
aW5nLCB3cml0ZXIpOworICAgIGFkZFByb3BlcnR5KCJyZXF1aXJlZCIsIGlucHV0LT5yZXF1aXJl
ZCgpID8gInRydWUiIDogImZhbHNlIiwgd3JpdGVyKTsKKyAgICBhZGRQcm9wZXJ0eSgiY3VycmVu
dFZhbHVlIiwgaW5wdXQtPnZhbHVlKCksIHdyaXRlcik7CisgICAgYWRkUHJvcGVydHkoImxvY2Fs
ZSIsIGRlZmF1bHRMYW5ndWFnZSgpLCB3cml0ZXIpOworICAgIGFkZFByb3BlcnR5KCJ0b2RheUxh
YmVsIiwgY2FsZW5kYXJUb2RheVRleHQoKSwgd3JpdGVyKTsKKyAgICBhZGRQcm9wZXJ0eSgiY2xl
YXJMYWJlbCIsIGNhbGVuZGFyQ2xlYXJUZXh0KCksIHdyaXRlcik7CisgICAgYWRkUHJvcGVydHko
IndlZWtTdGFydERheSIsIFN0cmluZzo6bnVtYmVyKGZpcnN0RGF5T2ZXZWVrKCkpLCB3cml0ZXIp
OworICAgIGFkZFByb3BlcnR5KCJtb250aExhYmVscyIsIG1vbnRoTGFiZWxzKCksIHdyaXRlcik7
CisgICAgYWRkUHJvcGVydHkoImRheUxhYmVscyIsIHdlZWtEYXlTaG9ydExhYmVscygpLCB3cml0
ZXIpOworICAgIGFkZExpdGVyYWwoIn1cbiIsIHdyaXRlcik7CisKKyAgICB3cml0ZXIuYWRkRGF0
YShjYWxlbmRhclBpY2tlckpzLCBzaXplb2YoY2FsZW5kYXJQaWNrZXJKcykpOworICAgIGFkZExp
dGVyYWwoIjwvc2NyaXB0PjwvYm9keT5cbiIsIHdyaXRlcik7Cit9CisKK3ZvaWQgQ2FsZW5kYXJQ
aWNrZXJFbGVtZW50OjpzZXRWYWx1ZUFuZENsb3NlUG9wdXAoaW50IG51bVZhbHVlLCBjb25zdCBT
dHJpbmcmIHN0cmluZ1ZhbHVlKQoreworICAgIEFTU0VSVChtX3BvcHVwKTsKKyAgICBjbG9zZVBv
cHVwKCk7CisgICAgaWYgKG51bVZhbHVlID49IDApCisgICAgICAgIGhvc3RJbnB1dCgpLT5zZXRW
YWx1ZShzdHJpbmdWYWx1ZSwgRGlzcGF0Y2hDaGFuZ2VFdmVudCk7Cit9CisKK3ZvaWQgQ2FsZW5k
YXJQaWNrZXJFbGVtZW50OjpkaWRDbG9zZVBvcHVwKCkKK3sKKyAgICBtX3BvcHVwID0gMDsKK30K
KwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Nh
bGVuZGFyUGlja2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5k
YXJQaWNrZXJFbGVtZW50LmgKaW5kZXggNTFjOWI4ZmFiZjVjZjg2NDhhNzk3YmI0NDZlYzhiNmEx
ZjhiOWQ1Ni4uZWI0MDY0NTZlNTI2ZjEwODQ0YTMxMzRlOTRjNTgzYjQ5NzBmZTU4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ2FsZW5kYXJQaWNrZXJFbGVtZW50LmgK
QEAgLTMxLDE5ICszMSwzOCBAQAogI2lmbmRlZiBDYWxlbmRhclBpY2tlckVsZW1lbnRfaAogI2Rl
ZmluZSBDYWxlbmRhclBpY2tlckVsZW1lbnRfaAogCisjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tF
UikKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIlBhZ2VQb3B1cENsaWVu
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENhbGVuZGFyUGlja2VyRWxlbWVu
dCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CitjbGFzcyBIVE1MSW5wdXRFbGVtZW50OworY2xh
c3MgUGFnZVBvcHVwOworCitjbGFzcyBDYWxlbmRhclBpY2tlckVsZW1lbnQgOiBwdWJsaWMgSFRN
TERpdkVsZW1lbnQsIHB1YmxpYyBQYWdlUG9wdXBDbGllbnQgewogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPENhbGVuZGFyUGlja2VyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7Cisg
ICAgdm9pZCBjbG9zZVBvcHVwKCk7CiAKIHByaXZhdGU6CiAgICAgQ2FsZW5kYXJQaWNrZXJFbGVt
ZW50KERvY3VtZW50Kik7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBPVkVSUklERTsKLSAgICAvLyBGSVhNRTogYWRk
IGNsaWNrIGhhbmRsaW5nLgorICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpIE9WRVJSSURFOworCisg
ICAgLy8gUGFnZVBvcHVwQ2xpZW50IGZ1bmN0aW9uczoKKyAgICB2aXJ0dWFsIEludFNpemUgY29u
dGVudFNpemUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGVEb2N1bWVudChEb2N1
bWVudFdyaXRlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFuZENsb3Nl
UG9wdXAoaW50LCBjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
Q2xvc2VQb3B1cCgpIE9WRVJSSURFOworCisgICAgSFRNTElucHV0RWxlbWVudCogaG9zdElucHV0
KCk7CisgICAgdm9pZCBvcGVuUG9wdXAoKTsKKworICAgIFBhZ2VQb3B1cCogbV9wb3B1cDsKIH07
CiAKIH0KICNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0xvY2FsaXplZENhbGVuZGFySUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvTG9jYWxpemVkQ2FsZW5kYXJJQ1UuY3BwCmluZGV4IGRhMGE5MTRmMGI0MzkyMTk1MjNh
MjI1ZWY1YmFlODUyYWNiYTZkM2IuLjQ1M2E5Y2E1YjU2YTQwYTIxOWM4OGQzNDcyNDA5YTEzMTg5
MDAyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVk
Q2FsZW5kYXJJQ1UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxp
emVkQ2FsZW5kYXJJQ1UuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgc3RhdGljIHVuc2lnbmVkIGdl
dEZpcnN0RGF5T2ZXZWVrKCkKICAgICBTY29wZWREYXRlRm9ybWF0IGRhdGVGb3JtYXQ7CiAgICAg
aWYgKCFkYXRlRm9ybWF0LmdldCgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICB1bnNpZ25lZCBm
aXJzdERheSA9IHVjYWxfZ2V0QXR0cmlidXRlKHVkYXRfZ2V0Q2FsZW5kYXIoZGF0ZUZvcm1hdC5n
ZXQoKSksIFVDQUxfRklSU1RfREFZX09GX1dFRUspOworICAgIHVuc2lnbmVkIGZpcnN0RGF5ID0g
dWNhbF9nZXRBdHRyaWJ1dGUodWRhdF9nZXRDYWxlbmRhcihkYXRlRm9ybWF0LmdldCgpKSwgVUNB
TF9GSVJTVF9EQVlfT0ZfV0VFSykgLSBVQ0FMX1NVTkRBWTsKICAgICByZXR1cm4gZmlyc3REYXk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCBiNDgwZTQ2MjJiOTkw
MmEzNzAxMTVhMjNhMTM2YTA4ZDk0NWM3MDVkLi4zY2NhZmViMjVmOGRkNmExN2RhOTM0YTM3ZWFk
MDQxMzhkMGVhMTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVz
Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC0xMzAs
MTEgKzEzMCwxMyBAQAogICAgICAgWydPUz09ImFuZHJvaWQiJywgewogICAgICAgICAnZmVhdHVy
ZV9kZWZpbmVzJzogWwogICAgICAgICAgICdFTkFCTEVfQ0FMRU5EQVJfUElDS0VSPTAnLAorICAg
ICAgICAgICdFTkFCTEVfUEFHRV9QT1BVUD0wJywKICAgICAgICAgICAnRU5BQkxFX1dFQl9BVURJ
Tz0wJywKICAgICAgICAgXSwKICAgICAgIH0sIHsKICAgICAgICAgJ2ZlYXR1cmVfZGVmaW5lcyc6
IFsKICAgICAgICAgICAnRU5BQkxFX0NBTEVOREFSX1BJQ0tFUj0xJywKKyAgICAgICAgICAnRU5B
QkxFX1BBR0VfUE9QVVA9MScsCiAgICAgICAgICAgJ0VOQUJMRV9XRUJfQVVESU89MScsCiAgICAg
ICAgIF0sCiAgICAgICB9XSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5jcHAKaW5kZXggZjc2YjM2NjlmZjRjMjZmOWFiYzYyY2QyNWM4OTg1N2YxNzQ3
YmUxZC4uZmM2NzRhMTBmOTNlNGU3MzRmYzI3ZmVkMjRiYjA3ZDMyMTBhZTUyOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTk4OCw2
ICs5ODgsMTkgQEAgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZUNsaWVudEltcGw6
OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGkKICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNlYXJjaFBvcHVwTWVudUNocm9taXVtKGNsaWVudCkpOwogfQogCisjaWYgRU5BQkxFKFBB
R0VfUE9QVVApCitQYWdlUG9wdXAqIENocm9tZUNsaWVudEltcGw6Om9wZW5QYWdlUG9wdXAoUGFn
ZVBvcHVwQ2xpZW50KiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgLy8gRklYTUU6IEltcGVsZW1l
bnQgdGhpcy4KKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjbG9z
ZVBhZ2VQb3B1cChQYWdlUG9wdXAqKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4K
K30KKyNlbmRpZgorCiBib29sIENocm9tZUNsaWVudEltcGw6OndpbGxBZGRUZXh0RmllbGREZWNv
cmF0aW9uc1RvKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KQogewogICAgIEFTU0VSVChpbnB1dCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXgg
NjI2MGE5N2RkM2Q3ZGU3YThkMTJhYjA2MTAyOWVmNzYwZDA3YjMxMy4uNTg5NDE3N2UwMTIxZDE4
ZDVlMzc0OWJiZDI2YjE4ZjI2OWRhOGU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMTk1LDYgKzE5NSwxMCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6
OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1l
bnVDbGllbnQqKSBjb25zdDsKKyNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OlBhZ2VQb3B1cCogb3BlblBhZ2VQb3B1cChXZWJDb3JlOjpQYWdlUG9wdXBDbGllbnQq
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNs
b3NlUGFnZVBvcHVwKFdlYkNvcmU6OlBhZ2VQb3B1cCopIE9WRVJSSURFOworI2VuZGlmCiAgICAg
dmlydHVhbCBib29sIHdpbGxBZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvKFdlYkNvcmU6OkhUTUxJ
bnB1dEVsZW1lbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkVGV4dEZpZWxkRGVj
b3JhdGlvbnNUbyhXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KikgT1ZFUlJJREU7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>