<?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>97786</bug_id>
          
          <creation_ts>2012-09-27 07:45:39 -0700</creation_ts>
          <short_desc>Web Inspector: provide memory instrumentation for ListHashSet</short_desc>
          <delta_ts>2012-10-24 02:16:27 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>alph</cc>
    
    <cc>apavlov</cc>
    
    <cc>benjamin</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>mjs</cc>
    
    <cc>peter+ews</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>729519</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-27 07:45:39 -0700</bug_when>
    <thetext>Existing implementation of ListHashSet memory instrumentation is only approximation. We should implement one that would take into account inline capacity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729544</commentid>
    <comment_count>1</comment_count>
      <attachid>166004</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-27 08:11:14 -0700</bug_when>
    <thetext>Created attachment 166004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729552</commentid>
    <comment_count>2</comment_count>
      <attachid>166008</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-27 08:19:52 -0700</bug_when>
    <thetext>Created attachment 166008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729553</commentid>
    <comment_count>3</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-27 08:20:16 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=166008) [details]
&gt; Patch

addInstrumentedCollection was removed as it is not used any more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729576</commentid>
    <comment_count>4</comment_count>
      <attachid>166008</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-27 09:04:19 -0700</bug_when>
    <thetext>Comment on attachment 166008
Patch

Attachment 166008 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14034843</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729578</commentid>
    <comment_count>5</comment_count>
      <attachid>166008</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-27 09:06:11 -0700</bug_when>
    <thetext>Comment on attachment 166008
Patch

Attachment 166008 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13967084</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729657</commentid>
    <comment_count>6</comment_count>
      <attachid>166008</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-09-27 10:10:41 -0700</bug_when>
    <thetext>Comment on attachment 166008
Patch

Attachment 166008 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14037846</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730348</commentid>
    <comment_count>7</comment_count>
      <attachid>166170</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-28 01:21:29 -0700</bug_when>
    <thetext>Created attachment 166170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730398</commentid>
    <comment_count>8</comment_count>
      <attachid>166183</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-28 02:26:15 -0700</bug_when>
    <thetext>Created attachment 166183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730425</commentid>
    <comment_count>9</comment_count>
      <attachid>166183</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-28 03:06:04 -0700</bug_when>
    <thetext>Comment on attachment 166183
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730505</commentid>
    <comment_count>10</comment_count>
      <attachid>166211</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-28 04:55:13 -0700</bug_when>
    <thetext>Created attachment 166211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733367</commentid>
    <comment_count>11</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-02 22:49:40 -0700</bug_when>
    <thetext>Maciej, can you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733571</commentid>
    <comment_count>12</comment_count>
      <attachid>166856</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-03 04:57:39 -0700</bug_when>
    <thetext>Created attachment 166856
Patch after one more rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748264</commentid>
    <comment_count>13</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-22 21:53:32 -0700</bug_when>
    <thetext>We discussed this with Maciej on #webkit channel and he was fine with the approach but wouldn&apos;t have time for detailed review soon. Could someone else do the detailed review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749456</commentid>
    <comment_count>14</comment_count>
      <attachid>166856</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-24 01:12:45 -0700</bug_when>
    <thetext>Comment on attachment 166856
Patch after one more rebase

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

&gt; Source/WTF/ChangeLog:22
&gt; +        (WTF::::sizeInBytes): added a mthod that returns size of the set in bytes including

method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749463</commentid>
    <comment_count>15</comment_count>
      <attachid>170342</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-24 01:26:04 -0700</bug_when>
    <thetext>Created attachment 170342
Patch for landing (after rebase)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749464</commentid>
    <comment_count>16</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-24 01:26:23 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 166856 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166856&amp;action=review
&gt; 
&gt; &gt; Source/WTF/ChangeLog:22
&gt; &gt; +        (WTF::::sizeInBytes): added a mthod that returns size of the set in bytes including
&gt; 
&gt; method

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749481</commentid>
    <comment_count>17</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-24 02:16:27 -0700</bug_when>
    <thetext>Committed r132331: &lt;http://trac.webkit.org/changeset/132331&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166004</attachid>
            <date>2012-09-27 08:11:14 -0700</date>
            <delta_ts>2012-09-27 08:19:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97786-20120927191031.patch</filename>
            <type>text/plain</type>
            <size>19655</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRjYzAxNGJmYTFhMDI1Y2EwNDU1ZGU5
OTI1YTg1NDE2MGZjMjM1MjAuLjFjY2E1MjE1MGMyYjY1M2ZmNTkzMmI2ZGNmMzBkZjQ5N2RiNWM0
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTItMDktMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBtZW1v
cnkgaW5zdHJ1bWVudGF0aW9uIGZvciBMaXN0SGFzaFNldAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZv
ciBMaXN0SGFzaFNldC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogV1RGLmd5cGk6CisgICAgICAgICogV1RGLnBybzoKKyAgICAgICAgKiBXVEYudmNwcm9qL1dU
Ri52Y3Byb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogd3RmL0hhc2hTZXQuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgICogd3RmL0xpc3RI
YXNoU2V0Lmg6CisgICAgICAgIChMaXN0SGFzaFNldCk6IGRlY2xhcmVkIHJlcG9ydE1lbW9yeVVz
YWdlIGZ1bmN0aW9uIGFzIGEgZnJpZW5kIGFzIGl0IG5lZWRzIHRvIGFjY2VzcyBtX2ltcGwgYW5k
CisgICAgICAgIG1fYWxsb2NhdG9yIHByaXZhdGUgZmllbGRzIG5vdCBhdmFpbGFibGUgZnJvbSBv
dXRzaWRlIG9mIHRoaXMgY2xhc3MuCisgICAgICAgIChMaXN0SGFzaFNldE5vZGVBbGxvY2F0b3Ip
OiBkZWNsYXJlZCByZXBvcnRNZW1vcnlVc2FnZSBmdW5jdGlvbiBhcyBhIGZyaWVuZCBhcyBuZWVk
cyBhY2Nlc3MKKyAgICAgICAgdG8gaW5Qb29sIG1ldGhvZC4KKyAgICAgICAgKiB3dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmg6IHJlbW92ZWQgb25zb2xldGUgbWV0aG9kLiBBbGwgY2xpZW50cyB3
ZXJlIHVwZGF0ZWQgdG8KKyAgICAgICAgdXNlIGdlbmVyaWMgYWRkTWVtYmVyIGluc3RlYWQuCisg
ICAgICAgIChNZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAqIHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoU2V0Lmg6CisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bkxpc3RIYXNoU2V0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvbkhhc2hTZXQuaC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OnJlcG9ydE1l
bW9yeVVzYWdlKTogZnVuY3Rpb24gcmVwb3J0aW5nIG1lbW9yeSBmb290cHJpbnQgZm9yIExpc3RI
YXNoU2V0CisKIDIwMTItMDktMjYgIENvc21pbiBUcnV0YSAgPGN0cnV0YUByaW0uY29tPgogCiAg
ICAgICAgIFtCbGFja0JlcnJ5XSBBbGxvdyBkZW5vcm1hbCBmbG9hdHMgaW4gQVJNIFZGUApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGVjZDQxODQ5ODA1ODcxOTk0ZjIyMzZlYjBiYTFhZTk3Y2QzZjVkMDkuLjVhNjcy
ZmEyMTgwNTNmMTdmNTljYzk2ZDZlMDUyNjE1MDc2YTJhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxMi0wOS0yNyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIG1lbW9yeSBpbnN0cnVtZW50YXRp
b24gZm9yIExpc3RIYXNoU2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05Nzc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFN3aXRjaGVkIGV4aXN0aW5nIHVzYWdlcyBvZiBhZGRMaXN0SGFzaFNldCB0byB0
aGUgZ2VuZXJpYyBpbnN0cnVtZW50YXRpb24gbWVjaGFuaXNtCisgICAgICAgIGFzIGl0IHNob3Vs
ZCB3b3JrIGp1c3QganVzdCBmaW5lIG5vdyB0aGF0IHRoZXJlIGlzIGEgbWVtb3J5IGluc3RydW1l
bnRhdGlvbiBvZgorICAgICAgICBMaXN0SGFzaFNldC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVu
dEV2ZW50UXVldWUuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246
OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKwogMjAxMi0wOS0yNyAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXggZm9yICFVU0UoSUNVX1VOSUNPREUp
IGFmdGVyIHIxMjk2NjIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGQ2MzhhZTAzNjY0
YTY3ZDIxZmMxNzEwZmNlOTBmYjcyZTA5ZjQ5ZjIuLjFkNTFiOTdjMTQyMDkzZmE0MzQ5Y2Y1YmEz
OGQ5MTMxMTdjZWFkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTItMDktMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZv
ciBMaXN0SGFzaFNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRlZCBhIHRlc3QgZm9yIExpc3RIYXNoU2V0IG1lbW9yeSBpbnN0cnVtZW50YXRpb24u
CisKKyAgICAgICAgKiB0ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDktMjYgIFlv
c2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbRm9ybXNdIEFk
ZGluZyBsb2NhbGl6YXRpb24gdGV4dHMgZm9yIG11bHRpcGxlIGZpZWxkcyBkYXRlL3RpbWUgaW5w
dXQgVUkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwOGZhY2RjODgzMTdlN2FhZjRiMzE1ODIz
MjY1YjVkZDBhNjA2MmZhLi4zZThkZTA5MGZlNjI0MjNlM2YyMTE5MDExYTNiZmVmODJiMzY5OTVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNl
L1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04Myw2ICs4Myw3IEBAIHd0Zl9zb3VyY2VzICs9
IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZlclZp
ZXcuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5o
IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoVGFibGUuaCBc
CisgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCBc
CiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAogICAg
IFNvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZXRh
QWxsb2NhdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5neXBpIGIvU291cmNl
L1dURi9XVEYuZ3lwaQppbmRleCAxMGUzMmRmMjZkMTU3Y2I4MTAxMGEyZmUzNjkzY2I2OWY5NmNi
MzY3Li4wMDQwYWQ5YTViNWNiMjA0MGY1NTM1MDhiOWU4MGZiZjRlYmNkYWJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1dURi5neXBpCisrKyBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKQEAgLTUzLDYg
KzUzLDcgQEAKICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZm
ZXJWaWV3LmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0
LmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoVGFibGUuaCcs
CisgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmgnLAog
ICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCcsCiAgICAgICAg
ICAgICAnd3RmL01lc3NhZ2VRdWV1ZS5oJywKICAgICAgICAgICAgICd3dGYvTm9uQ29weWluZ1Nv
cnQuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5w
cm8KaW5kZXggMDAwNGRlODFhZjg2MTNmN2RlM2Q2N2VlZDYzZTgxNzJjMDM0YTlhOS4uYjMwNjJl
MzZmZjJlYmMzZmRlMTZjNDBkZDJhYjllZjMxNzNhNDIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtOTAsNiArOTAsNyBAQCBIRUFE
RVJTICs9IFwKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZlclZpZXcuaCBcCiAg
ICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oIFwKICAgICBNZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoVGFibGUuaCBcCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQu
aCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAogICAgIE1lc3NhZ2VRdWV1
ZS5oIFwKICAgICBNZXRhQWxsb2NhdG9yLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYu
dmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRl
eCA2NTEzNDRhYWE5YmJkZjEwOTExYzYyYTE1YTk2NTZhNzk4NDE2OGUzLi4wNzhhNTQ2NGJkOGEx
ZWNkZjdiN2EyNjYxYjIwZDhjZDMxZjE1NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52
Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpA
QCAtOTE3LDYgKzkxNywxMCBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJCSAgICAgICAg
UmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCIK
KwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cd3Rm
XE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIgogCQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5ZDc2N2YzZTE3MWEwYWQ3NzFj
ODRkMTBlM2NlYmZjN2M0OTkzOTM5Li4yN2JhYTY5ZDlhYjc2YTczYmY4ZjdmYmJjMTI2ODA2MTU5
MzIzMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3
Niw2ICsyNzYsNyBAQAogCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4QjE1MUE4
MjY0MDA0MTIzRkYgLyogY29uZmlnLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMz
MCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87IH07
CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1QkMz
MCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKKwkJRjM1MjVFMkExNjE0OUZGNDAwMjc4QkMxIC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzUyNUUyOTE2MTQ5RkY0MDAyNzhCQzEgLyogTWVtb3J5
SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUg
c2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KQEAgLTU1
Nyw2ICs1NTgsNyBAQAogCQlBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRp
YVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYzNTI1RTI5MTYxNDlGRjQwMDI3OEJDMSAvKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC03MDEsNiArNzAz
LDcgQEAKIAkJCQk0RkQ4NTU0NjE2MTMzRTBFMDBDNUI3MDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0
aW9uQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJNEYxQjJEQjUxNjBCNDRBQTAwNTg2NTU5IC8q
IE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCAqLywKIAkJCQk0RjBCQUJCQTE2MTFENUY1
MDAwMjNGNjYgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFRhYmxlLmggKi8sCisJCQkJRjM1
MjVFMjkxNjE0OUZGNDAwMjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0
LmggKi8sCiAJCQkJNEZDQjcxMDkxNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9yeUluc3RydW1lbnRh
dGlvblZlY3Rvci5oICovLAogCQkJCUE4QTQ3MkNDMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXNzYWdl
UXVldWUuaCAqLywKIAkJCQlBOEE0NzJDRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRv
ci5jcHAgKi8sCkBAIC0xMTU3LDYgKzExNjAsNyBAQAogCQkJCTRGMUIyREI2MTYwQjQ0QUEwMDU4
NjU1OSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0RjBCQUJCQjE2MTFENUY1MDAwMjNGNjYgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFRh
YmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RkQ4NTU0NzE2MTMzRTBFMDBDNUI3MDQgLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQlG
MzUyNUUyQTE2MTQ5RkY0MDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hT
ZXQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFzaFNldC5o
IGIvU291cmNlL1dURi93dGYvSGFzaFNldC5oCmluZGV4IGU2ZWU1OTI5YWZhYTM1NDNjZWVlMzlk
Njk3NTQwZjc5NGZlMjE5N2IuLjVhYzdmNWYyYjA1YjA2MTAzMDUyNjJlOWNjYWFlNGFlZDdmMzhk
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hTZXQuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9IYXNoU2V0LmgKQEAgLTI3LDcgKzI3LDYgQEAKIG5hbWVzcGFjZSBXVEYgewogCiAgICAg
c3RydWN0IElkZW50aXR5RXh0cmFjdG9yOwotICAgIGNsYXNzIE1lbW9yeU9iamVjdEluZm87CiAg
ICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMs
IHR5cGVuYW1lIFRyYWl0cz4gY2xhc3MgSGFzaFNldDsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBW
YWx1ZSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL0xpc3RIYXNo
U2V0LmgKaW5kZXggZmE2NTRjNWQ5ZDczYzJjZTI1N2VlNjMxYjIzNjAxNzMzZDkwNDMwNy4uYmVk
NmQ5MGFkMDM5NDlkOTA5M2ZhNWJkNGUwOTUyZTY5NzEzMWM1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTGlzdEhhc2hTZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNldC5o
CkBAIC0xNTEsNiArMTUxLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIGNvbnN0X3JldmVy
c2VfaXRlcmF0b3IgbWFrZUNvbnN0UmV2ZXJzZUl0ZXJhdG9yKE5vZGUqKSBjb25zdDsKIAogICAg
ICAgICBmcmllbmQgdm9pZCBkZWxldGVBbGxWYWx1ZXM8Pihjb25zdCBMaXN0SGFzaFNldCYpOwor
ICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWLCBzaXplX3QgSSwgdHlwZW5hbWUgSD4gZnJpZW5k
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgTGlzdEhhc2hTZXQ8ViwgSSwgSD4qIGNvbnN0
JiwgTWVtb3J5T2JqZWN0SW5mbyopOwogCiAgICAgICAgIEltcGxUeXBlIG1faW1wbDsKICAgICAg
ICAgTm9kZSogbV9oZWFkOwpAQCAtMjE4LDYgKzIxOSw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
ICAgICAgICAgcmV0dXJuIG5vZGUgPj0gcG9vbCgpICYmIG5vZGUgPCBwYXN0UG9vbCgpOwogICAg
ICAgICB9CiAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgViwgc2l6ZV90IEksIHR5cGVuYW1l
IEg+IGZyaWVuZCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IExpc3RIYXNoU2V0PFYsIEks
IEg+KiBjb25zdCYsIE1lbW9yeU9iamVjdEluZm8qKTsKKwogICAgICAgICBOb2RlKiBtX2ZyZWVM
aXN0OwogICAgICAgICBib29sIG1faXNEb25lV2l0aEluaXRpYWxGcmVlTGlzdDsKICAgICAgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBtX3Bvb2xTaXplID0gaW5saW5lQ2FwYWNpdHk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDU4YWI1MDA3MDcxMDgyZTliNzUyNzcy
YmZkY2IwZDFkNmMyNjQxNDEuLmZkZWI4ZTRiNGRiMTMyMGVjODY1MWVkNWZmNTIwOWVhNjg1NDhi
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC0xNTAsNyArMTUw
LDYgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xsZWN0aW9uVHlwZT4gdm9p
ZCBhZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKGNvbnN0IENvbGxlY3Rpb25UeXBlJiwgTWVtb3J5
T2JqZWN0VHlwZSwgYm9vbCBjb250ZW50T25seSA9IGZhbHNlKTsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZE1hcEVudHJpZXMoY29uc3QgTWFwVHlw
ZSYsIE1lbW9yeU9iamVjdFR5cGUpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1hcFR5cGU+IHZv
aWQgYWRkSW5zdHJ1bWVudGVkTWFwVmFsdWVzKGNvbnN0IE1hcFR5cGUmLCBNZW1vcnlPYmplY3RU
eXBlKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMaXN0SGFzaFNldFR5cGU+IHZvaWQgYWRkTGlz
dEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSwgYm9vbCBj
b250ZW50T25seSA9IGZhbHNlKTsKICAgICB2b2lkIGFkZFJhd0J1ZmZlcihjb25zdCB2b2lkKiBj
b25zdCYgYnVmZmVyLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwgc2l6ZV90IHNp
emUpCiAgICAgewogICAgICAgICBpZiAoIWJ1ZmZlciB8fCB2aXNpdGVkKGJ1ZmZlcikpCkBAIC0y
MDYsNyArMjA1LDYgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hTZXRUeXBl
PiB2b2lkIGFkZEhhc2hDb3VudGVkU2V0KGNvbnN0IEhhc2hTZXRUeXBlJiBzZXQpIHsgbV9tZW1v
cnlJbnN0cnVtZW50YXRpb24tPmFkZEhhc2hNYXAoc2V0LCBtX29iamVjdFR5cGUsIHRydWUpOyB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBF
bnRyaWVzKGNvbnN0IE1hcFR5cGUmIG1hcCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRk
SW5zdHJ1bWVudGVkTWFwRW50cmllcyhtYXAsIG1fb2JqZWN0VHlwZSk7IH0KICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZE1hcFZhbHVlcyhjb25zdCBN
YXBUeXBlJiBtYXApIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZE1h
cFZhbHVlcyhtYXAsIG1fb2JqZWN0VHlwZSk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMaXN0
SGFzaFNldFR5cGU+IHZvaWQgYWRkTGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiBz
ZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZExpc3RIYXNoU2V0KHNldCwgbV9vYmpl
Y3RUeXBlLCB0cnVlKTsgfQogICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0
JiBidWZmZXIsIHNpemVfdCBzaXplKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRSYXdC
dWZmZXIoYnVmZmVyLCBtX29iamVjdFR5cGUsIHNpemUpOyB9CiAKICAgICB2b2lkIGFkZFdlYWtQ
b2ludGVyKHZvaWQqKSB7IH0KQEAgLTI5NCwxNSArMjkyLDYgQEAgdm9pZCBNZW1vcnlJbnN0cnVt
ZW50YXRpb246OmFkZEluc3RydW1lbnRlZE1hcFZhbHVlcyhjb25zdCBNYXBUeXBlJiBtYXAsIE1l
bW9yeU8KICAgICAgICAgYWRkT2JqZWN0KGktPnNlY29uZCwgb3duZXJPYmplY3RUeXBlKTsKIH0K
IAotdGVtcGxhdGU8dHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlPgotdm9pZCBNZW1vcnlJbnN0cnVt
ZW50YXRpb246OmFkZExpc3RIYXNoU2V0KGNvbnN0IExpc3RIYXNoU2V0VHlwZSYgaGFzaFNldCwg
TWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkpCi17Ci0g
ICAgaWYgKHZpc2l0ZWQoJmhhc2hTZXQpKQotICAgICAgICByZXR1cm47Ci0gICAgc2l6ZV90IHNp
emUgPSAoY29udGVudE9ubHkgPyAwIDogc2l6ZW9mKExpc3RIYXNoU2V0VHlwZSkpICsgaGFzaFNl
dC5jYXBhY2l0eSgpICogc2l6ZW9mKHZvaWQqKSArIGhhc2hTZXQuc2l6ZSgpICogKHNpemVvZih0
eXBlbmFtZSBMaXN0SGFzaFNldFR5cGU6OlZhbHVlVHlwZSkgKyAyICogc2l6ZW9mKHZvaWQqKSk7
Ci0gICAgY291bnRPYmplY3RTaXplKG93bmVyT2JqZWN0VHlwZSwgc2l6ZSk7Ci19Ci0KIHRlbXBs
YXRlPHR5cGVuYW1lIENvbnRhaW5lcj4KIHNpemVfdCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmNh
bGN1bGF0ZUNvbnRhaW5lclNpemUoY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIsIGJvb2wgY29u
dGVudE9ubHkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNo
U2V0LmgKaW5kZXggOTczMTIzNmY2YzE0YmRhZDNkZmVkYzc3MjYzMGZhOWMxNGQzYzBiNC4uMGE3
YjExMzlkMDY3MzUwZTFjZTJjZGUxZWUwNDNjMjlhYzJlOWQ5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaApAQCAtMzIsNyArMzIsNiBAQAogI2Rl
ZmluZSBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0X2gKIAogI2luY2x1ZGUgPHd0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb25IYXNoVGFibGUuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oIGIvU291cmNlL1dURi93dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjYwMTRlZWY3YTE4YjNl
ZTBjODZjNTk0MWY5MGRlMzI4YmMwOTlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldF9oCisjZGVmaW5lIE1lbW9yeUlu
c3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0X2gKKworI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25IYXNoVGFibGUuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFZhbHVlQXJnLCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIEhhc2hBcmc+Cit2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IExpc3RIYXNoU2V0PFZhbHVlQXJnLCBpbmxpbmVD
YXBhY2l0eSwgSGFzaEFyZz4qIGNvbnN0JiBzZXQsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pCit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
c2V0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihzZXQtPm1faW1wbCk7CisgICAgaW5mby5hZGRNZW1i
ZXIoc2V0LT5tX2FsbG9jYXRvcik7CisKKyAgICBmb3IgKHR5cGVuYW1lIExpc3RIYXNoU2V0PFZh
bHVlQXJnLCBpbmxpbmVDYXBhY2l0eSwgSGFzaEFyZz46Ok5vZGUqIG5vZGUgPSBzZXQtPm1faGVh
ZDsgbm9kZTsgbm9kZSA9IG5vZGUtPm1fbmV4dCkgeworICAgICAgICBpZiAoIXNldC0+bV9hbGxv
Y2F0b3ItPmluUG9vbChub2RlKSkKKyAgICAgICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKG5vZGUs
IHNpemVvZih0eXBlbmFtZSBMaXN0SGFzaFNldDxWYWx1ZUFyZywgaW5saW5lQ2FwYWNpdHksIEhh
c2hBcmc+OjpOb2RlKSk7CisgICAgfQorCisgICAgaW5mby5hZGRDb2xsZWN0aW9uRWxlbWVudHMo
c2V0LT5iZWdpbigpLCBzZXQtPmVuZCgpKTsKK30KKworfQorCisjZW5kaWYgLy8gIWRlZmluZWQo
TWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50RXZlbnRRdWV1ZS5jcHAKaW5kZXggZjM2MDFjZmU2ODIyODEzZjI4Mzc5NWZhM2NjZDRm
OGQ5MWQ4OWYwZC4uZmQ5MDY0MTgwZjRlNWI2NDQ0MTA0MDIwODNhOGRmMWY2YWNkYjQ3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKQEAgLTM2LDYgKzM2LDcg
QEAKICNpbmNsdWRlICJTdXNwZW5kYWJsZVRpbWVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9y
eUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25I
YXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcAppbmRleCBjNzM3NzkyYmJjMjFi
MWNhZDdmM2M4MDM1YzgyNTdiMDc1YWM3OTJkLi5mYzRhYTMyZDdlNjZkNjkwMWJhMGQ1Yzg2YjZj
NThhNDRjNzE2ODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHls
ZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5
bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiU3R5bGVT
aGVldExpc3QuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCIKICNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1l
bnRhdGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OTksNyArNTAwLDcg
QEAgdm9pZCBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmoKICAgICBpbmZvLmFkZE1lbWJlcihtX3BhZ2VHcm91
cFVzZXJTaGVldHMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fdXNlclNoZWV0cyk7CiAgICAgaW5m
by5hZGRNZW1iZXIobV9hdXRob3JTdHlsZVNoZWV0cyk7Ci0gICAgaW5mby5hZGRMaXN0SGFzaFNl
dChtX3N0eWxlU2hlZXRDYW5kaWRhdGVOb2Rlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdHls
ZVNoZWV0Q2FuZGlkYXRlTm9kZXMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcHJlZmVycmVkU3R5
bGVzaGVldFNldE5hbWUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc2VsZWN0ZWRTdHlsZXNoZWV0
U2V0TmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCBiYjY4NzQwNTFiY2I5NDgxZGU0ZDBmYjRhYWU0NmM2
MjEwMjIxM2YyLi5kMzMyZTNjNTY2ODM3MTdjNDAxYjM4NzMwMDc0OTAyYWQ5MThhNmYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05MDIsOCArOTAzLDcg
QEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKICAgICAgICAgaW5mby5hZGRNZW1iZXIoaS0+c2Vj
b25kKTsKICAgICB9CiAgICAgaW5mby5hZGRNZW1iZXIobV92YWxpZGF0ZWRVUkxzKTsKLSAgICBp
ZiAobV9wcmVsb2FkcykKLSAgICAgICAgaW5mby5hZGRMaXN0SGFzaFNldCgqbV9wcmVsb2Fkcyk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9wcmVsb2Fkcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9w
ZW5kaW5nUHJlbG9hZHMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAppbmRleCA0ZThiNDk4NTk1
NzUwZGFiMWNiM2RhNDhlNzRhMTcxMWY0YzBiNmNlLi42MGFlMmJmZTM4MmJjZmQ5OTM4OWU1ZGVl
ZjMwYjBjNTk3NjI5NzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKQEAgLTM4LDggKzM4LDEwIEBA
CiAKICNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25BcnJheUJ1ZmZlclZpZXcuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25M
aXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
QEAgLTQ1OSw2ICs0NjEsMjUgQEAgVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBoYXNo
U2V0V2l0aEluc3RydW1lbnRlZFR5cGUpCiAgICAgRVhQRUNUX0VRKGNvdW50ICsgMiwgKHNpemVf
dCl2aXNpdGVkT2JqZWN0cy5zaXplKCkpOwogfQogCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlv
blRlc3QsIGxpc3RIYXNoU2V0V2l0aEluc3RydW1lbnRlZFR5cGUpCit7CisgICAgVmlzaXRlZE9i
amVjdHMgdmlzaXRlZE9iamVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBs
KHZpc2l0ZWRPYmplY3RzKTsKKworICAgIHR5cGVkZWYgTGlzdEhhc2hTZXQ8U3RyaW5nLCA4PiBW
YWx1ZVR5cGU7CisgICAgT3duUHRyPFZhbHVlVHlwZT4gdmFsdWUgPSBhZG9wdFB0cihuZXcgVmFs
dWVUeXBlKCkpOworICAgIHNpemVfdCBjb3VudCA9IDEwOworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgdmFsdWUtPmFkZChTdHJpbmc6Om51bWJlcihpKSk7
CisgICAgSW5zdHJ1bWVudGVkT3duZXI8VmFsdWVUeXBlKiA+IHJvb3QodmFsdWUuZ2V0KCkpOwor
ICAgIGltcGwuYWRkUm9vdE9iamVjdChyb290KTsKKworICAgIEVYUEVDVF9FUShzaXplb2YoVmFs
dWVUeXBlKSArIHNpemVvZihTdHJpbmcpICogdmFsdWUtPmNhcGFjaXR5KCkgKyBzaXplb2YoU3Ry
aW5nSW1wbCkgKiB2YWx1ZS0+c2l6ZSgpICsKKyAgICAgICAgc2l6ZW9mKFdURjo6TGlzdEhhc2hT
ZXROb2RlQWxsb2NhdG9yPFN0cmluZywgOD4pICsgc2l6ZW9mKFdURjo6TGlzdEhhc2hTZXROb2Rl
PFN0cmluZywgOD4pICogKGNvdW50IC0gOCksCisgICAgICAgIGltcGwucmVwb3J0ZWRTaXplRm9y
QWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKGNvdW50ICsgNSwgKHNpemVfdCl2aXNpdGVkT2Jq
ZWN0cy5zaXplKCkpOworfQorCiBURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGFycmF5
QnVmZmVyKQogewogICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166008</attachid>
            <date>2012-09-27 08:19:52 -0700</date>
            <delta_ts>2012-09-28 01:21:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97786-20120927191909.patch</filename>
            <type>text/plain</type>
            <size>20771</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRjYzAxNGJmYTFhMDI1Y2EwNDU1ZGU5
OTI1YTg1NDE2MGZjMjM1MjAuLjFjY2E1MjE1MGMyYjY1M2ZmNTkzMmI2ZGNmMzBkZjQ5N2RiNWM0
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTItMDktMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBtZW1v
cnkgaW5zdHJ1bWVudGF0aW9uIGZvciBMaXN0SGFzaFNldAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZv
ciBMaXN0SGFzaFNldC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogV1RGLmd5cGk6CisgICAgICAgICogV1RGLnBybzoKKyAgICAgICAgKiBXVEYudmNwcm9qL1dU
Ri52Y3Byb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogd3RmL0hhc2hTZXQuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgICogd3RmL0xpc3RI
YXNoU2V0Lmg6CisgICAgICAgIChMaXN0SGFzaFNldCk6IGRlY2xhcmVkIHJlcG9ydE1lbW9yeVVz
YWdlIGZ1bmN0aW9uIGFzIGEgZnJpZW5kIGFzIGl0IG5lZWRzIHRvIGFjY2VzcyBtX2ltcGwgYW5k
CisgICAgICAgIG1fYWxsb2NhdG9yIHByaXZhdGUgZmllbGRzIG5vdCBhdmFpbGFibGUgZnJvbSBv
dXRzaWRlIG9mIHRoaXMgY2xhc3MuCisgICAgICAgIChMaXN0SGFzaFNldE5vZGVBbGxvY2F0b3Ip
OiBkZWNsYXJlZCByZXBvcnRNZW1vcnlVc2FnZSBmdW5jdGlvbiBhcyBhIGZyaWVuZCBhcyBuZWVk
cyBhY2Nlc3MKKyAgICAgICAgdG8gaW5Qb29sIG1ldGhvZC4KKyAgICAgICAgKiB3dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmg6IHJlbW92ZWQgb25zb2xldGUgbWV0aG9kLiBBbGwgY2xpZW50cyB3
ZXJlIHVwZGF0ZWQgdG8KKyAgICAgICAgdXNlIGdlbmVyaWMgYWRkTWVtYmVyIGluc3RlYWQuCisg
ICAgICAgIChNZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAqIHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoU2V0Lmg6CisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bkxpc3RIYXNoU2V0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvbkhhc2hTZXQuaC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OnJlcG9ydE1l
bW9yeVVzYWdlKTogZnVuY3Rpb24gcmVwb3J0aW5nIG1lbW9yeSBmb290cHJpbnQgZm9yIExpc3RI
YXNoU2V0CisKIDIwMTItMDktMjYgIENvc21pbiBUcnV0YSAgPGN0cnV0YUByaW0uY29tPgogCiAg
ICAgICAgIFtCbGFja0JlcnJ5XSBBbGxvdyBkZW5vcm1hbCBmbG9hdHMgaW4gQVJNIFZGUApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGVjZDQxODQ5ODA1ODcxOTk0ZjIyMzZlYjBiYTFhZTk3Y2QzZjVkMDkuLjVhNjcy
ZmEyMTgwNTNmMTdmNTljYzk2ZDZlMDUyNjE1MDc2YTJhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxMi0wOS0yNyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIG1lbW9yeSBpbnN0cnVtZW50YXRp
b24gZm9yIExpc3RIYXNoU2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05Nzc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFN3aXRjaGVkIGV4aXN0aW5nIHVzYWdlcyBvZiBhZGRMaXN0SGFzaFNldCB0byB0
aGUgZ2VuZXJpYyBpbnN0cnVtZW50YXRpb24gbWVjaGFuaXNtCisgICAgICAgIGFzIGl0IHNob3Vs
ZCB3b3JrIGp1c3QganVzdCBmaW5lIG5vdyB0aGF0IHRoZXJlIGlzIGEgbWVtb3J5IGluc3RydW1l
bnRhdGlvbiBvZgorICAgICAgICBMaXN0SGFzaFNldC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVu
dEV2ZW50UXVldWUuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246
OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKwogMjAxMi0wOS0yNyAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXggZm9yICFVU0UoSUNVX1VOSUNPREUp
IGFmdGVyIHIxMjk2NjIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGQ2MzhhZTAzNjY0
YTY3ZDIxZmMxNzEwZmNlOTBmYjcyZTA5ZjQ5ZjIuLjFkNTFiOTdjMTQyMDkzZmE0MzQ5Y2Y1YmEz
OGQ5MTMxMTdjZWFkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTItMDktMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZv
ciBMaXN0SGFzaFNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRlZCBhIHRlc3QgZm9yIExpc3RIYXNoU2V0IG1lbW9yeSBpbnN0cnVtZW50YXRpb24u
CisKKyAgICAgICAgKiB0ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDktMjYgIFlv
c2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbRm9ybXNdIEFk
ZGluZyBsb2NhbGl6YXRpb24gdGV4dHMgZm9yIG11bHRpcGxlIGZpZWxkcyBkYXRlL3RpbWUgaW5w
dXQgVUkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwOGZhY2RjODgzMTdlN2FhZjRiMzE1ODIz
MjY1YjVkZDBhNjA2MmZhLi4zZThkZTA5MGZlNjI0MjNlM2YyMTE5MDExYTNiZmVmODJiMzY5OTVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNl
L1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04Myw2ICs4Myw3IEBAIHd0Zl9zb3VyY2VzICs9
IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZlclZp
ZXcuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5o
IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoVGFibGUuaCBc
CisgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCBc
CiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAogICAg
IFNvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZXRh
QWxsb2NhdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5neXBpIGIvU291cmNl
L1dURi9XVEYuZ3lwaQppbmRleCAxMGUzMmRmMjZkMTU3Y2I4MTAxMGEyZmUzNjkzY2I2OWY5NmNi
MzY3Li4wMDQwYWQ5YTViNWNiMjA0MGY1NTM1MDhiOWU4MGZiZjRlYmNkYWJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1dURi5neXBpCisrKyBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKQEAgLTUzLDYg
KzUzLDcgQEAKICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZm
ZXJWaWV3LmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0
LmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoVGFibGUuaCcs
CisgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmgnLAog
ICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCcsCiAgICAgICAg
ICAgICAnd3RmL01lc3NhZ2VRdWV1ZS5oJywKICAgICAgICAgICAgICd3dGYvTm9uQ29weWluZ1Nv
cnQuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5w
cm8KaW5kZXggMDAwNGRlODFhZjg2MTNmN2RlM2Q2N2VlZDYzZTgxNzJjMDM0YTlhOS4uYjMwNjJl
MzZmZjJlYmMzZmRlMTZjNDBkZDJhYjllZjMxNzNhNDIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtOTAsNiArOTAsNyBAQCBIRUFE
RVJTICs9IFwKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZlclZpZXcuaCBcCiAg
ICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oIFwKICAgICBNZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoVGFibGUuaCBcCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQu
aCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAogICAgIE1lc3NhZ2VRdWV1
ZS5oIFwKICAgICBNZXRhQWxsb2NhdG9yLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYu
dmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRl
eCA2NTEzNDRhYWE5YmJkZjEwOTExYzYyYTE1YTk2NTZhNzk4NDE2OGUzLi4wNzhhNTQ2NGJkOGEx
ZWNkZjdiN2EyNjYxYjIwZDhjZDMxZjE1NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52
Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpA
QCAtOTE3LDYgKzkxNywxMCBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJCSAgICAgICAg
UmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCIK
KwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cd3Rm
XE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIgogCQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5ZDc2N2YzZTE3MWEwYWQ3NzFj
ODRkMTBlM2NlYmZjN2M0OTkzOTM5Li4yN2JhYTY5ZDlhYjc2YTczYmY4ZjdmYmJjMTI2ODA2MTU5
MzIzMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3
Niw2ICsyNzYsNyBAQAogCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4QjE1MUE4
MjY0MDA0MTIzRkYgLyogY29uZmlnLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMz
MCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87IH07
CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1QkMz
MCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKKwkJRjM1MjVFMkExNjE0OUZGNDAwMjc4QkMxIC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzUyNUUyOTE2MTQ5RkY0MDAyNzhCQzEgLyogTWVtb3J5
SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUg
c2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KQEAgLTU1
Nyw2ICs1NTgsNyBAQAogCQlBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRp
YVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYzNTI1RTI5MTYxNDlGRjQwMDI3OEJDMSAvKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC03MDEsNiArNzAz
LDcgQEAKIAkJCQk0RkQ4NTU0NjE2MTMzRTBFMDBDNUI3MDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0
aW9uQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJNEYxQjJEQjUxNjBCNDRBQTAwNTg2NTU5IC8q
IE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCAqLywKIAkJCQk0RjBCQUJCQTE2MTFENUY1
MDAwMjNGNjYgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFRhYmxlLmggKi8sCisJCQkJRjM1
MjVFMjkxNjE0OUZGNDAwMjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0
LmggKi8sCiAJCQkJNEZDQjcxMDkxNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9yeUluc3RydW1lbnRh
dGlvblZlY3Rvci5oICovLAogCQkJCUE4QTQ3MkNDMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXNzYWdl
UXVldWUuaCAqLywKIAkJCQlBOEE0NzJDRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRv
ci5jcHAgKi8sCkBAIC0xMTU3LDYgKzExNjAsNyBAQAogCQkJCTRGMUIyREI2MTYwQjQ0QUEwMDU4
NjU1OSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0RjBCQUJCQjE2MTFENUY1MDAwMjNGNjYgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFRh
YmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RkQ4NTU0NzE2MTMzRTBFMDBDNUI3MDQgLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQlG
MzUyNUUyQTE2MTQ5RkY0MDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hT
ZXQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFzaFNldC5o
IGIvU291cmNlL1dURi93dGYvSGFzaFNldC5oCmluZGV4IGU2ZWU1OTI5YWZhYTM1NDNjZWVlMzlk
Njk3NTQwZjc5NGZlMjE5N2IuLjVhYzdmNWYyYjA1YjA2MTAzMDUyNjJlOWNjYWFlNGFlZDdmMzhk
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hTZXQuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9IYXNoU2V0LmgKQEAgLTI3LDcgKzI3LDYgQEAKIG5hbWVzcGFjZSBXVEYgewogCiAgICAg
c3RydWN0IElkZW50aXR5RXh0cmFjdG9yOwotICAgIGNsYXNzIE1lbW9yeU9iamVjdEluZm87CiAg
ICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMs
IHR5cGVuYW1lIFRyYWl0cz4gY2xhc3MgSGFzaFNldDsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBW
YWx1ZSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL0xpc3RIYXNo
U2V0LmgKaW5kZXggZmE2NTRjNWQ5ZDczYzJjZTI1N2VlNjMxYjIzNjAxNzMzZDkwNDMwNy4uYmVk
NmQ5MGFkMDM5NDlkOTA5M2ZhNWJkNGUwOTUyZTY5NzEzMWM1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTGlzdEhhc2hTZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNldC5o
CkBAIC0xNTEsNiArMTUxLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIGNvbnN0X3JldmVy
c2VfaXRlcmF0b3IgbWFrZUNvbnN0UmV2ZXJzZUl0ZXJhdG9yKE5vZGUqKSBjb25zdDsKIAogICAg
ICAgICBmcmllbmQgdm9pZCBkZWxldGVBbGxWYWx1ZXM8Pihjb25zdCBMaXN0SGFzaFNldCYpOwor
ICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWLCBzaXplX3QgSSwgdHlwZW5hbWUgSD4gZnJpZW5k
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgTGlzdEhhc2hTZXQ8ViwgSSwgSD4qIGNvbnN0
JiwgTWVtb3J5T2JqZWN0SW5mbyopOwogCiAgICAgICAgIEltcGxUeXBlIG1faW1wbDsKICAgICAg
ICAgTm9kZSogbV9oZWFkOwpAQCAtMjE4LDYgKzIxOSw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
ICAgICAgICAgcmV0dXJuIG5vZGUgPj0gcG9vbCgpICYmIG5vZGUgPCBwYXN0UG9vbCgpOwogICAg
ICAgICB9CiAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgViwgc2l6ZV90IEksIHR5cGVuYW1l
IEg+IGZyaWVuZCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IExpc3RIYXNoU2V0PFYsIEks
IEg+KiBjb25zdCYsIE1lbW9yeU9iamVjdEluZm8qKTsKKwogICAgICAgICBOb2RlKiBtX2ZyZWVM
aXN0OwogICAgICAgICBib29sIG1faXNEb25lV2l0aEluaXRpYWxGcmVlTGlzdDsKICAgICAgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBtX3Bvb2xTaXplID0gaW5saW5lQ2FwYWNpdHk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDU4YWI1MDA3MDcxMDgyZTliNzUyNzcy
YmZkY2IwZDFkNmMyNjQxNDEuLmI4ZTRkY2EwMTk5ZGU1N2Y2MjQ2ODI4ZWJkNmNjYjVmY2IyNDlk
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC0xNDcsMTAgKzE0
Nyw4IEBAIHByaXZhdGU6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVj
dChjb25zdCBUJiB0LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkgeyBPd25pbmdU
cmFpdHM8VD46OmFkZE9iamVjdCh0aGlzLCB0LCBvd25lck9iamVjdFR5cGUpOyB9CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgSGFzaE1hcFR5cGU+IHZvaWQgYWRkSGFzaE1hcChjb25zdCBIYXNoTWFw
VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7Ci0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkQ29s
bGVjdGlvbihjb25zdCBDb2xsZWN0aW9uVHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29u
dGVudE9ubHkgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBh
ZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVzKGNvbnN0IE1hcFR5cGUmLCBNZW1vcnlPYmplY3RUeXBl
KTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZE1h
cFZhbHVlcyhjb25zdCBNYXBUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSk7Ci0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlPiB2b2lkIGFkZExpc3RIYXNoU2V0KGNvbnN0IExpc3RI
YXNoU2V0VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7
CiAgICAgdm9pZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgTWVtb3J5
T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIHNpemVfdCBzaXplKQogICAgIHsKICAgICAgICAg
aWYgKCFidWZmZXIgfHwgdmlzaXRlZChidWZmZXIpKQpAQCAtMjA2LDcgKzIwNCw2IEBAIHB1Ymxp
YzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoU2V0VHlwZT4gdm9pZCBhZGRIYXNoQ291bnRl
ZFNldChjb25zdCBIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5h
ZGRIYXNoTWFwKHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIE1hcFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhjb25zdCBNYXBUeXBl
JiBtYXApIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZE1hcEVudHJp
ZXMobWFwLCBtX29iamVjdFR5cGUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4g
dm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMoY29uc3QgTWFwVHlwZSYgbWFwKSB7IG1fbWVt
b3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMobWFwLCBtX29iamVj
dFR5cGUpOyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlPiB2b2lkIGFk
ZExpc3RIYXNoU2V0KGNvbnN0IExpc3RIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1
bWVudGF0aW9uLT5hZGRMaXN0SGFzaFNldChzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KICAg
ICB2b2lkIGFkZFJhd0J1ZmZlcihjb25zdCB2b2lkKiBjb25zdCYgYnVmZmVyLCBzaXplX3Qgc2l6
ZSkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkUmF3QnVmZmVyKGJ1ZmZlciwgbV9vYmpl
Y3RUeXBlLCBzaXplKTsgfQogCiAgICAgdm9pZCBhZGRXZWFrUG9pbnRlcih2b2lkKikgeyB9CkBA
IC0yNjUsMTcgKzI2Miw2IEBAIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRIYXNoTWFw
KGNvbnN0IEhhc2hNYXBUeXBlJiBoYXNoTWFwLCBNZW1vcnlPYmplY3RUCiAgICAgY291bnRPYmpl
Y3RTaXplKG93bmVyT2JqZWN0VHlwZSwgY2FsY3VsYXRlQ29udGFpbmVyU2l6ZShoYXNoTWFwLCBj
b250ZW50T25seSkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBDb2xsZWN0aW9uVHlwZT4KLXZv
aWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKGNvbnN0
IENvbGxlY3Rpb25UeXBlJiBjb2xsZWN0aW9uLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0
VHlwZSwgYm9vbCBjb250ZW50T25seSkKLXsKLSAgICBpZiAodmlzaXRlZCgmY29sbGVjdGlvbikp
Ci0gICAgICAgIHJldHVybjsKLSAgICBjb3VudE9iamVjdFNpemUob3duZXJPYmplY3RUeXBlLCBj
YWxjdWxhdGVDb250YWluZXJTaXplKGNvbGxlY3Rpb24sIGNvbnRlbnRPbmx5KSk7Ci0gICAgdHlw
ZW5hbWUgQ29sbGVjdGlvblR5cGU6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNvbGxlY3Rpb24uZW5k
KCk7Ci0gICAgZm9yICh0eXBlbmFtZSBDb2xsZWN0aW9uVHlwZTo6Y29uc3RfaXRlcmF0b3IgaSA9
IGNvbGxlY3Rpb24uYmVnaW4oKTsgaSAhPSBlbmQ7ICsraSkKLSAgICAgICAgYWRkT2JqZWN0KCpp
LCBvd25lck9iamVjdFR5cGUpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPgogdm9p
ZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZEluc3RydW1lbnRlZE1hcEVudHJpZXMoY29uc3Qg
TWFwVHlwZSYgbWFwLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkKIHsKQEAgLTI5
NCwxNSArMjgwLDYgQEAgdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZEluc3RydW1lbnRl
ZE1hcFZhbHVlcyhjb25zdCBNYXBUeXBlJiBtYXAsIE1lbW9yeU8KICAgICAgICAgYWRkT2JqZWN0
KGktPnNlY29uZCwgb3duZXJPYmplY3RUeXBlKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgTGlz
dEhhc2hTZXRUeXBlPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZExpc3RIYXNoU2V0
KGNvbnN0IExpc3RIYXNoU2V0VHlwZSYgaGFzaFNldCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9i
amVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkpCi17Ci0gICAgaWYgKHZpc2l0ZWQoJmhhc2hTZXQp
KQotICAgICAgICByZXR1cm47Ci0gICAgc2l6ZV90IHNpemUgPSAoY29udGVudE9ubHkgPyAwIDog
c2l6ZW9mKExpc3RIYXNoU2V0VHlwZSkpICsgaGFzaFNldC5jYXBhY2l0eSgpICogc2l6ZW9mKHZv
aWQqKSArIGhhc2hTZXQuc2l6ZSgpICogKHNpemVvZih0eXBlbmFtZSBMaXN0SGFzaFNldFR5cGU6
OlZhbHVlVHlwZSkgKyAyICogc2l6ZW9mKHZvaWQqKSk7Ci0gICAgY291bnRPYmplY3RTaXplKG93
bmVyT2JqZWN0VHlwZSwgc2l6ZSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRhaW5lcj4K
IHNpemVfdCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmNhbGN1bGF0ZUNvbnRhaW5lclNpemUoY29u
c3QgQ29udGFpbmVyJiBjb250YWluZXIsIGJvb2wgY29udGVudE9ubHkpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmggYi9Tb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmgKaW5kZXggOTczMTIzNmY2YzE0
YmRhZDNkZmVkYzc3MjYzMGZhOWMxNGQzYzBiNC4uMGE3YjExMzlkMDY3MzUwZTFjZTJjZGUxZWUw
NDNjMjlhYzJlOWQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uSGFzaFNldC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bkhhc2hTZXQuaApAQCAtMzIsNyArMzIsNiBAQAogI2RlZmluZSBNZW1vcnlJbnN0cnVtZW50YXRp
b25IYXNoU2V0X2gKIAogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoVGFi
bGUuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXVEYg
ewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0
SGFzaFNldC5oIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hT
ZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YjYwMTRlZWY3YTE4YjNlZTBjODZjNTk0MWY5MGRlMzI4YmMwOTlm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
TGlzdEhhc2hTZXQuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZW1vcnlJbnN0cnVtZW50YXRp
b25MaXN0SGFzaFNldF9oCisjZGVmaW5lIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0
X2gKKworI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoVGFibGUuaD4KKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCBzaXplX3QgaW5s
aW5lQ2FwYWNpdHksIHR5cGVuYW1lIEhhc2hBcmc+Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNv
bnN0IExpc3RIYXNoU2V0PFZhbHVlQXJnLCBpbmxpbmVDYXBhY2l0eSwgSGFzaEFyZz4qIGNvbnN0
JiBzZXQsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCit7CisgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgc2V0KTsKKyAgICBpbmZvLmFkZE1lbWJl
cihzZXQtPm1faW1wbCk7CisgICAgaW5mby5hZGRNZW1iZXIoc2V0LT5tX2FsbG9jYXRvcik7CisK
KyAgICBmb3IgKHR5cGVuYW1lIExpc3RIYXNoU2V0PFZhbHVlQXJnLCBpbmxpbmVDYXBhY2l0eSwg
SGFzaEFyZz46Ok5vZGUqIG5vZGUgPSBzZXQtPm1faGVhZDsgbm9kZTsgbm9kZSA9IG5vZGUtPm1f
bmV4dCkgeworICAgICAgICBpZiAoIXNldC0+bV9hbGxvY2F0b3ItPmluUG9vbChub2RlKSkKKyAg
ICAgICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKG5vZGUsIHNpemVvZih0eXBlbmFtZSBMaXN0SGFz
aFNldDxWYWx1ZUFyZywgaW5saW5lQ2FwYWNpdHksIEhhc2hBcmc+OjpOb2RlKSk7CisgICAgfQor
CisgICAgaW5mby5hZGRDb2xsZWN0aW9uRWxlbWVudHMoc2V0LT5iZWdpbigpLCBzZXQtPmVuZCgp
KTsKK30KKworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlz
dEhhc2hTZXRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50
UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKaW5k
ZXggZjM2MDFjZmU2ODIyODEzZjI4Mzc5NWZhM2NjZDRmOGQ5MWQ4OWYwZC4uZmQ5MDY0MTgwZjRl
NWI2NDQ0MTA0MDIwODNhOGRmMWY2YWNkYjQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50RXZlbnRRdWV1ZS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTdXNwZW5kYWJs
ZVRpbWVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3Rm
L01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hl
ZXRDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRD
b2xsZWN0aW9uLmNwcAppbmRleCBjNzM3NzkyYmJjMjFiMWNhZDdmM2M4MDM1YzgyNTdiMDc1YWM3
OTJkLi5mYzRhYTMyZDdlNjZkNjkwMWJhMGQ1Yzg2YjZjNThhNDRjNzE2ODllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKICNpbmNsdWRlICJV
c2VyQ29udGVudFVSTFBhdHRlcm4uaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00OTksNyArNTAwLDcgQEAgdm9pZCBEb2N1bWVudFN0eWxlU2hl
ZXRDb2xsZWN0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmoKICAgICBpbmZvLmFkZE1lbWJlcihtX3BhZ2VHcm91cFVzZXJTaGVldHMpOwogICAgIGluZm8u
YWRkTWVtYmVyKG1fdXNlclNoZWV0cyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9hdXRob3JTdHls
ZVNoZWV0cyk7Ci0gICAgaW5mby5hZGRMaXN0SGFzaFNldChtX3N0eWxlU2hlZXRDYW5kaWRhdGVO
b2Rlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZXMpOwog
ICAgIGluZm8uYWRkTWVtYmVyKG1fcHJlZmVycmVkU3R5bGVzaGVldFNldE5hbWUpOwogICAgIGlu
Zm8uYWRkTWVtYmVyKG1fc2VsZWN0ZWRTdHlsZXNoZWV0U2V0TmFtZSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRl
eCBiYjY4NzQwNTFiY2I5NDgxZGU0ZDBmYjRhYWU0NmM2MjEwMjIxM2YyLi5kMzMyZTNjNTY2ODM3
MTdjNDAxYjM4NzMwMDc0OTAyYWQ5MThhNmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAK
ICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5j
bHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVW51c2Vk
UGFyYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CkBAIC05MDIsOCArOTAzLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykKICAgICAgICAgaW5mby5hZGRNZW1iZXIoaS0+c2Vjb25kKTsKICAgICB9CiAgICAgaW5mby5h
ZGRNZW1iZXIobV92YWxpZGF0ZWRVUkxzKTsKLSAgICBpZiAobV9wcmVsb2FkcykKLSAgICAgICAg
aW5mby5hZGRMaXN0SGFzaFNldCgqbV9wcmVsb2Fkcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9w
cmVsb2Fkcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5nUHJlbG9hZHMpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRh
dGlvblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVt
ZW50YXRpb25UZXN0LmNwcAppbmRleCA0ZThiNDk4NTk1NzUwZGFiMWNiM2RhNDhlNzRhMTcxMWY0
YzBiNmNlLi42MGFlMmJmZTM4MmJjZmQ5OTM4OWU1ZGVlZjMwYjBjNTk3NjI5NzFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVGVzdC5jcHAKQEAgLTM4LDggKzM4LDEwIEBACiAKICNpbmNsdWRlIDx3dGYvQXJyYXlC
dWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZlclZp
ZXcuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oPgorI2lu
Y2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ1OSw2ICs0NjEsMjUgQEAgVEVT
VChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBoYXNoU2V0V2l0aEluc3RydW1lbnRlZFR5cGUp
CiAgICAgRVhQRUNUX0VRKGNvdW50ICsgMiwgKHNpemVfdCl2aXNpdGVkT2JqZWN0cy5zaXplKCkp
OwogfQogCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGxpc3RIYXNoU2V0V2l0aElu
c3RydW1lbnRlZFR5cGUpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7Cisg
ICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmplY3RzKTsKKworICAg
IHR5cGVkZWYgTGlzdEhhc2hTZXQ8U3RyaW5nLCA4PiBWYWx1ZVR5cGU7CisgICAgT3duUHRyPFZh
bHVlVHlwZT4gdmFsdWUgPSBhZG9wdFB0cihuZXcgVmFsdWVUeXBlKCkpOworICAgIHNpemVfdCBj
b3VudCA9IDEwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAg
ICAgdmFsdWUtPmFkZChTdHJpbmc6Om51bWJlcihpKSk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8
VmFsdWVUeXBlKiA+IHJvb3QodmFsdWUuZ2V0KCkpOworICAgIGltcGwuYWRkUm9vdE9iamVjdChy
b290KTsKKworICAgIEVYUEVDVF9FUShzaXplb2YoVmFsdWVUeXBlKSArIHNpemVvZihTdHJpbmcp
ICogdmFsdWUtPmNhcGFjaXR5KCkgKyBzaXplb2YoU3RyaW5nSW1wbCkgKiB2YWx1ZS0+c2l6ZSgp
ICsKKyAgICAgICAgc2l6ZW9mKFdURjo6TGlzdEhhc2hTZXROb2RlQWxsb2NhdG9yPFN0cmluZywg
OD4pICsgc2l6ZW9mKFdURjo6TGlzdEhhc2hTZXROb2RlPFN0cmluZywgOD4pICogKGNvdW50IC0g
OCksCisgICAgICAgIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNU
X0VRKGNvdW50ICsgNSwgKHNpemVfdCl2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCiBURVNU
KE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGFycmF5QnVmZmVyKQogewogICAgIFZpc2l0ZWRP
YmplY3RzIHZpc2l0ZWRPYmplY3RzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166170</attachid>
            <date>2012-09-28 01:21:29 -0700</date>
            <delta_ts>2012-09-28 02:26:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97786-20120928122045.patch</filename>
            <type>text/plain</type>
            <size>21444</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJlYmI0ODVjMjkyY2RhNWVhNWFlMTc2
NmNhZjA2NTlkNTUxOGYzYjEuLmVlNDQwZDliODQxOTYyYTVlMjEzZGFmYzBmZDI3MWIyM2ZiNmY2
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTItMDktMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBtZW1v
cnkgaW5zdHJ1bWVudGF0aW9uIGZvciBMaXN0SGFzaFNldAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZv
ciBMaXN0SGFzaFNldC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogV1RGLmd5cGk6CisgICAgICAgICogV1RGLnBybzoKKyAgICAgICAgKiBXVEYudmNwcm9qL1dU
Ri52Y3Byb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogd3RmL0hhc2hTZXQuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgICogd3RmL0xpc3RI
YXNoU2V0Lmg6CisgICAgICAgIChMaXN0SGFzaFNldCk6IGRlY2xhcmVkIHJlcG9ydE1lbW9yeVVz
YWdlIGZ1bmN0aW9uIGFzIGEgZnJpZW5kIGFzIGl0IG5lZWRzIHRvIGFjY2VzcyBtX2ltcGwgYW5k
CisgICAgICAgIG1fYWxsb2NhdG9yIHByaXZhdGUgZmllbGRzIG5vdCBhdmFpbGFibGUgZnJvbSBv
dXRzaWRlIG9mIHRoaXMgY2xhc3MuCisgICAgICAgIChMaXN0SGFzaFNldE5vZGVBbGxvY2F0b3Ip
OiBkZWNsYXJlZCByZXBvcnRNZW1vcnlVc2FnZSBmdW5jdGlvbiBhcyBhIGZyaWVuZCBhcyBuZWVk
cyBhY2Nlc3MKKyAgICAgICAgdG8gaW5Qb29sIG1ldGhvZC4KKyAgICAgICAgKiB3dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmg6IHJlbW92ZWQgb25zb2xldGUgbWV0aG9kLiBBbGwgY2xpZW50cyB3
ZXJlIHVwZGF0ZWQgdG8KKyAgICAgICAgdXNlIGdlbmVyaWMgYWRkTWVtYmVyIGluc3RlYWQuCisg
ICAgICAgIChNZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAqIHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoU2V0Lmg6CisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bkxpc3RIYXNoU2V0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvbkhhc2hTZXQuaC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OnJlcG9ydE1l
bW9yeVVzYWdlKTogZnVuY3Rpb24gcmVwb3J0aW5nIG1lbW9yeSBmb290cHJpbnQgZm9yIExpc3RI
YXNoU2V0CisKIDIwMTItMDktMjcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZW1vdmUgdGhlIGNsYW5nIHByYWdtYXMgdG8gZGlzYWJsZSB3YXJuaW5n
cyBpbiBOb25jb3B5YWJsZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY5MzQ0YWNlNWM0YmJjM2M3MDY5NWM2
OWU2MjU4M2ZlYWU2MTBmMC4uM2I0ZjJhM2Q4NGNjNzA0ODJmNTJmODY3MjllZWMxNzYwYzUxNTBk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA5LTI3ICBZdXJ5IFNlbWlraGF0
c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb3Zp
ZGUgbWVtb3J5IGluc3RydW1lbnRhdGlvbiBmb3IgTGlzdEhhc2hTZXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3Nzg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3dpdGNoZWQgZXhpc3RpbmcgdXNhZ2Vz
IG9mIGFkZExpc3RIYXNoU2V0IHRvIHRoZSBnZW5lcmljIGluc3RydW1lbnRhdGlvbiBtZWNoYW5p
c20KKyAgICAgICAgYXMgaXQgc2hvdWxkIHdvcmsganVzdCBqdXN0IGZpbmUgbm93IHRoYXQgdGhl
cmUgaXMgYSBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIG9mCisgICAgICAgIExpc3RIYXNoU2V0Lgor
CisgICAgICAgICogZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHA6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorCiAyMDEyLTA5LTI3ICBZ
b3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Zvcm1zXSBB
ZGRpbmcgcGxhY2Vob2xkZXIgZmVhdHVyZSB0byBEYXRlVGltZU51bWVyaWNFbGVtZW50LCBhbmQg
dXBkYXRlIGl0cyBleGlzdGluZyBzdWJjbGFzc2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCBhZmQzZWJkMTJjNzg1M2FiMjViNWRiYmQ3ZmUwNWVjYmZiZWZjZTgwLi5kNDA4NTc0YThi
NTJjZjYyZTM5MmIwYzhjYzBiMmIzMzgzOWZiMDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTI3ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgbWVtb3J5IGlu
c3RydW1lbnRhdGlvbiBmb3IgTGlzdEhhc2hTZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk3Nzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IGZvciBMaXN0SGFzaFNldCBtZW1vcnkg
aW5zdHJ1bWVudGF0aW9uLgorCisgICAgICAgICogdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAgKFdlYkNvcmUpOgor
CiAyMDEyLTA5LTI3ICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbQ2hyb21pdW1dIFVwZGF0ZSBXZWJWZWN0b3IuaCByZWZlcmVuY2VzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggMDhmYWNkYzg4MzE3ZTdhYWY0YjMxNTgyMzI2NWI1ZGQwYTYwNjJmYS4u
M2U4ZGUwOTBmZTYyNDIzZTNmMjExOTAxMWEzYmZlZjgyYjM2OTk1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtODMsNiArODMsNyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dU
Ri93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggXAogICAgIFNvdXJj
ZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCBcCiAgICAgU291cmNlL1dU
Ri93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFRhYmxlLmggXAorICAgIFNvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggXAogICAgIFNvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9N
ZXNzYWdlUXVldWUuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYuZ3lwaSBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKaW5k
ZXggMTBlMzJkZjI2ZDE1N2NiODEwMTBhMmZlMzY5M2NiNjlmOTZjYjM2Ny4uMDA0MGFkOWE1YjVj
YjIwNDBmNTUzNTA4YjllODBmYmY0ZWJjZGFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYu
Z3lwaQorKysgYi9Tb3VyY2UvV1RGL1dURi5neXBpCkBAIC01Myw2ICs1Myw3IEBACiAgICAgICAg
ICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVmZmVyVmlldy5oJywKICAgICAg
ICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oJywKICAgICAgICAgICAg
ICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFRhYmxlLmgnLAorICAgICAgICAgICAgJ3d0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oJywKICAgICAgICAgICAgICd3dGYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZXNzYWdl
UXVldWUuaCcsCiAgICAgICAgICAgICAnd3RmL05vbkNvcHlpbmdTb3J0LmgnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IDAwMDRkZTgx
YWY4NjEzZjdkZTNkNjdlZWQ2M2U4MTcyYzAzNGE5YTkuLmIzMDYyZTM2ZmYyZWJjM2ZkZTE2YzQw
ZGQyYWI5ZWYzMTczYTQyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9T
b3VyY2UvV1RGL1dURi5wcm8KQEAgLTkwLDYgKzkwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggXAogICAgIE1lbW9yeUluc3RydW1l
bnRhdGlvbkhhc2hTZXQuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFRhYmxlLmgg
XAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggXAogICAgIE1lbW9yeUlu
c3RydW1lbnRhdGlvblZlY3Rvci5oIFwKICAgICBNZXNzYWdlUXVldWUuaCBcCiAgICAgTWV0YUFs
bG9jYXRvci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9q
IGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXggNjUxMzQ0YWFhOWJiZGYx
MDkxMWM2MmExNWE5NjU2YTc5ODQxNjhlMy4uMDc4YTU0NjRiZDhhMWVjZGY3YjdhMjY2MWIyMGQ4
Y2QzMWYxNTcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oK
KysrIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTkxNyw2ICs5MTcsMTAg
QEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5c
d3RmXE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmgiCisJCQk+CisJCTwvRmlsZT4K
KwkJPEZpbGUKIAkJICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlJbnN0cnVtZW50
YXRpb25WZWN0b3IuaCIKIAkJCT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggOWQ3NjdmM2UxNzFhMGFkNzcxYzg0ZDEwZTNjZWJmYzdjNDk5
MzkzOS4uMjdiYWE2OWQ5YWI3NmE3M2JmOGY3ZmJiYzEyNjgwNjE1OTMyMzE4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzYsNiArMjc2LDcgQEAKIAkJ
QThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNv
bmZpZy5oICovOyB9OwogCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FB
MTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovOyB9OwogCQlDRDU0OTdBRDE1ODU3
RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmgg
Ki87IH07CisJCUYzNTI1RTJBMTYxNDlGRjQwMDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRp
b25MaXN0SGFzaFNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjM1MjVFMjkxNjE0OUZGNDAwMjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkxp
c3RIYXNoU2V0LmggKi87IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyog
QmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCkBAIC01NTcsNiArNTU4LDcgQEAKIAkJ
QThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1
NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGMzUyNUUyOTE2MTQ5RkY0MDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0
aW9uTGlzdEhhc2hTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5
SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3
b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtNzAxLDYgKzcwMyw3IEBACiAJCQkJNEZEODU1
NDYxNjEzM0UwRTAwQzVCNzA0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVmZmVyVmll
dy5oICovLAogCQkJCTRGMUIyREI1MTYwQjQ0QUEwMDU4NjU1OSAvKiBNZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoU2V0LmggKi8sCiAJCQkJNEYwQkFCQkExNjExRDVGNTAwMDIzRjY2IC8qIE1lbW9y
eUluc3RydW1lbnRhdGlvbkhhc2hUYWJsZS5oICovLAorCQkJCUYzNTI1RTI5MTYxNDlGRjQwMDI3
OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oICovLAogCQkJCTRGQ0I3
MTA5MTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCAqLywK
IAkJCQlBOEE0NzJDQzE1MUE4MjVCMDA0MTIzRkYgLyogTWVzc2FnZVF1ZXVlLmggKi8sCiAJCQkJ
QThBNDcyQ0QxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuY3BwICovLApAQCAtMTE1
Nyw2ICsxMTYwLDcgQEAKIAkJCQk0RjFCMkRCNjE2MEI0NEFBMDA1ODY1NTkgLyogTWVtb3J5SW5z
dHJ1bWVudGF0aW9uSGFzaFNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEYwQkFCQkIxNjExRDVG
NTAwMDIzRjY2IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hUYWJsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNEZEODU1NDcxNjEzM0UwRTAwQzVCNzA0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlv
bkFycmF5QnVmZmVyVmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjM1MjVFMkExNjE0OUZGNDAw
Mjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3Rm
L0hhc2hTZXQuaAppbmRleCBlNmVlNTkyOWFmYWEzNTQzY2VlZTM5ZDY5NzU0MGY3OTRmZTIxOTdi
Li41YWM3ZjVmMmIwNWIwNjEwMzA1MjYyZTljY2FhZTRhZWQ3ZjM4ZDg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9IYXNoU2V0LmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaFNldC5oCkBA
IC0yNyw3ICsyNyw2IEBACiBuYW1lc3BhY2UgV1RGIHsKIAogICAgIHN0cnVjdCBJZGVudGl0eUV4
dHJhY3RvcjsKLSAgICBjbGFzcyBNZW1vcnlPYmplY3RJbmZvOwogICAgIAogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHM+
IGNsYXNzIEhhc2hTZXQ7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEhh
c2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0xpc3RIYXNoU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNldC5oCmluZGV4IGZhNjU0
YzVkOWQ3M2MyY2UyNTdlZTYzMWIyMzYwMTczM2Q5MDQzMDcuLjhmZWVmNzJiMzExZmFiODQ3MDAx
MDllMmI2ZTNiOGVhMTEyODkzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xpc3RIYXNo
U2V0LmgKKysrIGIvU291cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaApAQCAtOTgsNiArOTgsOCBA
QCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgaW50IGNhcGFjaXR5KCkgY29uc3Q7CiAgICAgICAg
IGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCisgICAgICAgIHNpemVfdCBzaXplSW5CeXRlcygpIGNv
bnN0OworCiAgICAgICAgIGl0ZXJhdG9yIGJlZ2luKCk7CiAgICAgICAgIGl0ZXJhdG9yIGVuZCgp
OwogICAgICAgICBjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0OwpAQCAtMjA5LDE1ICsyMTEs
MTUgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgICAgICBmYXN0RnJlZShub2RlKTsKICAgICAg
ICAgfQogCi0gICAgcHJpdmF0ZToKLSAgICAgICAgTm9kZSogcG9vbCgpIHsgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3RfcHRyPE5vZGUqPihtX3Bvb2wucG9vbCk7IH0KLSAgICAgICAgTm9kZSogcGFz
dFBvb2woKSB7IHJldHVybiBwb29sKCkgKyBtX3Bvb2xTaXplOyB9Ci0KICAgICAgICAgYm9vbCBp
blBvb2woTm9kZSogbm9kZSkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIG5vZGUgPj0g
cG9vbCgpICYmIG5vZGUgPCBwYXN0UG9vbCgpOwogICAgICAgICB9CiAKKyAgICBwcml2YXRlOgor
ICAgICAgICBOb2RlKiBwb29sKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdF9wdHI8Tm9kZSo+
KG1fcG9vbC5wb29sKTsgfQorICAgICAgICBOb2RlKiBwYXN0UG9vbCgpIHsgcmV0dXJuIHBvb2wo
KSArIG1fcG9vbFNpemU7IH0KKwogICAgICAgICBOb2RlKiBtX2ZyZWVMaXN0OwogICAgICAgICBi
b29sIG1faXNEb25lV2l0aEluaXRpYWxGcmVlTGlzdDsKICAgICAgICAgc3RhdGljIGNvbnN0IHNp
emVfdCBtX3Bvb2xTaXplID0gaW5saW5lQ2FwYWNpdHk7CkBAIC01NjAsNiArNTYyLDE4IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBp
bmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KKyAgICBzaXplX3QgTGlzdEhhc2hTZXQ8VCwgaW5s
aW5lQ2FwYWNpdHksIFU+OjpzaXplSW5CeXRlcygpIGNvbnN0CisgICAgeworICAgICAgICBzaXpl
X3QgcmVzdWx0ID0gc2l6ZW9mKCp0aGlzKSArIHNpemVvZigqbV9hbGxvY2F0b3IpOworICAgICAg
ICByZXN1bHQgKz0gc2l6ZW9mKHR5cGVuYW1lIEltcGxUeXBlOjpWYWx1ZVR5cGUpICogbV9pbXBs
LmNhcGFjaXR5KCk7CisgICAgICAgIGZvciAoTm9kZSogbm9kZSA9IG1faGVhZDsgbm9kZTsgbm9k
ZSA9IG5vZGUtPm1fbmV4dCkgeworICAgICAgICAgICAgaWYgKCFtX2FsbG9jYXRvci0+aW5Qb29s
KG5vZGUpKQorICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzaXplb2YoTm9kZSk7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+CiAgICAgaW5saW5lIHR5cGVu
YW1lIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6aXRlcmF0b3IgTGlzdEhhc2hT
ZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+OjpiZWdpbigpCiAgICAgewogICAgICAgICByZXR1cm4g
bWFrZUl0ZXJhdG9yKG1faGVhZCk7IApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24u
aAppbmRleCA5YmRkMjNlMTUzMWRkYzVmMWU4ZTk3NWViYTg3NWY5OWE2OGYzNjUxLi5jMzZjNmI4
MTY2ZTcyMjY3MWE5NDM0Yzk0ZGViNTgzYmExOTU4OTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb24uaApAQCAtMTU3LDEwICsxNTcsOCBAQCBwcml2YXRlOgogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3QoY29uc3QgVCYgdCwgTWVtb3J5T2JqZWN0
VHlwZSBvd25lck9iamVjdFR5cGUpIHsgT3duaW5nVHJhaXRzPFQ+OjphZGRPYmplY3QodGhpcywg
dCwgb3duZXJPYmplY3RUeXBlKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hNYXBUeXBl
PiB2b2lkIGFkZEhhc2hNYXAoY29uc3QgSGFzaE1hcFR5cGUmLCBNZW1vcnlPYmplY3RUeXBlLCBi
b29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbGxlY3Rp
b25UeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24oY29uc3QgQ29sbGVjdGlvblR5
cGUmLCBNZW1vcnlPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIE1hcFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhj
b25zdCBNYXBUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
TWFwVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMoY29uc3QgTWFwVHlwZSYsIE1l
bW9yeU9iamVjdFR5cGUpOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIExpc3RIYXNoU2V0VHlwZT4g
dm9pZCBhZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFzaFNldFR5cGUmLCBNZW1vcnlPYmplY3RU
eXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwogICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNv
bnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBl
LCBzaXplX3Qgc2l6ZSkKICAgICB7CiAgICAgICAgIGlmICghYnVmZmVyIHx8IHZpc2l0ZWQoYnVm
ZmVyKSkKQEAgLTIxOCw4ICsyMTYsOCBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
SGFzaFNldFR5cGU+IHZvaWQgYWRkSGFzaENvdW50ZWRTZXQoY29uc3QgSGFzaFNldFR5cGUmIHNl
dCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSGFzaE1hcChzZXQsIG1fb2JqZWN0VHlw
ZSwgdHJ1ZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3Ry
dW1lbnRlZE1hcEVudHJpZXMoY29uc3QgTWFwVHlwZSYgbWFwKSB7IG1fbWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVzKG1hcCwgbV9vYmplY3RUeXBlKTsgfQog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1hcFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFwVmFs
dWVzKGNvbnN0IE1hcFR5cGUmIG1hcCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSW5z
dHJ1bWVudGVkTWFwVmFsdWVzKG1hcCwgbV9vYmplY3RUeXBlKTsgfQotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIExpc3RIYXNoU2V0VHlwZT4gdm9pZCBhZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFz
aFNldFR5cGUmIHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkTGlzdEhhc2hTZXQo
c2V0LCBtX29iamVjdFR5cGUsIHRydWUpOyB9CiAgICAgdm9pZCBhZGRSYXdCdWZmZXIoY29uc3Qg
dm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90IHNpemUpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRp
b24tPmFkZFJhd0J1ZmZlcihidWZmZXIsIG1fb2JqZWN0VHlwZSwgc2l6ZSk7IH0KKyAgICB2b2lk
IGFkZFByaXZhdGVCdWZmZXIoc2l6ZV90IHNpemUpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24t
PmNvdW50T2JqZWN0U2l6ZShtX29iamVjdFR5cGUsIHNpemUpOyB9CiAKICAgICB2b2lkIGFkZFdl
YWtQb2ludGVyKHZvaWQqKSB7IH0KIApAQCAtMjc3LDE3ICsyNzUsNiBAQCB2b2lkIE1lbW9yeUlu
c3RydW1lbnRhdGlvbjo6YWRkSGFzaE1hcChjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCwgTWVt
b3J5T2JqZWN0VAogICAgIGNvdW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIGNhbGN1bGF0
ZUNvbnRhaW5lclNpemUoaGFzaE1hcCwgY29udGVudE9ubHkpKTsKIH0KIAotdGVtcGxhdGU8dHlw
ZW5hbWUgQ29sbGVjdGlvblR5cGU+Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5z
dHJ1bWVudGVkQ29sbGVjdGlvbihjb25zdCBDb2xsZWN0aW9uVHlwZSYgY29sbGVjdGlvbiwgTWVt
b3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkpCi17Ci0gICAg
aWYgKHZpc2l0ZWQoJmNvbGxlY3Rpb24pKQotICAgICAgICByZXR1cm47Ci0gICAgY291bnRPYmpl
Y3RTaXplKG93bmVyT2JqZWN0VHlwZSwgY2FsY3VsYXRlQ29udGFpbmVyU2l6ZShjb2xsZWN0aW9u
LCBjb250ZW50T25seSkpOwotICAgIHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlOjpjb25zdF9pdGVy
YXRvciBlbmQgPSBjb2xsZWN0aW9uLmVuZCgpOwotICAgIGZvciAodHlwZW5hbWUgQ29sbGVjdGlv
blR5cGU6OmNvbnN0X2l0ZXJhdG9yIGkgPSBjb2xsZWN0aW9uLmJlZ2luKCk7IGkgIT0gZW5kOyAr
K2kpCi0gICAgICAgIGFkZE9iamVjdCgqaSwgb3duZXJPYmplY3RUeXBlKTsKLX0KLQogdGVtcGxh
dGU8dHlwZW5hbWUgTWFwVHlwZT4KIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0
cnVtZW50ZWRNYXBFbnRyaWVzKGNvbnN0IE1hcFR5cGUmIG1hcCwgTWVtb3J5T2JqZWN0VHlwZSBv
d25lck9iamVjdFR5cGUpCiB7CkBAIC0zMDYsMTUgKzI5Myw2IEBAIHZvaWQgTWVtb3J5SW5zdHJ1
bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMoY29uc3QgTWFwVHlwZSYgbWFwLCBN
ZW1vcnlPCiAgICAgICAgIGFkZE9iamVjdChpLT5zZWNvbmQsIG93bmVyT2JqZWN0VHlwZSk7CiB9
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIExpc3RIYXNoU2V0VHlwZT4KLXZvaWQgTWVtb3J5SW5zdHJ1
bWVudGF0aW9uOjphZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFzaFNldFR5cGUmIGhhc2hTZXQs
IE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5KQotewot
ICAgIGlmICh2aXNpdGVkKCZoYXNoU2V0KSkKLSAgICAgICAgcmV0dXJuOwotICAgIHNpemVfdCBz
aXplID0gKGNvbnRlbnRPbmx5ID8gMCA6IHNpemVvZihMaXN0SGFzaFNldFR5cGUpKSArIGhhc2hT
ZXQuY2FwYWNpdHkoKSAqIHNpemVvZih2b2lkKikgKyBoYXNoU2V0LnNpemUoKSAqIChzaXplb2Yo
dHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlOjpWYWx1ZVR5cGUpICsgMiAqIHNpemVvZih2b2lkKikp
OwotICAgIGNvdW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIHNpemUpOwotfQotCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBDb250YWluZXI+CiBzaXplX3QgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpj
YWxjdWxhdGVDb250YWluZXJTaXplKGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyLCBib29sIGNv
bnRlbnRPbmx5KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uSGFzaFNldC5oIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFz
aFNldC5oCmluZGV4IDk3MzEyMzZmNmMxNGJkYWQzZGZlZGM3NzI2MzBmYTljMTRkM2MwYjQuLjBh
N2IxMTM5ZDA2NzM1MGUxY2UyY2RlMWVlMDQzYzI5YWMyZTlkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmgKQEAgLTMyLDcgKzMyLDYgQEAKICNk
ZWZpbmUgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldF9oCiAKICNpbmNsdWRlIDx3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uSGFzaFRhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRjY2E3ODEzYmEzNjJi
MmYxZjM3MjVkOGU2MzVkNmZkNzc1MjZjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmgKQEAgLTAsMCArMSw0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXRfaAorI2RlZmluZSBNZW1vcnlJ
bnN0cnVtZW50YXRpb25MaXN0SGFzaFNldF9oCisKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uSGFzaFRhYmxlLmg+CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTx0eXBl
bmFtZSBWYWx1ZUFyZywgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBIYXNoQXJnPgor
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBMaXN0SGFzaFNldDxWYWx1ZUFyZywgaW5saW5l
Q2FwYWNpdHksIEhhc2hBcmc+KiBjb25zdCYgc2V0LCBNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKQoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHNldCk7CisgICAgaW5mby5hZGRQcml2YXRlQnVmZmVyKHNldC0+c2l6ZUluQnl0ZXMoKSAtIHNp
emVvZigqc2V0KSk7CisgICAgaW5mby5hZGRDb2xsZWN0aW9uRWxlbWVudHMoc2V0LT5iZWdpbigp
LCBzZXQtPmVuZCgpKTsKK30KKworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1
bWVudGF0aW9uTGlzdEhhc2hTZXRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudEV2ZW50UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRR
dWV1ZS5jcHAKaW5kZXggOTFkMTk4MDg3ZDM2ODdmNzllY2MwZDQ2MGU1MjViYzlkMTEyZWQzMS4u
NDY3MDZiZTZmNzJiYzEzZDRhZmJjZjZmMDEyNzExNzk5NWVhYjc0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJTdXNwZW5kYWJsZVRpbWVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+Cisj
aW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcAppbmRleCBjNzM3NzkyYmJjMjFiMWNhZDdmM2M4MDM1
YzgyNTdiMDc1YWM3OTJkLi5mYzRhYTMyZDdlNjZkNjkwMWJhMGQ1Yzg2YjZjNThhNDRjNzE2ODll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxl
Y3Rpb24uY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIK
ICNpbmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCIKICNpbmNsdWRlICJXZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bkxpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OTksNyArNTAwLDcgQEAgdm9pZCBEb2N1
bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmoKICAgICBpbmZvLmFkZE1lbWJlcihtX3BhZ2VHcm91cFVzZXJTaGVldHMp
OwogICAgIGluZm8uYWRkTWVtYmVyKG1fdXNlclNoZWV0cyk7CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9hdXRob3JTdHlsZVNoZWV0cyk7Ci0gICAgaW5mby5hZGRMaXN0SGFzaFNldChtX3N0eWxlU2hl
ZXRDYW5kaWRhdGVOb2Rlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdHlsZVNoZWV0Q2FuZGlk
YXRlTm9kZXMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcHJlZmVycmVkU3R5bGVzaGVldFNldE5h
bWUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc2VsZWN0ZWRTdHlsZXNoZWV0U2V0TmFtZSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcAppbmRleCBiYjY4NzQwNTFiY2I5NDgxZGU0ZDBmYjRhYWU0NmM2MjEwMjIxM2YyLi5k
MzMyZTNjNTY2ODM3MTdjNDAxYjM4NzMwMDc0OTAyYWQ5MThhNmYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ5
LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaD4KKyNp
bmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05MDIsOCArOTAzLDcgQEAgdm9pZCBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykKICAgICAgICAgaW5mby5hZGRNZW1iZXIoaS0+c2Vjb25kKTsKICAgICB9
CiAgICAgaW5mby5hZGRNZW1iZXIobV92YWxpZGF0ZWRVUkxzKTsKLSAgICBpZiAobV9wcmVsb2Fk
cykKLSAgICAgICAgaW5mby5hZGRMaXN0SGFzaFNldCgqbV9wcmVsb2Fkcyk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9wcmVsb2Fkcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5nUHJlbG9h
ZHMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9y
eUluc3RydW1lbnRhdGlvblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9N
ZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAppbmRleCAxMTIwNDQ1ZGMwNWVmNTdhZjEzZWE1
Mzg4Mzk3ZWMxOTFiM2UyZDg2Li5lOWMyNjRkZjQxYmI2M2U5OTA2OGI3N2MwYmM1M2E1OWNkMTU0
OGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKQEAgLTM4LDggKzM4LDEwIEBACiAKICNpbmNsdWRl
IDx3dGYvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25B
cnJheUJ1ZmZlclZpZXcuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFz
aFNldC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ1MCw2ICs0
NTIsMjQgQEAgVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBoYXNoU2V0V2l0aEluc3Ry
dW1lbnRlZFR5cGUpCiAgICAgRVhQRUNUX0VRKGNvdW50ICsgMiwgKHNpemVfdCloZWxwZXIudmlz
aXRlZE9iamVjdHMoKSk7CiB9CiAKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgbGlz
dEhhc2hTZXRXaXRoSW5zdHJ1bWVudGVkVHlwZSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNp
dGVkT2JqZWN0czsKKyAgICBJbnN0cnVtZW50YXRpb25UZXN0SGVscGVyIGhlbHBlcjsKKworICAg
IHR5cGVkZWYgTGlzdEhhc2hTZXQ8U3RyaW5nLCA4PiBWYWx1ZVR5cGU7CisgICAgT3duUHRyPFZh
bHVlVHlwZT4gdmFsdWUgPSBhZG9wdFB0cihuZXcgVmFsdWVUeXBlKCkpOworICAgIHNpemVfdCBj
b3VudCA9IDEwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAg
ICAgdmFsdWUtPmFkZChTdHJpbmc6Om51bWJlcihpKSk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8
VmFsdWVUeXBlKiA+IHJvb3QodmFsdWUuZ2V0KCkpOworICAgIGhlbHBlci5hZGRSb290T2JqZWN0
KHJvb3QpOworICAgIEVYUEVDVF9FUShzaXplb2YoVmFsdWVUeXBlKSArIHNpemVvZihTdHJpbmcp
ICogdmFsdWUtPmNhcGFjaXR5KCkgKyBzaXplb2YoU3RyaW5nSW1wbCkgKiB2YWx1ZS0+c2l6ZSgp
ICsKKyAgICAgICAgc2l6ZW9mKFdURjo6TGlzdEhhc2hTZXROb2RlQWxsb2NhdG9yPFN0cmluZywg
OD4pICsgc2l6ZW9mKFdURjo6TGlzdEhhc2hTZXROb2RlPFN0cmluZywgOD4pICogKGNvdW50IC0g
OCksCisgICAgICAgIGhlbHBlci5yZXBvcnRlZFNpemVGb3JBbGxUeXBlcygpKTsKKyAgICBFWFBF
Q1RfRVEoMCwgdmlzaXRlZE9iamVjdHMuc2l6ZSgpKTsKK30KKwogVEVTVChNZW1vcnlJbnN0cnVt
ZW50YXRpb25UZXN0LCBhcnJheUJ1ZmZlcikKIHsKICAgICBJbnN0cnVtZW50YXRpb25UZXN0SGVs
cGVyIGhlbHBlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166183</attachid>
            <date>2012-09-28 02:26:15 -0700</date>
            <delta_ts>2012-09-28 04:55:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97786-20120928132532.patch</filename>
            <type>text/plain</type>
            <size>21505</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJlYmI0ODVjMjkyY2RhNWVhNWFlMTc2
NmNhZjA2NTlkNTUxOGYzYjEuLmIyNzQxOTI4ZWU5YTEyNTg1ZTY2NmFiMmJjYTMzNTE4YzY2OWU2
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTItMDktMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBtZW1v
cnkgaW5zdHJ1bWVudGF0aW9uIGZvciBMaXN0SGFzaFNldAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZv
ciBMaXN0SGFzaFNldC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogV1RGLmd5cGk6CisgICAgICAgICogV1RGLnBybzoKKyAgICAgICAgKiBXVEYudmNwcm9qL1dU
Ri52Y3Byb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogd3RmL0hhc2hTZXQuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgICogd3RmL0xpc3RI
YXNoU2V0Lmg6CisgICAgICAgIChMaXN0SGFzaFNldCk6CisgICAgICAgIChMaXN0SGFzaFNldE5v
ZGVBbGxvY2F0b3IpOiBjaGFuZ2VkIHZpc2liaWxpdHkgb2YgaW5Qb29sIG1ldGhvZCB0byBwdWJs
aWMKKyAgICAgICAgKFdURjo6TGlzdEhhc2hTZXROb2RlQWxsb2NhdG9yOjpwb29sKToKKyAgICAg
ICAgKFdURjo6TGlzdEhhc2hTZXROb2RlQWxsb2NhdG9yOjpwYXN0UG9vbCk6CisgICAgICAgIChX
VEY6Ojo6c2l6ZUluQnl0ZXMpOiBhZGRlZCBhIG10aG9kIHRoYXQgcmV0dXJucyBzaXplIG9mIHRo
ZSBzZXQgaW4gYnl0ZXMgaW5jbHVkaW5nCisgICAgICAgIGFsbCBpdHMgaW50ZXJuYWxzIGJ1dCBu
b3QgdGhlIGNvbnRlbnQgZWxlbWVudHMuCisgICAgICAgIChXVEYpOgorICAgICAgICAqIHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb24uaDogcmVtb3ZlZCBvbnNvbGV0ZSBtZXRob2QuIEFsbCBjbGll
bnRzIHdlcmUgdXBkYXRlZCB0bworICAgICAgICB1c2UgZ2VuZXJpYyBhZGRNZW1iZXIgaW5zdGVh
ZC4KKyAgICAgICAgKE1lbW9yeUluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9y
eUNsYXNzSW5mbzo6YWRkUHJpdmF0ZUJ1ZmZlcik6CisgICAgICAgICogd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvbkhhc2hTZXQuaDoKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
TGlzdEhhc2hTZXQuaDogQ29waWVkIGZyb20gU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uSGFzaFNldC5oLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6cmVwb3J0TWVt
b3J5VXNhZ2UpOgorCiAyMDEyLTA5LTI3ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBjbGFuZyBwcmFnbWFzIHRvIGRpc2FibGUgd2Fy
bmluZ3MgaW4gTm9uY29weWFibGUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk2OTM0NGFjZTVjNGJiYzNjNzA2
OTVjNjllNjI1ODNmZWFlNjEwZjAuLjNiNGYyYTNkODRjYzcwNDgyZjUyZjg2NzI5ZWVjMTc2MGM1
MTUwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wOS0yNyAgWXVyeSBTZW1p
a2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBw
cm92aWRlIG1lbW9yeSBpbnN0cnVtZW50YXRpb24gZm9yIExpc3RIYXNoU2V0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Nzc4NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN3aXRjaGVkIGV4aXN0aW5nIHVz
YWdlcyBvZiBhZGRMaXN0SGFzaFNldCB0byB0aGUgZ2VuZXJpYyBpbnN0cnVtZW50YXRpb24gbWVj
aGFuaXNtCisgICAgICAgIGFzIGl0IHNob3VsZCB3b3JrIGp1c3QganVzdCBmaW5lIG5vdyB0aGF0
IHRoZXJlIGlzIGEgbWVtb3J5IGluc3RydW1lbnRhdGlvbiBvZgorICAgICAgICBMaXN0SGFzaFNl
dC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKwogMjAxMi0wOS0y
NyAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtGb3Jt
c10gQWRkaW5nIHBsYWNlaG9sZGVyIGZlYXR1cmUgdG8gRGF0ZVRpbWVOdW1lcmljRWxlbWVudCwg
YW5kIHVwZGF0ZSBpdHMgZXhpc3Rpbmcgc3ViY2xhc3Nlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggYWZkM2ViZDEyYzc4NTNhYjI1YjVkYmJkN2ZlMDVlY2JmYmVmY2U4MC4uZDQwODU3
NGE4YjUyY2Y2MmUzOTJiMGM4Y2MwYjJiMzM4MzlmYjA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0yNyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1
cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIG1lbW9y
eSBpbnN0cnVtZW50YXRpb24gZm9yIExpc3RIYXNoU2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Nzc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgdGVzdCBmb3IgTGlzdEhhc2hTZXQgbWVt
b3J5IGluc3RydW1lbnRhdGlvbi4KKworICAgICAgICAqIHRlc3RzL01lbW9yeUluc3RydW1lbnRh
dGlvblRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisgICAgICAgIChXZWJDb3Jl
KToKKwogMjAxMi0wOS0yNyAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW0Nocm9taXVtXSBVcGRhdGUgV2ViVmVjdG9yLmggcmVmZXJlbmNlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDA4ZmFjZGM4ODMxN2U3YWFmNGIzMTU4MjMyNjViNWRkMGE2MDYy
ZmEuLjNlOGRlMDkwZmU2MjQyM2UzZjIxMTkwMTFhM2JmZWY4MmIzNjk5NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KQEAgLTgzLDYgKzgzLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJj
ZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVmZmVyVmlldy5oIFwKICAgICBT
b3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmggXAogICAgIFNvdXJj
ZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hUYWJsZS5oIFwKKyAgICBTb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oIFwKICAgICBTb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBcCiAgICAgU291cmNlL1dURi93
dGYvTWVzc2FnZVF1ZXVlLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2UvV1RGL1dURi5neXBp
CmluZGV4IDEwZTMyZGYyNmQxNTdjYjgxMDEwYTJmZTM2OTNjYjY5Zjk2Y2IzNjcuLjAwNDBhZDlh
NWI1Y2IyMDQwZjU1MzUwOGI5ZTgwZmJmNGViY2RhYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
V1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtNTMsNiArNTMsNyBAQAogICAg
ICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZlclZpZXcuaCcsCiAg
ICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCcsCiAgICAgICAg
ICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hUYWJsZS5oJywKKyAgICAgICAgICAg
ICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCcsCiAgICAgICAgICAgICAn
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oJywKICAgICAgICAgICAgICd3dGYvTWVz
c2FnZVF1ZXVlLmgnLAogICAgICAgICAgICAgJ3d0Zi9Ob25Db3B5aW5nU29ydC5oJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRleCAwMDA0
ZGU4MWFmODYxM2Y3ZGUzZDY3ZWVkNjNlODE3MmMwMzRhOWE5Li5iMzA2MmUzNmZmMmViYzNmZGUx
NmM0MGRkMmFiOWVmMzE3M2E0MjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5wcm8KKysr
IGIvU291cmNlL1dURi9XVEYucHJvCkBAIC05MCw2ICs5MCw3IEBAIEhFQURFUlMgKz0gXAogICAg
IE1lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVmZmVyVmlldy5oIFwKICAgICBNZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoU2V0LmggXAogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hUYWJs
ZS5oIFwKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oIFwKICAgICBNZW1v
cnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBcCiAgICAgTWVzc2FnZVF1ZXVlLmggXAogICAgIE1l
dGFBbGxvY2F0b3IuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZj
cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCmluZGV4IDY1MTM0NGFhYTli
YmRmMTA5MTFjNjJhMTVhOTY1NmE3OTg0MTY4ZTMuLjA3OGE1NDY0YmQ4YTFlY2RmN2I3YTI2NjFi
MjBkOGNkMzFmMTU3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNw
cm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC05MTcsNiArOTE3
LDEwIEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJICAgICAgICBSZWxhdGl2ZVBhdGg9
Ii4uXHd0ZlxNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oIgorCQkJPgorCQk8L0Zp
bGU+CisJCTxGaWxlCiAJCSAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1
bWVudGF0aW9uVmVjdG9yLmgiCiAJCQk+CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDlkNzY3ZjNlMTcxYTBhZDc3MWM4NGQxMGUzY2ViZmM3
YzQ5OTM5MzkuLjI3YmFhNjlkOWFiNzZhNzNiZjhmN2ZiYmMxMjY4MDYxNTkzMjMxODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjc2LDYgKzI3Niw3IEBA
CiAJCUE4QTQ3NDhDMTUxQTgyNjQwMDQxMjNGRiAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAv
KiBjb25maWcuaCAqLzsgfTsKIAkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGlt
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU0
OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAqLzsgfTsKIAkJQ0Q1NDk3QUQx
NTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGlt
ZS5oICovOyB9OworCQlGMzUyNUUyQTE2MTQ5RkY0MDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uTGlzdEhhc2hTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEYzNTI1RTI5MTYxNDlGRjQwMDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRp
b25MaXN0SGFzaFNldC5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAK
IC8qIEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwpAQCAtNTU3LDYgKzU1OCw3IEBA
CiAJCUE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAvKiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjM1MjVFMjkxNjE0OUZGNDAwMjc4QkMxIC8qIE1lbW9yeUluc3RydW1l
bnRhdGlvbkxpc3RIYXNoU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
bW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEZy
YW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTcwMSw2ICs3MDMsNyBAQAogCQkJCTRG
RDg1NTQ2MTYxMzNFMEUwMEM1QjcwNCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZl
clZpZXcuaCAqLywKIAkJCQk0RjFCMkRCNTE2MEI0NEFBMDA1ODY1NTkgLyogTWVtb3J5SW5zdHJ1
bWVudGF0aW9uSGFzaFNldC5oICovLAogCQkJCTRGMEJBQkJBMTYxMUQ1RjUwMDAyM0Y2NiAvKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoVGFibGUuaCAqLywKKwkJCQlGMzUyNUUyOTE2MTQ5RkY0
MDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCAqLywKIAkJCQk0
RkNCNzEwOTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgg
Ki8sCiAJCQkJQThBNDcyQ0MxNTFBODI1QjAwNDEyM0ZGIC8qIE1lc3NhZ2VRdWV1ZS5oICovLAog
CQkJCUE4QTQ3MkNEMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLywKQEAg
LTExNTcsNiArMTE2MCw3IEBACiAJCQkJNEYxQjJEQjYxNjBCNDRBQTAwNTg2NTU5IC8qIE1lbW9y
eUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGMEJBQkJCMTYx
MUQ1RjUwMDAyM0Y2NiAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoVGFibGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTRGRDg1NTQ3MTYxMzNFMEUwMEM1QjcwNCAvKiBNZW1vcnlJbnN0cnVtZW50
YXRpb25BcnJheUJ1ZmZlclZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCUYzNTI1RTJBMTYxNDlG
RjQwMDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoU2V0LmggYi9Tb3VyY2UvV1RG
L3d0Zi9IYXNoU2V0LmgKaW5kZXggZTZlZTU5MjlhZmFhMzU0M2NlZWUzOWQ2OTc1NDBmNzk0ZmUy
MTk3Yi4uNWFjN2Y1ZjJiMDViMDYxMDMwNTI2MmU5Y2NhYWU0YWVkN2YzOGQ4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvSGFzaFNldC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hTZXQu
aApAQCAtMjcsNyArMjcsNiBAQAogbmFtZXNwYWNlIFdURiB7CiAKICAgICBzdHJ1Y3QgSWRlbnRp
dHlFeHRyYWN0b3I7Ci0gICAgY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKICAgICAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJh
aXRzPiBjbGFzcyBIYXNoU2V0OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFt
ZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9MaXN0SGFzaFNldC5oIGIvU291cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaAppbmRleCBm
YTY1NGM1ZDlkNzNjMmNlMjU3ZWU2MzFiMjM2MDE3MzNkOTA0MzA3Li44ZmVlZjcyYjMxMWZhYjg0
NzAwMTA5ZTJiNmUzYjhlYTExMjg5MzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MaXN0
SGFzaFNldC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xpc3RIYXNoU2V0LmgKQEAgLTk4LDYgKzk4
LDggQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIGludCBjYXBhY2l0eSgpIGNvbnN0OwogICAg
ICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAorICAgICAgICBzaXplX3Qgc2l6ZUluQnl0ZXMo
KSBjb25zdDsKKwogICAgICAgICBpdGVyYXRvciBiZWdpbigpOwogICAgICAgICBpdGVyYXRvciBl
bmQoKTsKICAgICAgICAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdDsKQEAgLTIwOSwxNSAr
MjExLDE1IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAgZmFzdEZyZWUobm9kZSk7CiAg
ICAgICAgIH0KIAotICAgIHByaXZhdGU6Ci0gICAgICAgIE5vZGUqIHBvb2woKSB7IHJldHVybiBy
ZWludGVycHJldF9jYXN0X3B0cjxOb2RlKj4obV9wb29sLnBvb2wpOyB9Ci0gICAgICAgIE5vZGUq
IHBhc3RQb29sKCkgeyByZXR1cm4gcG9vbCgpICsgbV9wb29sU2l6ZTsgfQotCiAgICAgICAgIGJv
b2wgaW5Qb29sKE5vZGUqIG5vZGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBub2Rl
ID49IHBvb2woKSAmJiBub2RlIDwgcGFzdFBvb2woKTsKICAgICAgICAgfQogCisgICAgcHJpdmF0
ZToKKyAgICAgICAgTm9kZSogcG9vbCgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPE5v
ZGUqPihtX3Bvb2wucG9vbCk7IH0KKyAgICAgICAgTm9kZSogcGFzdFBvb2woKSB7IHJldHVybiBw
b29sKCkgKyBtX3Bvb2xTaXplOyB9CisKICAgICAgICAgTm9kZSogbV9mcmVlTGlzdDsKICAgICAg
ICAgYm9vbCBtX2lzRG9uZVdpdGhJbml0aWFsRnJlZUxpc3Q7CiAgICAgICAgIHN0YXRpYyBjb25z
dCBzaXplX3QgbV9wb29sU2l6ZSA9IGlubGluZUNhcGFjaXR5OwpAQCAtNTYwLDYgKzU2MiwxOCBA
QCBuYW1lc3BhY2UgV1RGIHsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXpl
X3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+CisgICAgc2l6ZV90IExpc3RIYXNoU2V0PFQs
IGlubGluZUNhcGFjaXR5LCBVPjo6c2l6ZUluQnl0ZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAg
c2l6ZV90IHJlc3VsdCA9IHNpemVvZigqdGhpcykgKyBzaXplb2YoKm1fYWxsb2NhdG9yKTsKKyAg
ICAgICAgcmVzdWx0ICs9IHNpemVvZih0eXBlbmFtZSBJbXBsVHlwZTo6VmFsdWVUeXBlKSAqIG1f
aW1wbC5jYXBhY2l0eSgpOworICAgICAgICBmb3IgKE5vZGUqIG5vZGUgPSBtX2hlYWQ7IG5vZGU7
IG5vZGUgPSBub2RlLT5tX25leHQpIHsKKyAgICAgICAgICAgIGlmICghbV9hbGxvY2F0b3ItPmlu
UG9vbChub2RlKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gc2l6ZW9mKE5vZGUpOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBVPgogICAgIGlubGluZSB0
eXBlbmFtZSBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46Oml0ZXJhdG9yIExpc3RI
YXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6YmVnaW4oKQogICAgIHsKICAgICAgICAgcmV0
dXJuIG1ha2VJdGVyYXRvcihtX2hlYWQpOyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01l
bW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmgKaW5kZXggOWJkZDIzZTE1MzFkZGM1ZjFlOGU5NzVlYmE4NzVmOTlhNjhmMzY1MS4uYzM2
YzZiODE2NmU3MjI2NzFhOTQzNGM5NGRlYjU4M2JhMTk1ODk2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dURi93dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE1NywxMCArMTU3LDggQEAgcHJpdmF0ZToKIAogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0KGNvbnN0IFQmIHQsIE1lbW9yeU9i
amVjdFR5cGUgb3duZXJPYmplY3RUeXBlKSB7IE93bmluZ1RyYWl0czxUPjo6YWRkT2JqZWN0KHRo
aXMsIHQsIG93bmVyT2JqZWN0VHlwZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoTWFw
VHlwZT4gdm9pZCBhZGRIYXNoTWFwKGNvbnN0IEhhc2hNYXBUeXBlJiwgTWVtb3J5T2JqZWN0VHlw
ZSwgYm9vbCBjb250ZW50T25seSA9IGZhbHNlKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xs
ZWN0aW9uVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKGNvbnN0IENvbGxlY3Rp
b25UeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSwgYm9vbCBjb250ZW50T25seSA9IGZhbHNlKTsKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZE1hcEVudHJp
ZXMoY29uc3QgTWFwVHlwZSYsIE1lbW9yeU9iamVjdFR5cGUpOwogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIE1hcFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFwVmFsdWVzKGNvbnN0IE1hcFR5cGUm
LCBNZW1vcnlPYmplY3RUeXBlKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMaXN0SGFzaFNldFR5
cGU+IHZvaWQgYWRkTGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiwgTWVtb3J5T2Jq
ZWN0VHlwZSwgYm9vbCBjb250ZW50T25seSA9IGZhbHNlKTsKICAgICB2b2lkIGFkZFJhd0J1ZmZl
cihjb25zdCB2b2lkKiBjb25zdCYgYnVmZmVyLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0
VHlwZSwgc2l6ZV90IHNpemUpCiAgICAgewogICAgICAgICBpZiAoIWJ1ZmZlciB8fCB2aXNpdGVk
KGJ1ZmZlcikpCkBAIC0yMTgsOCArMjE2LDggQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEhhc2hTZXRUeXBlPiB2b2lkIGFkZEhhc2hDb3VudGVkU2V0KGNvbnN0IEhhc2hTZXRUeXBl
JiBzZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEhhc2hNYXAoc2V0LCBtX29iamVj
dFR5cGUsIHRydWUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBhZGRJ
bnN0cnVtZW50ZWRNYXBFbnRyaWVzKGNvbnN0IE1hcFR5cGUmIG1hcCkgeyBtX21lbW9yeUluc3Ry
dW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhtYXAsIG1fb2JqZWN0VHlwZSk7
IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZE1h
cFZhbHVlcyhjb25zdCBNYXBUeXBlJiBtYXApIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFk
ZEluc3RydW1lbnRlZE1hcFZhbHVlcyhtYXAsIG1fb2JqZWN0VHlwZSk7IH0KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBMaXN0SGFzaFNldFR5cGU+IHZvaWQgYWRkTGlzdEhhc2hTZXQoY29uc3QgTGlz
dEhhc2hTZXRUeXBlJiBzZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZExpc3RIYXNo
U2V0KHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQogICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNv
bnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIHNpemVfdCBzaXplKSB7IG1fbWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLT5hZGRSYXdCdWZmZXIoYnVmZmVyLCBtX29iamVjdFR5cGUsIHNpemUpOyB9CisgICAg
dm9pZCBhZGRQcml2YXRlQnVmZmVyKHNpemVfdCBzaXplKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0
aW9uLT5jb3VudE9iamVjdFNpemUobV9vYmplY3RUeXBlLCBzaXplKTsgfQogCiAgICAgdm9pZCBh
ZGRXZWFrUG9pbnRlcih2b2lkKikgeyB9CiAKQEAgLTI3NywxNyArMjc1LDYgQEAgdm9pZCBNZW1v
cnlJbnN0cnVtZW50YXRpb246OmFkZEhhc2hNYXAoY29uc3QgSGFzaE1hcFR5cGUmIGhhc2hNYXAs
IE1lbW9yeU9iamVjdFQKICAgICBjb3VudE9iamVjdFNpemUob3duZXJPYmplY3RUeXBlLCBjYWxj
dWxhdGVDb250YWluZXJTaXplKGhhc2hNYXAsIGNvbnRlbnRPbmx5KSk7CiB9CiAKLXRlbXBsYXRl
PHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFk
ZEluc3RydW1lbnRlZENvbGxlY3Rpb24oY29uc3QgQ29sbGVjdGlvblR5cGUmIGNvbGxlY3Rpb24s
IE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5KQotewot
ICAgIGlmICh2aXNpdGVkKCZjb2xsZWN0aW9uKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGNvdW50
T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIGNhbGN1bGF0ZUNvbnRhaW5lclNpemUoY29sbGVj
dGlvbiwgY29udGVudE9ubHkpKTsKLSAgICB0eXBlbmFtZSBDb2xsZWN0aW9uVHlwZTo6Y29uc3Rf
aXRlcmF0b3IgZW5kID0gY29sbGVjdGlvbi5lbmQoKTsKLSAgICBmb3IgKHR5cGVuYW1lIENvbGxl
Y3Rpb25UeXBlOjpjb25zdF9pdGVyYXRvciBpID0gY29sbGVjdGlvbi5iZWdpbigpOyBpICE9IGVu
ZDsgKytpKQotICAgICAgICBhZGRPYmplY3QoKmksIG93bmVyT2JqZWN0VHlwZSk7Ci19Ci0KIHRl
bXBsYXRlPHR5cGVuYW1lIE1hcFR5cGU+CiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRk
SW5zdHJ1bWVudGVkTWFwRW50cmllcyhjb25zdCBNYXBUeXBlJiBtYXAsIE1lbW9yeU9iamVjdFR5
cGUgb3duZXJPYmplY3RUeXBlKQogewpAQCAtMzA2LDE1ICsyOTMsNiBAQCB2b2lkIE1lbW9yeUlu
c3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkTWFwVmFsdWVzKGNvbnN0IE1hcFR5cGUmIG1h
cCwgTWVtb3J5TwogICAgICAgICBhZGRPYmplY3QoaS0+c2Vjb25kLCBvd25lck9iamVjdFR5cGUp
OwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBMaXN0SGFzaFNldFR5cGU+Ci12b2lkIE1lbW9yeUlu
c3RydW1lbnRhdGlvbjo6YWRkTGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiBoYXNo
U2V0LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwgYm9vbCBjb250ZW50T25seSkK
LXsKLSAgICBpZiAodmlzaXRlZCgmaGFzaFNldCkpCi0gICAgICAgIHJldHVybjsKLSAgICBzaXpl
X3Qgc2l6ZSA9IChjb250ZW50T25seSA/IDAgOiBzaXplb2YoTGlzdEhhc2hTZXRUeXBlKSkgKyBo
YXNoU2V0LmNhcGFjaXR5KCkgKiBzaXplb2Yodm9pZCopICsgaGFzaFNldC5zaXplKCkgKiAoc2l6
ZW9mKHR5cGVuYW1lIExpc3RIYXNoU2V0VHlwZTo6VmFsdWVUeXBlKSArIDIgKiBzaXplb2Yodm9p
ZCopKTsKLSAgICBjb3VudE9iamVjdFNpemUob3duZXJPYmplY3RUeXBlLCBzaXplKTsKLX0KLQog
dGVtcGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyPgogc2l6ZV90IE1lbW9yeUluc3RydW1lbnRhdGlv
bjo6Y2FsY3VsYXRlQ29udGFpbmVyU2l6ZShjb25zdCBDb250YWluZXImIGNvbnRhaW5lciwgYm9v
bCBjb250ZW50T25seSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvbkhhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bkhhc2hTZXQuaAppbmRleCA5NzMxMjM2ZjZjMTRiZGFkM2RmZWRjNzcyNjMwZmE5YzE0ZDNjMGI0
Li4wYTdiMTEzOWQwNjczNTBlMWNlMmNkZTFlZTA0M2MyOWFjMmU5ZDk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmgKKysrIGIvU291cmNl
L1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oCkBAIC0zMiw3ICszMiw2IEBA
CiAjZGVmaW5lIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXRfaAogCiAjaW5jbHVkZSA8d3Rm
L01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hUYWJsZS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0Y2NhNzgxM2Jh
MzYyYjJmMWYzNzI1ZDhlNjM1ZDZmZDc3NTI2YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oCkBAIC0wLDAgKzEsNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0X2gKKyNkZWZpbmUgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXRfaAorCisjaW5jbHVkZSA8d3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbkhhc2hUYWJsZS5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
dHlwZW5hbWUgVmFsdWVBcmcsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgSGFzaEFy
Zz4KK3ZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgTGlzdEhhc2hTZXQ8VmFsdWVBcmcsIGlu
bGluZUNhcGFjaXR5LCBIYXNoQXJnPiogY29uc3QmIHNldCwgTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCBzZXQpOworICAgIGluZm8uYWRkUHJpdmF0ZUJ1ZmZlcihzZXQtPnNpemVJbkJ5dGVzKCkg
LSBzaXplb2YoKnNldCkpOworICAgIGluZm8uYWRkQ29sbGVjdGlvbkVsZW1lbnRzKHNldC0+YmVn
aW4oKSwgc2V0LT5lbmQoKSk7Cit9CisKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKE1lbW9yeUlu
c3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0X2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2
ZW50UXVldWUuY3BwCmluZGV4IDkxZDE5ODA4N2QzNjg3Zjc5ZWNjMGQ0NjBlNTI1YmM5ZDExMmVk
MzEuLjQ2NzA2YmU2ZjcyYmMxM2Q0YWZiY2Y2ZjAxMjcxMTc5OTVlYWI3NDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSAiU3VzcGVuZGFibGVUaW1lci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5o
PgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKaW5kZXggYzczNzc5MmJiYzIxYjFjYWQ3ZjNj
ODAzNWM4MjU3YjA3NWFjNzkyZC4uZmM0YWEzMmQ3ZTY2ZDY5MDFiYTBkNWM4NmI2YzU4YTQ0Yzcx
Njg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENv
bGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRD
b2xsZWN0aW9uLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0
LmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb25MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25W
ZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDk5LDcgKzUwMCw3IEBAIHZvaWQg
RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqCiAgICAgaW5mby5hZGRNZW1iZXIobV9wYWdlR3JvdXBVc2VyU2hl
ZXRzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3VzZXJTaGVldHMpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fYXV0aG9yU3R5bGVTaGVldHMpOwotICAgIGluZm8uYWRkTGlzdEhhc2hTZXQobV9zdHls
ZVNoZWV0Q2FuZGlkYXRlTm9kZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGVTaGVldENh
bmRpZGF0ZU5vZGVzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3ByZWZlcnJlZFN0eWxlc2hlZXRT
ZXROYW1lKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3NlbGVjdGVkU3R5bGVzaGVldFNldE5hbWUp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHAKaW5kZXggYmI2ODc0MDUxYmNiOTQ4MWRlNGQwZmI0YWFlNDZjNjIxMDIyMTNm
Mi4uZDMzMmUzYzU2NjgzNzE3YzQwMWIzODczMDA3NDkwMmFkOTE4YTZmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBA
IC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+
CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtOTAyLDggKzkwMyw3IEBAIHZvaWQg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pCiAgICAgICAgIGluZm8uYWRkTWVtYmVyKGktPnNlY29uZCk7CiAg
ICAgfQogICAgIGluZm8uYWRkTWVtYmVyKG1fdmFsaWRhdGVkVVJMcyk7Ci0gICAgaWYgKG1fcHJl
bG9hZHMpCi0gICAgICAgIGluZm8uYWRkTGlzdEhhc2hTZXQoKm1fcHJlbG9hZHMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fcHJlbG9hZHMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcGVuZGluZ1By
ZWxvYWRzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9N
ZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKaW5kZXggMTEyMDQ0NWRjMDVlZjU3YWYx
M2VhNTM4ODM5N2VjMTkxYjNlMmQ4Ni4uZTljMjY0ZGY0MWJiNjNlOTkwNjhiNzdjMGJjNTNhNTlj
ZDE1NDhlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJ
bnN0cnVtZW50YXRpb25UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCkBAIC0zOCw4ICszOCwxMCBAQAogCiAjaW5j
bHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNs
dWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0
aW9uQXJyYXlCdWZmZXJWaWV3Lmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bkhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00NTAs
NiArNDUyLDI0IEBAIFRFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgaGFzaFNldFdpdGhJ
bnN0cnVtZW50ZWRUeXBlKQogICAgIEVYUEVDVF9FUShjb3VudCArIDIsIChzaXplX3QpaGVscGVy
LnZpc2l0ZWRPYmplY3RzKCkpOwogfQogCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3Qs
IGxpc3RIYXNoU2V0V2l0aEluc3RydW1lbnRlZFR5cGUpCit7CisgICAgVmlzaXRlZE9iamVjdHMg
dmlzaXRlZE9iamVjdHM7CisgICAgSW5zdHJ1bWVudGF0aW9uVGVzdEhlbHBlciBoZWxwZXI7CisK
KyAgICB0eXBlZGVmIExpc3RIYXNoU2V0PFN0cmluZywgOD4gVmFsdWVUeXBlOworICAgIE93blB0
cjxWYWx1ZVR5cGU+IHZhbHVlID0gYWRvcHRQdHIobmV3IFZhbHVlVHlwZSgpKTsKKyAgICBzaXpl
X3QgY291bnQgPSAxMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisg
ICAgICAgIHZhbHVlLT5hZGQoU3RyaW5nOjpudW1iZXIoaSkpOworICAgIEluc3RydW1lbnRlZE93
bmVyPFZhbHVlVHlwZSogPiByb290KHZhbHVlLmdldCgpKTsKKyAgICBoZWxwZXIuYWRkUm9vdE9i
amVjdChyb290KTsKKyAgICBFWFBFQ1RfRVEoc2l6ZW9mKFZhbHVlVHlwZSkgKyBzaXplb2YoU3Ry
aW5nKSAqIHZhbHVlLT5jYXBhY2l0eSgpICsgc2l6ZW9mKFN0cmluZ0ltcGwpICogdmFsdWUtPnNp
emUoKSArCisgICAgICAgIHNpemVvZihXVEY6Okxpc3RIYXNoU2V0Tm9kZUFsbG9jYXRvcjxTdHJp
bmcsIDg+KSArIHNpemVvZihXVEY6Okxpc3RIYXNoU2V0Tm9kZTxTdHJpbmcsIDg+KSAqIChjb3Vu
dCAtIDgpLAorICAgICAgICBoZWxwZXIucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAg
RVhQRUNUX0VRKDAsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKIFRFU1QoTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVGVzdCwgYXJyYXlCdWZmZXIpCiB7CiAgICAgSW5zdHJ1bWVudGF0aW9uVGVz
dEhlbHBlciBoZWxwZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166211</attachid>
            <date>2012-09-28 04:55:13 -0700</date>
            <delta_ts>2012-10-03 04:57:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97786-20120928155429.patch</filename>
            <type>text/plain</type>
            <size>20423</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZmMzQyNTEwNjhmMWU0YTY5NWUyZTc1
MTBmYjg2NWZlZWE3NmRiYWQuLjJlYmQ0NzQ5ODg2YzRhZTg1YzA1OTlhNjkxNDNjNDZiYTE4MGQz
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTItMDktMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBtZW1v
cnkgaW5zdHJ1bWVudGF0aW9uIGZvciBMaXN0SGFzaFNldAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZv
ciBMaXN0SGFzaFNldC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogV1RGLmd5cGk6CisgICAgICAgICogV1RGLnBybzoKKyAgICAgICAgKiBXVEYudmNwcm9qL1dU
Ri52Y3Byb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogd3RmL0hhc2hTZXQuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgICogd3RmL0xpc3RI
YXNoU2V0Lmg6CisgICAgICAgIChMaXN0SGFzaFNldCk6CisgICAgICAgIChMaXN0SGFzaFNldE5v
ZGVBbGxvY2F0b3IpOiBjaGFuZ2VkIHZpc2liaWxpdHkgb2YgaW5Qb29sIG1ldGhvZCB0byBwdWJs
aWMKKyAgICAgICAgKFdURjo6TGlzdEhhc2hTZXROb2RlQWxsb2NhdG9yOjpwb29sKToKKyAgICAg
ICAgKFdURjo6TGlzdEhhc2hTZXROb2RlQWxsb2NhdG9yOjpwYXN0UG9vbCk6CisgICAgICAgIChX
VEY6Ojo6c2l6ZUluQnl0ZXMpOiBhZGRlZCBhIG10aG9kIHRoYXQgcmV0dXJucyBzaXplIG9mIHRo
ZSBzZXQgaW4gYnl0ZXMgaW5jbHVkaW5nCisgICAgICAgIGFsbCBpdHMgaW50ZXJuYWxzIGJ1dCBu
b3QgdGhlIGNvbnRlbnQgZWxlbWVudHMuCisgICAgICAgIChXVEYpOgorICAgICAgICAqIHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb24uaDogcmVtb3ZlZCBvbnNvbGV0ZSBtZXRob2QuIEFsbCBjbGll
bnRzIHdlcmUgdXBkYXRlZCB0bworICAgICAgICB1c2UgZ2VuZXJpYyBhZGRNZW1iZXIgaW5zdGVh
ZC4KKyAgICAgICAgKE1lbW9yeUluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9y
eUNsYXNzSW5mbzo6YWRkUHJpdmF0ZUJ1ZmZlcik6CisgICAgICAgICogd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvbkhhc2hTZXQuaDoKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
TGlzdEhhc2hTZXQuaDogQ29waWVkIGZyb20gU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uSGFzaFNldC5oLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6cmVwb3J0TWVt
b3J5VXNhZ2UpOgorCiAyMDEyLTA5LTI4ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1ha2UgSGFzaFNldCBtZW1vcnkgaW5z
dHJ1bWVudGF0aW9uIG5vbi1pbnRydXNpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmYjJiOGZmYWY5MDc4NjNm
ZTg2MWJhNThkMjRiMjU1NTRkYjlmZjAzLi43MTBkMDMxNDAwYzBhMDg5ZDQ3Y2JiMzVmOWM5N2My
NWQzNjIxMjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDktMjcgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcHJvdmlkZSBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZvciBMaXN0SGFzaFNldAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc3ODYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTd2l0Y2hlZCBleGlzdGlu
ZyB1c2FnZXMgb2YgYWRkTGlzdEhhc2hTZXQgdG8gdGhlIGdlbmVyaWMgaW5zdHJ1bWVudGF0aW9u
IG1lY2hhbmlzbQorICAgICAgICBhcyBpdCBzaG91bGQgd29yayBqdXN0IGp1c3QgZmluZSBub3cg
dGhhdCB0aGVyZSBpcyBhIG1lbW9yeSBpbnN0cnVtZW50YXRpb24gb2YKKyAgICAgICAgTGlzdEhh
c2hTZXQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcDoKKyAgICAgICAg
KiBkb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIwMTIt
MDktMjggIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI5ODYzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCA0OWU1ODk1ZDE1NTBiNTM2YmM0MmY1YmRlNmQyNzNmMGU3ZmVmNzQ5Li4yZjhlZGUz
ZmM2NTRiOGZiMjI4Y2UxNGY1ZTEwNGM1Mjc3NWZjZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTI3ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVy
eXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgbWVtb3J5
IGluc3RydW1lbnRhdGlvbiBmb3IgTGlzdEhhc2hTZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3Nzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IGZvciBMaXN0SGFzaFNldCBtZW1v
cnkgaW5zdHJ1bWVudGF0aW9uLgorCisgICAgICAgICogdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0
aW9uVGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAgKFdlYkNvcmUp
OgorCiAyMDEyLTA5LTI4ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1ha2UgSGFzaFNldCBtZW1vcnkgaW5zdHJ1bWVudGF0
aW9uIG5vbi1pbnRydXNpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwY2ViOWZkZWU0ZGE2
MzRiM2VmZjczNWI5NDU2YmVlODE5OGRiZjM5Li5kNDFhZWY4N2M1NTE0MDU0OWUwZDgxODA4MmVi
Y2QwM2I3NTYxNmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04Miw2ICs4Miw3IEBAIHd0
Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24u
aCBcCiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZmZXJW
aWV3LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQu
aCBcCisgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQu
aCBcCiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAog
ICAgIFNvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9N
ZXRhQWxsb2NhdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5neXBpIGIvU291
cmNlL1dURi9XVEYuZ3lwaQppbmRleCBkZWFjNTcxOWM3YWU1Yjk5YzJkMThjYjQ4YjJjNTU0NjIy
YmQ4YjE0Li42YWMwNGRlMmRjOGI2OTc0ZTBiMzAzYzg4ZWFmMjFmN2QwMGVhNDIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi5neXBpCisrKyBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKQEAgLTUy
LDYgKzUyLDcgQEAKICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgnLAog
ICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZlclZpZXcuaCcs
CiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCcsCisgICAg
ICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmgnLAogICAgICAg
ICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCcsCiAgICAgICAgICAgICAn
d3RmL01lc3NhZ2VRdWV1ZS5oJywKICAgICAgICAgICAgICd3dGYvTm9uQ29weWluZ1NvcnQuaCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5k
ZXggN2ExMGJlZmUzM2Q0ZThmNTZiOWU3ZGU1MGMyOTYyMzU5Y2U4NTQ3Yy4uZmE5OTAyMjNhZjVm
NmVlZTYwM2ZmMTY4ZmExMzBiZjc0NzZjZGMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYu
cHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtODksNiArODksNyBAQCBIRUFERVJTICs9
IFwKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uQXJyYXlCdWZmZXJWaWV3LmggXAogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQu
aCBcCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCBcCiAgICAgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAogICAgIE1lc3NhZ2VRdWV1ZS5oIFwKICAgICBNZXRh
QWxsb2NhdG9yLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3By
b2ogYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRleCBiOTJlNzc4OTAzNTNm
YzgxNGJkMWEwOWVhMjRjZjdlZjUzOGQwOTk2Li5lMGRlYzZhZDM5NDg0OTQ1YzEzMDRmNGZiMTkw
NDkyYTAzYzhkYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJv
agorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpAQCAtOTEzLDYgKzkxMywx
MCBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJCSAgICAgICAgUmVsYXRpdmVQYXRoPSIu
Llx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQogCQkgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lbW9yeUluc3RydW1l
bnRhdGlvblZlY3Rvci5oIgogCQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA5NzNiMWM4MTY0MTZmOWI5MzkwNTBmNjQxOTZmMzVhMWYy
YTJiYmMzLi44NTVkYWQ2NWZhOGY2NmJiNWRjNTZjZTZhNGM5ZjkzNDU4NTVkYzJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NSw2ICsyNzUsNyBAQAog
CQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYgLyog
Y29uZmlnLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3
QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87IH07CiAJCUNENTQ5N0FEMTU4
NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUu
aCAqLzsgfTsKKwkJRjM1MjVFMkExNjE0OUZGNDAwMjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRh
dGlvbkxpc3RIYXNoU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGMzUyNUUyOTE2MTQ5RkY0MDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9u
TGlzdEhhc2hTZXQuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KQEAgLTU1NSw2ICs1NTYsNyBAQAog
CQlBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUYzNTI1RTI5MTYxNDlGRjQwMDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50
YXRpb25MaXN0SGFzaFNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1v
cnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFt
ZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC02OTgsNiArNzAwLDcgQEAKIAkJCQk0RjFE
MTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggKi8sCiAJCQkJ
NEZEODU1NDYxNjEzM0UwRTAwQzVCNzA0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVm
ZmVyVmlldy5oICovLAogCQkJCTRGMUIyREI1MTYwQjQ0QUEwMDU4NjU1OSAvKiBNZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoU2V0LmggKi8sCisJCQkJRjM1MjVFMjkxNjE0OUZGNDAwMjc4QkMxIC8q
IE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggKi8sCiAJCQkJNEZDQjcxMDkxNjBB
MUEwNzAwODQyNUVDIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oICovLAogCQkJCUE4
QTQ3MkNDMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXNzYWdlUXVldWUuaCAqLywKIAkJCQlBOEE0NzJD
RDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRvci5jcHAgKi8sCkBAIC0xMTUzLDYgKzEx
NTYsNyBAQAogCQkJCTRGQ0I3MTBBMTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50
YXRpb25WZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGMUIyREI2MTYwQjQ0QUEwMDU4NjU1
OSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
RkQ4NTU0NzE2MTMzRTBFMDBDNUI3MDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZm
ZXJWaWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQlGMzUyNUUyQTE2MTQ5RkY0MDAyNzhCQzEgLyog
TWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL0xpc3RI
YXNoU2V0LmgKaW5kZXggZmE2NTRjNWQ5ZDczYzJjZTI1N2VlNjMxYjIzNjAxNzMzZDkwNDMwNy4u
OGZlZWY3MmIzMTFmYWI4NDcwMDEwOWUyYjZlM2I4ZWExMTI4OTMyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNl
dC5oCkBAIC05OCw2ICs5OCw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBpbnQgY2FwYWNp
dHkoKSBjb25zdDsKICAgICAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAKKyAgICAgICAgc2l6
ZV90IHNpemVJbkJ5dGVzKCkgY29uc3Q7CisKICAgICAgICAgaXRlcmF0b3IgYmVnaW4oKTsKICAg
ICAgICAgaXRlcmF0b3IgZW5kKCk7CiAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29u
c3Q7CkBAIC0yMDksMTUgKzIxMSwxNSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgICAgIGZh
c3RGcmVlKG5vZGUpOwogICAgICAgICB9CiAKLSAgICBwcml2YXRlOgotICAgICAgICBOb2RlKiBw
b29sKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdF9wdHI8Tm9kZSo+KG1fcG9vbC5wb29sKTsg
fQotICAgICAgICBOb2RlKiBwYXN0UG9vbCgpIHsgcmV0dXJuIHBvb2woKSArIG1fcG9vbFNpemU7
IH0KLQogICAgICAgICBib29sIGluUG9vbChOb2RlKiBub2RlKQogICAgICAgICB7CiAgICAgICAg
ICAgICByZXR1cm4gbm9kZSA+PSBwb29sKCkgJiYgbm9kZSA8IHBhc3RQb29sKCk7CiAgICAgICAg
IH0KIAorICAgIHByaXZhdGU6CisgICAgICAgIE5vZGUqIHBvb2woKSB7IHJldHVybiByZWludGVy
cHJldF9jYXN0X3B0cjxOb2RlKj4obV9wb29sLnBvb2wpOyB9CisgICAgICAgIE5vZGUqIHBhc3RQ
b29sKCkgeyByZXR1cm4gcG9vbCgpICsgbV9wb29sU2l6ZTsgfQorCiAgICAgICAgIE5vZGUqIG1f
ZnJlZUxpc3Q7CiAgICAgICAgIGJvb2wgbV9pc0RvbmVXaXRoSW5pdGlhbEZyZWVMaXN0OwogICAg
ICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1fcG9vbFNpemUgPSBpbmxpbmVDYXBhY2l0eTsKQEAg
LTU2MCw2ICs1NjIsMTggQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBVPgorICAgIHNpemVf
dCBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OnNpemVJbkJ5dGVzKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHNpemVfdCByZXN1bHQgPSBzaXplb2YoKnRoaXMpICsgc2l6ZW9mKCpt
X2FsbG9jYXRvcik7CisgICAgICAgIHJlc3VsdCArPSBzaXplb2YodHlwZW5hbWUgSW1wbFR5cGU6
OlZhbHVlVHlwZSkgKiBtX2ltcGwuY2FwYWNpdHkoKTsKKyAgICAgICAgZm9yIChOb2RlKiBub2Rl
ID0gbV9oZWFkOyBub2RlOyBub2RlID0gbm9kZS0+bV9uZXh0KSB7CisgICAgICAgICAgICBpZiAo
IW1fYWxsb2NhdG9yLT5pblBvb2wobm9kZSkpCisgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHNp
emVvZihOb2RlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUg
VT4KICAgICBpbmxpbmUgdHlwZW5hbWUgTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+
OjppdGVyYXRvciBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OmJlZ2luKCkKICAg
ICB7CiAgICAgICAgIHJldHVybiBtYWtlSXRlcmF0b3IobV9oZWFkKTsgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL01l
bW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDY5YjAyMjU0YjM3YWZhNzIwYjI1NjI2N2MyODhj
NThmMWVlZTVjOGYuLmMzNmM2YjgxNjZlNzIyNjcxYTk0MzRjOTRkZWI1ODNiYTE5NTg5NjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC0xNTcsMTAgKzE1Nyw4IEBA
IHByaXZhdGU6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdChjb25z
dCBUJiB0LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkgeyBPd25pbmdUcmFpdHM8
VD46OmFkZE9iamVjdCh0aGlzLCB0LCBvd25lck9iamVjdFR5cGUpOyB9CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgSGFzaE1hcFR5cGU+IHZvaWQgYWRkSGFzaE1hcChjb25zdCBIYXNoTWFwVHlwZSYs
IE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7Ci0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlv
bihjb25zdCBDb2xsZWN0aW9uVHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9u
bHkgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBhZGRJbnN0
cnVtZW50ZWRNYXBFbnRyaWVzKGNvbnN0IE1hcFR5cGUmLCBNZW1vcnlPYmplY3RUeXBlKTsKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZE1hcFZhbHVl
cyhjb25zdCBNYXBUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSk7Ci0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgTGlzdEhhc2hTZXRUeXBlPiB2b2lkIGFkZExpc3RIYXNoU2V0KGNvbnN0IExpc3RIYXNoU2V0
VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7CiAgICAg
dm9pZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgTWVtb3J5T2JqZWN0
VHlwZSBvd25lck9iamVjdFR5cGUsIHNpemVfdCBzaXplKQogICAgIHsKICAgICAgICAgaWYgKCFi
dWZmZXIgfHwgdmlzaXRlZChidWZmZXIpKQpAQCAtMjE4LDcgKzIxNiw2IEBAIHB1YmxpYzoKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoU2V0VHlwZT4gdm9pZCBhZGRIYXNoQ291bnRlZFNldChj
b25zdCBIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRIYXNo
TWFwKHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1h
cFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhjb25zdCBNYXBUeXBlJiBtYXAp
IHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZE1hcEVudHJpZXMobWFw
LCBtX29iamVjdFR5cGUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBh
ZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMoY29uc3QgTWFwVHlwZSYgbWFwKSB7IG1fbWVtb3J5SW5z
dHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMobWFwLCBtX29iamVjdFR5cGUp
OyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlPiB2b2lkIGFkZExpc3RI
YXNoU2V0KGNvbnN0IExpc3RIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0
aW9uLT5hZGRMaXN0SGFzaFNldChzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KICAgICB2b2lk
IGFkZFJhd0J1ZmZlcihjb25zdCB2b2lkKiBjb25zdCYgYnVmZmVyLCBzaXplX3Qgc2l6ZSkgeyBt
X21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkUmF3QnVmZmVyKGJ1ZmZlciwgbV9vYmplY3RUeXBl
LCBzaXplKTsgfQogICAgIHZvaWQgYWRkUHJpdmF0ZUJ1ZmZlcihzaXplX3Qgc2l6ZSkgeyBtX21l
bW9yeUluc3RydW1lbnRhdGlvbi0+Y291bnRPYmplY3RTaXplKG1fb2JqZWN0VHlwZSwgc2l6ZSk7
IH0KIApAQCAtMjc4LDE3ICsyNzUsNiBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRk
SGFzaE1hcChjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCwgTWVtb3J5T2JqZWN0VAogICAgIGNv
dW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIGNhbGN1bGF0ZUNvbnRhaW5lclNpemUoaGFz
aE1hcCwgY29udGVudE9ubHkpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5
cGU+Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlv
bihjb25zdCBDb2xsZWN0aW9uVHlwZSYgY29sbGVjdGlvbiwgTWVtb3J5T2JqZWN0VHlwZSBvd25l
ck9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkpCi17Ci0gICAgaWYgKHZpc2l0ZWQoJmNvbGxl
Y3Rpb24pKQotICAgICAgICByZXR1cm47Ci0gICAgY291bnRPYmplY3RTaXplKG93bmVyT2JqZWN0
VHlwZSwgY2FsY3VsYXRlQ29udGFpbmVyU2l6ZShjb2xsZWN0aW9uLCBjb250ZW50T25seSkpOwot
ICAgIHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjb2xsZWN0
aW9uLmVuZCgpOwotICAgIGZvciAodHlwZW5hbWUgQ29sbGVjdGlvblR5cGU6OmNvbnN0X2l0ZXJh
dG9yIGkgPSBjb2xsZWN0aW9uLmJlZ2luKCk7IGkgIT0gZW5kOyArK2kpCi0gICAgICAgIGFkZE9i
amVjdCgqaSwgb3duZXJPYmplY3RUeXBlKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlw
ZT4KIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVz
KGNvbnN0IE1hcFR5cGUmIG1hcCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUpCiB7
CkBAIC0zMDcsMTUgKzI5Myw2IEBAIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0
cnVtZW50ZWRNYXBWYWx1ZXMoY29uc3QgTWFwVHlwZSYgbWFwLCBNZW1vcnlPCiAgICAgICAgIGFk
ZE9iamVjdChpLT5zZWNvbmQsIG93bmVyT2JqZWN0VHlwZSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVu
YW1lIExpc3RIYXNoU2V0VHlwZT4KLXZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRMaXN0
SGFzaFNldChjb25zdCBMaXN0SGFzaFNldFR5cGUmIGhhc2hTZXQsIE1lbW9yeU9iamVjdFR5cGUg
b3duZXJPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5KQotewotICAgIGlmICh2aXNpdGVkKCZo
YXNoU2V0KSkKLSAgICAgICAgcmV0dXJuOwotICAgIHNpemVfdCBzaXplID0gKGNvbnRlbnRPbmx5
ID8gMCA6IHNpemVvZihMaXN0SGFzaFNldFR5cGUpKSArIGhhc2hTZXQuY2FwYWNpdHkoKSAqIHNp
emVvZih2b2lkKikgKyBoYXNoU2V0LnNpemUoKSAqIChzaXplb2YodHlwZW5hbWUgTGlzdEhhc2hT
ZXRUeXBlOjpWYWx1ZVR5cGUpICsgMiAqIHNpemVvZih2b2lkKikpOwotICAgIGNvdW50T2JqZWN0
U2l6ZShvd25lck9iamVjdFR5cGUsIHNpemUpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250
YWluZXI+CiBzaXplX3QgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpjYWxjdWxhdGVDb250YWluZXJT
aXplKGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyLCBib29sIGNvbnRlbnRPbmx5KQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQu
aCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTdkZWJhYjA3ZmNmOGM4ZmE2N2JkOGFkMWYwMWMwNTY1MTgzMjQwNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNo
U2V0LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhh
c2hTZXRfaAorI2RlZmluZSBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldF9oCisKKyNp
bmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFZhbHVlQXJnLCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIEhhc2hB
cmc+Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IExpc3RIYXNoU2V0PFZhbHVlQXJnLCBp
bmxpbmVDYXBhY2l0eSwgSGFzaEFyZz4qIGNvbnN0JiBzZXQsIE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pCit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgc2V0KTsKKyAgICBpbmZvLmFkZFByaXZhdGVCdWZmZXIoc2V0LT5zaXplSW5CeXRlcygp
IC0gc2l6ZW9mKCpzZXQpKTsKKyAgICBpbmZvLmFkZENvbGxlY3Rpb25FbGVtZW50cyhzZXQtPmJl
Z2luKCksIHNldC0+ZW5kKCkpOworfQorCit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZChNZW1vcnlJ
bnN0cnVtZW50YXRpb25MaXN0SGFzaFNldF9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRF
dmVudFF1ZXVlLmNwcAppbmRleCA5MWQxOTgwODdkMzY4N2Y3OWVjYzBkNDYwZTUyNWJjOWQxMTJl
ZDMxLi40NjcwNmJlNmY3MmJjMTNkNGFmYmNmNmYwMTI3MTE3OTk1ZWFiNzQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIlN1c3BlbmRhYmxlVGltZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQu
aD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCmluZGV4IGM3Mzc3OTJiYmMyMWIxY2FkN2Yz
YzgwMzVjODI1N2IwNzVhYzc5MmQuLmZjNGFhMzJkN2U2NmQ2OTAxYmEwZDVjODZiNmM1OGE0NGM3
MTY4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRD
b2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0
Q29sbGVjdGlvbi5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJTdHlsZVNoZWV0TGlz
dC5oIgogI2luY2x1ZGUgIlVzZXJDb250ZW50VVJMUGF0dGVybi5oIgogI2luY2x1ZGUgIldlYkNv
cmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5OSw3ICs1MDAsNyBAQCB2b2lk
IERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iagogICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZUdyb3VwVXNlclNo
ZWV0cyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV91c2VyU2hlZXRzKTsKICAgICBpbmZvLmFkZE1l
bWJlcihtX2F1dGhvclN0eWxlU2hlZXRzKTsKLSAgICBpbmZvLmFkZExpc3RIYXNoU2V0KG1fc3R5
bGVTaGVldENhbmRpZGF0ZU5vZGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N0eWxlU2hlZXRD
YW5kaWRhdGVOb2Rlcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wcmVmZXJyZWRTdHlsZXNoZWV0
U2V0TmFtZSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zZWxlY3RlZFN0eWxlc2hlZXRTZXROYW1l
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IGJiNjg3NDA1MWJjYjk0ODFkZTRkMGZiNGFhZTQ2YzYyMTAyMjEz
ZjIuLmQzMzJlM2M1NjY4MzcxN2M0MDFiMzg3MzAwNzQ5MDJhZDkxOGE2ZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApA
QCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5o
PgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTkwMiw4ICs5MDMsNyBAQCB2b2lk
IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKQogICAgICAgICBpbmZvLmFkZE1lbWJlcihpLT5zZWNvbmQpOwog
ICAgIH0KICAgICBpbmZvLmFkZE1lbWJlcihtX3ZhbGlkYXRlZFVSTHMpOwotICAgIGlmIChtX3By
ZWxvYWRzKQotICAgICAgICBpbmZvLmFkZExpc3RIYXNoU2V0KCptX3ByZWxvYWRzKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX3ByZWxvYWRzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3BlbmRpbmdQ
cmVsb2Fkcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCmluZGV4IGJlYzFjMDBmNzdlNTE2Yzg5
NGUwYmIyYTdlZTJmMTJmZWYxMzFmNjYuLjVhMjRmMjM1Yjk4NWIwMmIyYzcwNTJkMjk3NmRmMTlj
Zjc4OGM0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcApAQCAtMzgsOCArMzgsMTAgQEAKIAogI2lu
Y2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRh
dGlvbkFycmF5QnVmZmVyVmlldy5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDUw
LDYgKzQ1MiwyNCBAQCBURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGhhc2hTZXRXaXRo
SW5zdHJ1bWVudGVkVHlwZSkKICAgICBFWFBFQ1RfRVEoY291bnQgKyAxLCAoc2l6ZV90KWhlbHBl
ci52aXNpdGVkT2JqZWN0cygpKTsKIH0KIAorVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0
LCBsaXN0SGFzaFNldFdpdGhJbnN0cnVtZW50ZWRUeXBlKQoreworICAgIFZpc2l0ZWRPYmplY3Rz
IHZpc2l0ZWRPYmplY3RzOworICAgIEluc3RydW1lbnRhdGlvblRlc3RIZWxwZXIgaGVscGVyOwor
CisgICAgdHlwZWRlZiBMaXN0SGFzaFNldDxTdHJpbmcsIDg+IFZhbHVlVHlwZTsKKyAgICBPd25Q
dHI8VmFsdWVUeXBlPiB2YWx1ZSA9IGFkb3B0UHRyKG5ldyBWYWx1ZVR5cGUoKSk7CisgICAgc2l6
ZV90IGNvdW50ID0gMTA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQor
ICAgICAgICB2YWx1ZS0+YWRkKFN0cmluZzo6bnVtYmVyKGkpKTsKKyAgICBJbnN0cnVtZW50ZWRP
d25lcjxWYWx1ZVR5cGUqID4gcm9vdCh2YWx1ZS5nZXQoKSk7CisgICAgaGVscGVyLmFkZFJvb3RP
YmplY3Qocm9vdCk7CisgICAgRVhQRUNUX0VRKHNpemVvZihWYWx1ZVR5cGUpICsgc2l6ZW9mKFN0
cmluZykgKiB2YWx1ZS0+Y2FwYWNpdHkoKSArIHNpemVvZihTdHJpbmdJbXBsKSAqIHZhbHVlLT5z
aXplKCkgKworICAgICAgICBzaXplb2YoV1RGOjpMaXN0SGFzaFNldE5vZGVBbGxvY2F0b3I8U3Ry
aW5nLCA4PikgKyBzaXplb2YoV1RGOjpMaXN0SGFzaFNldE5vZGU8U3RyaW5nLCA4PikgKiAoY291
bnQgLSA4KSwKKyAgICAgICAgaGVscGVyLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAg
IEVYUEVDVF9FUSgwLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCiBURVNUKE1lbW9yeUlu
c3RydW1lbnRhdGlvblRlc3QsIGFycmF5QnVmZmVyKQogewogICAgIEluc3RydW1lbnRhdGlvblRl
c3RIZWxwZXIgaGVscGVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166856</attachid>
            <date>2012-10-03 04:57:39 -0700</date>
            <delta_ts>2012-10-24 01:12:45 -0700</delta_ts>
            <desc>Patch after one more rebase</desc>
            <filename>list-hash-set.patch</filename>
            <type>text/plain</type>
            <size>20442</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNDNjZjZjMi4uZGQwZWRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMi0wOS0yNyAg
WXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBwcm92aWRlIG1lbW9yeSBpbnN0cnVtZW50YXRpb24gZm9yIExpc3RIYXNoU2V0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Nzc4NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG1lbW9y
eSBpbnN0cnVtZW50YXRpb24gZm9yIExpc3RIYXNoU2V0LgorCisgICAgICAgICogR05VbWFrZWZp
bGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYuZ3lwaToKKyAgICAgICAgKiBXVEYucHJvOgorICAg
ICAgICAqIFdURi52Y3Byb2ovV1RGLnZjcHJvajoKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvSGFzaFNldC5oOgorICAgICAgICAoV1RGKToK
KyAgICAgICAgKiB3dGYvTGlzdEhhc2hTZXQuaDoKKyAgICAgICAgKExpc3RIYXNoU2V0KToKKyAg
ICAgICAgKExpc3RIYXNoU2V0Tm9kZUFsbG9jYXRvcik6IGNoYW5nZWQgdmlzaWJpbGl0eSBvZiBp
blBvb2wgbWV0aG9kIHRvIHB1YmxpYworICAgICAgICAoV1RGOjpMaXN0SGFzaFNldE5vZGVBbGxv
Y2F0b3I6OnBvb2wpOgorICAgICAgICAoV1RGOjpMaXN0SGFzaFNldE5vZGVBbGxvY2F0b3I6OnBh
c3RQb29sKToKKyAgICAgICAgKFdURjo6OjpzaXplSW5CeXRlcyk6IGFkZGVkIGEgbXRob2QgdGhh
dCByZXR1cm5zIHNpemUgb2YgdGhlIHNldCBpbiBieXRlcyBpbmNsdWRpbmcKKyAgICAgICAgYWxs
IGl0cyBpbnRlcm5hbHMgYnV0IG5vdCB0aGUgY29udGVudCBlbGVtZW50cy4KKyAgICAgICAgKFdU
Rik6CisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oOiByZW1vdmVkIG9uc29s
ZXRlIG1ldGhvZC4gQWxsIGNsaWVudHMgd2VyZSB1cGRhdGVkIHRvCisgICAgICAgIHVzZSBnZW5l
cmljIGFkZE1lbWJlciBpbnN0ZWFkLgorICAgICAgICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKToK
KyAgICAgICAgKFdURjo6TWVtb3J5Q2xhc3NJbmZvOjphZGRQcml2YXRlQnVmZmVyKToKKyAgICAg
ICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oOgorICAgICAgICAqIHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV1RG
L3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmguCisgICAgICAgIChXVEYpOgorICAg
ICAgICAoV1RGOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIwMTItMTAtMDMgIFl1cnkgU2VtaWto
YXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIE1lbW9yeUluc3Ry
dW1lbnRhdGlvbjo6YWRkQ29sbGVjdGlvbkVsZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5k
ZXggZWNkNWMyNS4uMTc3ZDQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODUsNiArODUs
NyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uSGFzaENvdW50ZWRTZXQuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uSGFzaE1hcC5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoU2V0LmggXAorICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bkxpc3RIYXNoU2V0LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
blBhcnNlZFVSTC5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25T
ZXF1ZW5jZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25TdHJp
bmcuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5neXBpIGIvU291cmNlL1dURi9XVEYu
Z3lwaQppbmRleCAyZGUzODJjLi5mNTQwNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5n
eXBpCisrKyBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKQEAgLTU1LDYgKzU1LDcgQEAKICAgICAgICAg
ICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENvdW50ZWRTZXQuaCcsCiAgICAgICAg
ICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaCcsCiAgICAgICAgICAgICAn
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCcsCisgICAgICAgICAgICAnd3RmL01l
bW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb25QYXJzZWRVUkwuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvblNlcXVlbmNlLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25TdHJpbmcuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3Vy
Y2UvV1RGL1dURi5wcm8KaW5kZXggMjAyMGVkNS4uOGJkMzAzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtOTIsNiArOTIsNyBAQCBI
RUFERVJTICs9IFwKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oIFwK
ICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggXAogICAgIE1lbW9yeUluc3RydW1l
bnRhdGlvbkhhc2hTZXQuaCBcCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQu
aCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uUGFyc2VkVVJMLmggXAogICAgIE1lbW9yeUlu
c3RydW1lbnRhdGlvblNlcXVlbmNlLmggXAogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvblN0cmlu
Zy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qIGIvU291
cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXggMjM5MTI4ZC4uZTU0N2ZjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKKysrIGIvU291cmNlL1dU
Ri9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTkyNSw2ICs5MjUsMTAgQEAKIAkJCT4KIAkJPC9G
aWxlPgogCQk8RmlsZQorCQkgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lbW9yeUluc3Ry
dW1lbnRhdGlvbkxpc3RIYXNoU2V0LmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJICAg
ICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlJbnN0cnVtZW50YXRpb25TZXF1ZW5jZS5o
IgogCQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBiOGFhNTNiLi5iNTgwYTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTI3OCw2ICsyNzgsNyBAQAogCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIz
RkYgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggKi87IH07CiAJCUNENTQ5
N0FDMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1l
ZGlhVGltZS5jcHAgKi87IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRp
bWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5
N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKKwkJRjM1MjVFMkExNjE0
OUZGNDAwMjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzUyNUUyOTE2MTQ5RkY0
MDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCAqLzsgfTsKIAkJ
RjM1MjVFNDYxNjE5QTRFRTAwMjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzNTI1RTQ1
MTYxOUE0RUUwMDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggKi87IH07
CiAJCUYzRkJDNzFFMTYxQUY3QkYwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNo
Q291bnRlZFNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjNGQkM3MUQxNjFBRjdCRjAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hD
b3VudGVkU2V0LmggKi87IH07CiAJCUYzRkJDNzIwMTYxQUY3Q0QwMEJCNEJENCAvKiBNZW1vcnlJ
bnN0cnVtZW50YXRpb25TZXF1ZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjNGQkM3MUYxNjFBRjdDRDAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1l
bnRhdGlvblNlcXVlbmNlLmggKi87IH07CkBAIC01NjQsNiArNTY1LDcgQEAKIAkJQThBNDc0OEIx
NTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUExNTg1
N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYVRpbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhVGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGMzUyNUUyOTE2MTQ5RkY0MDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhh
c2hTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uTGlzdEhhc2hTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM1MjVF
NDUxNjE5QTRFRTAwMjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1h
cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGM0ZCQzcxRDE2MUFGN0JGMDBCQjRC
RDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENvdW50ZWRTZXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENvdW50ZWRTZXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjNGQkM3MUYxNjFBRjdDRDAwQkI0QkQ0
IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblNlcXVlbmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvblNlcXVlbmNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC03MTMsNiArNzE1LDcgQEAKIAkJCQlGM0ZCQzcxRDE2MUFGN0JG
MDBCQjRCRDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENvdW50ZWRTZXQuaCAqLywKIAkJ
CQlGMzUyNUU0NTE2MTlBNEVFMDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1h
cC5oICovLAogCQkJCTRGMUIyREI1MTYwQjQ0QUEwMDU4NjU1OSAvKiBNZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoU2V0LmggKi8sCisJCQkJRjM1MjVFMjkxNjE0OUZGNDAwMjc4QkMxIC8qIE1lbW9y
eUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggKi8sCiAJCQkJNEZEMkEzNTgxNjFCMEVFMTAw
RUJGMjM2IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblBhcnNlZFVSTC5oICovLAogCQkJCUYzRkJD
NzFGMTYxQUY3Q0QwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25TZXF1ZW5jZS5oICov
LAogCQkJCTRGQ0YyN0UwMTYxNzJFODYwMENCRjAzNyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25T
dHJpbmcuaCAqLywKQEAgLTExNzcsNiArMTE4MCw3IEBACiAJCQkJNEZEMkEzNTkxNjFCMEVFMTAw
RUJGMjM2IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblBhcnNlZFVSTC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRjNGQkM3MUUxNjFBRjdCRjAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhh
c2hDb3VudGVkU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGM0ZCQzcyMDE2MUFGN0NEMDBCQjRC
RDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2UuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUYzNTI1RTJBMTYxNDlGRjQwMDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFz
aFNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MaXN0SGFz
aFNldC5oIGIvU291cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaAppbmRleCBmYTY1NGM1Li44ZmVl
ZjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNldC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0xpc3RIYXNoU2V0LmgKQEAgLTk4LDYgKzk4LDggQEAgbmFtZXNwYWNlIFdURiB7
CiAgICAgICAgIGludCBjYXBhY2l0eSgpIGNvbnN0OwogICAgICAgICBib29sIGlzRW1wdHkoKSBj
b25zdDsKIAorICAgICAgICBzaXplX3Qgc2l6ZUluQnl0ZXMoKSBjb25zdDsKKwogICAgICAgICBp
dGVyYXRvciBiZWdpbigpOwogICAgICAgICBpdGVyYXRvciBlbmQoKTsKICAgICAgICAgY29uc3Rf
aXRlcmF0b3IgYmVnaW4oKSBjb25zdDsKQEAgLTIwOSwxNSArMjExLDE1IEBAIG5hbWVzcGFjZSBX
VEYgewogICAgICAgICAgICAgZmFzdEZyZWUobm9kZSk7CiAgICAgICAgIH0KIAotICAgIHByaXZh
dGU6Ci0gICAgICAgIE5vZGUqIHBvb2woKSB7IHJldHVybiByZWludGVycHJldF9jYXN0X3B0cjxO
b2RlKj4obV9wb29sLnBvb2wpOyB9Ci0gICAgICAgIE5vZGUqIHBhc3RQb29sKCkgeyByZXR1cm4g
cG9vbCgpICsgbV9wb29sU2l6ZTsgfQotCiAgICAgICAgIGJvb2wgaW5Qb29sKE5vZGUqIG5vZGUp
CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBub2RlID49IHBvb2woKSAmJiBub2RlIDwg
cGFzdFBvb2woKTsKICAgICAgICAgfQogCisgICAgcHJpdmF0ZToKKyAgICAgICAgTm9kZSogcG9v
bCgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPE5vZGUqPihtX3Bvb2wucG9vbCk7IH0K
KyAgICAgICAgTm9kZSogcGFzdFBvb2woKSB7IHJldHVybiBwb29sKCkgKyBtX3Bvb2xTaXplOyB9
CisKICAgICAgICAgTm9kZSogbV9mcmVlTGlzdDsKICAgICAgICAgYm9vbCBtX2lzRG9uZVdpdGhJ
bml0aWFsRnJlZUxpc3Q7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbV9wb29sU2l6ZSA9
IGlubGluZUNhcGFjaXR5OwpAQCAtNTYwLDYgKzU2MiwxOCBAQCBuYW1lc3BhY2UgV1RGIHsKICAg
ICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5
cGVuYW1lIFU+CisgICAgc2l6ZV90IExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6
c2l6ZUluQnl0ZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgc2l6ZV90IHJlc3VsdCA9IHNpemVv
ZigqdGhpcykgKyBzaXplb2YoKm1fYWxsb2NhdG9yKTsKKyAgICAgICAgcmVzdWx0ICs9IHNpemVv
Zih0eXBlbmFtZSBJbXBsVHlwZTo6VmFsdWVUeXBlKSAqIG1faW1wbC5jYXBhY2l0eSgpOworICAg
ICAgICBmb3IgKE5vZGUqIG5vZGUgPSBtX2hlYWQ7IG5vZGU7IG5vZGUgPSBub2RlLT5tX25leHQp
IHsKKyAgICAgICAgICAgIGlmICghbV9hbGxvY2F0b3ItPmluUG9vbChub2RlKSkKKyAgICAgICAg
ICAgICAgICByZXN1bHQgKz0gc2l6ZW9mKE5vZGUpOworICAgICAgICB9CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBVPgogICAgIGlubGluZSB0eXBlbmFtZSBMaXN0SGFzaFNldDxU
LCBpbmxpbmVDYXBhY2l0eSwgVT46Oml0ZXJhdG9yIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFj
aXR5LCBVPjo6YmVnaW4oKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1ha2VJdGVyYXRvcihtX2hl
YWQpOyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5o
IGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggMzY3ZTJiYy4u
M2NjYTRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmgKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE1Niw3
ICsxNTYsNiBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2
b2lkIGFkZE9iamVjdChjb25zdCBUJiB0LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlw
ZSkgeyBPd25pbmdUcmFpdHM8VD46OmFkZE9iamVjdCh0aGlzLCB0LCBvd25lck9iamVjdFR5cGUp
OyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlPiB2b2lkIGFkZExpc3RI
YXNoU2V0KGNvbnN0IExpc3RIYXNoU2V0VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29u
dGVudE9ubHkgPSBmYWxzZSk7CiAgICAgdm9pZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29u
c3QmIGJ1ZmZlciwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIHNpemVfdCBzaXpl
KQogICAgIHsKICAgICAgICAgaWYgKCFidWZmZXIgfHwgdmlzaXRlZChidWZmZXIpKQpAQCAtMTk5
LDcgKzE5OCw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNPiB2
b2lkIGFkZE1lbWJlcihjb25zdCBNJiBtZW1iZXIpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24t
PmFkZE9iamVjdChtZW1iZXIsIG1fb2JqZWN0VHlwZSk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBMaXN0SGFzaFNldFR5cGU+IHZvaWQgYWRkTGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRU
eXBlJiBzZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZExpc3RIYXNoU2V0KHNldCwg
bV9vYmplY3RUeXBlLCB0cnVlKTsgfQogICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQq
IGNvbnN0JiBidWZmZXIsIHNpemVfdCBzaXplKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5h
ZGRSYXdCdWZmZXIoYnVmZmVyLCBtX29iamVjdFR5cGUsIHNpemUpOyB9CiAgICAgdm9pZCBhZGRQ
cml2YXRlQnVmZmVyKHNpemVfdCBzaXplKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jb3Vu
dE9iamVjdFNpemUobV9vYmplY3RUeXBlLCBzaXplKTsgfQogCkBAIC0yNTEsMTUgKzI0OSw2IEBA
IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKGNvbnN0IFJlZlB0cjxU
PiogY29uc3QmIG9iamVjdCwgTWVtb3J5CiAgICAgYWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgp
LCBvd25lck9iamVjdFR5cGUsIGJ5UG9pbnRlcik7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIExp
c3RIYXNoU2V0VHlwZT4KLXZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRMaXN0SGFzaFNl
dChjb25zdCBMaXN0SGFzaFNldFR5cGUmIGhhc2hTZXQsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJP
YmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5KQotewotICAgIGlmICh2aXNpdGVkKCZoYXNoU2V0
KSkKLSAgICAgICAgcmV0dXJuOwotICAgIHNpemVfdCBzaXplID0gKGNvbnRlbnRPbmx5ID8gMCA6
IHNpemVvZihMaXN0SGFzaFNldFR5cGUpKSArIGhhc2hTZXQuY2FwYWNpdHkoKSAqIHNpemVvZih2
b2lkKikgKyBoYXNoU2V0LnNpemUoKSAqIChzaXplb2YodHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBl
OjpWYWx1ZVR5cGUpICsgMiAqIHNpemVvZih2b2lkKikpOwotICAgIGNvdW50T2JqZWN0U2l6ZShv
d25lck9iamVjdFR5cGUsIHNpemUpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXI+
CiBzaXplX3QgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpjYWxjdWxhdGVDb250YWluZXJTaXplKGNv
bnN0IENvbnRhaW5lciYgY29udGFpbmVyLCBib29sIGNvbnRlbnRPbmx5KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCBiL1Nv
dXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGUzMWM1NgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmgKQEAgLTAsMCAr
MSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXRfaAorI2RlZmlu
ZSBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldF9oCisKKyNpbmNsdWRlIDx3dGYvTGlz
dEhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2Uu
aD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCBzaXpl
X3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIEhhc2hBcmc+Cit2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKGNvbnN0IExpc3RIYXNoU2V0PFZhbHVlQXJnLCBpbmxpbmVDYXBhY2l0eSwgSGFzaEFyZz4q
IGNvbnN0JiBzZXQsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgc2V0KTsKKyAgICBpbmZvLmFk
ZFByaXZhdGVCdWZmZXIoc2V0LT5zaXplSW5CeXRlcygpIC0gc2l6ZW9mKCpzZXQpKTsKKyAgICBy
ZXBvcnRTZXF1ZW5jZU1lbW9yeVVzYWdlPFZhbHVlQXJnLCB0eXBlbmFtZSBMaXN0SGFzaFNldDxW
YWx1ZUFyZywgaW5saW5lQ2FwYWNpdHksIEhhc2hBcmc+Ojpjb25zdF9pdGVyYXRvcj4oc2V0LT5i
ZWdpbigpLCBzZXQtPmVuZCgpLCBpbmZvKTsKK30KKworfQorCisjZW5kaWYgLy8gIWRlZmluZWQo
TWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZWRmNzhk
Li5lMGUyZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDktMjcgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcHJvdmlkZSBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZvciBMaXN0SGFzaFNldAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc3ODYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTd2l0Y2hlZCBleGlzdGlu
ZyB1c2FnZXMgb2YgYWRkTGlzdEhhc2hTZXQgdG8gdGhlIGdlbmVyaWMgaW5zdHJ1bWVudGF0aW9u
IG1lY2hhbmlzbQorICAgICAgICBhcyBpdCBzaG91bGQgd29yayBqdXN0IGp1c3QgZmluZSBub3cg
dGhhdCB0aGVyZSBpcyBhIG1lbW9yeSBpbnN0cnVtZW50YXRpb24gb2YKKyAgICAgICAgTGlzdEhh
c2hTZXQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcDoKKyAgICAgICAg
KiBkb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIwMTIt
MTAtMDMgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAgICAg
TWVkaWFTdHJlYW0gQVBJOiBSVENQZWVyQ29ubmVjdGlvbiBzaG91bGQgc2VuZCBkb3duIGl0cyBo
YW5kbGVyIHZpYSB0aGUgRnJhbWVMb2FkZXJDbGllbnQgZGlyZWN0bHkgYWZ0ZXIgY3JlYXRpb24u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCmluZGV4IDkxZDE5ODAu
LjQ2NzA2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVl
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiU3VzcGVuZGFibGVUaW1lci5oIgogI2luY2x1ZGUg
IldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25MaXN0SGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKaW5kZXgg
YzczNzc5Mi4uZmM0YWEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlN0
eWxlU2hlZXRMaXN0LmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDk5LDcgKzUw
MCw3IEBAIHZvaWQgRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqCiAgICAgaW5mby5hZGRNZW1iZXIobV9wYWdl
R3JvdXBVc2VyU2hlZXRzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3VzZXJTaGVldHMpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fYXV0aG9yU3R5bGVTaGVldHMpOwotICAgIGluZm8uYWRkTGlzdEhh
c2hTZXQobV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
c3R5bGVTaGVldENhbmRpZGF0ZU5vZGVzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3ByZWZlcnJl
ZFN0eWxlc2hlZXRTZXROYW1lKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3NlbGVjdGVkU3R5bGVz
aGVldFNldE5hbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYmUwZDlkNy4uNWIxM2ZjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bkxpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAt
ODk5LDggKzkwMCw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCiAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpMb2Fk
ZXIpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZG9jdW1lbnRSZXNvdXJjZXMpOwogICAgIGluZm8u
YWRkTWVtYmVyKG1fdmFsaWRhdGVkVVJMcyk7Ci0gICAgaWYgKG1fcHJlbG9hZHMpCi0gICAgICAg
IGluZm8uYWRkTGlzdEhhc2hTZXQoKm1fcHJlbG9hZHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
cHJlbG9hZHMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcGVuZGluZ1ByZWxvYWRzKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBjYjU5ZDViLi4xNjczMDc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTI3ICBZdXJ5IFNlbWlr
aGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHBy
b3ZpZGUgbWVtb3J5IGluc3RydW1lbnRhdGlvbiBmb3IgTGlzdEhhc2hTZXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3Nzg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IGZvciBMaXN0
SGFzaFNldCBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uLgorCisgICAgICAgICogdGVzdHMvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorCiAyMDEyLTEwLTAzICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bn
b29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogUlRDUGVlckNvbm5lY3Rpb24g
c2hvdWxkIHNlbmQgZG93biBpdHMgaGFuZGxlciB2aWEgdGhlIEZyYW1lTG9hZGVyQ2xpZW50IGRp
cmVjdGx5IGFmdGVyIGNyZWF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKaW5kZXggMTA1OTA3Ny4u
NjdjODA5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJ
bnN0cnVtZW50YXRpb25UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCkBAIC00MCwxMCArNDAsMTIgQEAKICNpbmNs
dWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVmZmVyVmlldy5oPgogI2luY2x1
ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC02NzQsNiArNjc2LDQ1IEBAIFRFU1QoTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgaGFzaENvdW50ZWRTZXRXaXRoSW5zdHJ1bWVudGVkVmFs
dWVzKQogICAgIEVYUEVDVF9FUSgyICogY291bnQgKyAxLCBoZWxwZXIudmlzaXRlZE9iamVjdHMo
KSk7CiB9CiAKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgbGlzdEhhc2hTZXRXaXRo
SW5zdHJ1bWVudGVkVHlwZSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsK
KyAgICBJbnN0cnVtZW50YXRpb25UZXN0SGVscGVyIGhlbHBlcjsKKworICAgIHR5cGVkZWYgTGlz
dEhhc2hTZXQ8U3RyaW5nLCA4PiBUZXN0U2V0OworICAgIE93blB0cjxUZXN0U2V0PiB2YWx1ZSA9
IGFkb3B0UHRyKG5ldyBUZXN0U2V0KCkpOworICAgIHNpemVfdCBjb3VudCA9IDEwOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgdmFsdWUtPmFkZChTdHJp
bmc6Om51bWJlcihpKSk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8VGVzdFNldCogPiByb290KHZh
bHVlLmdldCgpKTsKKyAgICBoZWxwZXIuYWRkUm9vdE9iamVjdChyb290KTsKKyAgICBFWFBFQ1Rf
RVEoc2l6ZW9mKFRlc3RTZXQpICsgc2l6ZW9mKFN0cmluZykgKiB2YWx1ZS0+Y2FwYWNpdHkoKSAr
IChzaXplb2YoU3RyaW5nSW1wbCkgKyAxICogc2l6ZW9mKExDaGFyKSkgKiBjb3VudCArCisgICAg
ICAgIHNpemVvZihXVEY6Okxpc3RIYXNoU2V0Tm9kZUFsbG9jYXRvcjxTdHJpbmcsIDg+KSArIHNp
emVvZihXVEY6Okxpc3RIYXNoU2V0Tm9kZTxTdHJpbmcsIDg+KSAqIChjb3VudCAtIDgpLAorICAg
ICAgICBoZWxwZXIucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKDAs
IHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VGVzdCwgbGlzdEhhc2hTZXRXaXRoSW5zdHJ1bWVudGVkVHlwZUFmdGVyVmFsdWVzUmVtb3ZhbCkK
K3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBJbnN0cnVtZW50YXRp
b25UZXN0SGVscGVyIGhlbHBlcjsKKworICAgIHR5cGVkZWYgTGlzdEhhc2hTZXQ8U3RyaW5nLCA4
PiBUZXN0U2V0OworICAgIE93blB0cjxUZXN0U2V0PiB2YWx1ZSA9IGFkb3B0UHRyKG5ldyBUZXN0
U2V0KCkpOworICAgIHNpemVfdCBjb3VudCA9IDIwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgY291bnQ7ICsraSkKKyAgICAgICAgdmFsdWUtPmFkZChTdHJpbmc6Om51bWJlcihpKSk7Cisg
ICAgLy8gUmVtb3ZlIDEwIHZhbHVlcywgOCBvZiB3aGljaCB3ZXJlIGFsbG9jYXRlZCBpbiB0aGUg
aW50ZXJuYWwgYnVmZmVyLgorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTA7ICsraSkKKyAg
ICAgICAgdmFsdWUtPnJlbW92ZShTdHJpbmc6Om51bWJlcihpKSk7CisgICAgSW5zdHJ1bWVudGVk
T3duZXI8VGVzdFNldCogPiByb290KHZhbHVlLmdldCgpKTsKKyAgICBoZWxwZXIuYWRkUm9vdE9i
amVjdChyb290KTsKKyAgICBFWFBFQ1RfRVEoc2l6ZW9mKFRlc3RTZXQpICsgc2l6ZW9mKFN0cmlu
ZykgKiB2YWx1ZS0+Y2FwYWNpdHkoKSArIChzaXplb2YoU3RyaW5nSW1wbCkgKyAyICogc2l6ZW9m
KExDaGFyKSkgKiAoY291bnQgLSAxMCkgKworICAgICAgICBzaXplb2YoV1RGOjpMaXN0SGFzaFNl
dE5vZGVBbGxvY2F0b3I8U3RyaW5nLCA4PikgKyBzaXplb2YoV1RGOjpMaXN0SGFzaFNldE5vZGU8
U3RyaW5nLCA4PikgKiAoY291bnQgLSAxMCksCisgICAgICAgIGhlbHBlci5yZXBvcnRlZFNpemVG
b3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgdmlzaXRlZE9iamVjdHMuc2l6ZSgpKTsK
K30KKwogVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBhcnJheUJ1ZmZlcikKIHsKICAg
ICBJbnN0cnVtZW50YXRpb25UZXN0SGVscGVyIGhlbHBlcjsK
</data>
<flag name="review"
          id="179332"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170342</attachid>
            <date>2012-10-24 01:26:04 -0700</date>
            <delta_ts>2012-10-24 01:26:04 -0700</delta_ts>
            <desc>Patch for landing (after rebase)</desc>
            <filename>list-hash-set.patch</filename>
            <type>text/plain</type>
            <size>21025</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggZTUxOTAzOS4uMTE5ZTU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMi0wOS0yNyAg
WXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBwcm92aWRlIG1lbW9yeSBpbnN0cnVtZW50YXRpb24gZm9yIExpc3RIYXNoU2V0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Nzc4NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG1lbW9y
eSBpbnN0cnVtZW50YXRpb24gZm9yIExpc3RIYXNoU2V0LgorCisgICAgICAgICogR05VbWFrZWZp
bGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYuZ3lwaToKKyAgICAgICAgKiBXVEYucHJvOgorICAg
ICAgICAqIFdURi52Y3Byb2ovV1RGLnZjcHJvajoKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvSGFzaFNldC5oOgorICAgICAgICAoV1RGKToK
KyAgICAgICAgKiB3dGYvTGlzdEhhc2hTZXQuaDoKKyAgICAgICAgKExpc3RIYXNoU2V0KToKKyAg
ICAgICAgKExpc3RIYXNoU2V0Tm9kZUFsbG9jYXRvcik6IGNoYW5nZWQgdmlzaWJpbGl0eSBvZiBp
blBvb2wgbWV0aG9kIHRvIHB1YmxpYworICAgICAgICAoV1RGOjpMaXN0SGFzaFNldE5vZGVBbGxv
Y2F0b3I6OnBvb2wpOgorICAgICAgICAoV1RGOjpMaXN0SGFzaFNldE5vZGVBbGxvY2F0b3I6OnBh
c3RQb29sKToKKyAgICAgICAgKFdURjo6OjpzaXplSW5CeXRlcyk6IGFkZGVkIGEgbWV0aG9kIHRo
YXQgcmV0dXJucyBzaXplIG9mIHRoZSBzZXQgaW4gYnl0ZXMgaW5jbHVkaW5nCisgICAgICAgIGFs
bCBpdHMgaW50ZXJuYWxzIGJ1dCBub3QgdGhlIGNvbnRlbnQgZWxlbWVudHMuCisgICAgICAgIChX
VEYpOgorICAgICAgICAqIHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDogcmVtb3ZlZCBvbnNv
bGV0ZSBtZXRob2QuIEFsbCBjbGllbnRzIHdlcmUgdXBkYXRlZCB0bworICAgICAgICB1c2UgZ2Vu
ZXJpYyBhZGRNZW1iZXIgaW5zdGVhZC4KKyAgICAgICAgKE1lbW9yeUluc3RydW1lbnRhdGlvbik6
CisgICAgICAgIChXVEY6Ok1lbW9yeUNsYXNzSW5mbzo6YWRkUHJpdmF0ZUJ1ZmZlcik6CisgICAg
ICAgICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaDoKKyAgICAgICAgKiB3dGYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaDogQ29waWVkIGZyb20gU291cmNlL1dU
Ri93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oLgorICAgICAgICAoV1RGKToKKyAg
ICAgICAgKFdURjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorCiAyMDEyLTEwLTIzICBCZW5qYW1pbiBQ
b3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBXVEZVUkw6IEltcGxlbWVu
dCBLVVJMOjpzZXRQb3J0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5MDYzZmI1Li45ZDRm
MGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04NSw2ICs4NSw3IEBAIHd0Zl9zb3VyY2Vz
ICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRl
ZFNldC5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFw
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCBc
CisgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCBc
CiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uUGFyc2VkVVJMLmggXAog
ICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblNlcXVlbmNlLmggXAogICAg
IFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblN0cmluZy5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2UvV1RGL1dURi5neXBpCmluZGV4IDJkZTM4
MmMuLmY1NDA3N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLmd5cGkKKysrIGIvU291cmNl
L1dURi9XVEYuZ3lwaQpAQCAtNTUsNiArNTUsNyBAQAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oJywKICAgICAgICAgICAgICd3dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oJywKICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uSGFzaFNldC5oJywKKyAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0
aW9uTGlzdEhhc2hTZXQuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
blBhcnNlZFVSTC5oJywKICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2Vx
dWVuY2UuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblN0cmluZy5o
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwpp
bmRleCAyMDIwZWQ1Li44YmQzMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5wcm8KKysr
IGIvU291cmNlL1dURi9XVEYucHJvCkBAIC05Miw2ICs5Miw3IEBAIEhFQURFUlMgKz0gXAogICAg
IE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggXAogICAgIE1lbW9yeUluc3Ry
dW1lbnRhdGlvbkhhc2hNYXAuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5o
IFwKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oIFwKICAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25QYXJzZWRVUkwuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2Vx
dWVuY2UuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3By
b2ovV1RGLnZjcHJvagppbmRleCAyMzkxMjhkLi5lNTQ3ZmMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RG
LnZjcHJvagpAQCAtOTI1LDYgKzkyNSwxMCBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJ
CSAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhh
c2hTZXQuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkgICAgICAgIFJlbGF0aXZlUGF0
aD0iLi5cd3RmXE1lbW9yeUluc3RydW1lbnRhdGlvblNlcXVlbmNlLmgiCiAJCQk+CiAJCTwvRmls
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFiMTI1MWUu
LmM5MGY0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
Mjc4LDYgKzI3OCw3IEBACiAJCUE4QTQ3NDcxMTUxQTgyNUIwMDQxMjNGRiAvKiBVUkxTdHJpbmcu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzYy
MTUxQTgyNUIwMDQxMjNGRiAvKiBVUkxTdHJpbmcuaCAqLzsgfTsKIAkJQThBNDc0NzIxNTFBODI1
QjAwNDEyM0ZGIC8qIFJhd1VSTEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThBNDczNjQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhd1VSTEJ1ZmZl
ci5oICovOyB9OwogCQlBOEE0NzQ3MzE1MUE4MjVCMDA0MTIzRkYgLyogVVJMQnVmZmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzM2NTE1MUE4
MjVCMDA0MTIzRkYgLyogVVJMQnVmZmVyLmggKi87IH07CisJCUYzNTI1RTJBMTYxNDlGRjQwMDI3
OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM1MjVFMjkxNjE0OUZGNDAwMjc4QkMx
IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggKi87IH07CiAJCUE4QTQ3NDc0
MTUxQTgyNUIwMDQxMjNGRiAvKiBVUkxDaGFyYWN0ZXJUeXBlcy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzM2NjE1MUE4MjVCMDA0MTIzRkYg
LyogVVJMQ2hhcmFjdGVyVHlwZXMuY3BwICovOyB9OwogCQlBOEE0NzQ3NTE1MUE4MjVCMDA0MTIz
RkYgLyogVVJMQ2hhcmFjdGVyVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzY3MTUxQTgyNUIwMDQxMjNGRiAvKiBVUkxDaGFyYWN0ZXJU
eXBlcy5oICovOyB9OwogCQlBOEE0NzQ3NjE1MUE4MjVCMDA0MTIzRkYgLyogVVJMQ29tcG9uZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzM2
ODE1MUE4MjVCMDA0MTIzRkYgLyogVVJMQ29tcG9uZW50LmggKi87IH07CkBAIC01NjQsNiArNTY1
LDcgQEAKIAkJQThBNDczNDkxNTFBODI1QjAwNDEyM0ZGIC8qIENoYXJhY3Rlck5hbWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYXJhY3Rlck5hbWVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MzRBMTUxQTgyNUIwMDQxMjNGRiAvKiBDb2xsYXRv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsYXRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzM0QjE1MUE4MjVCMDA0MTIzRkYgLyogQ29sbGF0
b3JEZWZhdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbGxh
dG9yRGVmYXVsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYzNTI1RTI5MTYx
NDlGRjQwMDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFz
aFNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzM1MDE1MUE4MjVCMDA0
MTIzRkYgLyogQ29sbGF0b3JJQ1UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ29sbGF0b3JJQ1UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0
NzM1MTE1MUE4MjVCMDA0MTIzRkYgLyogVW5pY29kZUljdS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBVbmljb2RlSWN1Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE4QTQ3MzU0MTUxQTgyNUIwMDQxMjNGRiAvKiBTY3JpcHRDb2Rlc0Zyb21JQ1UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0Q29kZXNGcm9tSUNVLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NDUsNiArNzQ3LDcgQEAKIAkJCQlGM0ZCQzcxRDE2MUFG
N0JGMDBCQjRCRDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENvdW50ZWRTZXQuaCAqLywK
IAkJCQlGMzUyNUU0NTE2MTlBNEVFMDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFz
aE1hcC5oICovLAogCQkJCTRGMUIyREI1MTYwQjQ0QUEwMDU4NjU1OSAvKiBNZW1vcnlJbnN0cnVt
ZW50YXRpb25IYXNoU2V0LmggKi8sCisJCQkJRjM1MjVFMjkxNjE0OUZGNDAwMjc4QkMxIC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggKi8sCiAJCQkJNEZEMkEzNTgxNjFCMEVF
MTAwRUJGMjM2IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblBhcnNlZFVSTC5oICovLAogCQkJCUYz
RkJDNzFGMTYxQUY3Q0QwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25TZXF1ZW5jZS5o
ICovLAogCQkJCTRGQ0YyN0UwMTYxNzJFODYwMENCRjAzNyAvKiBNZW1vcnlJbnN0cnVtZW50YXRp
b25TdHJpbmcuaCAqLywKQEAgLTEyMDksNiArMTIxMiw3IEBACiAJCQkJQThBNDc0NkExNTFBODI1
QjAwNDEyM0ZGIC8qIFVURjguaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0I5MTUxQTgyNUIw
MDQxMjNGRiAvKiB1dGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0N0QxNTFBODI1QjAw
NDEyM0ZGIC8qIFZhbHVlQ2hlY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUYzNTI1RTJBMTYxNDlG
RjQwMDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThBNDc0N0UxNTFBODI1QjAwNDEyM0ZGIC8qIFZlY3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThBNDc0N0YxNTFBODI1QjAwNDEyM0ZGIC8qIFZlY3RvclRyYWl0cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0ODAxNTFBODI1QjAwNDEyM0ZGIC8qIFZNVGFncy5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNldC5oIGIv
U291cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaAppbmRleCBmYTY1NGM1Li44ZmVlZjcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNldC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0xpc3RIYXNoU2V0LmgKQEAgLTk4LDYgKzk4LDggQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAg
IGludCBjYXBhY2l0eSgpIGNvbnN0OwogICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAor
ICAgICAgICBzaXplX3Qgc2l6ZUluQnl0ZXMoKSBjb25zdDsKKwogICAgICAgICBpdGVyYXRvciBi
ZWdpbigpOwogICAgICAgICBpdGVyYXRvciBlbmQoKTsKICAgICAgICAgY29uc3RfaXRlcmF0b3Ig
YmVnaW4oKSBjb25zdDsKQEAgLTIwOSwxNSArMjExLDE1IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
ICAgICAgICAgZmFzdEZyZWUobm9kZSk7CiAgICAgICAgIH0KIAotICAgIHByaXZhdGU6Ci0gICAg
ICAgIE5vZGUqIHBvb2woKSB7IHJldHVybiByZWludGVycHJldF9jYXN0X3B0cjxOb2RlKj4obV9w
b29sLnBvb2wpOyB9Ci0gICAgICAgIE5vZGUqIHBhc3RQb29sKCkgeyByZXR1cm4gcG9vbCgpICsg
bV9wb29sU2l6ZTsgfQotCiAgICAgICAgIGJvb2wgaW5Qb29sKE5vZGUqIG5vZGUpCiAgICAgICAg
IHsKICAgICAgICAgICAgIHJldHVybiBub2RlID49IHBvb2woKSAmJiBub2RlIDwgcGFzdFBvb2wo
KTsKICAgICAgICAgfQogCisgICAgcHJpdmF0ZToKKyAgICAgICAgTm9kZSogcG9vbCgpIHsgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPE5vZGUqPihtX3Bvb2wucG9vbCk7IH0KKyAgICAgICAg
Tm9kZSogcGFzdFBvb2woKSB7IHJldHVybiBwb29sKCkgKyBtX3Bvb2xTaXplOyB9CisKICAgICAg
ICAgTm9kZSogbV9mcmVlTGlzdDsKICAgICAgICAgYm9vbCBtX2lzRG9uZVdpdGhJbml0aWFsRnJl
ZUxpc3Q7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbV9wb29sU2l6ZSA9IGlubGluZUNh
cGFjaXR5OwpAQCAtNTYwLDYgKzU2MiwxOCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB9CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+
CisgICAgc2l6ZV90IExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6c2l6ZUluQnl0
ZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgc2l6ZV90IHJlc3VsdCA9IHNpemVvZigqdGhpcykg
KyBzaXplb2YoKm1fYWxsb2NhdG9yKTsKKyAgICAgICAgcmVzdWx0ICs9IHNpemVvZih0eXBlbmFt
ZSBJbXBsVHlwZTo6VmFsdWVUeXBlKSAqIG1faW1wbC5jYXBhY2l0eSgpOworICAgICAgICBmb3Ig
KE5vZGUqIG5vZGUgPSBtX2hlYWQ7IG5vZGU7IG5vZGUgPSBub2RlLT5tX25leHQpIHsKKyAgICAg
ICAgICAgIGlmICghbV9hbGxvY2F0b3ItPmluUG9vbChub2RlKSkKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgKz0gc2l6ZW9mKE5vZGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5
LCB0eXBlbmFtZSBVPgogICAgIGlubGluZSB0eXBlbmFtZSBMaXN0SGFzaFNldDxULCBpbmxpbmVD
YXBhY2l0eSwgVT46Oml0ZXJhdG9yIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6
YmVnaW4oKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1ha2VJdGVyYXRvcihtX2hlYWQpOyAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNl
L1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggN2VhNWNjNi4uN2M0Y2ZiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIv
U291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE1OCw3ICsxNTgsNiBA
QCBwcml2YXRlOgogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9i
amVjdChjb25zdCBUJiB0LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkgeyBPd25p
bmdUcmFpdHM8VD46OmFkZE9iamVjdCh0aGlzLCB0LCBvd25lck9iamVjdFR5cGUpOyB9Ci0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlPiB2b2lkIGFkZExpc3RIYXNoU2V0KGNv
bnN0IExpc3RIYXNoU2V0VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkg
PSBmYWxzZSk7CiAgICAgdm9pZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZl
ciwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIHNpemVfdCBzaXplKQogICAgIHsK
ICAgICAgICAgaWYgKCFidWZmZXIgfHwgdmlzaXRlZChidWZmZXIpKQpAQCAtMjAxLDcgKzIwMCw2
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNPiB2b2lkIGFkZE1l
bWJlcihjb25zdCBNJiBtZW1iZXIpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZE9iamVj
dChtZW1iZXIsIG1fb2JqZWN0VHlwZSk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMaXN0SGFz
aFNldFR5cGU+IHZvaWQgYWRkTGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiBzZXQp
IHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZExpc3RIYXNoU2V0KHNldCwgbV9vYmplY3RU
eXBlLCB0cnVlKTsgfQogICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBi
dWZmZXIsIHNpemVfdCBzaXplKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRSYXdCdWZm
ZXIoYnVmZmVyLCBtX29iamVjdFR5cGUsIHNpemUpOyB9CiAgICAgdm9pZCBhZGRQcml2YXRlQnVm
ZmVyKHNpemVfdCBzaXplKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jb3VudE9iamVjdFNp
emUoMCwgbV9vYmplY3RUeXBlLCBzaXplKTsgfQogCkBAIC0yNDksMTUgKzI0Nyw2IEBAIHZvaWQg
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKGNvbnN0IFJlZlB0cjxUPiogY29u
c3QmIG9iamVjdCwgTWVtb3J5CiAgICAgYWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBvd25l
ck9iamVjdFR5cGUsIGJ5UG9pbnRlcik7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIExpc3RIYXNo
U2V0VHlwZT4KLXZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRMaXN0SGFzaFNldChjb25z
dCBMaXN0SGFzaFNldFR5cGUmIGhhc2hTZXQsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RU
eXBlLCBib29sIGNvbnRlbnRPbmx5KQotewotICAgIGlmICh2aXNpdGVkKCZoYXNoU2V0KSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIHNpemVfdCBzaXplID0gKGNvbnRlbnRPbmx5ID8gMCA6IHNpemVv
ZihMaXN0SGFzaFNldFR5cGUpKSArIGhhc2hTZXQuY2FwYWNpdHkoKSAqIHNpemVvZih2b2lkKikg
KyBoYXNoU2V0LnNpemUoKSAqIChzaXplb2YodHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlOjpWYWx1
ZVR5cGUpICsgMiAqIHNpemVvZih2b2lkKikpOwotICAgIGNvdW50T2JqZWN0U2l6ZSgmaGFzaFNl
dCwgb3duZXJPYmplY3RUeXBlLCBzaXplKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZv
aWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyPFQ+Ojpwcm9jZXNz
KE1lbW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9uKQogewpAQCAtMjgx
LDYgKzI3MCw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJn
LCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpCiB0ZW1wbGF0ZTx0eXBlbmFtZSBW
YWx1ZUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgVHJhaXRzQXJnPiBjbGFzcyBIYXNo
Q291bnRlZFNldDsKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCB0eXBlbmFtZSBIYXNoQXJn
LCB0eXBlbmFtZSBUcmFpdHNBcmc+IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgSGFzaENv
dW50ZWRTZXQ8VmFsdWVBcmcsIEhhc2hBcmcsIFRyYWl0c0FyZz4qIGNvbnN0JiwgTWVtb3J5T2Jq
ZWN0SW5mbyopOwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZUFyZywgc2l6ZV90IGlubGluZUNh
cGFjaXR5LCB0eXBlbmFtZSBIYXNoQXJnPiBjbGFzcyBMaXN0SGFzaFNldDsKK3RlbXBsYXRlPHR5
cGVuYW1lIFZhbHVlQXJnLCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIEhhc2hBcmc+
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgTGlzdEhhc2hTZXQ8VmFsdWVBcmcsIGlubGlu
ZUNhcGFjaXR5LCBIYXNoQXJnPiogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CisKIGNsYXNz
IFN0cmluZzsKIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgU3RyaW5nKiBjb25zdCYsIE1l
bW9yeU9iamVjdEluZm8qKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvbkxpc3RIYXNoU2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MGUzMWM1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvbkxpc3RIYXNoU2V0LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVtb3J5SW5zdHJ1
bWVudGF0aW9uTGlzdEhhc2hTZXRfaAorI2RlZmluZSBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0
SGFzaFNldF9oCisKKyNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2UuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1l
IEhhc2hBcmc+Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IExpc3RIYXNoU2V0PFZhbHVl
QXJnLCBpbmxpbmVDYXBhY2l0eSwgSGFzaEFyZz4qIGNvbnN0JiBzZXQsIE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pCit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgc2V0KTsKKyAgICBpbmZvLmFkZFByaXZhdGVCdWZmZXIoc2V0LT5zaXplSW5C
eXRlcygpIC0gc2l6ZW9mKCpzZXQpKTsKKyAgICByZXBvcnRTZXF1ZW5jZU1lbW9yeVVzYWdlPFZh
bHVlQXJnLCB0eXBlbmFtZSBMaXN0SGFzaFNldDxWYWx1ZUFyZywgaW5saW5lQ2FwYWNpdHksIEhh
c2hBcmc+Ojpjb25zdF9pdGVyYXRvcj4oc2V0LT5iZWdpbigpLCBzZXQtPmVuZCgpLCBpbmZvKTsK
K30KKworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhh
c2hTZXRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiY2FjZDViLi5jZjY4ZDE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTItMDktMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBtZW1vcnkgaW5zdHJ1bWVu
dGF0aW9uIGZvciBMaXN0SGFzaFNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTc3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTd2l0Y2hlZCBleGlzdGluZyB1c2FnZXMgb2YgYWRkTGlzdEhhc2hTZXQg
dG8gdGhlIGdlbmVyaWMgaW5zdHJ1bWVudGF0aW9uIG1lY2hhbmlzbQorICAgICAgICBhcyBpdCBz
aG91bGQgd29yayBqdXN0IGp1c3QgZmluZSBub3cgdGhhdCB0aGVyZSBpcyBhIG1lbW9yeSBpbnN0
cnVtZW50YXRpb24gb2YKKyAgICAgICAgTGlzdEhhc2hTZXQuCisKKyAgICAgICAgKiBkb20vRG9j
dW1lbnRFdmVudFF1ZXVlLmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29s
bGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIwMTItMTAtMjMgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKHIxMzIzMDMp
IEJyb2tlIGRlYnVnIGJ1aWxkIHdoZW4gU0hBRE9XX0RPTSBpcyBlbmFibGVkIGJ1dCBTVFlMRV9T
Q09QRUQgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dEV2ZW50UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5j
cHAKaW5kZXggOTFkMTk4MC4uNDY3MDZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
RXZlbnRRdWV1ZS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTdXNwZW5kYWJsZVRp
bWVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01l
bW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRD
b2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmNwcAppbmRleCBiZmQxZTVmLi4xODhlYWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC00Nyw2ICs0Nyw3
IEBACiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudFVS
TFBhdHRlcm4uaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCisj
aW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00ODMsNyArNDg0LDcgQEAgdm9pZCBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9u
OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmoKICAgICBpbmZv
LmFkZE1lbWJlcihtX3VzZXJTaGVldHMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fYWN0aXZlQXV0
aG9yU3R5bGVTaGVldHMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGVTaGVldHNGb3JTdHls
ZVNoZWV0TGlzdCk7Ci0gICAgaW5mby5hZGRMaXN0SGFzaFNldChtX3N0eWxlU2hlZXRDYW5kaWRh
dGVOb2Rlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZXMp
OwogICAgIGluZm8uYWRkTWVtYmVyKG1fcHJlZmVycmVkU3R5bGVzaGVldFNldE5hbWUpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fc2VsZWN0ZWRTdHlsZXNoZWV0U2V0TmFtZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApp
bmRleCAxY2NhZWQ5Li5lMzU5Y2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaD4KKyNp
bmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05MDYsOCArOTA3LDcgQEAgdm9pZCBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZv
LCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkxvYWRlcik7CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9kb2N1bWVudFJlc291cmNlcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV92YWxpZGF0ZWRVUkxz
KTsKLSAgICBpZiAobV9wcmVsb2FkcykKLSAgICAgICAgaW5mby5hZGRMaXN0SGFzaFNldCgqbV9w
cmVsb2Fkcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9wcmVsb2Fkcyk7CiAgICAgaW5mby5hZGRN
ZW1iZXIobV9wZW5kaW5nUHJlbG9hZHMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IGIxZjY3ZjcuLjlkNDcxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTItMDktMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBtZW1vcnkgaW5zdHJ1bWVudGF0
aW9uIGZvciBMaXN0SGFzaFNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTc3ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCBhIHRlc3QgZm9yIExpc3RIYXNoU2V0IG1lbW9yeSBpbnN0cnVtZW50
YXRpb24uCisKKyAgICAgICAgKiB0ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMTAt
MjMgIFZhcnVuIEphaW4gIDx2YXJ1bmphaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENvbnRl
eHQgbWVudSBnZW5lcmF0ZWQgZnJvbSB0b3VjaCBnZXN0dXJlcyBvbiB0ZXh0YXJlYXMgaGFzCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZW1vcnlJbnN0cnVtZW50
YXRpb25UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QuY3BwCmluZGV4IDlhOTk4ZGEuLjMwMWM0YjEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01lbW9yeUluc3RydW1lbnRhdGlv
blRlc3QuY3BwCkBAIC0zNiwxMSArMzYsMTMgQEAKICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CisjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1
ZmZlclZpZXcuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENvdW50
ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01l
bW9yeUluc3RydW1lbnRhdGlvblN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNjQ4LDYg
KzY1MCw0MyBAQCBURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGhhc2hNYXBXaXRoSW5z
dHJ1bWVudGVkUG9pbnRlcktleXNBbmRQb2ludGVyVmFsdQogICAgIEVYUEVDVF9FUSgydSAqIDJ1
ICogY291bnQgKyAxLCBoZWxwZXIudmlzaXRlZE9iamVjdHMoKSk7CiB9CiAKK1RFU1QoTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVGVzdCwgbGlzdEhhc2hTZXRXaXRoSW5zdHJ1bWVudGVkVHlwZSkKK3sK
KyAgICBJbnN0cnVtZW50YXRpb25UZXN0SGVscGVyIGhlbHBlcjsKKworICAgIHR5cGVkZWYgTGlz
dEhhc2hTZXQ8U3RyaW5nLCA4PiBUZXN0U2V0OworICAgIE93blB0cjxUZXN0U2V0PiB2YWx1ZSA9
IGFkb3B0UHRyKG5ldyBUZXN0U2V0KCkpOworICAgIHNpemVfdCBjb3VudCA9IDEwOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgdmFsdWUtPmFkZChTdHJp
bmc6Om51bWJlcihpKSk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8VGVzdFNldCogPiByb290KHZh
bHVlLmdldCgpKTsKKyAgICBoZWxwZXIuYWRkUm9vdE9iamVjdChyb290KTsKKyAgICBFWFBFQ1Rf
RVEoc2l6ZW9mKFRlc3RTZXQpICsgc2l6ZW9mKFN0cmluZykgKiB2YWx1ZS0+Y2FwYWNpdHkoKSAr
IChzaXplb2YoU3RyaW5nSW1wbCkgKyAxICogc2l6ZW9mKExDaGFyKSkgKiBjb3VudCArCisgICAg
ICAgIHNpemVvZihXVEY6Okxpc3RIYXNoU2V0Tm9kZUFsbG9jYXRvcjxTdHJpbmcsIDg+KSArIHNp
emVvZihXVEY6Okxpc3RIYXNoU2V0Tm9kZTxTdHJpbmcsIDg+KSAqIChjb3VudCAtIDgpLAorICAg
ICAgICBoZWxwZXIucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKDEg
KyBjb3VudCwgaGVscGVyLnZpc2l0ZWRPYmplY3RzKCkpOworfQorCitURVNUKE1lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QsIGxpc3RIYXNoU2V0V2l0aEluc3RydW1lbnRlZFR5cGVBZnRlclZhbHVl
c1JlbW92YWwpCit7CisgICAgSW5zdHJ1bWVudGF0aW9uVGVzdEhlbHBlciBoZWxwZXI7CisKKyAg
ICB0eXBlZGVmIExpc3RIYXNoU2V0PFN0cmluZywgOD4gVGVzdFNldDsKKyAgICBPd25QdHI8VGVz
dFNldD4gdmFsdWUgPSBhZG9wdFB0cihuZXcgVGVzdFNldCgpKTsKKyAgICBzaXplX3QgY291bnQg
PSAyMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAgIHZh
bHVlLT5hZGQoU3RyaW5nOjpudW1iZXIoaSkpOworICAgIC8vIFJlbW92ZSAxMCB2YWx1ZXMsIDgg
b2Ygd2hpY2ggd2VyZSBhbGxvY2F0ZWQgaW4gdGhlIGludGVybmFsIGJ1ZmZlci4KKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IDEwOyArK2kpCisgICAgICAgIHZhbHVlLT5yZW1vdmUoU3RyaW5n
OjpudW1iZXIoaSkpOworICAgIEluc3RydW1lbnRlZE93bmVyPFRlc3RTZXQqID4gcm9vdCh2YWx1
ZS5nZXQoKSk7CisgICAgaGVscGVyLmFkZFJvb3RPYmplY3Qocm9vdCk7CisgICAgRVhQRUNUX0VR
KHNpemVvZihUZXN0U2V0KSArIHNpemVvZihTdHJpbmcpICogdmFsdWUtPmNhcGFjaXR5KCkgKyAo
c2l6ZW9mKFN0cmluZ0ltcGwpICsgMiAqIHNpemVvZihMQ2hhcikpICogKGNvdW50IC0gMTApICsK
KyAgICAgICAgc2l6ZW9mKFdURjo6TGlzdEhhc2hTZXROb2RlQWxsb2NhdG9yPFN0cmluZywgOD4p
ICsgc2l6ZW9mKFdURjo6TGlzdEhhc2hTZXROb2RlPFN0cmluZywgOD4pICogKGNvdW50IC0gMTAp
LAorICAgICAgICBoZWxwZXIucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNU
X0VRKDEgKyAoY291bnQgLSAxMCksIGhlbHBlci52aXNpdGVkT2JqZWN0cygpKTsKK30KKwogY2xh
c3MgSW5zdHJ1bWVudGVkQ29udmVydGlibGVUb0ludCB7CiBwdWJsaWM6CiAgICAgSW5zdHJ1bWVu
dGVkQ29udmVydGlibGVUb0ludCgpIDogbV9ub3RJbnN0cnVtZW50ZWQoMCkgeyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>