<?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>85230</bug_id>
          
          <creation_ts>2012-04-30 14:09:59 -0700</creation_ts>
          <short_desc>Full screen will exit during a provisional load of a non-ancestor iframe.</short_desc>
          <delta_ts>2012-05-04 13:59:48 -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>New Bugs</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>
          <dependson>85640</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>darin</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>612936</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-30 14:09:59 -0700</bug_when>
    <thetext>Full screen will exit during a provisional load of a non-ancestor iframe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613036</commentid>
    <comment_count>1</comment_count>
      <attachid>139537</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-30 15:57:56 -0700</bug_when>
    <thetext>Created attachment 139537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615044</commentid>
    <comment_count>2</comment_count>
      <attachid>139537</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2012-05-02 23:32:23 -0700</bug_when>
    <thetext>Comment on attachment 139537
Patch

Surely it must be possible to make a test for this, given that the functionality is exposed to WKTR. If it&apos;s not testable, please explain why not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615328</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-03 09:11:30 -0700</bug_when>
    <thetext>Okay, writing up a test case now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615349</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-03 09:41:06 -0700</bug_when>
    <thetext>I&apos;m hitting upon a difficult problem in writing a layout test: because both DRT and WKTR intercept the requests to enter and exit full screen, as far as they are concerned, there is no full screen controller present when the didStartProvisionalLoadForFrame message comes through.  Therefore they do not attempt to exit full screen at that point.

So I can craft a test which works in a browser (i.e. Safari), but not in DRT or WKTR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615368</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-03 10:04:49 -0700</bug_when>
    <thetext>There&apos;s the additional problem that the behavior in the bug wasn&apos;t reproducing in DRT or WKTR in the first place.  So it will be impossible to craft a test which fails in the current build, but passes with the patch applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615707</commentid>
    <comment_count>6</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2012-05-03 15:37:12 -0700</bug_when>
    <thetext>OK, I&apos;ll buy that. Can you add that explanation to the ChangeLog and repost for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615715</commentid>
    <comment_count>7</comment_count>
      <attachid>140114</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-03 15:42:14 -0700</bug_when>
    <thetext>Created attachment 140114
Patch

Added a testcase, which while it will not fail when run against older builds, will at least catch future regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615749</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-03 16:10:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/11213173&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616349</commentid>
    <comment_count>9</comment_count>
      <attachid>140114</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-04 10:12:40 -0700</bug_when>
    <thetext>Comment on attachment 140114
Patch

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

&gt; Source/WebKit/mac/ChangeLog:15
&gt; +        Move WebKitFullScreenListener into its own file:

Why mix this into the same patch with a bug fix? This obscures the question of whether you made any code changes to WebKitFullScreenListener.

Why not move it into its own file separately, first?

&gt; Source/WebKit/mac/WebView/WebView.mm:1858
&gt; +            WebKitFullScreenListener* listener = [[WebKitFullScreenListener alloc] initWithElement:element];

The * is positioned wrong here.

&gt; Source/WebKit/mac/WebView/WebView.mm:1863
&gt; +            WebFullScreenController* controller = _private-&gt;newFullscreenController;
&gt; +            [controller close];

The * is positioned wrong here and I’m not sure why we’re using a local variable here when we did not use one on the line above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616379</commentid>
    <comment_count>10</comment_count>
      <attachid>140114</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-04 10:29:58 -0700</bug_when>
    <thetext>Comment on attachment 140114
Patch

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

&gt;&gt; Source/WebKit/mac/ChangeLog:15
&gt;&gt; +        Move WebKitFullScreenListener into its own file:
&gt; 
&gt; Why mix this into the same patch with a bug fix? This obscures the question of whether you made any code changes to WebKitFullScreenListener.
&gt; 
&gt; Why not move it into its own file separately, first?

Only for expediency.  Two dependent bugs &amp; patches makes the EWS bots sad.  That said, I can pull this out into a separate patch &amp; bug, since it&apos;s already passed the EWS bots.

&gt;&gt; Source/WebKit/mac/WebView/WebView.mm:1858
&gt;&gt; +            WebKitFullScreenListener* listener = [[WebKitFullScreenListener alloc] initWithElement:element];
&gt; 
&gt; The * is positioned wrong here.

Ack.  Changed.

&gt;&gt; Source/WebKit/mac/WebView/WebView.mm:1863
&gt;&gt; +            [controller close];
&gt; 
&gt; The * is positioned wrong here and I’m not sure why we’re using a local variable here when we did not use one on the line above.

Ditto.  And no good reason.  I&apos;ll eliminate the local variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616396</commentid>
    <comment_count>11</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-04 10:42:52 -0700</bug_when>
    <thetext>Gah, webkit-patch upload tried to upload to the wrong bug, and obseleted the patch that darin r+&apos;d.  Sigh, i&apos;ll upload a new patch that&apos;s dependent on https://bugs.webkit.org/show_bug.cgi?id=85640.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616401</commentid>
    <comment_count>12</comment_count>
      <attachid>140271</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-04 10:45:55 -0700</bug_when>
    <thetext>Created attachment 140271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616427</commentid>
    <comment_count>13</comment_count>
      <attachid>140276</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-04 10:56:19 -0700</bug_when>
    <thetext>Created attachment 140276
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616428</commentid>
    <comment_count>14</comment_count>
      <attachid>140277</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-04 10:57:19 -0700</bug_when>
    <thetext>Created attachment 140277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616436</commentid>
    <comment_count>15</comment_count>
      <attachid>140277</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-04 11:04:55 -0700</bug_when>
    <thetext>Comment on attachment 140277
Patch

Attachment 140277 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12565208</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616541</commentid>
    <comment_count>16</comment_count>
      <attachid>140277</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2012-05-04 12:47:05 -0700</bug_when>
    <thetext>Comment on attachment 140277
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616614</commentid>
    <comment_count>17</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-04 13:59:48 -0700</bug_when>
    <thetext>Committed r116165: &lt;http://trac.webkit.org/changeset/116165&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139537</attachid>
            <date>2012-04-30 15:57:56 -0700</date>
            <delta_ts>2012-05-03 15:42:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85230-20120430155754.patch</filename>
            <type>text/plain</type>
            <size>14513</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVkMzY1ZmZlMGRkYjM4
NDE2NjIxY2QzNWE2ZWFlOWYwZTBkMDQ2My4uNzEyOWE1OGU3MmM4Y2ExZDNhY2IyMjBhZDZkZjgw
ZWVlMjZkNGYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA0LTMwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEZ1bGwgc2NyZWVuIHdpbGwg
ZXhpdCBkdXJpbmcgYSBwcm92aXNpb25hbCBsb2FkIG9mIGEgbm9uLWFuY2VzdG9yIGlmcmFtZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MjMwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE5vZGU6
OmNvbnRhaW5zKCkgdG8gdGhlIGV4cG9ydCBsaXN0LgorCisgICAgICAgICogV2ViQ29yZS5leHAu
aW46CisKIDIwMTItMDQtMjYgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbXBsZW1lbnQgdGhlICJEaXNhYmxlIEphdmFT
Y3JpcHQiIG9wdGlvbiBpbiB0aGUgc2V0dGluZ3MgZGlhbG9nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXgg
M2E1Mjg2ODZlMTVkNDVkYWQ4NDEzYjhmNWNhNTc3ZTkyNjA1NDhjNC4uNGM2MWJkZTU1MzllMDgz
ZDU5Y2I5MDY1YzY0MzJkZDQ2YWExZDhmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDEyLTA0LTMwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAg
ICAgIEZ1bGwgc2NyZWVuIHdpbGwgZXhpdCBkdXJpbmcgYSBwcm92aXNpb25hbCBsb2FkIG9mIGEg
bm9uLWFuY2VzdG9yIGlmcmFtZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg1MjMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgT25seSBleGl0IGZ1bGwgc2NyZWVuIG1vZGUgaWYgdGhlIGZyYW1lIGJlaW5n
IGxvYWRlZCBjb250YWlucyB0aGUgZnVsbCAKKyAgICAgICAgc2NyZWVuIGVsZW1lbnQuCisKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2RpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6XSk6CisKIDIwMTItMDQtMjYgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgRnVsbCBTY3JlZW4gbW9kZSBkb2VzIG5vdCBw
cmVzZXJ2ZSBDQUxheWVyIG9yZGVyaW5nIGFmdGVyIGV4aXRpbmcuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmRl
MjNjZWZhZDI4MDIyZTBiZjYxNzAxY2RlMDM4MjUwYjFhZWE5NS4uMDg4Y2VjMTUwZmIwNDgzM2I2
NDAxMGQyODhkNjJmYmUwNDkyNDQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEy
LTA0LTMwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEZ1bGwg
c2NyZWVuIHdpbGwgZXhpdCBkdXJpbmcgYSBwcm92aXNpb25hbCBsb2FkIG9mIGEgbm9uLWFuY2Vz
dG9yIGlmcmFtZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg1MjMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgT25seSBleGl0IGZ1bGwgc2NyZWVuIG1vZGUgaWYgdGhlIGZyYW1lIGJlaW5nIGxvYWRlZCBj
b250YWlucyB0aGUgZnVsbCAKKyAgICAgICAgc2NyZWVuIGVsZW1lbnQ6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkKToKKworICAgICAgICBNb3ZlIHRoZSBmdWxsIHNjcmVlbiBleGl0aW5nIGxvZ2ljIHVw
IGludG8gV2ViRnJhbWVMb2FkZXJDbGllbnQgaW4gdGhlCisgICAgICAgIFdlYlByb2Nlc3M6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisKKyAgICAgICAg
QWRkIGEgV2ViRnVsbFNjcmVlbk1hbmFnZXIgImNsb3NlIiBtZXRob2QgJiBtZXNzYWdlOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpjbG9zZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg6CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHRoaXMgbmV3IG1lc3NhZ2UgdG8gdGhlIFdLQnVuZGxlUGFnZSBh
bmQgY2xpZW50OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0
ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudDo6Y2xvc2VGdWxsU2NyZWVuKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnQuaDoKKwogMjAxMi0wNC0yNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBGdWxsIFNjcmVlbiBtb2RlIGRvZXMgbm90IHByZXNlcnZlIENBTGF5ZXIgb3Jk
ZXJpbmcgYWZ0ZXIgZXhpdGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZTkyYzAyODJiYmVi
ODEyYmU5Nzk0ZDVmMGYyZDUwZGY5NDU3ZmE1Zi4uMTNmN2ZlMDczNTQwM2JmYTBlY2FkMTI0OGYw
N2U0MmI0YzFkNzIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE0MTQsNiArMTQxNCw3IEBA
IF9fWk5LN1dlYkNvcmU0S1VSTDIycHJvdG9jb2xJc0luSFRUUEZhbWlseUV2CiBfX1pOSzdXZWJD
b3JlNEtVUkw4cHJvdG9jb2xFdgogX19aTks3V2ViQ29yZTRLVVJMY3ZQNU5TVVJMRXYKIF9fWk5L
N1dlYkNvcmU0Tm9kZTExdGV4dENvbnRlbnRFYgorX19aTks3V2ViQ29yZTROb2RlOGNvbnRhaW5z
RVBLUzBfCiBfX1pOSzdXZWJDb3JlNE5vZGUxNGlzRGVzY2VuZGFudE9mRVBLUzBfCiBfX1pOSzdX
ZWJDb3JlNE5vZGUxOGdldFN1YnJlc291cmNlVVJMc0VSTjNXVEYxMUxpc3RIYXNoU2V0SU5TXzRL
VVJMRUxtMjU2RU5TXzhLVVJMSGFzaEVFRQogX19aTks3V2ViQ29yZTROb2RlMjB0cmF2ZXJzZVBy
ZXZpb3VzTm9kZUVQS1MwXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDA0
N2Y4OWJmMzFkYjkwNzBhNzA2M2FiYjA4ZDY2OWM0ZTY4OThiYTcuLjg5NTM1NDY5OTliZmVlYjFl
NDliN2IzZGU0NTcwZGY5Yzg5YzA3ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KQEAgLTE4NTAsOCArMTg1MCwxMSBAQCBzdGF0aWMgaW5saW5lIElNUCBnZXRNZXRob2QoaWQg
bywgU0VMIHMpCiAgICAgW05TQXBwIHNldFdpbmRvd3NOZWVkVXBkYXRlOllFU107CiAKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgaWYgKF9wcml2YXRlLT5uZXdGdWxsc2NyZWVuQ29u
dHJvbGxlciAmJiBbX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyIGlzRnVsbFNjcmVl
bl0pCi0gICAgICAgIFtfcHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRyb2xsZXIgY2xvc2VdOwor
ICAgIGlmIChfcHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRyb2xsZXIgJiYgW19wcml2YXRlLT5u
ZXdGdWxsc2NyZWVuQ29udHJvbGxlciBpc0Z1bGxTY3JlZW5dKSB7CisgICAgICAgIFdlYkZ1bGxT
Y3JlZW5Db250cm9sbGVyKiBjb250cm9sbGVyID0gX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250
cm9sbGVyOworICAgICAgICBpZiAoY29yZShbZnJhbWUgRE9NRG9jdW1lbnRdKS0+Y29udGFpbnMo
W2NvbnRyb2xsZXIgZWxlbWVudF0tPmRvY3VtZW50KCkpKQorICAgICAgICAgICAgW2NvbnRyb2xs
ZXIgY2xvc2VdOworICAgIH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IGM1MmNlYTkyZTgzYzgyZmQ4MTY1OTcxNWI3ZTY4ZDZjNGQwZjNiZTguLjk3ZTQ2MTMw
ZjE0MDYxOTJmMzIxYWI1NDc3NjdjOWEyYWYzNjY5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yNyw1ICsyNyw2IEBAIG1lc3NhZ2VzIC0+IFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkgewogICAgIEV4aXRGdWxsU2NyZWVuKCkKICAgICBCZWdhbkVudGVyRnVsbFNjcmVlbihX
ZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCkK
ICAgICBCZWdhbkV4aXRGdWxsU2NyZWVuKFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIFdl
YkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQorICAgIENsb3NlKCkKIH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3NDhhNTczODdmNWQ2MTg4
YzBkY2U1NjBkMjhiZmE2OTU3MTUzNWIxLi44MmM0ZmU1ZDg5ODhlZjc1MmU3M2EwNzA0Nzc4YWQ0
NzQ2ZjNiYzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtMTc4NiwxMSArMTc4Niw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluCiAKICAgICBmcmFt
ZS0+ZGlkU3RhcnRQcm92aXNpb25hbExvYWQodXJsKTsKICAgICBtX2xvYWRlckNsaWVudC5kaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7
Ci0KLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgaWYgKG1fZnVsbFNjcmVlbk1hbmFn
ZXIgJiYgbV9mdWxsU2NyZWVuTWFuYWdlci0+aXNGdWxsU2NyZWVuKCkpCi0gICAgICAgIG1fZnVs
bFNjcmVlbk1hbmFnZXItPmNsb3NlKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNj
cmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCmluZGV4IDQ3M2ExM2M5YmUxODU0
OTIxYzRhNDQ4ZTgxNDlhNDZkYTdhNjhmNzIuLmM1ZmM4MWE5ZTdlM2Y0YWNiZTBkN2E2YWRhMDE2
ZjZmZTEyMjQ4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNj
cmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApAQCAtMTQ2LDYgKzE0Niwx
MSBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKQog
ICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOwogfQog
Cit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpjbG9zZSgpCit7CisgICAgbV9wYWdlLT5pbmpl
Y3RlZEJ1bmRsZUZ1bGxTY3JlZW5DbGllbnQoKS5jbG9zZUZ1bGxTY3JlZW4obV9wYWdlLmdldCgp
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3Jl
ZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVs
bFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oCmluZGV4IDE5NDA3NjJkYjk3YTAxY2UxZWIx
OWJkZTg2YTBmZDk2NGQ5M2FhMDkuLjM5NmE0YWRiMTkyZWYwNjYzY2IxNTA3Yjg0ZmI0MmE3Nzdl
YmQ0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9X
ZWJGdWxsU2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVs
bFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oCkBAIC02NSw2ICs2NSw4IEBAIHB1YmxpYzoK
IAogICAgIFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQoKTsKIAorICAgIHZvaWQgY2xvc2UoKTsK
KwogcHJvdGVjdGVkOgogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKFdlYlBhZ2UqKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmgKaW5kZXggNzUyZTgwODU0OTE3OTBiNTgyNmFmMWM3OWEwY2Iz
ZWJjM2U5MDc3My4uMmI0MmVhNjNhNjNmODNhNTViZWFkZjY2Y2U2NWU3MjQxYWIyMDc2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCkBAIC0zMTYsNiArMzE2LDcgQEAgdHlwZWRlZiB2b2lk
ICgqV0tCdW5kbGVQYWdlRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCkoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnUKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUV4aXRGdWxsU2NyZWVuRm9y
RWxlbWVudCkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBlbGVt
ZW50KTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUJlZ2FuRW50ZXJGdWxsU2NyZWVuKShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tSZWN0IGluaXRpYWxGcmFtZSwgV0tSZWN0IGZpbmFsRnJh
bWUpOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlQmVnYW5FeGl0RnVsbFNjcmVlbikoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLUmVjdCBpbml0aWFsRnJhbWUsIFdLUmVjdCBmaW5hbEZyYW1l
KTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUNsb3NlRnVsbFNjcmVlbikoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UpOwogCiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCB7CiAg
ICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2ZXJzaW9uOwpAQCAtMzI5LDYgKzMzMCw3IEBAIHN0cnVjdCBXS0J1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50IHsKICAgICAvLyBWZXJzaW9uIDE6CiAgICAgV0tCdW5kbGVQ
YWdlQmVnYW5FbnRlckZ1bGxTY3JlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBiZWdhbkVudGVyRnVsbFNjcmVlbjsKICAgICBXS0J1bmRsZVBhZ2VCZWdhbkV4aXRGdWxsU2Ny
ZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2FuRXhpdEZ1bGxTY3Jl
ZW47CisgICAgV0tCdW5kbGVQYWdlQ2xvc2VGdWxsU2NyZWVuICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjbG9zZUZ1bGxTY3JlZW47CiB9OwogdHlwZWRlZiBzdHJ1Y3Qg
V0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCBXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50LmNwcAppbmRleCBjNTljOGFiYWIzZWY2Y2Y0ZjhhZDZiZGMyNTAyNDcxNGFkYjIzY2ExLi45
NmI5YTE4NGZhYTMwMzVmODRhYWM3ZWZlN2U5ZGE4ZGU0YmM0ZDVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1
bGxTY3JlZW5DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAKQEAgLTg4LDYg
Kzg4LDE0IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudDo6YmVnYW5F
eGl0RnVsbFNjcmVlbihXZWJQYWdlICpwYWdlLCBJbnRSCiAgICAgICAgIHBhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkJlZ2FuRXhpdEZ1bGxTY3JlZW4oaW5p
dGlhbEZyYW1lLCBmaW5hbEZyYW1lKSk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudDo6Y2xvc2VGdWxsU2NyZWVuKFdlYlBhZ2UgKnBhZ2UpCit7CisgICAgaWYg
KG1fY2xpZW50LmNsb3NlRnVsbFNjcmVlbikKKyAgICAgICAgbV9jbGllbnQuY2xvc2VGdWxsU2Ny
ZWVuKHRvQVBJKHBhZ2UpKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6
OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkNsb3NlKCkpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlRnVsbFNjcmVlbkNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKaW5kZXggOWM3ZGEw
MzNiZTZlNzIyNzdkYmJjMGE4OThhMDY4MjZiNjJjZGExYi4uODFhYjNjZTE4YjE1YzYyZmY0YzM0
NTljMzQ4NzFlMzQxYzgyNjgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIHZv
aWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYlBhZ2UqLCBXZWJDb3JlOjpFbGVtZW50Kik7
CiAgICAgdm9pZCBiZWdhbkVudGVyRnVsbFNjcmVlbihXZWJQYWdlKiwgV2ViQ29yZTo6SW50UmVj
dCYgaW5pdGlhbEZyYW1lLCBXZWJDb3JlOjpJbnRSZWN0JiBmaW5hbEZyYW1lKTsKICAgICB2b2lk
IGJlZ2FuRXhpdEZ1bGxTY3JlZW4oV2ViUGFnZSosIFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxG
cmFtZSwgV2ViQ29yZTo6SW50UmVjdCYgZmluYWxGcmFtZSk7CisgICAgdm9pZCBjbG9zZUZ1bGxT
Y3JlZW4oV2ViUGFnZSopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDVlYWE5YmZkNzg3M2UwNWRkZjlmMTUwN2RmMDNk
MDFkM2VhMTUxNjkuLjA1ZTcyY2IzMTM1Zjk0M2FjNmE3ZTc1NjEzZWY1ZGM4MTY2NjA5M2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5j
bHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5o
IgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJQYWdl
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKQEAgLTM5MCw2ICszOTEsMTEg
QEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFs
TG9hZCgpCiAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCisgICAgaWYgKG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgp
LT5jb250YWlucyh3ZWJQYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigpLT5lbGVtZW50KCkpKQorICAg
ICAgICB3ZWJQYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigpLT5jbG9zZSgpOworI2VuZGlmCisKICAg
ICB3ZWJQYWdlLT5maW5kQ29udHJvbGxlcigpLmhpZGVGaW5kVUkoKTsKICAgICB3ZWJQYWdlLT5z
YW5kYm94RXh0ZW5zaW9uVHJhY2tlcigpLmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKG1fZnJhbWUp
OwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MDE0ZjM1N2M1NTM4NjdhZDM4YmEzMTQ4MjE2OWE2NGE2YzkwODY2Zi4uZWIxMjZjNzM4YzkwZGY2
NzgyYzc3YWI1M2I5YzI5MjYwZmVmY2Q5NiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA0LTMwICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEZ1bGwgc2NyZWVuIHdpbGwgZXhp
dCBkdXJpbmcgYSBwcm92aXNpb25hbCBsb2FkIG9mIGEgbm9uLWFuY2VzdG9yIGlmcmFtZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MjMwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHRoZSBuZXcgY2xvc2VGdWxsU2NyZWVuIGluamVjdGVkIGJ1bmRsZSBtZXRob2QuCisKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQ
YWdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpjbG9zZUZ1bGxTY3JlZW4p
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmg6CisKIDIwMTItMDQtMjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFRlc3QgVGVzdFdlYktpdEFQSS9XZWJLaXQyL1Rl
c3ROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgdGltZXMgb3V0CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5jcHAKaW5kZXggYjE2YmU3YTNlYjY4OGUyZmU0MDVlOWQyNjhjOWI1MGVhMDQ0NjZhYS4u
NTAwNWY0YTAzYTlmNjdkZGRmYWNhMTdlYTdiZGQ1ZjkyN2FkOTIxZiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmNwcApAQCAtMzEzLDYgKzMxMyw3IEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0
ZWRCdW5kbGVQYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogICAgICAgICBleGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQsCiAgICAgICAgIGJlZ2FuRW50ZXJGdWxsU2NyZWVuLAogICAgICAgICBiZWdh
bkV4aXRGdWxsU2NyZWVuLAorICAgICAgICBjbG9zZUZ1bGxTY3JlZW4sCiAgICAgfTsKICAgICBX
S0J1bmRsZVBhZ2VTZXRGdWxsU2NyZWVuQ2xpZW50KG1fcGFnZSwgJmZ1bGxTY3JlZW5DbGllbnQp
OwogI2VuZGlmCkBAIC0xMjQzLDYgKzEyNDQsMTIgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OmJlZ2FuRXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCBXS1JlY3QsIFdLUmVjdCkKICAg
ICBpZiAoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPnNo
b3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCiAgICAgICAgIEluamVjdGVkQnVuZGxlOjpz
aGFyZWQoKS5zdHJpbmdCdWlsZGVyKCktPmFwcGVuZCgiYmVnYW5FeGl0RnVsbFNjcmVlbigpXG4i
KTsKIH0KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmNsb3NlRnVsbFNjcmVlbihXS0J1bmRs
ZVBhZ2VSZWYpCit7CisgICAgaWYgKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0
Q29udHJvbGxlcigpLT5zaG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAgICBJ
bmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc3RyaW5nQnVpbGRlcigpLT5hcHBlbmQoImNsb3NlRnVs
bFNjcmVlbigpXG4iKTsKK30KICNlbmRpZgogCiBzdGF0aWMgYm9vbCBjb21wYXJlQnlUYXJnZXRO
YW1lKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtMSwgV0tCdW5kbGVCYWNrRm9y
d2FyZExpc3RJdGVtUmVmIGl0ZW0yKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKaW5kZXggYjUzOTJmZGUw
NmNhZDU5NTc2M2IyNmE0N2RmNGNjZjMyNWJhZGEyZi4uZTA1N2NhOTA2MThlMzcwMDkzMjY1ZDI0
YmJhMTcwYzljYjM1MThmOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCkBAIC0xMjYsNiArMTI2LDcg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV0tC
dW5kbGVQYWdlUmVmLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgZWxlbWVudCk7CiAgICAgc3RhdGlj
IHZvaWQgYmVnYW5FbnRlckZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCBXS1JlY3QgaW5pdGlh
bEZyYW1lLCBXS1JlY3QgZmluYWxGcmFtZSk7CiAgICAgc3RhdGljIHZvaWQgYmVnYW5FeGl0RnVs
bFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYsIFdLUmVjdCBpbml0aWFsRnJhbWUsIFdLUmVjdCBmaW5h
bEZyYW1lKTsKKyAgICBzdGF0aWMgdm9pZCBjbG9zZUZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVm
KTsKICNlbmRpZgogCiAgICAgLy8gRWRpdG9yIGNsaWVudAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140114</attachid>
            <date>2012-05-03 15:42:14 -0700</date>
            <delta_ts>2012-05-04 10:39:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85230-20120503154213.patch</filename>
            <type>text/plain</type>
            <size>30933</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1ODQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFkYjVkMjAxNzZiYmQ2YjBj
NjMzZTYwYTczM2RkNmQ3MWJjODcxZDkuLjRkZTdiMDJiMDE3ZmMzMmE4Yzk3ZmRmMjA1MTg3MjZh
MjE4OWE5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDUtMDMgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgRnVsbCBzY3JlZW4gd2lsbCBleGl0
IGR1cmluZyBhIHByb3Zpc2lvbmFsIGxvYWQgb2YgYSBub24tYW5jZXN0b3IgaWZyYW1lLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyMzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIFdlYktpdEZ1
bGxTY3JlZW5MaXN0ZW5lciBpbnRvIGl0cyBvd24gZmlsZS4KKworICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEyLTA0LTI2ICBDaHJpc3RvcGhlIER1bWV6
ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gRW5hYmxlIFZJ
REVPX1RSQUNLIGZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1OWQ1ZTdjYjI0ZjJjYmUyY2Qx
ODEyZGRmNDk2OTY3ODU0ZGY5YjVlLi5hZWVkYjA0YzViNGU3NzdjODBkNzA4Y2IwNzljMjcwNTYw
MTUxOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDQtMzAgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgRnVsbCBzY3JlZW4gd2ls
bCBleGl0IGR1cmluZyBhIHByb3Zpc2lvbmFsIGxvYWQgb2YgYSBub24tYW5jZXN0b3IgaWZyYW1l
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyMzAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmx5IGV4
aXQgZnVsbCBzY3JlZW4gbW9kZSBpZiB0aGUgZnJhbWUgYmVpbmcgbG9hZGVkIGNvbnRhaW5zIHRo
ZSBmdWxsIAorICAgICAgICBzY3JlZW4gZWxlbWVudC4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZTpdKTogR2l2ZSB0aGUgVUlEZWxlZ2F0ZSBhIGZpcnN0IGNyYWNrIGF0IGhhbmRsaW5nIHRo
ZQorICAgICAgICByZXF1ZXN0IHRvIGNsb3NlIHRoZSBmdWxsIHNjcmVlbiB3aW5kb3cgd2hlbiBh
IHByb3Zpc2lvbmFsIGxvYWQgb2NjdXJzLgorCisgICAgICAgIE1vdmUgV2ViS2l0RnVsbFNjcmVl
bkxpc3RlbmVyIGludG8gaXRzIG93biBmaWxlOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIubW06IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViS2l0RnVsbFNjcmVlbkxp
c3RlbmVyIHdlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5dKTogTW92ZWQgaW50byBXZWJLaXRGdWxs
U2NyZWVuTGlzdGVuZXIubQorICAgICAgICAoLVtXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgd2Vi
a2l0RGlkRW50ZXJGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dlYktpdEZ1bGxTY3JlZW5MaXN0
ZW5lciB3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV2ViS2l0RnVsbFNj
cmVlbkxpc3RlbmVyIHdlYmtpdERpZEV4aXRGdWxsU2NyZWVuXSk6CisKIDIwMTItMDUtMDEgIEpl
ZmZyZXkgUGZhdSAgPGpwZmF1QGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MTA0MjIzMTg+IFN1cHBvcnQgZm9yIHdlYiBjb250ZW50IGZpbHRlciBkZWxlZ2F0ZSBmb3IgZmls
dGVyaW5nIGh0dHBzIGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwMmNiYzNiZjczMjBlZTEwMzRhOWQ1
YWVlMzQwYzg4NGViYTRiZGNkLi4zZGY5NGJhOGY3ZmIxMDc2ZmQwMzFmMTQwNzJmMjVjMmI2M2Nj
ZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTItMDQtMzAgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgRnVsbCBzY3JlZW4gd2lsbCBleGl0IGR1
cmluZyBhIHByb3Zpc2lvbmFsIGxvYWQgb2YgYSBub24tYW5jZXN0b3IgaWZyYW1lLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyMzAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmx5IGV4aXQgZnVsbCBz
Y3JlZW4gbW9kZSBpZiB0aGUgZnJhbWUgYmVpbmcgbG9hZGVkIGNvbnRhaW5zIHRoZSBmdWxsIAor
ICAgICAgICBzY3JlZW4gZWxlbWVudDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQpOgorCisgICAgICAg
IE1vdmUgdGhlIGZ1bGwgc2NyZWVuIGV4aXRpbmcgbG9naWMgdXAgaW50byBXZWJGcmFtZUxvYWRl
ckNsaWVudCBpbiB0aGUKKyAgICAgICAgV2ViUHJvY2VzczoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKworICAgICAgICBBZGQgYSBXZWJGdWxsU2NyZWVu
TWFuYWdlciAiY2xvc2UiIG1ldGhvZCAmIG1lc3NhZ2U6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnVsbFNjcmVlbk1hbmFnZXI6OmNsb3NlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxT
Y3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaDoKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
dGhpcyBuZXcgbWVzc2FnZSB0byB0aGUgV0tCdW5kbGVQYWdlIGFuZCBjbGllbnQ6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3Jl
ZW5DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2Ny
ZWVuQ2xpZW50OjpjbG9zZUZ1bGxTY3JlZW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oOgorCiAyMDEyLTA1
LTAyICBNYWhlc2ggS3Vsa2FybmkgIDxtYWhlc2gua3Vsa2FybmlAbm9raWEuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIEJ1aWxkIGZpeCBmb3IgUXQgcG9ydCBvbiBtYWMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NGYwMjZkNmE3
MmY1ZjI2MzgyMjYyNWEzMjY1NjUwZTg2NGQyNGE4Li4yNWUwMDQwOWE2ZTE5N2EwYjQwMTZjZTRh
ZWNmMTcyZjVlM2I3NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTM2Nyw2ICszNjcsOCBAQAogCQlDMEI4OEU4QjEwQTA4RjNEMDBG
QkIzRjUgLyogV2ViRnJhbWVMb2FkRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEI4OEU4QTEwQTA4RjNEMDBGQkIzRjUgLyog
V2ViRnJhbWVMb2FkRGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzBDNUIzRUUxMTc3QTRBMDAwMkIwQUVGIC8qIFdlYlVz
ZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzBDNUIzRUMxMTc3QTRBMDAwMkIwQUVGIC8qIFdlYlVzZXJDb250ZW50VVJM
UGF0dGVybi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUMwQzVCM0VGMTE3N0E0QTAwMDJCMEFFRiAvKiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEM1QjNF
RDExNzdBNEEwMDAyQjBBRUYgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLm1tICovOyB9Owor
CQlDRDhCRkNFNzE1NTMxMjI0MDA1QUZCMjUgLyogV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QkZDRTUx
NTUzMTIyNDAwNUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5tbSAqLzsgfTsKKwkJ
Q0Q4QkZDRTgxNTUzMTIyNDAwNUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QkZDRTYxNTUz
MTIyNDAwNUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5oICovOyB9OwogCQlDRDhF
QUM3MzExQ0FDOUEzMDA3NzQwNzUgLyogSU9LaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4RUFDNzIxMUNBQzlBMzAwNzc0MDc1
IC8qIElPS2l0LmZyYW1ld29yayAqLzsgfTsKIAkJQ0RBNjJBRTIxMjVGODdDMjAwN0ZEMTE4IC8q
IFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREE2MkFFMDEyNUY4N0MyMDA3RkQxMTggLyogV2ViRnVsbFNjcmVl
bkNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0RBNjJBRTMxMjVGODdDMjAwN0ZEMTE4IC8qIFdlYkZ1
bGxTY3JlZW5Db250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RBNjJBRTExMjVGODdDMjAwN0ZEMTE4IC8qIFdlYkZ1bGxTY3JlZW5Db250
cm9sbGVyLm1tICovOyB9OwpAQCAtNjk4LDYgKzcwMCw4IEBACiAJCUMwQjg4RThBMTBBMDhGM0Qw
MEZCQjNGNSAvKiBXZWJGcmFtZUxvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVMb2FkRGVsZWdhdGVQcml2YXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwQzVCM0VDMTE3N0E0QTAwMDJCMEFFRiAvKiBXZWJVc2Vy
Q29udGVudFVSTFBhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMw
QzVCM0VEMTE3N0E0QTAwMDJCMEFFRiAvKiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJVc2VyQ29udGVudFVSTFBh
dHRlcm4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEJGQ0U1MTU1MzEyMjQw
MDVBRkIyNSAvKiBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEJGQ0U2MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJL
aXRGdWxsU2NyZWVuTGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEOEVBQzcyMTFDQUM5QTMwMDc3NDA3NSAvKiBJT0tpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
bmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJQ0RBNjJB
RTAxMjVGODdDMjAwN0ZEMTE4IC8qIFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTYyQUUxMTI1Rjg3QzIwMDdGRDExOCAvKiBXZWJG
dWxsU2NyZWVuQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTMxOSw2ICsxMzIzLDggQEAKIAkJCQk5MzE2MzNFRTBBRURGRkFFMDA2MkI5MkQg
LyogV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gKi8sCiAJCQkJOTM5MUYyNzMxMjFCMzhCRDAwRUJG
N0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQk5MzkxRjI3NDEyMUIz
OEJEMDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLywKKwkJCQlDRDhC
RkNFNTE1NTMxMjI0MDA1QUZCMjUgLyogV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLm1tICovLAor
CQkJCUNEOEJGQ0U2MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIu
aCAqLywKIAkJCQlCQzdGODg0OTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25DbGll
bnQuaCAqLywKIAkJCQlCQzdGODg0QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25D
bGllbnQubW0gKi8sCiAJCQkJNTE0OTRDRDQwQzdFQkRFMDAwNDE3OEM1IC8qIFdlYkljb25EYXRh
YmFzZUNsaWVudC5oICovLApAQCAtMTY1MCw2ICsxNjU2LDcgQEAKIAkJCQkzMTJFMkZFNTE0RTQ4
MTgyMDA3Q0NBMTggLyogV2ViTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTJF
MkZFOTE0RTQ4MjE1MDA3Q0NBMTggLyogV2ViTm90aWZpY2F0aW9uSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNFREExMkRDMTUyQ0JFNjgwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRl
eHRDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOEJGQ0U4MTU1MzEyMjQwMDVBRkIyNSAv
KiBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjAzOCw2ICsy
MDQ1LDcgQEAKIAkJCQk0MUY0NDg1MDEwMzM4RThDMDAzMEU1NUUgLyogV2ViV29ya2Vyc1ByaXZh
dGUubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMTJFMkZFNjE0RTQ4MTgyMDA3Q0NBMTggLyogV2Vi
Tm90aWZpY2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VEQTEyREIxNTJDQkU2ODAwRDlF
MDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNE
OEJGQ0U3MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIubW0gaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbQppbmRleCBmYzNhMWYyYjRkOWNhNjI4MzM5MWIxMGJiMWE3NTZjMTY4
MDEzZDY4Li45OGY1YzVkMWJiZjQ1NmNjOGQ3MWJhZjI5NzcxNzZhNWViYmY4NWQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
CkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0ICJXZWJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIldl
YkhUTUxWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkhpc3RvcnlJbnRlcm5hbC5oIgorI2lt
cG9ydCAiV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLmgiCiAjaW1wb3J0ICJXZWJLaXRQcmVmaXgu
aCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCAiV2ViTlNVUkxS
ZXF1ZXN0RXh0cmFzLmgiCkBAIC0xMjgsMTggKzEyOSw2IEBAIE5TU3RyaW5nICpXZWJDb25zb2xl
TWVzc2FnZURlYnVnTWVzc2FnZUxldmVsID0gQCJEZWJ1Z01lc3NhZ2VMZXZlbCI7CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotCi1AaW50
ZXJmYWNlIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJLaXRGdWxsU2Ny
ZWVuTGlzdGVuZXI+Ci17Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IF9lbGVtZW50OwotfQotCi0tIChp
ZClpbml0V2l0aEVsZW1lbnQ6KEVsZW1lbnQqKWVsZW1lbnQ7Ci1AZW5kCi0KLSNlbmRpZgotCiBX
ZWJDaHJvbWVDbGllbnQ6OldlYkNocm9tZUNsaWVudChXZWJWaWV3ICp3ZWJWaWV3KSAKICAgICA6
IG1fd2ViVmlldyh3ZWJWaWV3KQogewpAQCAtOTU2LDQxICs5NDUsNCBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6ZnVsbFNjcmVlblJlbmRlcmVyQ2hhbmdlZChSZW5kZXJCb3gqIHJlbmRlcmVyKQog
ICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCAoaWQpcmVuZGVyZXIp
OwogfQogCi1AaW1wbGVtZW50YXRpb24gV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyCi0KLS0gKGlk
KWluaXRXaXRoRWxlbWVudDooRWxlbWVudCopZWxlbWVudAotewotICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1cm4gbmlsOwotICAgIAotICAgIF9lbGVtZW50ID0g
ZWxlbWVudDsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZCl3ZWJraXRXaWxsRW50ZXJG
dWxsU2NyZWVuCi17Ci0gICAgaWYgKF9lbGVtZW50KQotICAgICAgICBfZWxlbWVudC0+ZG9jdW1l
bnQoKS0+d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoX2VsZW1lbnQuZ2V0KCkp
OwotfQotCi0tICh2b2lkKXdlYmtpdERpZEVudGVyRnVsbFNjcmVlbgotewotICAgIGlmIChfZWxl
bWVudCkKLSAgICAgICAgX2VsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdERpZEVudGVyRnVsbFNj
cmVlbkZvckVsZW1lbnQoX2VsZW1lbnQuZ2V0KCkpOwotfQotCi0tICh2b2lkKXdlYmtpdFdpbGxF
eGl0RnVsbFNjcmVlbgotewotICAgIGlmIChfZWxlbWVudCkKLSAgICAgICAgX2VsZW1lbnQtPmRv
Y3VtZW50KCktPndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoX2VsZW1lbnQuZ2V0
KCkpOwotfQotCi0tICh2b2lkKXdlYmtpdERpZEV4aXRGdWxsU2NyZWVuCi17Ci0gICAgaWYgKF9l
bGVtZW50KQotICAgICAgICBfZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0RGlkRXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KF9lbGVtZW50LmdldCgpKTsKLX0KLQotQGVuZAotCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYktpdEZ1bGxTY3Jl
ZW5MaXN0ZW5lci5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViS2l0RnVs
bFNjcmVlbkxpc3RlbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk5MGFiNGUyNmU2NjM4ZWZlN2I5NDgxZjcz
YTU5MjQyZTM0OWEyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lcl9oCisjZGVmaW5lIFdl
YktpdEZ1bGxTY3JlZW5MaXN0ZW5lcl9oCisKKyNpbXBvcnQgIldlYlVJRGVsZWdhdGVQcml2YXRl
LmgiCisjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEVsZW1lbnQ7Cit9CisKK0BpbnRlcmZhY2Ug
V2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIDogTlNPYmplY3QgPFdlYktpdEZ1bGxTY3JlZW5MaXN0
ZW5lcj4geworICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBfZWxlbWVudDsKK30KKworLSAo
aWQpaW5pdFdpdGhFbGVtZW50OihXZWJDb3JlOjpFbGVtZW50KillbGVtZW50OworQGVuZAorCisj
ZW5kaWYKKworI2VuZGlmIC8vIFdlYkZ1bGxTY3JlZW5MaXN0ZW5lcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJLaXRGdWxsU2NyZWVuTGlz
dGVuZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBkMjhlYjU2Y2JkOWViMGQ3NjRmNWFkYWNmMGQwYWFmNjBi
N2EwYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5tbQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLmgiCisKKyNpbXBvcnQgPFdlYkNv
cmUvRWxlbWVudC5oPgorCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworQGltcGxlbWVudGF0aW9uIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5l
cgorCistIChpZClpbml0V2l0aEVsZW1lbnQ6KEVsZW1lbnQqKWVsZW1lbnQKK3sKKyAgICBpZiAo
IShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9lbGVt
ZW50ID0gZWxlbWVudDsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZCl3ZWJraXRXaWxs
RW50ZXJGdWxsU2NyZWVuCit7CisgICAgaWYgKF9lbGVtZW50KQorICAgICAgICBfZWxlbWVudC0+
ZG9jdW1lbnQoKS0+d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoX2VsZW1lbnQu
Z2V0KCkpOworfQorCistICh2b2lkKXdlYmtpdERpZEVudGVyRnVsbFNjcmVlbgoreworICAgIGlm
IChfZWxlbWVudCkKKyAgICAgICAgX2VsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdERpZEVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoX2VsZW1lbnQuZ2V0KCkpOworfQorCistICh2b2lkKXdlYmtp
dFdpbGxFeGl0RnVsbFNjcmVlbgoreworICAgIGlmIChfZWxlbWVudCkKKyAgICAgICAgX2VsZW1l
bnQtPmRvY3VtZW50KCktPndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoX2VsZW1l
bnQuZ2V0KCkpOworfQorCistICh2b2lkKXdlYmtpdERpZEV4aXRGdWxsU2NyZWVuCit7CisgICAg
aWYgKF9lbGVtZW50KQorICAgICAgICBfZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0RGlkRXhp
dEZ1bGxTY3JlZW5Gb3JFbGVtZW50KF9lbGVtZW50LmdldCgpKTsKK30KKworQGVuZAorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMDQ3Zjg5YmYzMWRiOTA3MGE3
MDYzYWJiMDhkNjY5YzRlNjg5OGJhNy4uMWM0N2FhOTEyMGEyYTNiNmIzNGU0M2U2ZjJlYWI0YTcz
YTU1MDJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMzIsNiArMzIs
NyBAQAogI2ltcG9ydCAiV2ViVmlld0RhdGEuaCIKIAogI2ltcG9ydCAiRE9NQ1NTU3R5bGVEZWNs
YXJhdGlvbkludGVybmFsLmgiCisjaW1wb3J0ICJET01Eb2N1bWVudEludGVybmFsLmgiCiAjaW1w
b3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVJhbmdlSW50ZXJuYWwuaCIKICNp
bXBvcnQgIldlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oIgpAQCAtNzEsNiArNzIsNyBAQAogI2lt
cG9ydCAiV2ViSW5zcGVjdG9yLmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JDbGllbnQuaCIKICNp
bXBvcnQgIldlYktpdEVycm9ycy5oIgorI2ltcG9ydCAiV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVy
LmgiCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJLaXROU1N0cmluZ0V4
dHJhcy5oIgogI2ltcG9ydCAiV2ViS2l0U3RhdGlzdGljc1ByaXZhdGUuaCIKQEAgLTE4NTAsOCAr
MTg1MiwxNyBAQCBzdGF0aWMgaW5saW5lIElNUCBnZXRNZXRob2QoaWQgbywgU0VMIHMpCiAgICAg
W05TQXBwIHNldFdpbmRvd3NOZWVkVXBkYXRlOllFU107CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCi0gICAgaWYgKF9wcml2YXRlLT5uZXdGdWxsc2NyZWVuQ29udHJvbGxlciAmJiBbX3By
aXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyIGlzRnVsbFNjcmVlbl0pCi0gICAgICAgIFtf
cHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRyb2xsZXIgY2xvc2VdOworICAgIGlmIChFbGVtZW50
KiBlbGVtZW50ID0gY29yZShbZnJhbWUgRE9NRG9jdW1lbnRdKS0+d2Via2l0Q3VycmVudEZ1bGxT
Y3JlZW5FbGVtZW50KCkpIHsKKyAgICAgICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZp
ZXc6Y2xvc2VGdWxsU2NyZWVuV2l0aExpc3RlbmVyOik7CisgICAgICAgIGlmIChfcHJpdmF0ZS0+
VUlEZWxlZ2F0ZSAmJiBbX3ByaXZhdGUtPlVJRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNl
bGVjdG9yXSkgeworICAgICAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5l
ciA9IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6ZWxl
bWVudF07CisgICAgICAgICAgICBDYWxsVUlEZWxlZ2F0ZShzZWxmLCBzZWxlY3RvciwgbGlzdGVu
ZXIpOworICAgICAgICAgICAgW2xpc3RlbmVyIHJlbGVhc2VdOworICAgICAgICB9IGVsc2UgaWYg
KF9wcml2YXRlLT5uZXdGdWxsc2NyZWVuQ29udHJvbGxlciAmJiBbX3ByaXZhdGUtPm5ld0Z1bGxz
Y3JlZW5Db250cm9sbGVyIGlzRnVsbFNjcmVlbl0pIHsKKyAgICAgICAgICAgIFdlYkZ1bGxTY3Jl
ZW5Db250cm9sbGVyKiBjb250cm9sbGVyID0gX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9s
bGVyOworICAgICAgICAgICAgW2NvbnRyb2xsZXIgY2xvc2VdOworICAgICAgICB9CisgICAgfQog
I2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYzUyY2VhOTJlODNj
ODJmZDgxNjU5NzE1YjdlNjhkNmM0ZDBmM2JlOC4uOTdlNDYxMzBmMTQwNjE5MmYzMjFhYjU0Nzc2
N2M5YTJhZjM2NjliNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI3LDUgKzI3
LDYgQEAgbWVzc2FnZXMgLT4gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSB7CiAgICAgRXhpdEZ1
bGxTY3JlZW4oKQogICAgIEJlZ2FuRW50ZXJGdWxsU2NyZWVuKFdlYkNvcmU6OkludFJlY3QgaW5p
dGlhbFJlY3QsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQogICAgIEJlZ2FuRXhpdEZ1bGxT
Y3JlZW4oV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgV2ViQ29yZTo6SW50UmVjdCBmaW5h
bFJlY3QpCisgICAgQ2xvc2UoKQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDc0OGE1NzM4N2Y1ZDYxODhjMGRjZTU2MGQyOGJmYTY5NTcx
NTM1YjEuLjgyYzRmZTVkODk4OGVmNzUyZTczYTA3MDQ3NzhhZDQ3NDZmM2JjMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzg2LDExICsxNzg2LDYg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW4KIAogICAgIGZyYW1lLT5kaWRTdGFydFByb3Zpc2lv
bmFsTG9hZCh1cmwpOwogICAgIG1fbG9hZGVyQ2xpZW50LmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKLQotI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKLSAgICBpZiAobV9mdWxsU2NyZWVuTWFuYWdlciAmJiBtX2Z1bGxTY3JlZW5N
YW5hZ2VyLT5pc0Z1bGxTY3JlZW4oKSkKLSAgICAgICAgbV9mdWxsU2NyZWVuTWFuYWdlci0+Y2xv
c2UoKTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiB1cmwsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxs
U2NyZWVuTWFuYWdlci5jcHAKaW5kZXggNDczYTEzYzliZTE4NTQ5MjFjNGE0NDhlODE0OWE0NmRh
N2E2OGY3Mi4uYzVmYzgxYTllN2UzZjRhY2JlMGQ3YTZhZGEwMTZmNmZlMTIyNDhlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuY3BwCkBAIC0xNDYsNiArMTQ2LDExIEBAIHZvaWQgV2ViRnVsbFNj
cmVlbk1hbmFnZXI6OnJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCiAgICAgbV9lbGVtZW50LT5kb2N1
bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7CiB9CiAKK3ZvaWQgV2ViRnVsbFNjcmVl
bk1hbmFnZXI6OmNsb3NlKCkKK3sKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRnVsbFNjcmVl
bkNsaWVudCgpLmNsb3NlRnVsbFNjcmVlbihtX3BhZ2UuZ2V0KCkpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLmgKaW5kZXggMTk0MDc2MmRiOTdhMDFjZTFlYjE5YmRlODZhMGZkOTY0ZDkzYWEw
OS4uMzk2YTRhZGIxOTJlZjA2NjNjYjE1MDdiODRmYjQyYTc3N2ViZDRlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLmgKQEAgLTY1LDYgKzY1LDggQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6RWxl
bWVudCogZWxlbWVudCgpOwogCisgICAgdm9pZCBjbG9zZSgpOworCiBwcm90ZWN0ZWQ6CiAgICAg
V2ViRnVsbFNjcmVlbk1hbmFnZXIoV2ViUGFnZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
aAppbmRleCA3NTJlODA4NTQ5MTc5MGI1ODI2YWYxYzc5YTBjYjNlYmMzZTkwNzczLi4yYjQyZWE2
M2E2M2Y4M2E1NWJlYWRmNjZjZTY1ZTcyNDFhYjIwNzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlLmgKQEAgLTMxNiw2ICszMTYsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VFbnRl
ckZ1bGxTY3JlZW5Gb3JFbGVtZW50KShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdQogdHlwZWRl
ZiB2b2lkICgqV0tCdW5kbGVQYWdlRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KShXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGVsZW1lbnQpOwogdHlwZWRlZiB2b2lk
ICgqV0tCdW5kbGVQYWdlQmVnYW5FbnRlckZ1bGxTY3JlZW4pKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS1JlY3QgaW5pdGlhbEZyYW1lLCBXS1JlY3QgZmluYWxGcmFtZSk7CiB0eXBlZGVmIHZvaWQg
KCpXS0J1bmRsZVBhZ2VCZWdhbkV4aXRGdWxsU2NyZWVuKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tSZWN0IGluaXRpYWxGcmFtZSwgV0tSZWN0IGZpbmFsRnJhbWUpOwordHlwZWRlZiB2b2lkICgq
V0tCdW5kbGVQYWdlQ2xvc2VGdWxsU2NyZWVuKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CiAKIHN0
cnVjdCBXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNp
b247CkBAIC0zMjksNiArMzMwLDcgQEAgc3RydWN0IFdLQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGll
bnQgewogICAgIC8vIFZlcnNpb24gMToKICAgICBXS0J1bmRsZVBhZ2VCZWdhbkVudGVyRnVsbFNj
cmVlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2FuRW50ZXJGdWxsU2Ny
ZWVuOwogICAgIFdLQnVuZGxlUGFnZUJlZ2FuRXhpdEZ1bGxTY3JlZW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYmVnYW5FeGl0RnVsbFNjcmVlbjsKKyAgICBXS0J1bmRsZVBh
Z2VDbG9zZUZ1bGxTY3JlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNsb3NlRnVsbFNjcmVlbjsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VGdWxsU2Ny
ZWVuQ2xpZW50IFdLQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
RnVsbFNjcmVlbkNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwCmluZGV4IGM1OWM4
YWJhYjNlZjZjZjRmOGFkNmJkYzI1MDI0NzE0YWRiMjNjYTEuLjk2YjlhMTg0ZmFhMzAzNWY4NGFh
YzdlZmU3ZTlkYThkZTRiYzRkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcApAQCAtODgsNiArODgsMTQgQEAgdm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50OjpiZWdhbkV4aXRGdWxsU2NyZWVuKFdlYlBh
Z2UgKnBhZ2UsIEludFIKICAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eTo6QmVnYW5FeGl0RnVsbFNjcmVlbihpbml0aWFsRnJhbWUsIGZpbmFsRnJh
bWUpKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50OjpjbG9z
ZUZ1bGxTY3JlZW4oV2ViUGFnZSAqcGFnZSkKK3sKKyAgICBpZiAobV9jbGllbnQuY2xvc2VGdWxs
U2NyZWVuKQorICAgICAgICBtX2NsaWVudC5jbG9zZUZ1bGxTY3JlZW4odG9BUEkocGFnZSkpOwor
ICAgIGVsc2UKKyAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eTo6Q2xvc2UoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaAppbmRleCA5YzdkYTAzM2JlNmU3MjI3N2RiYmMwYTg5
OGEwNjgyNmI2MmNkYTFiLi44MWFiM2NlMThiMTVjNjJmZjRjMzQ1OWMzNDg3MWUzNDFjODI2ODAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGll
bnQuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBleGl0RnVsbFNjcmVlbkZv
ckVsZW1lbnQoV2ViUGFnZSosIFdlYkNvcmU6OkVsZW1lbnQqKTsKICAgICB2b2lkIGJlZ2FuRW50
ZXJGdWxsU2NyZWVuKFdlYlBhZ2UqLCBXZWJDb3JlOjpJbnRSZWN0JiBpbml0aWFsRnJhbWUsIFdl
YkNvcmU6OkludFJlY3QmIGZpbmFsRnJhbWUpOwogICAgIHZvaWQgYmVnYW5FeGl0RnVsbFNjcmVl
bihXZWJQYWdlKiwgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbEZyYW1lLCBXZWJDb3JlOjpJbnRS
ZWN0JiBmaW5hbEZyYW1lKTsKKyAgICB2b2lkIGNsb3NlRnVsbFNjcmVlbihXZWJQYWdlKik7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggMjUzNWEyZGM2YzViZGY2ZmZiM2Y4ZTM2MzEwNmE4YzY3MDQ1ZTY0NC4uODExYWFi
MWNiNzJhYzdkZWIyZTVhMTQxYThhNGI5YWJmZjBkMjQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgog
I2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oIgorI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViTmF2
aWdhdGlvbkRhdGFTdG9yZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQ
YWdlUHJveHlNZXNzYWdlcy5oIgpAQCAtMzkwLDYgKzM5MSwxMSBAQCB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCkKICAgICBpZiAoIXdl
YlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAg
ICBpZiAobV9mcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCktPndlYmtpdElzRnVsbFNjcmVl
bigpKQorICAgICAgICB3ZWJQYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigpLT5jbG9zZSgpOworI2Vu
ZGlmCisKICAgICB3ZWJQYWdlLT5maW5kQ29udHJvbGxlcigpLmhpZGVGaW5kVUkoKTsKICAgICB3
ZWJQYWdlLT5zYW5kYm94RXh0ZW5zaW9uVHJhY2tlcigpLmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
KG1fZnJhbWUpOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZWE3M2Q1MWIxOTc4Mzk4Nzc2M2JmNDBhYjA4M2IwYmQ4NjA5OTc1ZS4uZmE0YmI4
YTYwZTc0NWJmNzA3ZGU5NDRhMmZiODZkZjkyOGI2NGMxYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA0LTMw
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEZ1bGwgc2NyZWVu
IHdpbGwgZXhpdCBkdXJpbmcgYSBwcm92aXNpb25hbCBsb2FkIG9mIGEgbm9uLWFuY2VzdG9yIGlm
cmFtZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1
MjMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHRoZSBuZXcgVUlEZWxlZ2F0ZSB3ZWJWaWV3OmNsb3NlRnVsbFNjcmVlbldp
dGhMaXN0ZW5lcjogbWV0aG9kOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVn
YXRlLm1tOgorICAgICAgICAoLVtVSURlbGVnYXRlIHdlYlZpZXc6Y2xvc2VGdWxsU2NyZWVuV2l0
aExpc3RlbmVyOl0pOgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgbmV3IGNsb3NlRnVs
bFNjcmVlbiBpbmplY3RlZCBidW5kbGUgbWV0aG9kOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmNsb3NlRnVsbFNjcmVlbik6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaDoKKwogMjAxMi0wNS0w
MiAgVGVycnkgQW5kZXJzb24gIDx0ZGFuZGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBB
ZGRpdGlvbiBvZiBhIGNvbnRyaWJ1dG9yIHRvIGNvbW1pdHRlcnMucHkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1VJRGVsZWdhdGUubW0KaW5kZXggODQ3YTVmYjRlZWJhNjcxYjY0ZTJiOGNiYjU3M2Uz
MjA2Y2I0NjU3ZC4uODQwZmRjMjA5MmIwOGUyMWE0NzFkNDQyNTM3YTdkNjMzZmVkNDI1YSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KQEAgLTI3Niw2ICsyNzYsMTIgQEAg
RHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8gKmRyYWdnaW5nSW5mbyA9IG5pbDsKICAgICAgICAg
W3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihleGl0RnVsbFNjcmVlbldpdGhMaXN0ZW5l
cjopIHdpdGhPYmplY3Q6bGlzdGVuZXIgYWZ0ZXJEZWxheTowXTsKIH0KIAorLSAodm9pZCl3ZWJW
aWV3OihXZWJWaWV3ICopc2VuZGVyIGNsb3NlRnVsbFNjcmVlbldpdGhMaXN0ZW5lcjooTlNPYmpl
Y3Q8V2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyPiopbGlzdGVuZXIKK3sKKyAgICBbbGlzdGVuZXIg
d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuXTsKKyAgICBbbGlzdGVuZXIgd2Via2l0RGlkRXhpdEZ1
bGxTY3JlZW5dOworfQorCiAtIChCT09MKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRpZFBy
ZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbjooRE9NRWxlbWVudCAqKWVsZW1lbnQKIHsKICAgICBwcmlu
dGYoIk1JU1NJTkcgUExVR0lOIEJVVFRPTiBQUkVTU0VEXG4iKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmNwcAppbmRleCBiMTZiZTdhM2ViNjg4ZTJmZTQwNWU5ZDI2OGM5YjUwZWEwNDQ2NmFhLi41Mjdl
YzM3OTk5YTAzMDQwYzQ1YmExNDllZjc4OWRkOWJmMTM2NTUzIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuY3BwCkBAIC0zMTMsNiArMzEzLDcgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1
bmRsZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgICAgIGV4aXRGdWxsU2NyZWVuRm9y
RWxlbWVudCwKICAgICAgICAgYmVnYW5FbnRlckZ1bGxTY3JlZW4sCiAgICAgICAgIGJlZ2FuRXhp
dEZ1bGxTY3JlZW4sCisgICAgICAgIGNsb3NlRnVsbFNjcmVlbiwKICAgICB9OwogICAgIFdLQnVu
ZGxlUGFnZVNldEZ1bGxTY3JlZW5DbGllbnQobV9wYWdlLCAmZnVsbFNjcmVlbkNsaWVudCk7CiAj
ZW5kaWYKQEAgLTEyNDMsNiArMTI0NCwxNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6YmVn
YW5FeGl0RnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYsIFdLUmVjdCwgV0tSZWN0KQogICAgIGlm
IChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxk
RHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKICAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJl
ZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCJiZWdhbkV4aXRGdWxsU2NyZWVuKClcbiIpOwog
fQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6Y2xvc2VGdWxsU2NyZWVuKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlUmVmKQoreworICAgIGlmIChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0
VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAg
ICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCJjbG9z
ZUZ1bGxTY3JlZW4oKVxuIik7CisKKyAgICBpZiAoIUluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5s
YXlvdXRUZXN0Q29udHJvbGxlcigpLT5oYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoKSkgewor
ICAgICAgICBXS0J1bmRsZVBhZ2VXaWxsRXhpdEZ1bGxTY3JlZW4ocGFnZVJlZik7CisgICAgICAg
IFdLQnVuZGxlUGFnZURpZEV4aXRGdWxsU2NyZWVuKHBhZ2VSZWYpOworICAgIH0KK30KICNlbmRp
ZgogCiBzdGF0aWMgYm9vbCBjb21wYXJlQnlUYXJnZXROYW1lKFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0SXRlbVJlZiBpdGVtMSwgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW0yKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2UuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmgKaW5kZXggYjUzOTJmZGUwNmNhZDU5NTc2M2IyNmE0N2RmNGNjZjMy
NWJhZGEyZi4uZTA1N2NhOTA2MThlMzcwMDkzMjY1ZDI0YmJhMTcwYzljYjM1MThmOCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZS5oCkBAIC0xMjYsNiArMTI2LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMg
dm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZU5v
ZGVIYW5kbGVSZWYgZWxlbWVudCk7CiAgICAgc3RhdGljIHZvaWQgYmVnYW5FbnRlckZ1bGxTY3Jl
ZW4oV0tCdW5kbGVQYWdlUmVmLCBXS1JlY3QgaW5pdGlhbEZyYW1lLCBXS1JlY3QgZmluYWxGcmFt
ZSk7CiAgICAgc3RhdGljIHZvaWQgYmVnYW5FeGl0RnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYs
IFdLUmVjdCBpbml0aWFsRnJhbWUsIFdLUmVjdCBmaW5hbEZyYW1lKTsKKyAgICBzdGF0aWMgdm9p
ZCBjbG9zZUZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmKTsKICNlbmRpZgogCiAgICAgLy8gRWRp
dG9yIGNsaWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDI3YjI2MjZmMDZjMjNlNDM2YWQ1NWViNzVmNzE1YmNjOGYwNjE1
MTIuLjc1NTU0ZGFmMTNkMGEzMTdlM2M5MTQ2NDBkNDYyMzY2ZmU1NGRmMzEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxMi0wNS0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
KworICAgICAgICBGdWxsIHNjcmVlbiB3aWxsIGV4aXQgZHVyaW5nIGEgcHJvdmlzaW9uYWwgbG9h
ZCBvZiBhIG5vbi1hbmNlc3RvciBpZnJhbWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTIzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZnVsbHNjcmVlbi9ub24tYW5jZXN0b3ItaWZyYW1lLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZnVsbHNjcmVlbi9ub24tYW5jZXN0b3ItaWZyYW1l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZ1bGxzY3JlZW4vcmVzb3VyY2VzL2VtcHR5Lmh0bWw6
IEFkZGVkLgorCiAyMDEyLTA1LTAyICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04oMTEwMDcyKTogQ2xpcHBpbmcgaXMgbm90IGFw
cGxpZWQgb24gbGF5ZXJzIHRoYXQgYXJlIGFuaW1hdGVkIHVzaW5nIHBsYXRmb3JtIGNvZGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vbm9uLWFuY2VzdG9yLWlmcmFtZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL25vbi1hbmNlc3Rvci1pZnJhbWUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1NzhlOTQzN2IwY2M5NmJhNmZiMjFiZWNjOTg0NjdlNWJi
NzRlZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL25vbi1hbmNl
c3Rvci1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorVGhpcyB0ZXN0cyB0aGF0
IGZ1bGwgc2NyZWVuIG1vZGUgd2lsbCBub3QgZXhpdCB3aGVuIGEgbm9uLWFuY2VzdG9yIGlmcmFt
ZSBpcyBsb2FkZWQgaW4gdGhlIHBhZ2UuIENsaWNrIGVudGVyIGZ1bGwgc2NyZWVuIHRvIHN0YXJ0
IHRlc3QuCisKK0VWRU5UKHdlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UpCitFVkVOVChsb2FkKQorRVhQ
RUNURUQgKGRvY3VtZW50LndlYmtpdElzRnVsbFNjcmVlbiA9PSAndHJ1ZScpIE9LCitFTkQgT0Yg
VEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL25vbi1hbmNlc3Rvci1p
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vbm9uLWFuY2VzdG9yLWlmcmFtZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM3YjMxMWYyNmY5NjRiNmI4MDJkNTNiNmI0YmVmYjU4NDlkZWZhNmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL25vbi1hbmNlc3Rvci1p
ZnJhbWUuaHRtbApAQCAtMCwwICsxLDI4IEBACis8c2NyaXB0IHNyYz0iZnVsbC1zY3JlZW4tdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8ZGl2PlRoaXMgdGVzdHMgdGhhdCBmdWxsIHNjcmVlbiBtb2RlIHdp
bGwgbm90IGV4aXQgd2hlbiBhIG5vbi1hbmNlc3RvciBpZnJhbWUgaXMgbG9hZGVkIGluIHRoZSBw
YWdlLiBDbGljayA8YnV0dG9uIG9uY2xpY2s9InN0YXJ0VGVzdCgpOyI+ZW50ZXIgZnVsbCBzY3Jl
ZW48L2J1dHRvbj4gdG8gc3RhcnQgdGVzdC48L2Rpdj4KKzxkaXYgaWQ9InRhcmdldCI+CisgICAg
PGlmcmFtZSBpZD0iaWZyYW1lIj48L2lmcmFtZT4KKzwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIg
dGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAgIHZhciBpZnJh
bWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJyk7CisKKyAgICB3YWl0Rm9yRXZl
bnRPbmNlKGRvY3VtZW50LCAnd2Via2l0ZnVsbHNjcmVlbmNoYW5nZScsIGZ1bmN0aW9uKCkgewor
ICAgICAgICB3YWl0Rm9yRXZlbnQoZG9jdW1lbnQsICd3ZWJraXRmdWxsc2NyZWVuY2hhbmdlJywg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgIGxvZ1Jlc3VsdChmYWxzZSwgJ0V4aXRlZCBmdWxsIHNj
cmVlbicpOyAKKyAgICAgICAgfSk7CisgICAgICAgIGlmcmFtZS5zcmMgPSAncmVzb3VyY2VzL2Vt
cHR5Lmh0bWwnOworICAgIH0pOworCisgICAgd2FpdEZvckV2ZW50KGlmcmFtZSwgJ2xvYWQnLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCJkb2N1bWVudC53ZWJraXRJc0Z1bGxT
Y3JlZW4iLCB0cnVlKTsKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0pOworCisgICAgdmFyIHN0
YXJ0VGVzdCA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0YXJnZXQud2Via2l0UmVxdWVzdEZ1bGxz
Y3JlZW4oKTsKKyAgICB9OworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgcnVuV2l0aEtleURvd24oc3RhcnRUZXN0KTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vcmVz
b3VyY2VzL2VtcHR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3Jlc291cmNlcy9lbXB0
eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM4Yjc2NjFmNDIyMTI5ODU4ODhkMWRmZGYxZDg3MjlmODljNGZj
MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3Jlc291cmNlcy9l
bXB0eS5odG1sCkBAIC0wLDAgKzEgQEAKKzxib2R5PjwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140271</attachid>
            <date>2012-05-04 10:45:55 -0700</date>
            <delta_ts>2012-05-04 10:56:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85230-20120504104554.patch</filename>
            <type>text/plain</type>
            <size>23641</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1ODQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFkYjVkMjAxNzZiYmQ2YjBj
NjMzZTYwYTczM2RkNmQ3MWJjODcxZDkuLjRkZTdiMDJiMDE3ZmMzMmE4Yzk3ZmRmMjA1MTg3MjZh
MjE4OWE5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDUtMDMgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgRnVsbCBzY3JlZW4gd2lsbCBleGl0
IGR1cmluZyBhIHByb3Zpc2lvbmFsIGxvYWQgb2YgYSBub24tYW5jZXN0b3IgaWZyYW1lLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyMzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIFdlYktpdEZ1
bGxTY3JlZW5MaXN0ZW5lciBpbnRvIGl0cyBvd24gZmlsZS4KKworICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEyLTA0LTI2ICBDaHJpc3RvcGhlIER1bWV6
ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gRW5hYmxlIFZJ
REVPX1RSQUNLIGZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA3MDg2NDQ4YWMwNzQ1YzFkZDRk
Y2EyMjljMDJmMjc5ZTBiNTNiMGViLi4yZTZmMWQxNmNjN2ZkNjEwODc0Njg0ZGI2ZTc1ZjU1MDIw
MmNlMTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTItMDUtMDQgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKKyAgICAgICAgRnVsbCBzY3JlZW4gd2ls
bCBleGl0IGR1cmluZyBhIHByb3Zpc2lvbmFsIGxvYWQgb2YgYSBub24tYW5jZXN0b3IgaWZyYW1l
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyMzAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmx5IGV4
aXQgZnVsbCBzY3JlZW4gbW9kZSBpZiB0aGUgZnJhbWUgYmVpbmcgbG9hZGVkIGNvbnRhaW5zIHRo
ZSBmdWxsIAorICAgICAgICBzY3JlZW4gZWxlbWVudC4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZTpdKTogR2l2ZSB0aGUgVUlEZWxlZ2F0ZSBhIGZpcnN0IGNyYWNrIGF0IGhhbmRsaW5nIHRo
ZQorICAgICAgICByZXF1ZXN0IHRvIGNsb3NlIHRoZSBmdWxsIHNjcmVlbiB3aW5kb3cgd2hlbiBh
IHByb3Zpc2lvbmFsIGxvYWQgb2NjdXJzLgorCisyMDEyLTA1LTA0ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgorCiAgICAgICAgIE1vdmUgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVy
IGludG8gaXRzIG93biBmaWxlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODU2NDAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDAyY2JjM2JmNzMyMGVlMTAzNGE5ZDVh
ZWUzNDBjODg0ZWJhNGJkY2QuLjNkZjk0YmE4ZjdmYjEwNzZmZDAzMWYxNDA3MmYyNWMyYjYzY2Nl
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0wNC0zMCAgSmVyIE5vYmxlICA8
amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBGdWxsIHNjcmVlbiB3aWxsIGV4aXQgZHVy
aW5nIGEgcHJvdmlzaW9uYWwgbG9hZCBvZiBhIG5vbi1hbmNlc3RvciBpZnJhbWUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTIzMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9ubHkgZXhpdCBmdWxsIHNj
cmVlbiBtb2RlIGlmIHRoZSBmcmFtZSBiZWluZyBsb2FkZWQgY29udGFpbnMgdGhlIGZ1bGwgCisg
ICAgICAgIHNjcmVlbiBlbGVtZW50OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCk6CisKKyAgICAgICAg
TW92ZSB0aGUgZnVsbCBzY3JlZW4gZXhpdGluZyBsb2dpYyB1cCBpbnRvIFdlYkZyYW1lTG9hZGVy
Q2xpZW50IGluIHRoZQorICAgICAgICBXZWJQcm9jZXNzOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorCisgICAgICAgIEFkZCBhIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyICJjbG9zZSIgbWV0aG9kICYgbWVzc2FnZToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGdWxsU2NyZWVuTWFuYWdlcjo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNj
cmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oOgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0
aGlzIG5ldyBtZXNzYWdlIHRvIHRoZSBXS0J1bmRsZVBhZ2UgYW5kIGNsaWVudDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3Jl
ZW5DbGllbnQ6OmNsb3NlRnVsbFNjcmVlbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Lmg6CisKIDIwMTItMDUt
MDIgIE1haGVzaCBLdWxrYXJuaSAgPG1haGVzaC5rdWxrYXJuaUBub2tpYS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZC4gQnVpbGQgZml4IGZvciBRdCBwb3J0IG9uIG1hYy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU0ZjAyNmQ2YTcy
ZjVmMjYzODIyNjI1YTMyNjU2NTBlODY0ZDI0YTguLjI1ZTAwNDA5YTZlMTk3YTBiNDAxNmNlNGFl
Y2YxNzJmNWUzYjc1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMzY3LDYgKzM2Nyw4IEBACiAJCUMwQjg4RThCMTBBMDhGM0QwMEZC
QjNGNSAvKiBXZWJGcmFtZUxvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQjg4RThBMTBBMDhGM0QwMEZCQjNGNSAvKiBX
ZWJGcmFtZUxvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlDMEM1QjNFRTExNzdBNEEwMDAyQjBBRUYgLyogV2ViVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMEM1QjNFQzExNzdBNEEwMDAyQjBBRUYgLyogV2ViVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQzBDNUIzRUYxMTc3QTRBMDAwMkIwQUVGIC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQzVCM0VE
MTE3N0E0QTAwMDJCMEFFRiAvKiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4ubW0gKi87IH07CisJ
CUNEOEJGQ0U3MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCRkNFNTE1
NTMxMjI0MDA1QUZCMjUgLyogV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLm1tICovOyB9OworCQlD
RDhCRkNFODE1NTMxMjI0MDA1QUZCMjUgLyogV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCRkNFNjE1NTMx
MjI0MDA1QUZCMjUgLyogV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLmggKi87IH07CiAJCUNEOEVB
QzczMTFDQUM5QTMwMDc3NDA3NSAvKiBJT0tpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhFQUM3MjExQ0FDOUEzMDA3NzQwNzUg
LyogSU9LaXQuZnJhbWV3b3JrICovOyB9OwogCQlDREE2MkFFMjEyNUY4N0MyMDA3RkQxMTggLyog
V2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEQTYyQUUwMTI1Rjg3QzIwMDdGRDExOCAvKiBXZWJGdWxsU2NyZWVu
Q29udHJvbGxlci5oICovOyB9OwogCQlDREE2MkFFMzEyNUY4N0MyMDA3RkQxMTggLyogV2ViRnVs
bFNjcmVlbkNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREE2MkFFMTEyNUY4N0MyMDA3RkQxMTggLyogV2ViRnVsbFNjcmVlbkNvbnRy
b2xsZXIubW0gKi87IH07CkBAIC02OTgsNiArNzAwLDggQEAKIAkJQzBCODhFOEExMEEwOEYzRDAw
RkJCM0Y1IC8qIFdlYkZyYW1lTG9hZERlbGVnYXRlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZUxvYWREZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzBDNUIzRUMxMTc3QTRBMDAwMkIwQUVGIC8qIFdlYlVzZXJD
b250ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJV
c2VyQ29udGVudFVSTFBhdHRlcm4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzBD
NUIzRUQxMTc3QTRBMDAwMkIwQUVGIC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlVzZXJDb250ZW50VVJMUGF0
dGVybi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q4QkZDRTUxNTUzMTIyNDAw
NUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q4QkZDRTYxNTUzMTIyNDAwNUFGQjI1IC8qIFdlYktp
dEZ1bGxTY3JlZW5MaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q4RUFDNzIxMUNBQzlBMzAwNzc0MDc1IC8qIElPS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBu
YW1lID0gSU9LaXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
SU9LaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlDREE2MkFF
MDEyNUY4N0MyMDA3RkQxMTggLyogV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBNjJBRTExMjVGODdDMjAwN0ZEMTE4IC8qIFdlYkZ1
bGxTY3JlZW5Db250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMzE5LDYgKzEzMjMsOCBAQAogCQkJCTkzMTYzM0VFMEFFREZGQUUwMDYyQjkyRCAv
KiBXZWJGcmFtZUxvYWRlckNsaWVudC5tbSAqLywKIAkJCQk5MzkxRjI3MzEyMUIzOEJEMDBFQkY3
RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJCTkzOTFGMjc0MTIxQjM4
QkQwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovLAorCQkJCUNEOEJG
Q0U1MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIubW0gKi8sCisJ
CQkJQ0Q4QkZDRTYxNTUzMTIyNDAwNUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5o
ICovLAogCQkJCUJDN0Y4ODQ5MTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVu
dC5oICovLAogCQkJCUJDN0Y4ODRBMTBDODc3NUEwMEQ2MTMzRCAvKiBXZWJHZW9sb2NhdGlvbkNs
aWVudC5tbSAqLywKIAkJCQk1MTQ5NENENDBDN0VCREUwMDA0MTc4QzUgLyogV2ViSWNvbkRhdGFi
YXNlQ2xpZW50LmggKi8sCkBAIC0xNjUwLDYgKzE2NTYsNyBAQAogCQkJCTMxMkUyRkU1MTRFNDgx
ODIwMDdDQ0ExOCAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMkUy
RkU5MTRFNDgyMTUwMDdDQ0ExOCAvKiBXZWJOb3RpZmljYXRpb25JbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0VEQTEyREMxNTJDQkU2ODAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4
dENsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q4QkZDRTgxNTUzMTIyNDAwNUFGQjI1IC8q
IFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMDM4LDYgKzIw
NDUsNyBAQAogCQkJCTQxRjQ0ODUwMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0
ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTMxMkUyRkU2MTRFNDgxODIwMDdDQ0ExOCAvKiBXZWJO
b3RpZmljYXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRURBMTJEQjE1MkNCRTY4MDBEOUUw
OEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q4
QkZDRTcxNTUzMTIyNDAwNUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5tbSBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDA0N2Y4OWJm
MzFkYjkwNzBhNzA2M2FiYjA4ZDY2OWM0ZTY4OThiYTcuLjcxMTVhOGFmMmQ1MTM5OGMyZjlhY2Qx
ZWRlYWQ3NWFiNjBhZjI3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAg
LTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIldlYlZpZXdEYXRhLmgiCiAKICNpbXBvcnQgIkRPTUNT
U1N0eWxlRGVjbGFyYXRpb25JbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NRG9jdW1lbnRJbnRlcm5h
bC5oIgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01SYW5nZUludGVy
bmFsLmgiCiAjaW1wb3J0ICJXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCIKQEAgLTcxLDYgKzcy
LDcgQEAKICNpbXBvcnQgIldlYkluc3BlY3Rvci5oIgogI2ltcG9ydCAiV2ViSW5zcGVjdG9yQ2xp
ZW50LmgiCiAjaW1wb3J0ICJXZWJLaXRFcnJvcnMuaCIKKyNpbXBvcnQgIldlYktpdEZ1bGxTY3Jl
ZW5MaXN0ZW5lci5oIgogI2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViS2l0
TlNTdHJpbmdFeHRyYXMuaCIKICNpbXBvcnQgIldlYktpdFN0YXRpc3RpY3NQcml2YXRlLmgiCkBA
IC0xODUwLDggKzE4NTIsMTYgQEAgc3RhdGljIGlubGluZSBJTVAgZ2V0TWV0aG9kKGlkIG8sIFNF
TCBzKQogICAgIFtOU0FwcCBzZXRXaW5kb3dzTmVlZFVwZGF0ZTpZRVNdOwogCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQotICAgIGlmIChfcHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRyb2xs
ZXIgJiYgW19wcml2YXRlLT5uZXdGdWxsc2NyZWVuQ29udHJvbGxlciBpc0Z1bGxTY3JlZW5dKQot
ICAgICAgICBbX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyIGNsb3NlXTsKKyAgICBp
ZiAoRWxlbWVudCogZWxlbWVudCA9IGNvcmUoW2ZyYW1lIERPTURvY3VtZW50XSktPndlYmtpdEN1
cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKSB7CisgICAgICAgIFNFTCBzZWxlY3RvciA9IEBzZWxl
Y3Rvcih3ZWJWaWV3OmNsb3NlRnVsbFNjcmVlbldpdGhMaXN0ZW5lcjopOworICAgICAgICBpZiAo
X3ByaXZhdGUtPlVJRGVsZWdhdGUgJiYgW19wcml2YXRlLT5VSURlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpzZWxlY3Rvcl0pIHsKKyAgICAgICAgICAgIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5l
ciAqbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhF
bGVtZW50OmVsZW1lbnRdOworICAgICAgICAgICAgQ2FsbFVJRGVsZWdhdGUoc2VsZiwgc2VsZWN0
b3IsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgIFtsaXN0ZW5lciByZWxlYXNlXTsKKyAgICAgICAg
fSBlbHNlIGlmIChfcHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRyb2xsZXIgJiYgW19wcml2YXRl
LT5uZXdGdWxsc2NyZWVuQ29udHJvbGxlciBpc0Z1bGxTY3JlZW5dKSB7CisgICAgICAgICAgICBb
X3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyIGNsb3NlXTsKKyAgICAgICAgfQorICAg
IH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGM1MmNlYTky
ZTgzYzgyZmQ4MTY1OTcxNWI3ZTY4ZDZjNGQwZjNiZTguLjk3ZTQ2MTMwZjE0MDYxOTJmMzIxYWI1
NDc3NjdjOWEyYWYzNjY5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNyw1
ICsyNyw2IEBAIG1lc3NhZ2VzIC0+IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgewogICAgIEV4
aXRGdWxsU2NyZWVuKCkKICAgICBCZWdhbkVudGVyRnVsbFNjcmVlbihXZWJDb3JlOjpJbnRSZWN0
IGluaXRpYWxSZWN0LCBXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCkKICAgICBCZWdhbkV4aXRG
dWxsU2NyZWVuKFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIFdlYkNvcmU6OkludFJlY3Qg
ZmluYWxSZWN0KQorICAgIENsb3NlKCkKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3NDhhNTczODdmNWQ2MTg4YzBkY2U1NjBkMjhiZmE2
OTU3MTUzNWIxLi44MmM0ZmU1ZDg5ODhlZjc1MmU3M2EwNzA0Nzc4YWQ0NzQ2ZjNiYzE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTc4NiwxMSArMTc4
Niw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluCiAKICAgICBmcmFtZS0+ZGlkU3RhcnRQcm92
aXNpb25hbExvYWQodXJsKTsKICAgICBtX2xvYWRlckNsaWVudC5kaWRTdGFydFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7Ci0KLSNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCi0gICAgaWYgKG1fZnVsbFNjcmVlbk1hbmFnZXIgJiYgbV9mdWxsU2Ny
ZWVuTWFuYWdlci0+aXNGdWxsU2NyZWVuKCkpCi0gICAgICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIt
PmNsb3NlKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgdXJsLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2Ny
ZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuY3BwCmluZGV4IDQ3M2ExM2M5YmUxODU0OTIxYzRhNDQ4ZTgxNDlh
NDZkYTdhNjhmNzIuLmM1ZmM4MWE5ZTdlM2Y0YWNiZTBkN2E2YWRhMDE2ZjZmZTEyMjQ4ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2Ny
ZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVu
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApAQCAtMTQ2LDYgKzE0NiwxMSBAQCB2b2lkIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKQogICAgIG1fZWxlbWVudC0+
ZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOwogfQogCit2b2lkIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyOjpjbG9zZSgpCit7CisgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZUZ1bGxT
Y3JlZW5DbGllbnQoKS5jbG9zZUZ1bGxTY3JlZW4obV9wYWdlLmdldCgpKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxs
U2NyZWVuTWFuYWdlci5oCmluZGV4IDE5NDA3NjJkYjk3YTAxY2UxZWIxOWJkZTg2YTBmZDk2NGQ5
M2FhMDkuLjM5NmE0YWRiMTkyZWYwNjYzY2IxNTA3Yjg0ZmI0MmE3NzdlYmQ0ZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxs
U2NyZWVuTWFuYWdlci5oCkBAIC02NSw2ICs2NSw4IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6
OkVsZW1lbnQqIGVsZW1lbnQoKTsKIAorICAgIHZvaWQgY2xvc2UoKTsKKwogcHJvdGVjdGVkOgog
ICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKFdlYlBhZ2UqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlLmgKaW5kZXggNzUyZTgwODU0OTE3OTBiNTgyNmFmMWM3OWEwY2IzZWJjM2U5MDc3My4uMmI0
MmVhNjNhNjNmODNhNTViZWFkZjY2Y2U2NWU3MjQxYWIyMDc2OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5oCkBAIC0zMTYsNiArMzE2LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdl
RW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnUKIHR5
cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCkoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBlbGVtZW50KTsKIHR5cGVkZWYg
dm9pZCAoKldLQnVuZGxlUGFnZUJlZ2FuRW50ZXJGdWxsU2NyZWVuKShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tSZWN0IGluaXRpYWxGcmFtZSwgV0tSZWN0IGZpbmFsRnJhbWUpOwogdHlwZWRlZiB2
b2lkICgqV0tCdW5kbGVQYWdlQmVnYW5FeGl0RnVsbFNjcmVlbikoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLUmVjdCBpbml0aWFsRnJhbWUsIFdLUmVjdCBmaW5hbEZyYW1lKTsKK3R5cGVkZWYgdm9p
ZCAoKldLQnVuZGxlUGFnZUNsb3NlRnVsbFNjcmVlbikoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwog
CiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCB7CiAgICAgaW50ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
ZXJzaW9uOwpAQCAtMzI5LDYgKzMzMCw3IEBAIHN0cnVjdCBXS0J1bmRsZVBhZ2VGdWxsU2NyZWVu
Q2xpZW50IHsKICAgICAvLyBWZXJzaW9uIDE6CiAgICAgV0tCdW5kbGVQYWdlQmVnYW5FbnRlckZ1
bGxTY3JlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdhbkVudGVyRnVs
bFNjcmVlbjsKICAgICBXS0J1bmRsZVBhZ2VCZWdhbkV4aXRGdWxsU2NyZWVuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2FuRXhpdEZ1bGxTY3JlZW47CisgICAgV0tCdW5k
bGVQYWdlQ2xvc2VGdWxsU2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbG9zZUZ1bGxTY3JlZW47CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudCBXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcAppbmRleCBj
NTljOGFiYWIzZWY2Y2Y0ZjhhZDZiZGMyNTAyNDcxNGFkYjIzY2ExLi45NmI5YTE4NGZhYTMwMzVm
ODRhYWM3ZWZlN2U5ZGE4ZGU0YmM0ZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAKQEAgLTg4LDYgKzg4LDE0IEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudDo6YmVnYW5FeGl0RnVsbFNjcmVlbihX
ZWJQYWdlICpwYWdlLCBJbnRSCiAgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHk6OkJlZ2FuRXhpdEZ1bGxTY3JlZW4oaW5pdGlhbEZyYW1lLCBmaW5h
bEZyYW1lKSk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudDo6
Y2xvc2VGdWxsU2NyZWVuKFdlYlBhZ2UgKnBhZ2UpCit7CisgICAgaWYgKG1fY2xpZW50LmNsb3Nl
RnVsbFNjcmVlbikKKyAgICAgICAgbV9jbGllbnQuY2xvc2VGdWxsU2NyZWVuKHRvQVBJKHBhZ2Up
KTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHk6OkNsb3NlKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKaW5kZXggOWM3ZGEwMzNiZTZlNzIyNzdkYmJj
MGE4OThhMDY4MjZiNjJjZGExYi4uODFhYjNjZTE4YjE1YzYyZmY0YzM0NTljMzQ4NzFlMzQxYzgy
NjgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVu
Q2xpZW50LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIHZvaWQgZXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KFdlYlBhZ2UqLCBXZWJDb3JlOjpFbGVtZW50Kik7CiAgICAgdm9pZCBiZWdh
bkVudGVyRnVsbFNjcmVlbihXZWJQYWdlKiwgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbEZyYW1l
LCBXZWJDb3JlOjpJbnRSZWN0JiBmaW5hbEZyYW1lKTsKICAgICB2b2lkIGJlZ2FuRXhpdEZ1bGxT
Y3JlZW4oV2ViUGFnZSosIFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxGcmFtZSwgV2ViQ29yZTo6
SW50UmVjdCYgZmluYWxGcmFtZSk7CisgICAgdm9pZCBjbG9zZUZ1bGxTY3JlZW4oV2ViUGFnZSop
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDI1MzVhMmRjNmM1YmRmNmZmYjNmOGUzNjMxMDZhOGM2NzA0NWU2NDQuLjgx
MWFhYjFjYjcyYWM3ZGViMmU1YTE0MWE4YTRiOWFiZmYwZDI0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiV2ViRXZlbnQu
aCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgogI2luY2x1ZGUgIldl
Yk5hdmlnYXRpb25EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKQEAgLTM5MCw2ICszOTEsMTEgQEAgdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgaWYg
KCF3ZWJQYWdlKQogICAgICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CisgICAgaWYgKG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpLT53ZWJraXRJc0Z1bGxT
Y3JlZW4oKSkKKyAgICAgICAgd2ViUGFnZS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+Y2xvc2UoKTsK
KyNlbmRpZgorCiAgICAgd2ViUGFnZS0+ZmluZENvbnRyb2xsZXIoKS5oaWRlRmluZFVJKCk7CiAg
ICAgd2ViUGFnZS0+c2FuZGJveEV4dGVuc2lvblRyYWNrZXIoKS5kaWRTdGFydFByb3Zpc2lvbmFs
TG9hZChtX2ZyYW1lKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGVhNzNkNTFiMTk3ODM5ODc3NjNiZjQwYWIwODNiMGJkODYwOTk3NWUuLmZh
NGJiOGE2MGU3NDViZjcwN2RlOTQ0YTJmYjg2ZGY5MjhiNjRjMWMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0w
NC0zMCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBGdWxsIHNj
cmVlbiB3aWxsIGV4aXQgZHVyaW5nIGEgcHJvdmlzaW9uYWwgbG9hZCBvZiBhIG5vbi1hbmNlc3Rv
ciBpZnJhbWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NTIzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciB0aGUgbmV3IFVJRGVsZWdhdGUgd2ViVmlldzpjbG9zZUZ1bGxTY3Jl
ZW5XaXRoTGlzdGVuZXI6IG1ldGhvZDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlE
ZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVUlEZWxlZ2F0ZSB3ZWJWaWV3OmNsb3NlRnVsbFNjcmVl
bldpdGhMaXN0ZW5lcjpdKToKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIG5ldyBjbG9z
ZUZ1bGxTY3JlZW4gaW5qZWN0ZWQgYnVuZGxlIG1ldGhvZDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChX
VFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKToKKyAgICAgICAgKFdU
Ujo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpjbG9zZUZ1bGxTY3JlZW4pOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmg6CisKIDIwMTIt
MDUtMDIgIFRlcnJ5IEFuZGVyc29uICA8dGRhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgQWRkaXRpb24gb2YgYSBjb250cmlidXRvciB0byBjb21taXR0ZXJzLnB5CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbSBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tCmluZGV4IDg0N2E1ZmI0ZWViYTY3MWI2NGUyYjhjYmI1
NzNlMzIwNmNiNDY1N2QuLjg0MGZkYzIwOTJiMDhlMjFhNDcxZDQ0MjUzN2E3ZDYzM2ZlZDQyNWEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tCkBAIC0yNzYsNiArMjc2LDEy
IEBAIER1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvICpkcmFnZ2luZ0luZm8gPSBuaWw7CiAgICAg
ICAgIFtzZWxmIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IoZXhpdEZ1bGxTY3JlZW5XaXRoTGlz
dGVuZXI6KSB3aXRoT2JqZWN0Omxpc3RlbmVyIGFmdGVyRGVsYXk6MF07CiB9CiAKKy0gKHZvaWQp
d2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBjbG9zZUZ1bGxTY3JlZW5XaXRoTGlzdGVuZXI6KE5T
T2JqZWN0PFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lcj4qKWxpc3RlbmVyCit7CisgICAgW2xpc3Rl
bmVyIHdlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbl07CisgICAgW2xpc3RlbmVyIHdlYmtpdERpZEV4
aXRGdWxsU2NyZWVuXTsKK30KKwogLSAoQk9PTCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBk
aWRQcmVzc01pc3NpbmdQbHVnaW5CdXR0b246KERPTUVsZW1lbnQgKillbGVtZW50CiB7CiAgICAg
cHJpbnRmKCJNSVNTSU5HIFBMVUdJTiBCVVRUT04gUFJFU1NFRFxuIik7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5jcHAKaW5kZXggYjE2YmU3YTNlYjY4OGUyZmU0MDVlOWQyNjhjOWI1MGVhMDQ0NjZhYS4u
NTI3ZWMzNzk5OWEwMzA0MGM0NWJhMTQ5ZWY3ODlkZDliZjEzNjU1MyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmNwcApAQCAtMzEzLDYgKzMxMyw3IEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0
ZWRCdW5kbGVQYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogICAgICAgICBleGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQsCiAgICAgICAgIGJlZ2FuRW50ZXJGdWxsU2NyZWVuLAogICAgICAgICBiZWdh
bkV4aXRGdWxsU2NyZWVuLAorICAgICAgICBjbG9zZUZ1bGxTY3JlZW4sCiAgICAgfTsKICAgICBX
S0J1bmRsZVBhZ2VTZXRGdWxsU2NyZWVuQ2xpZW50KG1fcGFnZSwgJmZ1bGxTY3JlZW5DbGllbnQp
OwogI2VuZGlmCkBAIC0xMjQzLDYgKzEyNDQsMTcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OmJlZ2FuRXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCBXS1JlY3QsIFdLUmVjdCkKICAg
ICBpZiAoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPnNo
b3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCiAgICAgICAgIEluamVjdGVkQnVuZGxlOjpz
aGFyZWQoKS5zdHJpbmdCdWlsZGVyKCktPmFwcGVuZCgiYmVnYW5FeGl0RnVsbFNjcmVlbigpXG4i
KTsKIH0KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmNsb3NlRnVsbFNjcmVlbihXS0J1bmRs
ZVBhZ2VSZWYgcGFnZVJlZikKK3sKKyAgICBpZiAoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxh
eW91dFRlc3RDb250cm9sbGVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisg
ICAgICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdCdWlsZGVyKCktPmFwcGVuZCgi
Y2xvc2VGdWxsU2NyZWVuKClcbiIpOworCisgICAgaWYgKCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVk
KCkubGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkp
IHsKKyAgICAgICAgV0tCdW5kbGVQYWdlV2lsbEV4aXRGdWxsU2NyZWVuKHBhZ2VSZWYpOworICAg
ICAgICBXS0J1bmRsZVBhZ2VEaWRFeGl0RnVsbFNjcmVlbihwYWdlUmVmKTsKKyAgICB9Cit9CiAj
ZW5kaWYKIAogc3RhdGljIGJvb2wgY29tcGFyZUJ5VGFyZ2V0TmFtZShXS0J1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW1SZWYgaXRlbTEsIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVt
MikKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5oCmluZGV4IGI1MzkyZmRlMDZjYWQ1OTU3NjNiMjZhNDdkZjRj
Y2YzMjViYWRhMmYuLmUwNTdjYTkwNjE4ZTM3MDA5MzI2NWQyNGJiYTE3MGM5Y2IzNTE4ZjggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2UuaApAQCAtMTI2LDYgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgc3Rh
dGljIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5k
bGVOb2RlSGFuZGxlUmVmIGVsZW1lbnQpOwogICAgIHN0YXRpYyB2b2lkIGJlZ2FuRW50ZXJGdWxs
U2NyZWVuKFdLQnVuZGxlUGFnZVJlZiwgV0tSZWN0IGluaXRpYWxGcmFtZSwgV0tSZWN0IGZpbmFs
RnJhbWUpOwogICAgIHN0YXRpYyB2b2lkIGJlZ2FuRXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdl
UmVmLCBXS1JlY3QgaW5pdGlhbEZyYW1lLCBXS1JlY3QgZmluYWxGcmFtZSk7CisgICAgc3RhdGlj
IHZvaWQgY2xvc2VGdWxsU2NyZWVuKFdLQnVuZGxlUGFnZVJlZik7CiAjZW5kaWYKIAogICAgIC8v
IEVkaXRvciBjbGllbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyN2IyNjI2ZjA2YzIzZTQzNmFkNTVlYjc1ZjcxNWJjYzhm
MDYxNTEyLi43NTU1NGRhZjEzZDBhMzE3ZTNjOTE0NjQwZDQ2MjM2NmZlNTRkZjMxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTItMDUtMDMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CisKKyAgICAgICAgRnVsbCBzY3JlZW4gd2lsbCBleGl0IGR1cmluZyBhIHByb3Zpc2lvbmFs
IGxvYWQgb2YgYSBub24tYW5jZXN0b3IgaWZyYW1lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZ1bGxzY3JlZW4vbm9uLWFuY2VzdG9yLWlmcmFtZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZ1bGxzY3JlZW4vbm9uLWFuY2VzdG9yLWlm
cmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmdWxsc2NyZWVuL3Jlc291cmNlcy9lbXB0eS5o
dG1sOiBBZGRlZC4KKwogMjAxMi0wNS0wMiAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKDExMDA3Mik6IENsaXBwaW5nIGlzIG5v
dCBhcHBsaWVkIG9uIGxheWVycyB0aGF0IGFyZSBhbmltYXRlZCB1c2luZyBwbGF0Zm9ybSBjb2Rl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL25vbi1hbmNlc3Rvci1pZnJhbWUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9ub24tYW5jZXN0b3ItaWZyYW1l
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTc4ZTk0MzdiMGNjOTZiYTZmYjIxYmVjYzk4NDY3
ZTViYjc0ZWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9ub24t
YW5jZXN0b3ItaWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1RoaXMgdGVzdHMg
dGhhdCBmdWxsIHNjcmVlbiBtb2RlIHdpbGwgbm90IGV4aXQgd2hlbiBhIG5vbi1hbmNlc3RvciBp
ZnJhbWUgaXMgbG9hZGVkIGluIHRoZSBwYWdlLiBDbGljayBlbnRlciBmdWxsIHNjcmVlbiB0byBz
dGFydCB0ZXN0LgorCitFVkVOVCh3ZWJraXRmdWxsc2NyZWVuY2hhbmdlKQorRVZFTlQobG9hZCkK
K0VYUEVDVEVEIChkb2N1bWVudC53ZWJraXRJc0Z1bGxTY3JlZW4gPT0gJ3RydWUnKSBPSworRU5E
IE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9ub24tYW5jZXN0
b3ItaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL25vbi1hbmNlc3Rvci1pZnJh
bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zN2IzMTFmMjZmOTY0YjZiODAyZDUzYjZiNGJlZmI1ODQ5ZGVm
YTZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9ub24tYW5jZXN0
b3ItaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPHNjcmlwdCBzcmM9ImZ1bGwtc2NyZWVu
LXRlc3QuanMiPjwvc2NyaXB0PgorPGRpdj5UaGlzIHRlc3RzIHRoYXQgZnVsbCBzY3JlZW4gbW9k
ZSB3aWxsIG5vdCBleGl0IHdoZW4gYSBub24tYW5jZXN0b3IgaWZyYW1lIGlzIGxvYWRlZCBpbiB0
aGUgcGFnZS4gQ2xpY2sgPGJ1dHRvbiBvbmNsaWNrPSJzdGFydFRlc3QoKTsiPmVudGVyIGZ1bGwg
c2NyZWVuPC9idXR0b24+IHRvIHN0YXJ0IHRlc3QuPC9kaXY+Cis8ZGl2IGlkPSJ0YXJnZXQiPgor
ICAgIDxpZnJhbWUgaWQ9ImlmcmFtZSI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgICAg
dmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICB2YXIg
aWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpOworCisgICAgd2FpdEZv
ckV2ZW50T25jZShkb2N1bWVudCwgJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgd2FpdEZvckV2ZW50KGRvY3VtZW50LCAnd2Via2l0ZnVsbHNjcmVlbmNoYW5n
ZScsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICBsb2dSZXN1bHQoZmFsc2UsICdFeGl0ZWQgZnVs
bCBzY3JlZW4nKTsgCisgICAgICAgIH0pOworICAgICAgICBpZnJhbWUuc3JjID0gJ3Jlc291cmNl
cy9lbXB0eS5odG1sJzsKKyAgICB9KTsKKworICAgIHdhaXRGb3JFdmVudChpZnJhbWUsICdsb2Fk
JywgZnVuY3Rpb24oKSB7CisgICAgICAgIHRlc3RFeHBlY3RlZCgiZG9jdW1lbnQud2Via2l0SXNG
dWxsU2NyZWVuIiwgdHJ1ZSk7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKworICAgIHZh
ciBzdGFydFRlc3QgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGFyZ2V0LndlYmtpdFJlcXVlc3RG
dWxsc2NyZWVuKCk7CisgICAgfTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgIHJ1bldpdGhLZXlEb3duKHN0YXJ0VGVzdCk7Cis8L3NjcmlwdD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVu
L3Jlc291cmNlcy9lbXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9yZXNvdXJjZXMv
ZW1wdHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGI3NjYxZjQyMjEyOTg1ODg4ZDFkZmRmMWQ4NzI5Zjg5
YzRmYzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9yZXNvdXJj
ZXMvZW1wdHkuaHRtbApAQCAtMCwwICsxIEBACis8Ym9keT48L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140276</attachid>
            <date>2012-05-04 10:56:19 -0700</date>
            <delta_ts>2012-05-04 10:57:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85230-20120504105618.patch</filename>
            <type>text/plain</type>
            <size>13804</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1ODQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFkYjVkMjAxNzZiYmQ2YjBj
NjMzZTYwYTczM2RkNmQ3MWJjODcxZDkuLjRkZTdiMDJiMDE3ZmMzMmE4Yzk3ZmRmMjA1MTg3MjZh
MjE4OWE5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDUtMDMgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgRnVsbCBzY3JlZW4gd2lsbCBleGl0
IGR1cmluZyBhIHByb3Zpc2lvbmFsIGxvYWQgb2YgYSBub24tYW5jZXN0b3IgaWZyYW1lLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyMzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIFdlYktpdEZ1
bGxTY3JlZW5MaXN0ZW5lciBpbnRvIGl0cyBvd24gZmlsZS4KKworICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEyLTA0LTI2ICBDaHJpc3RvcGhlIER1bWV6
ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gRW5hYmxlIFZJ
REVPX1RSQUNLIGZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1OWQ1ZTdjYjI0ZjJjYmUyY2Qx
ODEyZGRmNDk2OTY3ODU0ZGY5YjVlLi5hMWU2ZTczNDEyNDBlMTA5YmExNzUzZDIyOGRmMTk5Mzll
MDNmMzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTItMDUtMDQgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgRnVsbCBzY3JlZW4gd2ls
bCBleGl0IGR1cmluZyBhIHByb3Zpc2lvbmFsIGxvYWQgb2YgYSBub24tYW5jZXN0b3IgaWZyYW1l
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyMzAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmx5IGV4
aXQgZnVsbCBzY3JlZW4gbW9kZSBpZiB0aGUgZnJhbWUgYmVpbmcgbG9hZGVkIGNvbnRhaW5zIHRo
ZSBmdWxsIAorICAgICAgICBzY3JlZW4gZWxlbWVudC4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZTpdKTogR2l2ZSB0aGUgVUlEZWxlZ2F0ZSBhIGZpcnN0IGNyYWNrIGF0IGhhbmRsaW5nIHRo
ZQorICAgICAgICByZXF1ZXN0IHRvIGNsb3NlIHRoZSBmdWxsIHNjcmVlbiB3aW5kb3cgd2hlbiBh
IHByb3Zpc2lvbmFsIGxvYWQgb2NjdXJzLgorCisyMDEyLTA1LTA0ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVy
IGludG8gaXRzIG93biBmaWxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODU2NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNb3ZlIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciBpbnRvIGl0cyBvd24gZmls
ZSwgc28gaXQgY2FuIGJlIHVzZWQgYnkgbXVsdGlwbGUgY2xhc3Nlcy4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIubW06IEFkZGVkLgorICAg
ICAgICAoLVtXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgd2Via2l0V2lsbEVudGVyRnVsbFNjcmVl
bl0pOgorICAgICAgICAoLVtXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgd2Via2l0RGlkRW50ZXJG
dWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciB3ZWJraXRX
aWxsRXhpdEZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVy
IHdlYmtpdERpZEV4aXRGdWxsU2NyZWVuXSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tOgorCiAyMDEyLTA1LTAxICBKZWZmcmV5IFBmYXUgIDxqcGZhdUBhcHBs
ZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwNDIyMzE4PiBTdXBwb3J0IGZvciB3
ZWIgY29udGVudCBmaWx0ZXIgZGVsZWdhdGUgZm9yIGZpbHRlcmluZyBodHRwcyBjb250ZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1
NGYwMjZkNmE3MmY1ZjI2MzgyMjYyNWEzMjY1NjUwZTg2NGQyNGE4Li4yNWUwMDQwOWE2ZTE5N2Ew
YjQwMTZjZTRhZWNmMTcyZjVlM2I3NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2Nyw2ICszNjcsOCBAQAogCQlDMEI4OEU4QjEw
QTA4RjNEMDBGQkIzRjUgLyogV2ViRnJhbWVMb2FkRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEI4OEU4QTEwQTA4RjNEMDBG
QkIzRjUgLyogV2ViRnJhbWVMb2FkRGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzBDNUIzRUUxMTc3QTRBMDAwMkIwQUVG
IC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzBDNUIzRUMxMTc3QTRBMDAwMkIwQUVGIC8qIFdlYlVzZXJD
b250ZW50VVJMUGF0dGVybi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUMwQzVCM0VGMTE3N0E0QTAwMDJCMEFFRiAvKiBXZWJVc2VyQ29udGVudFVS
TFBhdHRlcm4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMEM1QjNFRDExNzdBNEEwMDAyQjBBRUYgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLm1t
ICovOyB9OworCQlDRDhCRkNFNzE1NTMxMjI0MDA1QUZCMjUgLyogV2ViS2l0RnVsbFNjcmVlbkxp
c3RlbmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q4QkZDRTUxNTUzMTIyNDAwNUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5tbSAq
LzsgfTsKKwkJQ0Q4QkZDRTgxNTUzMTIyNDAwNUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0
ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4
QkZDRTYxNTUzMTIyNDAwNUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5oICovOyB9
OwogCQlDRDhFQUM3MzExQ0FDOUEzMDA3NzQwNzUgLyogSU9LaXQuZnJhbWV3b3JrIGluIEZyYW1l
d29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4RUFDNzIxMUNBQzlB
MzAwNzc0MDc1IC8qIElPS2l0LmZyYW1ld29yayAqLzsgfTsKIAkJQ0RBNjJBRTIxMjVGODdDMjAw
N0ZEMTE4IC8qIFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREE2MkFFMDEyNUY4N0MyMDA3RkQxMTggLyogV2Vi
RnVsbFNjcmVlbkNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0RBNjJBRTMxMjVGODdDMjAwN0ZEMTE4
IC8qIFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBNjJBRTExMjVGODdDMjAwN0ZEMTE4IC8qIFdlYkZ1bGxT
Y3JlZW5Db250cm9sbGVyLm1tICovOyB9OwpAQCAtNjk4LDYgKzcwMCw4IEBACiAJCUMwQjg4RThB
MTBBMDhGM0QwMEZCQjNGNSAvKiBXZWJGcmFtZUxvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVMb2FkRGVsZWdhdGVQcml2YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwQzVCM0VDMTE3N0E0QTAwMDJCMEFFRiAv
KiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMwQzVCM0VEMTE3N0E0QTAwMDJCMEFFRiAvKiBXZWJVc2VyQ29udGVudFVSTFBhdHRl
cm4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJVc2VyQ29u
dGVudFVSTFBhdHRlcm4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEJGQ0U1
MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEJGQ0U2MTU1MzEyMjQwMDVBRkIy
NSAvKiBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEOEVBQzcyMTFDQUM5QTMwMDc3NDA3NSAvKiBJT0tpdC5mcmFtZXdvcmsgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZy
YW1ld29yazsgbmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsK
IAkJQ0RBNjJBRTAxMjVGODdDMjAwN0ZEMTE4IC8qIFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTYyQUUxMTI1Rjg3QzIwMDdGRDEx
OCAvKiBXZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTMxOSw2ICsxMzIzLDggQEAKIAkJCQk5MzE2MzNFRTBBRURGRkFF
MDA2MkI5MkQgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gKi8sCiAJCQkJOTM5MUYyNzMxMjFC
MzhCRDAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQk5Mzkx
RjI3NDEyMUIzOEJEMDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLywK
KwkJCQlDRDhCRkNFNTE1NTMxMjI0MDA1QUZCMjUgLyogV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVy
Lm1tICovLAorCQkJCUNEOEJGQ0U2MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJLaXRGdWxsU2NyZWVu
TGlzdGVuZXIuaCAqLywKIAkJCQlCQzdGODg0OTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9j
YXRpb25DbGllbnQuaCAqLywKIAkJCQlCQzdGODg0QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2Vv
bG9jYXRpb25DbGllbnQubW0gKi8sCiAJCQkJNTE0OTRDRDQwQzdFQkRFMDAwNDE3OEM1IC8qIFdl
Ykljb25EYXRhYmFzZUNsaWVudC5oICovLApAQCAtMTY1MCw2ICsxNjU2LDcgQEAKIAkJCQkzMTJF
MkZFNTE0RTQ4MTgyMDA3Q0NBMTggLyogV2ViTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMTJFMkZFOTE0RTQ4MjE1MDA3Q0NBMTggLyogV2ViTm90aWZpY2F0aW9uSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNFREExMkRDMTUyQ0JFNjgwMEQ5RTA4RCAvKiBXZWJBbHRl
cm5hdGl2ZVRleHRDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOEJGQ0U4MTU1MzEyMjQw
MDVBRkIyNSAvKiBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
MjAzOCw2ICsyMDQ1LDcgQEAKIAkJCQk0MUY0NDg1MDEwMzM4RThDMDAzMEU1NUUgLyogV2ViV29y
a2Vyc1ByaXZhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMTJFMkZFNjE0RTQ4MTgyMDA3Q0NB
MTggLyogV2ViTm90aWZpY2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VEQTEyREIxNTJD
QkU2ODAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5tbSBpbiBTb3VyY2VzICov
LAorCQkJCUNEOEJGQ0U3MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJLaXRGdWxsU2NyZWVuTGlzdGVu
ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBmYzNhMWYyYjRkOWNhNjI4MzM5MWIxMGJi
MWE3NTZjMTY4MDEzZDY4Li45OGY1YzVkMWJiZjQ1NmNjOGQ3MWJhZjI5NzcxNzZhNWViYmY4NWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0ICJXZWJGcmFtZVZpZXcuaCIKICNp
bXBvcnQgIldlYkhUTUxWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkhpc3RvcnlJbnRlcm5h
bC5oIgorI2ltcG9ydCAiV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLmgiCiAjaW1wb3J0ICJXZWJL
aXRQcmVmaXguaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCAi
V2ViTlNVUkxSZXF1ZXN0RXh0cmFzLmgiCkBAIC0xMjgsMTggKzEyOSw2IEBAIE5TU3RyaW5nICpX
ZWJDb25zb2xlTWVzc2FnZURlYnVnTWVzc2FnZUxldmVsID0gQCJEZWJ1Z01lc3NhZ2VMZXZlbCI7
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQotCi1AaW50ZXJmYWNlIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJL
aXRGdWxsU2NyZWVuTGlzdGVuZXI+Ci17Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IF9lbGVtZW50Owot
fQotCi0tIChpZClpbml0V2l0aEVsZW1lbnQ6KEVsZW1lbnQqKWVsZW1lbnQ7Ci1AZW5kCi0KLSNl
bmRpZgotCiBXZWJDaHJvbWVDbGllbnQ6OldlYkNocm9tZUNsaWVudChXZWJWaWV3ICp3ZWJWaWV3
KSAKICAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQogewpAQCAtOTU2LDQxICs5NDUsNCBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6ZnVsbFNjcmVlblJlbmRlcmVyQ2hhbmdlZChSZW5kZXJCb3gqIHJl
bmRlcmVyKQogICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCAoaWQp
cmVuZGVyZXIpOwogfQogCi1AaW1wbGVtZW50YXRpb24gV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVy
Ci0KLS0gKGlkKWluaXRXaXRoRWxlbWVudDooRWxlbWVudCopZWxlbWVudAotewotICAgIGlmICgh
KHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1cm4gbmlsOwotICAgIAotICAgIF9l
bGVtZW50ID0gZWxlbWVudDsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZCl3ZWJraXRX
aWxsRW50ZXJGdWxsU2NyZWVuCi17Ci0gICAgaWYgKF9lbGVtZW50KQotICAgICAgICBfZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoX2VsZW1l
bnQuZ2V0KCkpOwotfQotCi0tICh2b2lkKXdlYmtpdERpZEVudGVyRnVsbFNjcmVlbgotewotICAg
IGlmIChfZWxlbWVudCkKLSAgICAgICAgX2VsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdERpZEVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoX2VsZW1lbnQuZ2V0KCkpOwotfQotCi0tICh2b2lkKXdl
YmtpdFdpbGxFeGl0RnVsbFNjcmVlbgotewotICAgIGlmIChfZWxlbWVudCkKLSAgICAgICAgX2Vs
ZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoX2Vs
ZW1lbnQuZ2V0KCkpOwotfQotCi0tICh2b2lkKXdlYmtpdERpZEV4aXRGdWxsU2NyZWVuCi17Ci0g
ICAgaWYgKF9lbGVtZW50KQotICAgICAgICBfZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0RGlk
RXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KF9lbGVtZW50LmdldCgpKTsKLX0KLQotQGVuZAotCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYktp
dEZ1bGxTY3JlZW5MaXN0ZW5lci5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk5MGFiNGUyNmU2NjM4ZWZl
N2I5NDgxZjczYTU5MjQyZTM0OWEyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5oCkBAIC0wLDAgKzEs
NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lcl9oCisj
ZGVmaW5lIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lcl9oCisKKyNpbXBvcnQgIldlYlVJRGVsZWdh
dGVQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CisKKyNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEVsZW1lbnQ7Cit9CisKK0Bp
bnRlcmZhY2UgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIDogTlNPYmplY3QgPFdlYktpdEZ1bGxT
Y3JlZW5MaXN0ZW5lcj4geworICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBfZWxlbWVudDsK
K30KKworLSAoaWQpaW5pdFdpdGhFbGVtZW50OihXZWJDb3JlOjpFbGVtZW50KillbGVtZW50Owor
QGVuZAorCisjZW5kaWYKKworI2VuZGlmIC8vIFdlYkZ1bGxTY3JlZW5MaXN0ZW5lcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJLaXRGdWxsU2NyZWVu
TGlzdGVuZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJLaXRGdWxs
U2NyZWVuTGlzdGVuZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBkMjhlYjU2Y2JkOWViMGQ3NjRmNWFkYWNm
MGQwYWFmNjBiN2EwYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5tbQpAQCAtMCwwICsxLDcwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLmgiCisKKyNpbXBv
cnQgPFdlYkNvcmUvRWxlbWVudC5oPgorCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworQGltcGxlbWVudGF0aW9uIFdlYktpdEZ1bGxTY3Jl
ZW5MaXN0ZW5lcgorCistIChpZClpbml0V2l0aEVsZW1lbnQ6KEVsZW1lbnQqKWVsZW1lbnQKK3sK
KyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIF9lbGVtZW50ID0gZWxlbWVudDsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZCl3
ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuCit7CisgICAgaWYgKF9lbGVtZW50KQorICAgICAgICBf
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQo
X2VsZW1lbnQuZ2V0KCkpOworfQorCistICh2b2lkKXdlYmtpdERpZEVudGVyRnVsbFNjcmVlbgor
eworICAgIGlmIChfZWxlbWVudCkKKyAgICAgICAgX2VsZW1lbnQtPmRvY3VtZW50KCktPndlYmtp
dERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoX2VsZW1lbnQuZ2V0KCkpOworfQorCistICh2
b2lkKXdlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbgoreworICAgIGlmIChfZWxlbWVudCkKKyAgICAg
ICAgX2VsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQoX2VsZW1lbnQuZ2V0KCkpOworfQorCistICh2b2lkKXdlYmtpdERpZEV4aXRGdWxsU2NyZWVu
Cit7CisgICAgaWYgKF9lbGVtZW50KQorICAgICAgICBfZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Vi
a2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KF9lbGVtZW50LmdldCgpKTsKK30KKworQGVu
ZAorI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140277</attachid>
            <date>2012-05-04 10:57:19 -0700</date>
            <delta_ts>2012-05-04 12:47:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85230-20120504105718.patch</filename>
            <type>text/plain</type>
            <size>17299</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1ODQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDJjYmMzYmY3MzIwZWUx
MDM0YTlkNWFlZTM0MGM4ODRlYmE0YmRjZC4uM2RmOTRiYThmN2ZiMTA3NmZkMDMxZjE0MDcyZjI1
YzJiNjNjY2U1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA0LTMwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEZ1bGwgc2NyZWVuIHdpbGwg
ZXhpdCBkdXJpbmcgYSBwcm92aXNpb25hbCBsb2FkIG9mIGEgbm9uLWFuY2VzdG9yIGlmcmFtZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MjMwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSBleGl0
IGZ1bGwgc2NyZWVuIG1vZGUgaWYgdGhlIGZyYW1lIGJlaW5nIGxvYWRlZCBjb250YWlucyB0aGUg
ZnVsbCAKKyAgICAgICAgc2NyZWVuIGVsZW1lbnQ6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKToKKwor
ICAgICAgICBNb3ZlIHRoZSBmdWxsIHNjcmVlbiBleGl0aW5nIGxvZ2ljIHVwIGludG8gV2ViRnJh
bWVMb2FkZXJDbGllbnQgaW4gdGhlCisgICAgICAgIFdlYlByb2Nlc3M6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisKKyAgICAgICAgQWRkIGEgV2ViRnVs
bFNjcmVlbk1hbmFnZXIgImNsb3NlIiBtZXRob2QgJiBtZXNzYWdlOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpjbG9zZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg6CisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHRoaXMgbmV3IG1lc3NhZ2UgdG8gdGhlIFdLQnVuZGxlUGFnZSBhbmQgY2xpZW50Ogor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VG
dWxsU2NyZWVuQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdl
RnVsbFNjcmVlbkNsaWVudDo6Y2xvc2VGdWxsU2NyZWVuKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaDoKKwog
MjAxMi0wNS0wMiAgTWFoZXNoIEt1bGthcm5pICA8bWFoZXNoLmt1bGthcm5pQG5va2lhLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiBCdWlsZCBmaXggZm9yIFF0IHBvcnQgb24gbWFjLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDA0N2Y4OWJmMzFkYjkwNzBhNzA2M2Fi
YjA4ZDY2OWM0ZTY4OThiYTcuLjcxMTVhOGFmMmQ1MTM5OGMyZjlhY2QxZWRlYWQ3NWFiNjBhZjI3
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbXBvcnQgIldlYlZpZXdEYXRhLmgiCiAKICNpbXBvcnQgIkRPTUNTU1N0eWxlRGVjbGFyYXRp
b25JbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NRG9jdW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAi
RE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01SYW5nZUludGVybmFsLmgiCiAjaW1wb3J0
ICJXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCIKQEAgLTcxLDYgKzcyLDcgQEAKICNpbXBvcnQg
IldlYkluc3BlY3Rvci5oIgogI2ltcG9ydCAiV2ViSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW1wb3J0
ICJXZWJLaXRFcnJvcnMuaCIKKyNpbXBvcnQgIldlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5oIgog
I2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViS2l0TlNTdHJpbmdFeHRyYXMu
aCIKICNpbXBvcnQgIldlYktpdFN0YXRpc3RpY3NQcml2YXRlLmgiCkBAIC0xODUwLDggKzE4NTIs
MTYgQEAgc3RhdGljIGlubGluZSBJTVAgZ2V0TWV0aG9kKGlkIG8sIFNFTCBzKQogICAgIFtOU0Fw
cCBzZXRXaW5kb3dzTmVlZFVwZGF0ZTpZRVNdOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQotICAgIGlmIChfcHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRyb2xsZXIgJiYgW19wcml2YXRl
LT5uZXdGdWxsc2NyZWVuQ29udHJvbGxlciBpc0Z1bGxTY3JlZW5dKQotICAgICAgICBbX3ByaXZh
dGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyIGNsb3NlXTsKKyAgICBpZiAoRWxlbWVudCogZWxl
bWVudCA9IGNvcmUoW2ZyYW1lIERPTURvY3VtZW50XSktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVu
RWxlbWVudCgpKSB7CisgICAgICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OmNs
b3NlRnVsbFNjcmVlbldpdGhMaXN0ZW5lcjopOworICAgICAgICBpZiAoX3ByaXZhdGUtPlVJRGVs
ZWdhdGUgJiYgW19wcml2YXRlLT5VSURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rv
cl0pIHsKKyAgICAgICAgICAgIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciAqbGlzdGVuZXIgPSBb
W1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVtZW50OmVsZW1lbnRd
OworICAgICAgICAgICAgQ2FsbFVJRGVsZWdhdGUoc2VsZiwgc2VsZWN0b3IsIGxpc3RlbmVyKTsK
KyAgICAgICAgICAgIFtsaXN0ZW5lciByZWxlYXNlXTsKKyAgICAgICAgfSBlbHNlIGlmIChfcHJp
dmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRyb2xsZXIgJiYgW19wcml2YXRlLT5uZXdGdWxsc2NyZWVu
Q29udHJvbGxlciBpc0Z1bGxTY3JlZW5dKSB7CisgICAgICAgICAgICBbX3ByaXZhdGUtPm5ld0Z1
bGxzY3JlZW5Db250cm9sbGVyIGNsb3NlXTsKKyAgICAgICAgfQorICAgIH0KICNlbmRpZgogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGM1MmNlYTkyZTgzYzgyZmQ4MTY1OTcx
NWI3ZTY4ZDZjNGQwZjNiZTguLjk3ZTQ2MTMwZjE0MDYxOTJmMzIxYWI1NDc3NjdjOWEyYWYzNjY5
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNyw1ICsyNyw2IEBAIG1lc3Nh
Z2VzIC0+IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgewogICAgIEV4aXRGdWxsU2NyZWVuKCkK
ICAgICBCZWdhbkVudGVyRnVsbFNjcmVlbihXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBX
ZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCkKICAgICBCZWdhbkV4aXRGdWxsU2NyZWVuKFdlYkNv
cmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQorICAg
IENsb3NlKCkKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCA3NDhhNTczODdmNWQ2MTg4YzBkY2U1NjBkMjhiZmE2OTU3MTUzNWIxLi44MmM0
ZmU1ZDg5ODhlZjc1MmU3M2EwNzA0Nzc4YWQ0NzQ2ZjNiYzE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTc4NiwxMSArMTc4Niw2IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFN0cmluCiAKICAgICBmcmFtZS0+ZGlkU3RhcnRQcm92aXNpb25hbExvYWQodXJs
KTsKICAgICBtX2xvYWRlckNsaWVudC5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHRo
aXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7Ci0KLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
Ci0gICAgaWYgKG1fZnVsbFNjcmVlbk1hbmFnZXIgJiYgbV9mdWxsU2NyZWVuTWFuYWdlci0+aXNG
dWxsU2NyZWVuKCkpCi0gICAgICAgIG1fZnVsbFNjcmVlbk1hbmFnZXItPmNsb3NlKCk7Ci0jZW5k
aWYKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJs
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFn
ZXIuY3BwCmluZGV4IDQ3M2ExM2M5YmUxODU0OTIxYzRhNDQ4ZTgxNDlhNDZkYTdhNjhmNzIuLmM1
ZmM4MWE5ZTdlM2Y0YWNiZTBkN2E2YWRhMDE2ZjZmZTEyMjQ4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmNwcApAQCAtMTQ2LDYgKzE0NiwxMSBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
OjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKQogICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Vi
a2l0Q2FuY2VsRnVsbFNjcmVlbigpOwogfQogCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpj
bG9zZSgpCit7CisgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZUZ1bGxTY3JlZW5DbGllbnQoKS5j
bG9zZUZ1bGxTY3JlZW4obV9wYWdlLmdldCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNlbmRpZiAvLyBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5o
CmluZGV4IDE5NDA3NjJkYjk3YTAxY2UxZWIxOWJkZTg2YTBmZDk2NGQ5M2FhMDkuLjM5NmE0YWRi
MTkyZWYwNjYzY2IxNTA3Yjg0ZmI0MmE3NzdlYmQ0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5o
CkBAIC02NSw2ICs2NSw4IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1l
bnQoKTsKIAorICAgIHZvaWQgY2xvc2UoKTsKKwogcHJvdGVjdGVkOgogICAgIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyKFdlYlBhZ2UqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKaW5kZXggNzUy
ZTgwODU0OTE3OTBiNTgyNmFmMWM3OWEwY2IzZWJjM2U5MDc3My4uMmI0MmVhNjNhNjNmODNhNTVi
ZWFkZjY2Y2U2NWU3MjQxYWIyMDc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCkBAIC0z
MTYsNiArMzE2LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudCkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnUKIHR5cGVkZWYgdm9pZCAoKldL
QnVuZGxlUGFnZUV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCkoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBlbGVtZW50KTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxl
UGFnZUJlZ2FuRW50ZXJGdWxsU2NyZWVuKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tSZWN0IGlu
aXRpYWxGcmFtZSwgV0tSZWN0IGZpbmFsRnJhbWUpOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQ
YWdlQmVnYW5FeGl0RnVsbFNjcmVlbikoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLUmVjdCBpbml0
aWFsRnJhbWUsIFdLUmVjdCBmaW5hbEZyYW1lKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFn
ZUNsb3NlRnVsbFNjcmVlbikoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogCiBzdHJ1Y3QgV0tCdW5k
bGVQYWdlRnVsbFNjcmVlbkNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpAQCAtMzI5
LDYgKzMzMCw3IEBAIHN0cnVjdCBXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50IHsKICAgICAv
LyBWZXJzaW9uIDE6CiAgICAgV0tCdW5kbGVQYWdlQmVnYW5FbnRlckZ1bGxTY3JlZW4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdhbkVudGVyRnVsbFNjcmVlbjsKICAgICBX
S0J1bmRsZVBhZ2VCZWdhbkV4aXRGdWxsU2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJlZ2FuRXhpdEZ1bGxTY3JlZW47CisgICAgV0tCdW5kbGVQYWdlQ2xvc2VGdWxs
U2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZUZ1bGxT
Y3JlZW47CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCBX
S0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcAppbmRleCBjNTljOGFiYWIzZWY2Y2Y0
ZjhhZDZiZGMyNTAyNDcxNGFkYjIzY2ExLi45NmI5YTE4NGZhYTMwMzVmODRhYWM3ZWZlN2U5ZGE4
ZGU0YmM0ZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudC5jcHAKQEAgLTg4LDYgKzg4LDE0IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlRnVsbFNjcmVlbkNsaWVudDo6YmVnYW5FeGl0RnVsbFNjcmVlbihXZWJQYWdlICpwYWdlLCBJ
bnRSCiAgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OkJlZ2FuRXhpdEZ1bGxTY3JlZW4oaW5pdGlhbEZyYW1lLCBmaW5hbEZyYW1lKSk7CiB9CiAK
K3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudDo6Y2xvc2VGdWxsU2NyZWVu
KFdlYlBhZ2UgKnBhZ2UpCit7CisgICAgaWYgKG1fY2xpZW50LmNsb3NlRnVsbFNjcmVlbikKKyAg
ICAgICAgbV9jbGllbnQuY2xvc2VGdWxsU2NyZWVuKHRvQVBJKHBhZ2UpKTsKKyAgICBlbHNlCisg
ICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkNs
b3NlKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxs
U2NyZWVuQ2xpZW50LmgKaW5kZXggOWM3ZGEwMzNiZTZlNzIyNzdkYmJjMGE4OThhMDY4MjZiNjJj
ZGExYi4uODFhYjNjZTE4YjE1YzYyZmY0YzM0NTljMzQ4NzFlMzQxYzgyNjgwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKQEAgLTQ5
LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdl
YlBhZ2UqLCBXZWJDb3JlOjpFbGVtZW50Kik7CiAgICAgdm9pZCBiZWdhbkVudGVyRnVsbFNjcmVl
bihXZWJQYWdlKiwgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbEZyYW1lLCBXZWJDb3JlOjpJbnRS
ZWN0JiBmaW5hbEZyYW1lKTsKICAgICB2b2lkIGJlZ2FuRXhpdEZ1bGxTY3JlZW4oV2ViUGFnZSos
IFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxGcmFtZSwgV2ViQ29yZTo6SW50UmVjdCYgZmluYWxG
cmFtZSk7CisgICAgdm9pZCBjbG9zZUZ1bGxTY3JlZW4oV2ViUGFnZSopOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDI1
MzVhMmRjNmM1YmRmNmZmYjNmOGUzNjMxMDZhOGM2NzA0NWU2NDQuLjgxMWFhYjFjYjcyYWM3ZGVi
MmU1YTE0MWE4YTRiOWFiZmYwZDI0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKKyNpbmNs
dWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25EYXRh
U3RvcmUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVz
c2FnZXMuaCIKQEAgLTM5MCw2ICszOTEsMTEgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgaWYgKCF3ZWJQYWdlKQogICAg
ICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgaWYgKG1fZnJh
bWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpLT53ZWJraXRJc0Z1bGxTY3JlZW4oKSkKKyAgICAg
ICAgd2ViUGFnZS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+Y2xvc2UoKTsKKyNlbmRpZgorCiAgICAg
d2ViUGFnZS0+ZmluZENvbnRyb2xsZXIoKS5oaWRlRmluZFVJKCk7CiAgICAgd2ViUGFnZS0+c2Fu
ZGJveEV4dGVuc2lvblRyYWNrZXIoKS5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZChtX2ZyYW1lKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVh
NzNkNTFiMTk3ODM5ODc3NjNiZjQwYWIwODNiMGJkODYwOTk3NWUuLmZhNGJiOGE2MGU3NDViZjcw
N2RlOTQ0YTJmYjg2ZGY5MjhiNjRjMWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wNC0zMCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBGdWxsIHNjcmVlbiB3aWxsIGV4aXQg
ZHVyaW5nIGEgcHJvdmlzaW9uYWwgbG9hZCBvZiBhIG5vbi1hbmNlc3RvciBpZnJhbWUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTIzMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciB0aGUgbmV3IFVJRGVsZWdhdGUgd2ViVmlldzpjbG9zZUZ1bGxTY3JlZW5XaXRoTGlzdGVuZXI6
IG1ldGhvZDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbToKKyAg
ICAgICAgKC1bVUlEZWxlZ2F0ZSB3ZWJWaWV3OmNsb3NlRnVsbFNjcmVlbldpdGhMaXN0ZW5lcjpd
KToKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIG5ldyBjbG9zZUZ1bGxTY3JlZW4gaW5q
ZWN0ZWQgYnVuZGxlIG1ldGhvZDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjpjbG9zZUZ1bGxTY3JlZW4pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmg6CisKIDIwMTItMDUtMDIgIFRlcnJ5IEFu
ZGVyc29uICA8dGRhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkaXRpb24gb2Yg
YSBjb250cmlidXRvciB0byBjb21taXR0ZXJzLnB5CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURl
bGVnYXRlLm1tCmluZGV4IDg0N2E1ZmI0ZWViYTY3MWI2NGUyYjhjYmI1NzNlMzIwNmNiNDY1N2Qu
Ljg0MGZkYzIwOTJiMDhlMjFhNDcxZDQ0MjUzN2E3ZDYzM2ZlZDQyNWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tCkBAIC0yNzYsNiArMjc2LDEyIEBAIER1bXBSZW5kZXJU
cmVlRHJhZ2dpbmdJbmZvICpkcmFnZ2luZ0luZm8gPSBuaWw7CiAgICAgICAgIFtzZWxmIHBlcmZv
cm1TZWxlY3RvcjpAc2VsZWN0b3IoZXhpdEZ1bGxTY3JlZW5XaXRoTGlzdGVuZXI6KSB3aXRoT2Jq
ZWN0Omxpc3RlbmVyIGFmdGVyRGVsYXk6MF07CiB9CiAKKy0gKHZvaWQpd2ViVmlldzooV2ViVmll
dyAqKXNlbmRlciBjbG9zZUZ1bGxTY3JlZW5XaXRoTGlzdGVuZXI6KE5TT2JqZWN0PFdlYktpdEZ1
bGxTY3JlZW5MaXN0ZW5lcj4qKWxpc3RlbmVyCit7CisgICAgW2xpc3RlbmVyIHdlYmtpdFdpbGxF
eGl0RnVsbFNjcmVlbl07CisgICAgW2xpc3RlbmVyIHdlYmtpdERpZEV4aXRGdWxsU2NyZWVuXTsK
K30KKwogLSAoQk9PTCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkaWRQcmVzc01pc3NpbmdQ
bHVnaW5CdXR0b246KERPTUVsZW1lbnQgKillbGVtZW50CiB7CiAgICAgcHJpbnRmKCJNSVNTSU5H
IFBMVUdJTiBCVVRUT04gUFJFU1NFRFxuIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXgg
YjE2YmU3YTNlYjY4OGUyZmU0MDVlOWQyNjhjOWI1MGVhMDQ0NjZhYS4uNTI3ZWMzNzk5OWEwMzA0
MGM0NWJhMTQ5ZWY3ODlkZDliZjEzNjU1MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAt
MzEzLDYgKzMxMyw3IEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKFdL
QnVuZGxlUGFnZVJlZiBwYWdlKQogICAgICAgICBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQsCiAg
ICAgICAgIGJlZ2FuRW50ZXJGdWxsU2NyZWVuLAogICAgICAgICBiZWdhbkV4aXRGdWxsU2NyZWVu
LAorICAgICAgICBjbG9zZUZ1bGxTY3JlZW4sCiAgICAgfTsKICAgICBXS0J1bmRsZVBhZ2VTZXRG
dWxsU2NyZWVuQ2xpZW50KG1fcGFnZSwgJmZ1bGxTY3JlZW5DbGllbnQpOwogI2VuZGlmCkBAIC0x
MjQzLDYgKzEyNDQsMTcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmJlZ2FuRXhpdEZ1bGxT
Y3JlZW4oV0tCdW5kbGVQYWdlUmVmLCBXS1JlY3QsIFdLUmVjdCkKICAgICBpZiAoSW5qZWN0ZWRC
dW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPnNob3VsZER1bXBGdWxsU2Ny
ZWVuQ2FsbGJhY2tzKCkpCiAgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdC
dWlsZGVyKCktPmFwcGVuZCgiYmVnYW5FeGl0RnVsbFNjcmVlbigpXG4iKTsKIH0KKwordm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmNsb3NlRnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZVJl
ZikKK3sKKyAgICBpZiAoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9s
bGVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIEluamVjdGVk
QnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdCdWlsZGVyKCktPmFwcGVuZCgiY2xvc2VGdWxsU2NyZWVu
KClcbiIpOworCisgICAgaWYgKCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENv
bnRyb2xsZXIoKS0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkpIHsKKyAgICAgICAgV0tC
dW5kbGVQYWdlV2lsbEV4aXRGdWxsU2NyZWVuKHBhZ2VSZWYpOworICAgICAgICBXS0J1bmRsZVBh
Z2VEaWRFeGl0RnVsbFNjcmVlbihwYWdlUmVmKTsKKyAgICB9Cit9CiAjZW5kaWYKIAogc3RhdGlj
IGJvb2wgY29tcGFyZUJ5VGFyZ2V0TmFtZShXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYg
aXRlbTEsIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtMikKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5oCmluZGV4IGI1MzkyZmRlMDZjYWQ1OTU3NjNiMjZhNDdkZjRjY2YzMjViYWRhMmYuLmUw
NTdjYTkwNjE4ZTM3MDA5MzI2NWQyNGJiYTE3MGM5Y2IzNTE4ZjggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuaApAQCAtMTI2LDYgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVOb2RlSGFuZGxlUmVm
IGVsZW1lbnQpOwogICAgIHN0YXRpYyB2b2lkIGJlZ2FuRW50ZXJGdWxsU2NyZWVuKFdLQnVuZGxl
UGFnZVJlZiwgV0tSZWN0IGluaXRpYWxGcmFtZSwgV0tSZWN0IGZpbmFsRnJhbWUpOwogICAgIHN0
YXRpYyB2b2lkIGJlZ2FuRXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCBXS1JlY3QgaW5p
dGlhbEZyYW1lLCBXS1JlY3QgZmluYWxGcmFtZSk7CisgICAgc3RhdGljIHZvaWQgY2xvc2VGdWxs
U2NyZWVuKFdLQnVuZGxlUGFnZVJlZik7CiAjZW5kaWYKIAogICAgIC8vIEVkaXRvciBjbGllbnQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyN2IyNjI2ZjA2YzIzZTQzNmFkNTVlYjc1ZjcxNWJjYzhmMDYxNTEyLi43NTU1NGRh
ZjEzZDBhMzE3ZTNjOTE0NjQwZDQ2MjM2NmZlNTRkZjMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDUtMDMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAg
RnVsbCBzY3JlZW4gd2lsbCBleGl0IGR1cmluZyBhIHByb3Zpc2lvbmFsIGxvYWQgb2YgYSBub24t
YW5jZXN0b3IgaWZyYW1lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODUyMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGZ1bGxzY3JlZW4vbm9uLWFuY2VzdG9yLWlmcmFtZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZ1bGxzY3JlZW4vbm9uLWFuY2VzdG9yLWlmcmFtZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmdWxsc2NyZWVuL3Jlc291cmNlcy9lbXB0eS5odG1sOiBBZGRlZC4KKwog
MjAxMi0wNS0wMiAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSRUdSRVNTSU9OKDExMDA3Mik6IENsaXBwaW5nIGlzIG5vdCBhcHBsaWVkIG9uIGxh
eWVycyB0aGF0IGFyZSBhbmltYXRlZCB1c2luZyBwbGF0Zm9ybSBjb2RlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mdWxsc2NyZWVuL25vbi1hbmNlc3Rvci1pZnJhbWUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9ub24tYW5jZXN0b3ItaWZyYW1lLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43NTc4ZTk0MzdiMGNjOTZiYTZmYjIxYmVjYzk4NDY3ZTViYjc0ZWVlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9ub24tYW5jZXN0b3ItaWZyYW1l
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1RoaXMgdGVzdHMgdGhhdCBmdWxsIHNjcmVl
biBtb2RlIHdpbGwgbm90IGV4aXQgd2hlbiBhIG5vbi1hbmNlc3RvciBpZnJhbWUgaXMgbG9hZGVk
IGluIHRoZSBwYWdlLiBDbGljayBlbnRlciBmdWxsIHNjcmVlbiB0byBzdGFydCB0ZXN0LgorCitF
VkVOVCh3ZWJraXRmdWxsc2NyZWVuY2hhbmdlKQorRVZFTlQobG9hZCkKK0VYUEVDVEVEIChkb2N1
bWVudC53ZWJraXRJc0Z1bGxTY3JlZW4gPT0gJ3RydWUnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9ub24tYW5jZXN0b3ItaWZyYW1lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL25vbi1hbmNlc3Rvci1pZnJhbWUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zN2IzMTFmMjZmOTY0YjZiODAyZDUzYjZiNGJlZmI1ODQ5ZGVmYTZmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9ub24tYW5jZXN0b3ItaWZyYW1lLmh0bWwK
QEAgLTAsMCArMSwyOCBAQAorPHNjcmlwdCBzcmM9ImZ1bGwtc2NyZWVuLXRlc3QuanMiPjwvc2Ny
aXB0PgorPGRpdj5UaGlzIHRlc3RzIHRoYXQgZnVsbCBzY3JlZW4gbW9kZSB3aWxsIG5vdCBleGl0
IHdoZW4gYSBub24tYW5jZXN0b3IgaWZyYW1lIGlzIGxvYWRlZCBpbiB0aGUgcGFnZS4gQ2xpY2sg
PGJ1dHRvbiBvbmNsaWNrPSJzdGFydFRlc3QoKTsiPmVudGVyIGZ1bGwgc2NyZWVuPC9idXR0b24+
IHRvIHN0YXJ0IHRlc3QuPC9kaXY+Cis8ZGl2IGlkPSJ0YXJnZXQiPgorICAgIDxpZnJhbWUgaWQ9
ImlmcmFtZSI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIHRhcmdldCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICB2YXIgaWZyYW1lID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpOworCisgICAgd2FpdEZvckV2ZW50T25jZShkb2N1
bWVudCwgJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgd2Fp
dEZvckV2ZW50KGRvY3VtZW50LCAnd2Via2l0ZnVsbHNjcmVlbmNoYW5nZScsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICBsb2dSZXN1bHQoZmFsc2UsICdFeGl0ZWQgZnVsbCBzY3JlZW4nKTsgCisg
ICAgICAgIH0pOworICAgICAgICBpZnJhbWUuc3JjID0gJ3Jlc291cmNlcy9lbXB0eS5odG1sJzsK
KyAgICB9KTsKKworICAgIHdhaXRGb3JFdmVudChpZnJhbWUsICdsb2FkJywgZnVuY3Rpb24oKSB7
CisgICAgICAgIHRlc3RFeHBlY3RlZCgiZG9jdW1lbnQud2Via2l0SXNGdWxsU2NyZWVuIiwgdHJ1
ZSk7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKworICAgIHZhciBzdGFydFRlc3QgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgdGFyZ2V0LndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKCk7Cisg
ICAgfTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHJ1
bldpdGhLZXlEb3duKHN0YXJ0VGVzdCk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3Jlc291cmNlcy9lbXB0
eS5odG1sIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9yZXNvdXJjZXMvZW1wdHkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jOGI3NjYxZjQyMjEyOTg1ODg4ZDFkZmRmMWQ4NzI5Zjg5YzRmYzM1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9yZXNvdXJjZXMvZW1wdHkuaHRtbApA
QCAtMCwwICsxIEBACis8Ym9keT48L2JvZHk+Cg==
</data>
<flag name="review"
          id="146085"
          type_id="1"
          status="+"
          setter="mjs"
    />
    <flag name="commit-queue"
          id="146087"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>