<?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>92072</bug_id>
          
          <creation_ts>2012-07-24 00:43:47 -0700</creation_ts>
          <short_desc>[EFL] Use eina_stringshare_add instead of strdup.</short_desc>
          <delta_ts>2012-07-26 01:31:56 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>92349</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>cdumez</cc>
    
    <cc>haraken</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>676470</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-24 00:43:47 -0700</bug_when>
    <thetext>Eina of EFL libraries supports string functionality like strdup. So, EFL port needs to replace strdup with eina_stringshare_add. Patch is coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676475</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-24 00:49:40 -0700</bug_when>
    <thetext>Yes, I was think the same. Thanks for working on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676557</commentid>
    <comment_count>2</comment_count>
      <attachid>153994</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-24 02:24:01 -0700</bug_when>
    <thetext>Created attachment 153994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676559</commentid>
    <comment_count>3</comment_count>
      <attachid>153994</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-24 02:24:53 -0700</bug_when>
    <thetext>Comment on attachment 153994
Patch

This patch is working in progress. I need to check this patch further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677692</commentid>
    <comment_count>4</comment_count>
      <attachid>154271</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-24 23:40:00 -0700</bug_when>
    <thetext>Created attachment 154271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677705</commentid>
    <comment_count>5</comment_count>
      <attachid>154271</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-24 23:50:09 -0700</bug_when>
    <thetext>Comment on attachment 154271
Patch

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

&gt; Source/WebKit/efl/ChangeLog:8
&gt; +        Eina of EFL libraries supports a string functionality like strdup. So, EFL port needs

&quot;like eina stringsharing&quot;

&gt; Source/WebKit/efl/ewk/ewk_cookies.h:46
&gt;  struct _Ewk_Cookie {

We need to document that the strings are stringshared to that the clients know they don&apos;t need to use strdup().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677782</commentid>
    <comment_count>6</comment_count>
      <attachid>154271</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-25 01:30:45 -0700</bug_when>
    <thetext>Comment on attachment 154271
Patch

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

&gt;&gt; Source/WebKit/efl/ChangeLog:8
&gt;&gt; +        Eina of EFL libraries supports a string functionality like strdup. So, EFL port needs
&gt; 
&gt; &quot;like eina stringsharing&quot;

I don&apos;t understand this comment well. Do you mean &quot;like eina stringsharing&quot; instead of &quot;like strdup&quot; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677814</commentid>
    <comment_count>7</comment_count>
      <attachid>154299</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-25 02:11:36 -0700</bug_when>
    <thetext>Created attachment 154299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677819</commentid>
    <comment_count>8</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-25 02:17:00 -0700</bug_when>
    <thetext>Ok, patch is updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677832</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-25 02:28:26 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 154271 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=154271&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/efl/ChangeLog:8
&gt; &gt;&gt; +        Eina of EFL libraries supports a string functionality like strdup. So, EFL port needs
&gt; &gt; 
&gt; &gt; &quot;like eina stringsharing&quot;
&gt; 
&gt; I don&apos;t understand this comment well. Do you mean &quot;like eina stringsharing&quot; instead of &quot;like strdup&quot; ?

I apparently misunderstood the sentence but I see you reformulated it in your last patch and now it is more easily understandable, thanks.

LGTM now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677909</commentid>
    <comment_count>10</comment_count>
      <attachid>154324</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-25 04:27:03 -0700</bug_when>
    <thetext>Created attachment 154324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677914</commentid>
    <comment_count>11</comment_count>
      <attachid>154324</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-25 04:31:02 -0700</bug_when>
    <thetext>Comment on attachment 154324
Patch

Looks OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677928</commentid>
    <comment_count>12</comment_count>
      <attachid>154324</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-25 04:47:18 -0700</bug_when>
    <thetext>Comment on attachment 154324
Patch

Clearing flags on attachment: 154324

Committed r123604: &lt;http://trac.webkit.org/changeset/123604&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677929</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-25 04:47:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679013</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-26 01:23:37 -0700</bug_when>
    <thetext>This patch apparently causes webintents/web-intents-obj-constructor.html to crash on EFL port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679021</commentid>
    <comment_count>15</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-26 01:31:56 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; This patch apparently causes webintents/web-intents-obj-constructor.html to crash on EFL port.

I&apos;m sorry. I file a bug 92350 for this crash.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153994</attachid>
            <date>2012-07-24 02:24:01 -0700</date>
            <delta_ts>2012-07-24 23:39:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92072-20120724182352.patch</filename>
            <type>text/plain</type>
            <size>26368</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZmUyZTZjNTZl
M2VhMTBhNjgyZTdiZGY1Y2M2ODY0Yjg3ODA1ZWJhOS4uYmYzNDYyMGY5NzhkZDYyNDY1NjI0Nzk0
NTgxNjJiNWE0OTc5YTc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEy
LTA3LTI0ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgW0VGTF0gVXNlIGVpbmFfc3RyaW5nc2hhcmVfYWRkIGluc3RlYWQgb2Ygc3RyZHVwLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTIwNzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFaW5hIG9mIEVGTCBs
aWJyYXJpZXMgc3VwcG9ydHMgc3RyaW5nIGZ1bmN0aW9uYWxpdHkgbGlrZSBzdHJkdXAuIFNvLCBF
RkwgcG9ydCBuZWVkcworICAgICAgICB0byByZXBsYWNlIHN0cmR1cCB3aXRoIGVpbmFfc3RyaW5n
c2hhcmVfYWRkLgorCisgICAgICAgIFRvIHN1cHBvcnQgdGhpcyBjaGFuZ2UsIHNvbWUgcGFyYW1l
dGVycyBuZWVkIHRvIHVzZSAqY29uc3QqIGtleXdvcmQuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
RWZsOjpydW5KYXZhU2NyaXB0UHJvbXB0KToKKyAgICAgICAgKiBld2svZXdrX2Nvb2tpZXMuY3Bw
OgorICAgICAgICAoZXdrX2Nvb2tpZXNfZ2V0X2FsbCk6CisgICAgICAgIChld2tfY29va2llc19j
b29raWVfZnJlZSk6CisgICAgICAgICogZXdrL2V3a19jb29raWVzLmg6CisgICAgICAgICogZXdr
L2V3a19mcmFtZS5jcHA6CisgICAgICAgIChld2tfZnJhbWVfc2NyaXB0X2V4ZWN1dGUpOgorICAg
ICAgICAoZXdrX2ZyYW1lX3NlbGVjdGlvbl9nZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3Jlc291
cmNlc19sb2NhdGlvbl9nZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3BsYWluX3RleHRfZ2V0KToK
KyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmg6CisgICAgICAgICogZXdrL2V3a19pbnRlbnQuY3Bw
OgorICAgICAgICAoZXdrX2ludGVudF9zdWdnZXN0aW9uc19nZXQpOgorICAgICAgICAoZXdrX2lu
dGVudF9leHRyYV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9leHRyYV9uYW1lc19nZXQpOgor
ICAgICAgICAqIGV3ay9ld2tfaW50ZW50Lmg6CisgICAgICAgICogZXdrL2V3a19qcy5jcHA6Cisg
ICAgICAgIChld2tfanNfdmFyaWFudF90b19ucHZhcmlhbnQpOgorICAgICAgICAoZXdrX2pzX29i
amVjdF9uZXcpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChfZXdrX3Zp
ZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfcHJvbXB0KToKKyAgICAgICAgKGV3a192aWV3X3NlbGVj
dGlvbl9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfcHJvbXB0KToKKyAg
ICAgICAgKGV3a192aWV3X3J1bl9vcGVuX3BhbmVsKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcu
aDoKKyAgICAgICAgKiBld2svZXdrX3ZpZXdfcHJpdmF0ZS5oOgorCiAyMDEyLTA3LTIzICBQaWVy
cmUgUm9zc2kgIDxwaWVycmUucm9zc2lAZ21haWwuY29tPgogCiAgICAgICAgIFVuaWZ5IG51bVRv
dWNoRXZlbnRIYW5kbGVyc0NoYW5nZWQgYW5kIG5lZWRUb3VjaEV2ZW50cyBpbiB0aGUgY2hyb21l
IGNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDBlMjRjZDVjYjNjNzVlOTM1YzU3ZmFhMjkyMmEwNDZiNWUw
MDNhZGQuLmYxMzdiN2JhMTRkYzgyNzJiMTVkYmJhMDJmZGZiMWQxMjY0MzlkMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNy0yNCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcu
a2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIFVzZSBlaW5hX3N0cmluZ3NoYXJlX2Fk
ZCBpbnN0ZWFkIG9mIHN0cmR1cC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkyMDcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRWluYSBvZiBFRkwgbGlicmFyaWVzIHN1cHBvcnRzIHN0cmluZyBmdW5jdGlv
bmFsaXR5IGxpa2Ugc3RyZHVwLiBTbywgRUZMIHBvcnQgbmVlZHMKKyAgICAgICAgdG8gcmVwbGFj
ZSBzdHJkdXAgd2l0aCBlaW5hX3N0cmluZ3NoYXJlX2FkZC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a19pbnRlbnQuY3BwOgorICAgICAgICAoZXdrX2ludGVudF9zdWdnZXN0aW9u
c19nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9leHRyYV9nZXQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuaDoKKwogMjAxMi0wNy0yMyAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjEyMzE4NCwgcjEyMzE5NSwgYW5kIHIxMjMxOTcuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCA2YTg1OTA1
M2U2NzE2NWVjYWY3MTU3Yzg5YTM2OTRkZDZlODc5MTBkLi4xMjQ0YjQ3ZDZmZmY4ZGJhMTJhMjI0
MDI4YjIyODA5ZGY0YTk1MzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTI5NCwxMSArMjk0LDExIEBAIGJvb2wg
Q2hyb21lQ2xpZW50RWZsOjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKIAogYm9vbCBDaHJvbWVDbGllbnRFZmw6OnJ1bkphdmFTY3JpcHRQ
cm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKIHsKLSAgICBjaGFyKiB2YWx1ZSA9IDA7Cisg
ICAgY29uc3QgY2hhciogdmFsdWUgPSAwOwogICAgIGV3a192aWV3X3J1bl9qYXZhc2NyaXB0X3By
b21wdChtX3ZpZXcsIGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgZGVmYXVsdFZh
bHVlLnV0ZjgoKS5kYXRhKCksICZ2YWx1ZSk7CiAgICAgaWYgKHZhbHVlKSB7CiAgICAgICAgIHJl
c3VsdCA9IFN0cmluZzo6ZnJvbVVURjgodmFsdWUpOwotICAgICAgICBmcmVlKHZhbHVlKTsKKyAg
ICAgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwodmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19jb29raWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5j
cHAKaW5kZXggNTQ2NjUxMzkwNDdhMjAzM2FjMDQ4MWM5MzM0Y2RlNDFlZTA0NzhhYi4uYmJlZThl
NDlkNTlhM2Q0ZDRhOWMyMGQ5MDM3ZWE5YWQ3NmY0NDRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19jb29raWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2Nvb2tpZXMuY3BwCkBAIC03NywxMCArNzcsMTAgQEAgRWluYV9MaXN0KiBld2tfY29va2ll
c19nZXRfYWxsKHZvaWQpCiAgICAgZm9yIChwID0gbGlzdDsgcDsgcCA9IHAtPm5leHQpIHsKICAg
ICAgICAgU291cENvb2tpZSogY29va2llID0gc3RhdGljX2Nhc3Q8U291cENvb2tpZSo+KHAtPmRh
dGEpOwogICAgICAgICBFd2tfQ29va2llKiBld2tDb29raWUgPSBuZXcgRXdrX0Nvb2tpZTsKLSAg
ICAgICAgZXdrQ29va2llLT5uYW1lID0gc3RyZHVwKGNvb2tpZS0+bmFtZSk7Ci0gICAgICAgIGV3
a0Nvb2tpZS0+dmFsdWUgPSBzdHJkdXAoY29va2llLT52YWx1ZSk7Ci0gICAgICAgIGV3a0Nvb2tp
ZS0+ZG9tYWluID0gc3RyZHVwKGNvb2tpZS0+ZG9tYWluKTsKLSAgICAgICAgZXdrQ29va2llLT5w
YXRoID0gc3RyZHVwKGNvb2tpZS0+cGF0aCk7CisgICAgICAgIGV3a0Nvb2tpZS0+bmFtZSA9IGVp
bmFfc3RyaW5nc2hhcmVfYWRkKGNvb2tpZS0+bmFtZSk7CisgICAgICAgIGV3a0Nvb2tpZS0+dmFs
dWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChjb29raWUtPnZhbHVlKTsKKyAgICAgICAgZXdrQ29v
a2llLT5kb21haW4gPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChjb29raWUtPmRvbWFpbik7CisgICAg
ICAgIGV3a0Nvb2tpZS0+cGF0aCA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKGNvb2tpZS0+cGF0aCk7
CiAgICAgICAgIGV3a0Nvb2tpZS0+ZXhwaXJlcyA9IHNvdXBfZGF0ZV90b190aW1lX3QoY29va2ll
LT5leHBpcmVzKTsKICAgICAgICAgZXdrQ29va2llLT5zZWN1cmUgPSBzdGF0aWNfY2FzdDxFaW5h
X0Jvb2w+KGNvb2tpZS0+c2VjdXJlKTsKICAgICAgICAgZXdrQ29va2llLT5odHRwX29ubHkgPSBz
dGF0aWNfY2FzdDxFaW5hX0Jvb2w+KGNvb2tpZS0+aHR0cF9vbmx5KTsKQEAgLTExNywxMCArMTE3
LDEwIEBAIHZvaWQgZXdrX2Nvb2tpZXNfY29va2llX2RlbChFd2tfQ29va2llKiBjb29raWUpCiB2
b2lkIGV3a19jb29raWVzX2Nvb2tpZV9mcmVlKEV3a19Db29raWUqIGNvb2tpZSkKIHsKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihjb29raWUpOwotICAgIGZyZWUoY29va2llLT5uYW1l
KTsKLSAgICBmcmVlKGNvb2tpZS0+dmFsdWUpOwotICAgIGZyZWUoY29va2llLT5kb21haW4pOwot
ICAgIGZyZWUoY29va2llLT5wYXRoKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChjb29raWUt
Pm5hbWUpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGNvb2tpZS0+dmFsdWUpOworICAgIGVp
bmFfc3RyaW5nc2hhcmVfZGVsKGNvb2tpZS0+ZG9tYWluKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJl
X2RlbChjb29raWUtPnBhdGgpOwogICAgIGRlbGV0ZSBjb29raWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19jb29raWVzLmgKaW5kZXggOTM5ZWQzZGExMjQ4ZjMzNDBmZTRkMjFlOTA4NDExOGRi
NWQwYTQwYy4uNDc4Mzk4YjVhNzIyZDdiNGYxZTgyM2MwMmE4NzhmYjM1NWUyZTNlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19jb29raWVzLmgKQEAgLTQ1LDEzICs0NSwxMyBAQCBleHRlcm4gIkMi
IHsKICAqLwogc3RydWN0IF9Fd2tfQ29va2llIHsKICAgICAvLy8gdGhlIGNvb2tpZSBuYW1lCi0g
ICAgY2hhciAqbmFtZTsKKyAgICBjb25zdCBjaGFyICpuYW1lOwogICAgIC8vLyB0aGUgY29va2ll
IHZhbHVlCi0gICAgY2hhciAqdmFsdWU7CisgICAgY29uc3QgY2hhciAqdmFsdWU7CiAgICAgLy8v
IHRoZSAiZG9tYWluIiBhdHRyaWJ1dGUsIG9yIGVsc2UgdGhlIGhvc3RuYW1lIHRoYXQgdGhlIGNv
b2tpZSBjYW1lIGZyb20KLSAgICBjaGFyICpkb21haW47CisgICAgY29uc3QgY2hhciAqZG9tYWlu
OwogICAgIC8vLyB0aGUgInBhdGgiIGF0dHJpYnV0ZSwgb3IgQGMgTlVMTAotICAgIGNoYXIgKnBh
dGg7CisgICAgY29uc3QgY2hhciAqcGF0aDsKICAgICAvLy8gdGhlIGNvb2tpZSBleHBpcmF0aW9u
IHRpbWUsIG9yIEBjIDAgZm9yIGEgc2Vzc2lvbiBjb29raWUKICAgICB0aW1lX3QgZXhwaXJlczsK
ICAgICAvLy8gQGMgRUlOQV9UUlVFIGlmIHRoZSBjb29raWUgc2hvdWxkIG9ubHkgYmUgdHJhbmZl
cnJlZCBvdmVyIFNTTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCA2YTRiMWEz
ZjI1OTg0ZDVjOWZlMzlhYmI4OGIzYTQ1ZWVkM2JkYjQ0Li5mYmE0NjBlYzAyNDgzNDIwY2Q5Njgy
Njg2NjM5ZDcxOTg3YjU3YTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAt
NDM5LDcgKzQzOSw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfY29udGVudHNfYWx0ZXJuYXRlX3Nl
dChFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIqIGNvCiAgICAgICAgICAgICAgICB1
bnJlYWNoYWJsZVVyaSk7CiB9CiAKLWNoYXIqIGV3a19mcmFtZV9zY3JpcHRfZXhlY3V0ZShFdmFz
X09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIqIHNjcmlwdCkKK2NvbnN0IGNoYXIqIGV3a19m
cmFtZV9zY3JpcHRfZXhlY3V0ZShFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIqIHNj
cmlwdCkKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgc21hcnRE
YXRhLCAwKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLT5m
cmFtZSwgMCk7CkBAIC00NTgsNyArNDU4LDcgQEAgY2hhciogZXdrX2ZyYW1lX3NjcmlwdF9leGVj
dXRlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciogc2NyaXB0KQogICAgIEpTQzo6
RXhlY1N0YXRlKiBleGVjID0gc21hcnREYXRhLT5mcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVj
dChXZWJDb3JlOjptYWluVGhyZWFkTm9ybWFsV29ybGQoKSktPmdsb2JhbEV4ZWMoKTsKICAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogICAgIHJlc3VsdFN0cmluZyA9IFdlYkNvcmU6
OnVzdHJpbmdUb1N0cmluZyhyZXN1bHQudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKLSAg
ICByZXR1cm4gc3RyZHVwKHJlc3VsdFN0cmluZy51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4g
ZWluYV9zdHJpbmdzaGFyZV9hZGQocmVzdWx0U3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwpAQCAtNDg1LDE0ICs0ODUsMTQg
QEAgRWluYV9Cb29sIGV3a19mcmFtZV9lZGl0YWJsZV9zZXQoRXZhc19PYmplY3QqIGV3a0ZyYW1l
LCBFaW5hX0Jvb2wgZWRpdGFibGUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWNoYXIqIGV3a19m
cmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKK2NvbnN0IGNo
YXIqIGV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkK
IHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgc21hcnREYXRhLCAw
KTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLT5mcmFtZSwg
MCk7CiAgICAgV1RGOjpDU3RyaW5nIHNlbGVjdGVkVGV4dCA9IHNtYXJ0RGF0YS0+ZnJhbWUtPmVk
aXRvcigpLT5zZWxlY3RlZFRleHQoKS51dGY4KCk7CiAgICAgaWYgKHNlbGVjdGVkVGV4dC5pc051
bGwoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0cmR1cChzZWxlY3RlZFRleHQu
ZGF0YSgpKTsKKyAgICByZXR1cm4gZWluYV9zdHJpbmdzaGFyZV9hZGQoc2VsZWN0ZWRUZXh0LmRh
dGEoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9zZWFyY2goY29uc3QgRXZhc19P
YmplY3QqIGV3a0ZyYW1lLCBjb25zdCBjaGFyKiB0ZXh0LCBFaW5hX0Jvb2wgY2FzZVNlbnNpdGl2
ZSwgRWluYV9Cb29sIGZvcndhcmQsIEVpbmFfQm9vbCB3cmFwKQpAQCAtMTczNiw3ICsxNzM2LDcg
QEAgRWluYV9MaXN0KiBld2tfZnJhbWVfcmVzb3VyY2VzX2xvY2F0aW9uX2dldChjb25zdCBFdmFz
X09iamVjdCogZXdrRnJhbWUpCiAgICAgICAgIGlmIChmb3VuZCkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIGNoYXIqIGltYWdlTG9jYXRpb25Db3B5ID0gc3RyZHVwKGltYWdlTG9j
YXRpb24udXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGNvbnN0IGNoYXIqIGltYWdlTG9jYXRpb25D
b3B5ID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoaW1hZ2VMb2NhdGlvbi51dGY4KCkuZGF0YSgpKTsK
ICAgICAgICAgaWYgKCFpbWFnZUxvY2F0aW9uQ29weSkKICAgICAgICAgICAgIGdvdG8gb3V0X29m
X21lbW9yeV9oYW5kbGVyOwogICAgICAgICBsaXN0T2ZJbWFnZXNMb2NhdGlvbiA9IGVpbmFfbGlz
dF9hcHBlbmQobGlzdE9mSW1hZ2VzTG9jYXRpb24sIGltYWdlTG9jYXRpb25Db3B5KTsKQEAgLTE3
NTQsNyArMTc1NCw3IEBAIG91dF9vZl9tZW1vcnlfaGFuZGxlcjoKICAgICByZXR1cm4gMDsKIH0K
IAotY2hhciogZXdrX2ZyYW1lX3BsYWluX3RleHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tG
cmFtZSkKK2NvbnN0IGNoYXIqIGV3a19mcmFtZV9wbGFpbl90ZXh0X2dldChjb25zdCBFdmFzX09i
amVjdCogZXdrRnJhbWUpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdrRnJh
bWUsIHNtYXJ0RGF0YSwgMCk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNt
YXJ0RGF0YS0+ZnJhbWUsIDApOwpAQCAtMTc2Nyw3ICsxNzY3LDcgQEAgY2hhciogZXdrX2ZyYW1l
X3BsYWluX3RleHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKICAgICBpZiAoIWRv
Y3VtZW50RWxlbWVudCkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gc3RyZHVwKGRv
Y3VtZW50RWxlbWVudC0+aW5uZXJUZXh0KCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIGVp
bmFfc3RyaW5nc2hhcmVfYWRkKGRvY3VtZW50RWxlbWVudC0+aW5uZXJUZXh0KCkudXRmOCgpLmRh
dGEoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfZnJhbWVfbWl4ZWRfY29udGVudF9kaXNwbGF5ZWRf
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfZnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUu
aAppbmRleCA0NDk4YTQzNjMzZGQ1MWMwZjNhYjQ4ODMyOTQ4OTFkNmIyZWVlMjZhLi42Nzg0ZGJm
YzZhZjVmYmRhNDQzNDg2MWI4MTkwMzg3MTFlN2NkMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19m
cmFtZS5oCkBAIC00NTMsNyArNDUzLDcgQEAgRUFQSSBFaW5hX0Jvb2wgICAgZXdrX2ZyYW1lX2Nv
bnRlbnRzX2FsdGVybmF0ZV9zZXQoRXZhc19PYmplY3QgKm8sIGNvbnN0IGNoYXIgKmMKICAqCiAg
KiBAcmV0dXJuIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgZm9yIHJlc3VsdCBvciBAYyBOVUxMIGlm
IHRoZSByZXN1bHQgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBzdHJpbmcgb3IgZmFpbHVyZQogICov
Ci1FQVBJIGNoYXIgICAgICAgICpld2tfZnJhbWVfc2NyaXB0X2V4ZWN1dGUoRXZhc19PYmplY3Qg
Km8sIGNvbnN0IGNoYXIgKnNjcmlwdCk7CitFQVBJIGNvbnN0IGNoYXIgICAgICAgICpld2tfZnJh
bWVfc2NyaXB0X2V4ZWN1dGUoRXZhc19PYmplY3QgKm8sIGNvbnN0IGNoYXIgKnNjcmlwdCk7CiAK
IC8qKgogICogUXVlcmllcyBpZiB0aGUgZnJhbWUgaXMgZWRpdGFibGUuCkBAIC00ODMsNyArNDgz
LDcgQEAgRUFQSSBFaW5hX0Jvb2wgICAgZXdrX2ZyYW1lX2VkaXRhYmxlX3NldChFdmFzX09iamVj
dCAqbywgRWluYV9Cb29sIGVkaXRhYmxlKTsKICAqCiAgKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2Nh
dGVkIHN0cmluZyBvciBAYyBOVUxMIGlmIG5vdGhpbmcgaXMgc2VsZWN0ZWQgb3Igb24gZmFpbHVy
ZQogICovCi1FQVBJIGNoYXIgICAgICAgICpld2tfZnJhbWVfc2VsZWN0aW9uX2dldChjb25zdCBF
dmFzX09iamVjdCAqbyk7CitFQVBJIGNvbnN0IGNoYXIgICAgICAgICpld2tfZnJhbWVfc2VsZWN0
aW9uX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CiAKIC8qKgogICogU2VhcmNoZXMgdGhlIGdp
dmVuIHN0cmluZyBpbiBhIGRvY3VtZW50LgpAQCAtOTczLDcgKzk3Myw3IEBAIEVBUEkgRWluYV9M
aXN0ICpld2tfZnJhbWVfcmVzb3VyY2VzX2xvY2F0aW9uX2dldChjb25zdCBFdmFzX09iamVjdCAq
byk7CiAgKiBAcmV0dXJuIEEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyAod2hpY2ggbXVzdCBiZSBm
cmVlZCBieSB0aGUgY2FsbGVyIHdpdGggQGMgZnJlZSgpKQogICogICAgICAgICBvciBAYyBOVUxM
IGluIGNhc2Ugb2YgZmFpbHVyZS4KICAqLwotRUFQSSBjaGFyICpld2tfZnJhbWVfcGxhaW5fdGV4
dF9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOworRUFQSSBjb25zdCBjaGFyICpld2tfZnJhbWVf
cGxhaW5fdGV4dF9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogCiAvKioKICAqIFJldHVybnMg
d2hldGhlciB0aGUgZnJhbWUgaGFzIGRpc3BsYXllZCBtaXhlZCBjb250ZW50LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQuY3BwIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19pbnRlbnQuY3BwCmluZGV4IGVmNzkxNDE4NjdjYjMxODUzMTQ0MWNiY2NiMzg1
MTdkYmQ2Y2Q0NGMuLjc2YzJkNjhkYWE3MjEyNGVhNWI2MWI3ZTI0ZjAzNGMyYzBjZGI4MWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudC5jcHAKQEAgLTEwNiwyMSArMTA2LDIxIEBAIEVp
bmFfTGlzdCogZXdrX2ludGVudF9zdWdnZXN0aW9uc19nZXQoY29uc3QgRXdrX0ludGVudCogaW50
ZW50KQogICAgIEVpbmFfTGlzdCogbGlzdE9mU3VnZ2VzdGlvbnMgPSAwOwogICAgIFZlY3RvcjxX
ZWJDb3JlOjpLVVJMPjo6Y29uc3RfaXRlcmF0b3IgaXQ7CiAgICAgZm9yIChpdCA9IGNvcmUtPnN1
Z2dlc3Rpb25zKCkuYmVnaW4oKTsgaXQgIT0gY29yZS0+c3VnZ2VzdGlvbnMoKS5lbmQoKTsgKytp
dCkKLSAgICAgICAgbGlzdE9mU3VnZ2VzdGlvbnMgPSBlaW5hX2xpc3RfYXBwZW5kKGxpc3RPZlN1
Z2dlc3Rpb25zLCBzdHJkdXAoaXQtPnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAg
bGlzdE9mU3VnZ2VzdGlvbnMgPSBlaW5hX2xpc3RfYXBwZW5kKGxpc3RPZlN1Z2dlc3Rpb25zLCBl
aW5hX3N0cmluZ3NoYXJlX2FkZChpdC0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwogICAgIHJl
dHVybiBsaXN0T2ZTdWdnZXN0aW9uczsKICNlbHNlCiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0K
IAotY2hhciogZXdrX2ludGVudF9leHRyYV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50LCBj
b25zdCBjaGFyKiBrZXkpCitjb25zdCBjaGFyKiBld2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBF
d2tfSW50ZW50KiBpbnRlbnQsIGNvbnN0IGNoYXIqIGtleSkKIHsKICNpZiBFTkFCTEUoV0VCX0lO
VEVOVFMpCiAgICAgRVdLX0lOVEVOVF9DT1JFX0dFVF9PUl9SRVRVUk4oaW50ZW50LCBjb3JlLCAw
KTsKICAgICBXVEY6Okhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciB2YWwg
PSBjb3JlLT5leHRyYXMoKS5maW5kKFN0cmluZzo6ZnJvbVVURjgoa2V5KSk7CiAgICAgaWYgKHZh
bCA9PSBjb3JlLT5leHRyYXMoKS5lbmQoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJu
IHN0cmR1cCh2YWwtPnNlY29uZC51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gZWluYV9zdHJp
bmdzaGFyZV9hZGQodmFsLT5zZWNvbmQudXRmOCgpLmRhdGEoKSk7CiAjZWxzZQogICAgIHJldHVy
biAwOwogI2VuZGlmCkBAIC0xMzMsNyArMTMzLDcgQEAgRWluYV9MaXN0KiBld2tfaW50ZW50X2V4
dHJhX25hbWVzX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQpCiAgICAgRWluYV9MaXN0KiBs
aXN0T2ZOYW1lcyA9IDA7CiAgICAgV1RGOjpIYXNoTWFwPFN0cmluZywgU3RyaW5nPjo6Y29uc3Rf
aXRlcmF0b3I6OktleXMgaXQgPSBjb3JlLT5leHRyYXMoKS5iZWdpbigpLmtleXMoKTsKICAgICBm
b3IgKDsgaXQgIT0gY29yZS0+ZXh0cmFzKCkuZW5kKCkua2V5cygpOyArK2l0KQotICAgICAgICBs
aXN0T2ZOYW1lcyA9IGVpbmFfbGlzdF9hcHBlbmQobGlzdE9mTmFtZXMsIHN0cmR1cChpdC0+dXRm
OCgpLmRhdGEoKSkpOworICAgICAgICBsaXN0T2ZOYW1lcyA9IGVpbmFfbGlzdF9hcHBlbmQobGlz
dE9mTmFtZXMsIGVpbmFfc3RyaW5nc2hhcmVfYWRkKGl0LT51dGY4KCkuZGF0YSgpKSk7CiAgICAg
cmV0dXJuIGxpc3RPZk5hbWVzOwogI2Vsc2UKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2ludGVudC5oCmluZGV4IGY0OWE3NmRjNDI0ZWQzMTljOTBmMWFlZDdjMmRlYjkzYjExNThk
ZmEuLmY1YmFkYjFmM2Y4MWVhZWY2YzNlNzgxYTUyZWE4NzUxOTMyMWNhYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19pbnRlbnQuaApAQCAtOTAsNyArOTAsNyBAQCBFQVBJIEVpbmFfTGlzdCAqZXdr
X2ludGVudF9zdWdnZXN0aW9uc19nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKICAqCiAg
KiBAcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBvciBAYyBOVUxMIGluIGNhc2Ugb2Yg
ZXJyb3Igb3IgaWYgdGhlIGtleSBkb2VzIG5vdCBleGlzdC4KICAqLwotRUFQSSBjaGFyICpld2tf
aW50ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQsIGNvbnN0IGNoYXIgKmtl
eSk7CitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3a19JbnRl
bnQgKmludGVudCwgY29uc3QgY2hhciAqa2V5KTsKIAogLyoqCiAgKiBSZXRyaWV2ZSBhIGxpc3Qg
b2YgdGhlIG5hbWVzIG9mIGV4dHJhIG1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW50ZW50
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19qcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcAppbmRleCBmMDhmOThlMTU1NzExYmQyMDZiM2VkMDgw
MjIzYjQ0ODMyZWUzNmVjLi4wY2JiMTg5NTIzODE0NTczNGFhYTlmZjYxYzE2ZjYwYzM3NWY1OGQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcApAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgRWlu
YV9Cb29sIGV3a19qc192YXJpYW50X3RvX25wdmFyaWFudChjb25zdCBFd2tfSlNfVmFyaWFudCog
ZGF0YSwgTlBWYXJpYQogICAgICAgICBET1VCTEVfVE9fTlBWQVJJQU5UKGRhdGEtPnZhbHVlLmQs
ICpyZXN1bHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEVXS19KU19WQVJJQU5UX1NUUklO
RzoKLSAgICAgICAgc3RyaW5nX3ZhbHVlID0gc3RyZHVwKGRhdGEtPnZhbHVlLnMpOworICAgICAg
ICBzdHJpbmdfdmFsdWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChkYXRhLT52YWx1ZS5zKTsKICAg
ICAgICAgaWYgKHN0cmluZ192YWx1ZSkKICAgICAgICAgICAgIFNUUklOR1pfVE9fTlBWQVJJQU5U
KHN0cmluZ192YWx1ZSwgKnJlc3VsdCk7CiAgICAgICAgIGVsc2UKQEAgLTU2OSw3ICs1NjksNyBA
QCBFd2tfSlNfT2JqZWN0KiBld2tfanNfb2JqZWN0X25ldyhjb25zdCBFd2tfSlNfQ2xhc3NfTWV0
YSoganNNZXRhQ2xhc3MpCiAgICAgICAgICAgICAgICAgdmFsdWUtPnZhbHVlLm8gPSAwOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBFV0tfSlNfVkFSSUFOVF9TVFJJ
Tkc6Ci0gICAgICAgICAgICAgICAgdmFsdWUtPnZhbHVlLnMgPSBzdHJkdXAocHJvcC52YWx1ZS52
YWx1ZS5zKTsKKyAgICAgICAgICAgICAgICB2YWx1ZS0+dmFsdWUucyA9IGVpbmFfc3RyaW5nc2hh
cmVfYWRkKHByb3AudmFsdWUudmFsdWUucyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBjYXNlIEVXS19KU19WQVJJQU5UX0JPT0w6CiAgICAgICAgICAgICAgICAgdmFsdWUt
PnZhbHVlLmIgPSBwcm9wLnZhbHVlLnZhbHVlLmI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cAppbmRleCBkYzhhYzg4YmFlNDgxNGQyNWJmMWM1NWIzY2FlOTUxYjRkY2JhYTc3Li44MTliN2Uz
NzQ3NmJjNzczMDZjZGVkOTdkNmUzNmM2MjBlOTRkNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAKQEAgLTYzMyw5ICs2MzMsOSBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19z
bWFydF9zaG91bGRfaW50ZXJydXB0X2phdmFzY3JpcHQoRXdrX1ZpZXdfU21hcnRfRGF0YQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVu
X2phdmFzY3JpcHRfcHJvbXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgRXZhc19P
YmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBkZWZhdWx0VmFs
dWUsIGNoYXIqKiB2YWx1ZSkKK3N0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3J1bl9q
YXZhc2NyaXB0X3Byb21wdChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIEV2YXNfT2Jq
ZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciogZGVmYXVsdFZhbHVl
LCBjb25zdCBjaGFyKiogdmFsdWUpCiB7Ci0gICAgKnZhbHVlID0gc3RyZHVwKCJ0ZXN0Iik7Cisg
ICAgKnZhbHVlID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoInRlc3QiKTsKICAgICBFaW5hX0Jvb2wg
cmVzdWx0ID0gdHJ1ZTsKICAgICBJTkYoImphdmFzY3JpcHQgcHJvbXB0OlxuIgogICAgICAgICAi
XHQgICAgICBtZXNzYWdlOiAlc1xuIgpAQCAtMTU4NSwxNCArMTU4NSwxNCBAQCBFaW5hX0Jvb2wg
ZXdrX3ZpZXdfZWRpdGFibGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wgZWRp
dGFibGUpCiAgICAgcmV0dXJuIGV3a19mcmFtZV9lZGl0YWJsZV9zZXQoc21hcnREYXRhLT5tYWlu
X2ZyYW1lLCBlZGl0YWJsZSk7CiB9CiAKLWNoYXIqIGV3a192aWV3X3NlbGVjdGlvbl9nZXQoY29u
c3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCitjb25zdCBjaGFyKiBld2tfdmlld19zZWxlY3Rpb25f
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVXS19WSUVXX1NEX0dFVF9P
Ul9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsKICAgICBDU3RyaW5nIHNlbGVjdGVkU3RyaW5n
ID0gcHJpdi0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5l
ZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCkudXRmOCgpOwogICAgIGlmIChzZWxlY3RlZFN0cmluZy5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0cmR1cChzZWxlY3RlZFN0
cmluZy5kYXRhKCkpOworICAgIHJldHVybiBlaW5hX3N0cmluZ3NoYXJlX2FkZChzZWxlY3RlZFN0
cmluZy5kYXRhKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfZXhl
Y3V0ZShjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXdrX0VkaXRvcl9Db21tYW5k
IGNvbW1hbmQsIGNvbnN0IGNoYXIqIHZhbHVlKQpAQCAtMzQ4MSw3ICszNDgxLDcgQEAgYm9vbCBl
d2tfdmlld19ydW5famF2YXNjcmlwdF9jb25maXJtKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFz
X09iamVjdCogZnJhbWUsIGMKICAgICByZXR1cm4gc21hcnREYXRhLT5hcGktPnJ1bl9qYXZhc2Ny
aXB0X2NvbmZpcm0oc21hcnREYXRhLCBmcmFtZSwgbWVzc2FnZSk7CiB9CiAKLWJvb2wgZXdrX3Zp
ZXdfcnVuX2phdmFzY3JpcHRfcHJvbXB0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVj
dCogZnJhbWUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1ZSwg
Y2hhcioqIHZhbHVlKQorYm9vbCBld2tfdmlld19ydW5famF2YXNjcmlwdF9wcm9tcHQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSwg
Y29uc3QgY2hhciogZGVmYXVsdFZhbHVlLCBjb25zdCBjaGFyKiogdmFsdWUpCiB7CiAgICAgREJH
KCJld2tWaWV3PSVwIGZyYW1lPSVwIG1lc3NhZ2U9JXMiLCBld2tWaWV3LCBmcmFtZSwgbWVzc2Fn
ZSk7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZh
bHNlKTsKQEAgLTM1OTEsNyArMzU5MSw3IEBAIGJvb2wgZXdrX3ZpZXdfcnVuX29wZW5fcGFuZWwo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSwgYm9vbCBhbGxvCiAKICAg
ICBFaW5hX0xpc3QqIGNBY2NlcHRNSU1FVHlwZXMgPSAwOwogICAgIGZvciAoV1RGOjpWZWN0b3I8
V1RGOjpTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdGVyYXRvciA9IGFjY2VwdE1JTUVUeXBlcy5i
ZWdpbigpOyBpdGVyYXRvciAhPSBhY2NlcHRNSU1FVHlwZXMuZW5kKCk7ICsraXRlcmF0b3IpCi0g
ICAgICAgIGNBY2NlcHRNSU1FVHlwZXMgPSBlaW5hX2xpc3RfYXBwZW5kKGNBY2NlcHRNSU1FVHlw
ZXMsIHN0cmR1cCgoKml0ZXJhdG9yKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGNBY2NlcHRN
SU1FVHlwZXMgPSBlaW5hX2xpc3RfYXBwZW5kKGNBY2NlcHRNSU1FVHlwZXMsIGVpbmFfc3RyaW5n
c2hhcmVfYWRkKCgqaXRlcmF0b3IpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgIGJvb2wgY29uZmly
bSA9IHNtYXJ0RGF0YS0+YXBpLT5ydW5fb3Blbl9wYW5lbChzbWFydERhdGEsIGZyYW1lLCBhbGxv
d3NNdWx0aXBsZUZpbGVzLCBjQWNjZXB0TUlNRVR5cGVzLCBzZWxlY3RlZEZpbGVuYW1lcyk7CiAg
ICAgaWYgKCFjb25maXJtICYmICpzZWxlY3RlZEZpbGVuYW1lcykKQEAgLTM1OTksNyArMzU5OSw3
IEBAIGJvb2wgZXdrX3ZpZXdfcnVuX29wZW5fcGFuZWwoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2
YXNfT2JqZWN0KiBmcmFtZSwgYm9vbCBhbGxvCiAKICAgICB2b2lkKiBpdGVtID0gMDsKICAgICBF
SU5BX0xJU1RfRlJFRShjQWNjZXB0TUlNRVR5cGVzLCBpdGVtKQotICAgICAgICBmcmVlKGl0ZW0p
OworICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4o
aXRlbSkpOwogCiAgICAgcmV0dXJuIGNvbmZpcm07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5o
CmluZGV4IDU1ZWQzZWU4NjgxZWYwYzExNWQ4ZjA4M2UyNDhlODU0YjJjMDBmZTYuLjBiOWY5NDM0
YTkwMzc3Njg2YWNhMTJmMzRjNjIwMzI0N2Y2NzYwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5oCkBAIC0xODIsNyArMTgyLDcgQEAgc3RydWN0IF9Fd2tfVmlld19TbWFydF9DbGFzcyB7CiAg
ICAgdm9pZCAoKmFkZF9jb25zb2xlX21lc3NhZ2UpKEV3a19WaWV3X1NtYXJ0X0RhdGEgKnNkLCBj
b25zdCBjaGFyICptZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgY2hhciAq
c291cmNlSUQpOwogICAgIHZvaWQgKCpydW5famF2YXNjcmlwdF9hbGVydCkoRXdrX1ZpZXdfU21h
cnRfRGF0YSAqc2QsIEV2YXNfT2JqZWN0ICpmcmFtZSwgY29uc3QgY2hhciAqbWVzc2FnZSk7CiAg
ICAgRWluYV9Cb29sICgqcnVuX2phdmFzY3JpcHRfY29uZmlybSkoRXdrX1ZpZXdfU21hcnRfRGF0
YSAqc2QsIEV2YXNfT2JqZWN0ICpmcmFtZSwgY29uc3QgY2hhciAqbWVzc2FnZSk7Ci0gICAgRWlu
YV9Cb29sICgqcnVuX2phdmFzY3JpcHRfcHJvbXB0KShFd2tfVmlld19TbWFydF9EYXRhICpzZCwg
RXZhc19PYmplY3QgKmZyYW1lLCBjb25zdCBjaGFyICptZXNzYWdlLCBjb25zdCBjaGFyICpkZWZh
dWx0VmFsdWUsIGNoYXIgKip2YWx1ZSk7CisgICAgRWluYV9Cb29sICgqcnVuX2phdmFzY3JpcHRf
cHJvbXB0KShFd2tfVmlld19TbWFydF9EYXRhICpzZCwgRXZhc19PYmplY3QgKmZyYW1lLCBjb25z
dCBjaGFyICptZXNzYWdlLCBjb25zdCBjaGFyICpkZWZhdWx0VmFsdWUsIGNvbnN0IGNoYXIgKip2
YWx1ZSk7CiAgICAgRWluYV9Cb29sICgqc2hvdWxkX2ludGVycnVwdF9qYXZhc2NyaXB0KShFd2tf
Vmlld19TbWFydF9EYXRhICpzZCk7CiAgICAgaW50NjRfdCAoKmV4Y2VlZGVkX2FwcGxpY2F0aW9u
X2NhY2hlX3F1b3RhKShFd2tfVmlld19TbWFydF9EYXRhICpzZCwgRXdrX1NlY3VyaXR5X09yaWdp
biogb3JpZ2luLCBpbnQ2NF90IGRlZmF1bHRPcmlnaW5RdW90YSwgaW50NjRfdCB0b3RhbFNwYWNl
TmVlZGVkKTsKICAgICB1aW50NjRfdCAoKmV4Y2VlZGVkX2RhdGFiYXNlX3F1b3RhKShFd2tfVmll
d19TbWFydF9EYXRhICpzZCwgRXZhc19PYmplY3QgKmZyYW1lLCBjb25zdCBjaGFyICpkYXRhYmFz
ZU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRfc2l6ZSwgdWludDY0X3QgZXhwZWN0ZWRfc2l6ZSk7CkBA
IC04NjQsNyArODY0LDcgQEAgRUFQSSB2b2lkICAgICAgICAgZXdrX3ZpZXdfYmdfY29sb3JfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0ICpvLCBpbnQgKnIsIGludCAqZywgaW4KICAqCiAgKiBAcmV0dXJu
IGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBvciBAYyBOVUxMIGlmIG5vdGhpbmcgaXMgc2VsZWN0
ZWQgb3Igb24gZmFpbHVyZQogICovCi1FQVBJIGNoYXIgICAgICAgICpld2tfdmlld19zZWxlY3Rp
b25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKK0VBUEkgY29uc3QgY2hhciAgICAgICAgKmV3
a192aWV3X3NlbGVjdGlvbl9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogCiAvKioKICAqIEZv
cndhcmRzIGEgcmVxdWVzdCBvZiBhIG5ldyBDb250ZXh0IE1lbnUgdG8gV2ViQ29yZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oCmluZGV4IGI3MGU3NTViMTYwOTNhNTNj
ZTZjZDM3OGUzNjNkYzY5MjNkZjFkODkuLjY1NjhlNzJjOTkyMGE0ZGFjZTYwZTBmMTM0OGU0ZWFl
YzY2ZWUxOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaApAQCAt
OTIsNyArOTIsNyBAQCB2b2lkIGV3a192aWV3X2FkZF9jb25zb2xlX21lc3NhZ2UoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHVucwogCiB2b2lkIGV3a192aWV3X3J1
bl9qYXZhc2NyaXB0X2FsZXJ0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJh
bWUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UpOwogYm9vbCBld2tfdmlld19ydW5famF2YXNjcmlwdF9j
b25maXJtKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUsIGNvbnN0IGNo
YXIqIG1lc3NhZ2UpOwotYm9vbCBld2tfdmlld19ydW5famF2YXNjcmlwdF9wcm9tcHQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSwg
Y29uc3QgY2hhciogZGVmYXVsdFZhbHVlLCBjaGFyKiogdmFsdWUpOworYm9vbCBld2tfdmlld19y
dW5famF2YXNjcmlwdF9wcm9tcHQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBm
cmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciogZGVmYXVsdFZhbHVlLCBjb25z
dCBjaGFyKiogdmFsdWUpOwogYm9vbCBld2tfdmlld19zaG91bGRfaW50ZXJydXB0X2phdmFzY3Jp
cHQoRXZhc19PYmplY3QqIGV3a1ZpZXcpOwogaW50NjRfdCBld2tfdmlld19leGNlZWRlZF9hcHBs
aWNhdGlvbl9jYWNoZV9xdW90YShFdmFzX09iamVjdCogZXdrVmlldywgRXdrX1NlY3VyaXR5X09y
aWdpbiAqb3JpZ2luLCBpbnQ2NF90IGRlZmF1bHRPcmlnaW5RdW90YSwgaW50NjRfdCB0b3RhbFNw
YWNlTmVlZGVkKTsKIHVpbnQ2NF90IGV3a192aWV3X2V4Y2VlZGVkX2RhdGFiYXNlX3F1b3RhKEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUsIGNvbnN0IGNoYXIqIGRhdGFi
YXNlTmFtZSwgdWludDY0X3QgY3VycmVudFNpemUsIHVpbnQ2NF90IGV4cGVjdGVkU2l6ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuY3BwCmluZGV4
IDczMjIxMDhiZTcwNDcyOWE5NjhmMmIxMjhjMjk0ZDQxMWJjMGFmNTQuLjZiZTgyODA4ZmZlMGNj
ZjA4YWM5ODI0MDUyMTkyODkwYmY0M2E3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgRWluYV9MaXN0
KiBld2tfaW50ZW50X3N1Z2dlc3Rpb25zX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQpCiAg
ICAgY29uc3Qgc2l6ZV90IG51bVN1Z2dlc3Rpb25zID0gV0tBcnJheUdldFNpemUod2tTdWdnZXN0
aW9ucy5nZXQoKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1TdWdnZXN0aW9uczsg
KytpKSB7CiAgICAgICAgIFdLVVJMUmVmIHdrU3VnZ2VzdGlvbiA9IHN0YXRpY19jYXN0PFdLVVJM
UmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgod2tTdWdnZXN0aW9ucy5nZXQoKSwgaSkpOwotICAg
ICAgICBsaXN0T2ZTdWdnZXN0aW9ucyA9IGVpbmFfbGlzdF9hcHBlbmQobGlzdE9mU3VnZ2VzdGlv
bnMsIHN0cmR1cCh0b0ltcGwod2tTdWdnZXN0aW9uKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkp
OworICAgICAgICBsaXN0T2ZTdWdnZXN0aW9ucyA9IGVpbmFfbGlzdF9hcHBlbmQobGlzdE9mU3Vn
Z2VzdGlvbnMsIGVpbmFfc3RyaW5nc2hhcmVfYWRkKHRvSW1wbCh3a1N1Z2dlc3Rpb24pLT5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGxpc3RPZlN1Z2dlc3Rp
b25zOwpAQCAtMTY1LDcgKzE2NSw3IEBAIEVpbmFfTGlzdCogZXdrX2ludGVudF9zdWdnZXN0aW9u
c19nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQogI2VuZGlmCiB9CiAKLWNoYXIqIGV3a19p
bnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCwgY29uc3QgY2hhcioga2V5
KQorY29uc3QgY2hhciogZXdrX2ludGVudF9leHRyYV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50
ZW50LCBjb25zdCBjaGFyKiBrZXkpCiB7CiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQogICAgIEVX
S19JTlRFTlRfV0tfR0VUX09SX1JFVFVSTihpbnRlbnQsIHdrSW50ZW50LCAwKTsKQEAgLTE3Niw3
ICsxNzYsNyBAQCBjaGFyKiBld2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50KiBp
bnRlbnQsIGNvbnN0IGNoYXIqIGtleSkKICAgICBpZiAodmFsdWUuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIHJldHVybiBzdHJkdXAodmFsdWUudXRmOCgpLmRhdGEoKSk7Cisg
ICAgcmV0dXJuIGVpbmFfc3RyaW5nc2hhcmVfYWRkKHZhbHVlLnV0ZjgoKS5kYXRhKCkpOwogI2Vs
c2UKICAgICByZXR1cm4gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2ludGVudC5oCmluZGV4IGFlNzNjNmNlNTQ3NmEyMjU3NzU1NTlkODIwM2ZkMjY0
OTgzNDRjNjkuLjJjODI1ZjUzMzg1ODQzMDZmNGE2NTQxM2M2OTMwNjYwZmIxMjIxY2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmgKQEAgLTExNyw3
ICsxMTcsNyBAQCBFQVBJIEVpbmFfTGlzdCAqZXdrX2ludGVudF9zdWdnZXN0aW9uc19nZXQoY29u
c3QgRXdrX0ludGVudCAqaW50ZW50KTsKICAqCiAgKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVk
IHN0cmluZyBvciBAYyBOVUxMIGluIGNhc2Ugb2YgZXJyb3Igb3IgaWYgdGhlIGtleSBkb2VzIG5v
dCBleGlzdC4KICAqLwotRUFQSSBjaGFyICpld2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBFd2tf
SW50ZW50ICppbnRlbnQsIGNvbnN0IGNoYXIgKmtleSk7CitFQVBJIGNvbnN0IGNoYXIgKmV3a19p
bnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCwgY29uc3QgY2hhciAqa2V5
KTsKIAogLyoqCiAgKiBSZXRyaWV2ZSBhIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGV4dHJhIG1ldGFk
YXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW50ZW50LgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY4ZTAzZTdlNjdkMTYwZmNkMzMxMjg0YmI5MzI5
Mzc3NDdjYWM5ZmUuLmNkMWFjMmUxZTdkNmVjMDUyY2Y1ZGJmOWRlMTk2ODNlMjdlZjRmMGEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAxMi0wNy0yNCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdIFVzZSBlaW5hX3N0cmluZ3NoYXJlX2FkZCBpbnN0ZWFkIG9m
IHN0cmR1cC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkyMDcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RWluYSBvZiBFRkwgbGlicmFyaWVzIHN1cHBvcnRzIHN0cmluZyBmdW5jdGlvbmFsaXR5IGxpa2Ug
c3RyZHVwLiBTbywgRUZMIHBvcnQgbmVlZHMKKyAgICAgICAgdG8gcmVwbGFjZSBzdHJkdXAgd2l0
aCBlaW5hX3N0cmluZ3NoYXJlX2FkZC4KKworICAgICAgICBBY2NvcmRpbmcgdG8gZXdrIEFQSXMn
cyBwYXJhbWV0ZXIgY2hhbmdlLCBEdW1wUmVuZGVyVHJlZSBhbHNvIG5lZWRzIHRvIGJlIG1vZGlm
aWVkLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlLmNwcDoK
KyAgICAgICAgKGR1bXBGcmFtZXNBc1RleHQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Vm
bC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9t
ZTo6b25GcmFtZUludGVudE5ldyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBS
ZW5kZXJUcmVlVmlldy5jcHA6CisgICAgICAgIChvbkphdmFTY3JpcHRQcm9tcHQpOgorCiAyMDEy
LTA3LTIzICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjMzNjAuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA3NTI5NDU0MTAxMGEyZDgwOThiYmY1NjYzZTYzZTU4
ZjZmZDlmY2E2Li5jMmM5ZDcxYzBjNTE1Y2IwOGNkNDEyZDQyYWRkMGQxMDVjYTk3NTljIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTc5LDEwICs3
OSwxMCBAQCBzdGF0aWMgU3RyaW5nIGR1bXBGcmFtZXNBc1RleHQoRXZhc19PYmplY3QqIGZyYW1l
KQogICAgICAgICByZXN1bHQuYXBwZW5kKCInXG4tLS0tLS0tLVxuIik7CiAgICAgfQogCi0gICAg
Y2hhciogZnJhbWVDb250ZW50cyA9IGV3a19mcmFtZV9wbGFpbl90ZXh0X2dldChmcmFtZSk7Cisg
ICAgY29uc3QgY2hhciogZnJhbWVDb250ZW50cyA9IGV3a19mcmFtZV9wbGFpbl90ZXh0X2dldChm
cmFtZSk7CiAgICAgcmVzdWx0LmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KGZyYW1lQ29udGVudHMp
KTsKICAgICByZXN1bHQuYXBwZW5kKCJcbiIpOwotICAgIGZyZWUoZnJhbWVDb250ZW50cyk7Cisg
ICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoZnJhbWVDb250ZW50cyk7CiAKICAgICBpZiAoZ0xheW91
dFRlc3RDb250cm9sbGVyLT5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKSkgewogICAgICAgICBFaW5h
X0xpc3QqIGNoaWxkcmVuID0gRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmcmFtZUNoaWxkcmVu
KGZyYW1lKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVy
VHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVD
aHJvbWUuY3BwCmluZGV4IGNjMmYwNWJjMjc5NjVhNjZhOGFkZDg0ZDQwMzIyZTBhYjU5NTdmZjEu
Ljk4MzA0NTc4ZDlkNTNlM2E2MjM1MzExYTU3Mzg0ZDBlN2E3N2QxY2QgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtODU3LDEw
ICs4NTcsMTAgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUludGVudE5ldyh2
b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8KICAgICBFaW5hX0xpc3QqIGV4dHJh
TmFtZXMgPSBld2tfaW50ZW50X2V4dHJhX25hbWVzX2dldChpbnRlbnQpOwogICAgIEVJTkFfTElT
VF9GUkVFKGV4dHJhTmFtZXMsIGRhdGEpIHsKICAgICAgICAgY2hhciogbmFtZSA9IHN0YXRpY19j
YXN0PGNoYXIqPihkYXRhKTsKLSAgICAgICAgY2hhciogdmFsdWUgPSBld2tfaW50ZW50X2V4dHJh
X2dldChpbnRlbnQsIG5hbWUpOworICAgICAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGV3a19pbnRl
bnRfZXh0cmFfZ2V0KGludGVudCwgbmFtZSk7CiAgICAgICAgIGlmICh2YWx1ZSkgewogICAgICAg
ICAgICAgcHJpbnRmKCJFeHRyYXNbJXNdID0gJXNcbiIsIG5hbWUsIHZhbHVlKTsKLSAgICAgICAg
ICAgIGZyZWUodmFsdWUpOworICAgICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwodmFsdWUp
OwogICAgICAgICB9CiAgICAgICAgIGZyZWUobmFtZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlVmlldy5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVWaWV3LmNwcAppbmRleCA3MzJhZDI4YzI4ZmRm
YzE0NDkwMTcxYjYwNWMwMGEyODY3MjcyZDg3Li5lYjE1YTg0MDliZTRmMjVhNDdiZmI1MzBmZGUw
MmUxZjI5M2VhYjNjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJl
bmRlclRyZWVWaWV3LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRl
clRyZWVWaWV3LmNwcApAQCAtODYsMTAgKzg2LDEwIEBAIHN0YXRpYyBFaW5hX0Jvb2wgb25KYXZh
U2NyaXB0Q29uZmlybShFd2tfVmlld19TbWFydF9EYXRhKiwgRXZhc19PYmplY3QqLCBjb25zdCBj
CiAgICAgcmV0dXJuIEVJTkFfVFJVRTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBvbkphdmFTY3Jp
cHRQcm9tcHQoRXdrX1ZpZXdfU21hcnRfRGF0YSosIEV2YXNfT2JqZWN0KiwgY29uc3QgY2hhciog
bWVzc2FnZSwgY29uc3QgY2hhciogZGVmYXVsdFZhbHVlLCBjaGFyKiogdmFsdWUpCitzdGF0aWMg
RWluYV9Cb29sIG9uSmF2YVNjcmlwdFByb21wdChFd2tfVmlld19TbWFydF9EYXRhKiwgRXZhc19P
YmplY3QqLCBjb25zdCBjaGFyKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBkZWZhdWx0VmFsdWUsIGNv
bnN0IGNoYXIqKiB2YWx1ZSkKIHsKICAgICBwcmludGYoIlBST01QVDogJXMsIGRlZmF1bHQgdGV4
dDogJXNcbiIsIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSk7Ci0gICAgKnZhbHVlID0gc3RyZHVwKGRl
ZmF1bHRWYWx1ZSk7CisgICAgKnZhbHVlID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoZGVmYXVsdFZh
bHVlKTsKICAgICByZXR1cm4gRUlOQV9UUlVFOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154271</attachid>
            <date>2012-07-24 23:40:00 -0700</date>
            <delta_ts>2012-07-25 02:11:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92072-20120725153950.patch</filename>
            <type>text/plain</type>
            <size>30678</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZmUyZTZjNTZl
M2VhMTBhNjgyZTdiZGY1Y2M2ODY0Yjg3ODA1ZWJhOS4uMjlhYTA1MjYyMjNlMzkzYWYyYTQwYTY4
ODc2NDNhMzFlNTBlNmIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEy
LTA3LTI0ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgW0VGTF0gVXNlIGVpbmFfc3RyaW5nc2hhcmVfYWRkIGluc3RlYWQgb2Ygc3RyZHVwLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTIwNzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFaW5hIG9mIEVGTCBs
aWJyYXJpZXMgc3VwcG9ydHMgYSBzdHJpbmcgZnVuY3Rpb25hbGl0eSBsaWtlIHN0cmR1cC4gU28s
IEVGTCBwb3J0IG5lZWRzCisgICAgICAgIHRvIHJlcGxhY2Ugc3RyZHVwIHdpdGggZWluYV9zdHJp
bmdzaGFyZV9hZGQgZnVuY3Rpb24uCisKKyAgICAgICAgSW4gYWRkaXRpb24sIHNvbWUgQVBJIGRl
c2NyaXB0aW9ucyBuZWVkIHRvIGJlIG1vZGlmaWVkIGFjY29yZGluZyB0byBld2sgQVBJcydzIHBh
cmFtZXRlciBhbmQKKyAgICAgICAgcmV0dXJuIHR5cGUgY2hhbmdlLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudEVmbDo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgICogZXdrL2V3a19jb29r
aWVzLmNwcDoKKyAgICAgICAgKGV3a19jb29raWVzX2dldF9hbGwpOgorICAgICAgICAoZXdrX2Nv
b2tpZXNfY29va2llX2ZyZWUpOgorICAgICAgICAqIGV3ay9ld2tfY29va2llcy5oOgorICAgICAg
ICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX3NjcmlwdF9leGVjdXRl
KToKKyAgICAgICAgKGV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KToKKyAgICAgICAgKGV3a19mcmFt
ZV9yZXNvdXJjZXNfbG9jYXRpb25fZ2V0KToKKyAgICAgICAgKGV3a19mcmFtZV9wbGFpbl90ZXh0
X2dldCk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5oOgorICAgICAgICAqIGV3ay9ld2tfaW50
ZW50LmNwcDoKKyAgICAgICAgKGV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0KToKKyAgICAgICAg
KGV3a19pbnRlbnRfZXh0cmFfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfZXh0cmFfbmFtZXNf
Z2V0KToKKyAgICAgICAgKiBld2svZXdrX2ludGVudC5oOgorICAgICAgICAqIGV3ay9ld2tfanMu
Y3BwOgorICAgICAgICAoZXdrX2pzX3ZhcmlhbnRfdG9fbnB2YXJpYW50KToKKyAgICAgICAgKGV3
a19qc19vYmplY3RfbmV3KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAo
X2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3Byb21wdCk6CisgICAgICAgIChld2tfdmll
d19zZWxlY3Rpb25fZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3J1bl9qYXZhc2NyaXB0X3Byb21w
dCk6CisgICAgICAgIChld2tfdmlld19ydW5fb3Blbl9wYW5lbCk6CisgICAgICAgICogZXdrL2V3
a192aWV3Lmg6CisgICAgICAgICogZXdrL2V3a192aWV3X3ByaXZhdGUuaDoKKwogMjAxMi0wNy0y
MyAgUGllcnJlIFJvc3NpICA8cGllcnJlLnJvc3NpQGdtYWlsLmNvbT4KIAogICAgICAgICBVbmlm
eSBudW1Ub3VjaEV2ZW50SGFuZGxlcnNDaGFuZ2VkIGFuZCBuZWVkVG91Y2hFdmVudHMgaW4gdGhl
IGNocm9tZSBjbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwZTI0Y2Q1Y2IzYzc1ZTkzNWM1N2ZhYTI5MjJh
MDQ2YjVlMDAzYWRkLi44NWM2MjI4MTMzZDg2ZWNhZjBlNTI3ZjQ5M2UyMmNjZmIzYjQ2NGQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDctMjQgIEd5dXlvdW5nIEtpbSAgPGd5
dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBVc2UgZWluYV9zdHJpbmdz
aGFyZV9hZGQgaW5zdGVhZCBvZiBzdHJkdXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MjA3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEVpbmEgb2YgRUZMIGxpYnJhcmllcyBzdXBwb3J0cyBhIHN0cmlu
ZyBmdW5jdGlvbmFsaXR5IGxpa2Ugc3RyZHVwLiBTbywgRUZMIHBvcnQgbmVlZHMKKyAgICAgICAg
dG8gcmVwbGFjZSBzdHJkdXAgd2l0aCBlaW5hX3N0cmluZ3NoYXJlX2FkZCBmdW5jdGlvbi4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuY3BwOgorICAgICAgICAoZXdr
X2ludGVudF9zdWdnZXN0aW9uc19nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9leHRyYV9nZXQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuaDoKKwogMjAxMi0wNy0y
MyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMzE4NCwgcjEyMzE5NSwgYW5kIHIxMjMxOTcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRF
ZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZs
LmNwcAppbmRleCA2YTg1OTA1M2U2NzE2NWVjYWY3MTU3Yzg5YTM2OTRkZDZlODc5MTBkLi4xMjQ0
YjQ3ZDZmZmY4ZGJhMTJhMjI0MDI4YjIyODA5ZGY0YTk1MzhlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTI5NCwx
MSArMjk0LDExIEBAIGJvb2wgQ2hyb21lQ2xpZW50RWZsOjpydW5KYXZhU2NyaXB0Q29uZmlybShG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIAogYm9vbCBDaHJvbWVDbGllbnRF
Zmw6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKIHsKLSAgICBj
aGFyKiB2YWx1ZSA9IDA7CisgICAgY29uc3QgY2hhciogdmFsdWUgPSAwOwogICAgIGV3a192aWV3
X3J1bl9qYXZhc2NyaXB0X3Byb21wdChtX3ZpZXcsIGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgp
LmRhdGEoKSwgZGVmYXVsdFZhbHVlLnV0ZjgoKS5kYXRhKCksICZ2YWx1ZSk7CiAgICAgaWYgKHZh
bHVlKSB7CiAgICAgICAgIHJlc3VsdCA9IFN0cmluZzo6ZnJvbVVURjgodmFsdWUpOwotICAgICAg
ICBmcmVlKHZhbHVlKTsKKyAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwodmFsdWUpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfY29va2llcy5jcHAKaW5kZXggNTQ2NjUxMzkwNDdhMjAzM2FjMDQ4MWM5MzM0Y2Rl
NDFlZTA0NzhhYi4uYmJlZThlNDlkNTlhM2Q0ZDRhOWMyMGQ5MDM3ZWE5YWQ3NmY0NDRjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMuY3BwCkBAIC03NywxMCArNzcsMTAgQEAgRWlu
YV9MaXN0KiBld2tfY29va2llc19nZXRfYWxsKHZvaWQpCiAgICAgZm9yIChwID0gbGlzdDsgcDsg
cCA9IHAtPm5leHQpIHsKICAgICAgICAgU291cENvb2tpZSogY29va2llID0gc3RhdGljX2Nhc3Q8
U291cENvb2tpZSo+KHAtPmRhdGEpOwogICAgICAgICBFd2tfQ29va2llKiBld2tDb29raWUgPSBu
ZXcgRXdrX0Nvb2tpZTsKLSAgICAgICAgZXdrQ29va2llLT5uYW1lID0gc3RyZHVwKGNvb2tpZS0+
bmFtZSk7Ci0gICAgICAgIGV3a0Nvb2tpZS0+dmFsdWUgPSBzdHJkdXAoY29va2llLT52YWx1ZSk7
Ci0gICAgICAgIGV3a0Nvb2tpZS0+ZG9tYWluID0gc3RyZHVwKGNvb2tpZS0+ZG9tYWluKTsKLSAg
ICAgICAgZXdrQ29va2llLT5wYXRoID0gc3RyZHVwKGNvb2tpZS0+cGF0aCk7CisgICAgICAgIGV3
a0Nvb2tpZS0+bmFtZSA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKGNvb2tpZS0+bmFtZSk7CisgICAg
ICAgIGV3a0Nvb2tpZS0+dmFsdWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChjb29raWUtPnZhbHVl
KTsKKyAgICAgICAgZXdrQ29va2llLT5kb21haW4gPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChjb29r
aWUtPmRvbWFpbik7CisgICAgICAgIGV3a0Nvb2tpZS0+cGF0aCA9IGVpbmFfc3RyaW5nc2hhcmVf
YWRkKGNvb2tpZS0+cGF0aCk7CiAgICAgICAgIGV3a0Nvb2tpZS0+ZXhwaXJlcyA9IHNvdXBfZGF0
ZV90b190aW1lX3QoY29va2llLT5leHBpcmVzKTsKICAgICAgICAgZXdrQ29va2llLT5zZWN1cmUg
PSBzdGF0aWNfY2FzdDxFaW5hX0Jvb2w+KGNvb2tpZS0+c2VjdXJlKTsKICAgICAgICAgZXdrQ29v
a2llLT5odHRwX29ubHkgPSBzdGF0aWNfY2FzdDxFaW5hX0Jvb2w+KGNvb2tpZS0+aHR0cF9vbmx5
KTsKQEAgLTExNywxMCArMTE3LDEwIEBAIHZvaWQgZXdrX2Nvb2tpZXNfY29va2llX2RlbChFd2tf
Q29va2llKiBjb29raWUpCiB2b2lkIGV3a19jb29raWVzX2Nvb2tpZV9mcmVlKEV3a19Db29raWUq
IGNvb2tpZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihjb29raWUpOwotICAg
IGZyZWUoY29va2llLT5uYW1lKTsKLSAgICBmcmVlKGNvb2tpZS0+dmFsdWUpOwotICAgIGZyZWUo
Y29va2llLT5kb21haW4pOwotICAgIGZyZWUoY29va2llLT5wYXRoKTsKKyAgICBlaW5hX3N0cmlu
Z3NoYXJlX2RlbChjb29raWUtPm5hbWUpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGNvb2tp
ZS0+dmFsdWUpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGNvb2tpZS0+ZG9tYWluKTsKKyAg
ICBlaW5hX3N0cmluZ3NoYXJlX2RlbChjb29raWUtPnBhdGgpOwogICAgIGRlbGV0ZSBjb29raWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmgKaW5kZXggOTM5ZWQzZGExMjQ4ZjMz
NDBmZTRkMjFlOTA4NDExOGRiNWQwYTQwYy4uNDc4Mzk4YjVhNzIyZDdiNGYxZTgyM2MwMmE4Nzhm
YjM1NWUyZTNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVz
LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmgKQEAgLTQ1LDEzICs0
NSwxMyBAQCBleHRlcm4gIkMiIHsKICAqLwogc3RydWN0IF9Fd2tfQ29va2llIHsKICAgICAvLy8g
dGhlIGNvb2tpZSBuYW1lCi0gICAgY2hhciAqbmFtZTsKKyAgICBjb25zdCBjaGFyICpuYW1lOwog
ICAgIC8vLyB0aGUgY29va2llIHZhbHVlCi0gICAgY2hhciAqdmFsdWU7CisgICAgY29uc3QgY2hh
ciAqdmFsdWU7CiAgICAgLy8vIHRoZSAiZG9tYWluIiBhdHRyaWJ1dGUsIG9yIGVsc2UgdGhlIGhv
c3RuYW1lIHRoYXQgdGhlIGNvb2tpZSBjYW1lIGZyb20KLSAgICBjaGFyICpkb21haW47CisgICAg
Y29uc3QgY2hhciAqZG9tYWluOwogICAgIC8vLyB0aGUgInBhdGgiIGF0dHJpYnV0ZSwgb3IgQGMg
TlVMTAotICAgIGNoYXIgKnBhdGg7CisgICAgY29uc3QgY2hhciAqcGF0aDsKICAgICAvLy8gdGhl
IGNvb2tpZSBleHBpcmF0aW9uIHRpbWUsIG9yIEBjIDAgZm9yIGEgc2Vzc2lvbiBjb29raWUKICAg
ICB0aW1lX3QgZXhwaXJlczsKICAgICAvLy8gQGMgRUlOQV9UUlVFIGlmIHRoZSBjb29raWUgc2hv
dWxkIG9ubHkgYmUgdHJhbmZlcnJlZCBvdmVyIFNTTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1l
LmNwcAppbmRleCA2YTRiMWEzZjI1OTg0ZDVjOWZlMzlhYmI4OGIzYTQ1ZWVkM2JkYjQ0Li5mYmE0
NjBlYzAyNDgzNDIwY2Q5NjgyNjg2NjM5ZDcxOTg3YjU3YTc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2ZyYW1lLmNwcApAQCAtNDM5LDcgKzQzOSw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfY29u
dGVudHNfYWx0ZXJuYXRlX3NldChFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIqIGNv
CiAgICAgICAgICAgICAgICB1bnJlYWNoYWJsZVVyaSk7CiB9CiAKLWNoYXIqIGV3a19mcmFtZV9z
Y3JpcHRfZXhlY3V0ZShFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIqIHNjcmlwdCkK
K2NvbnN0IGNoYXIqIGV3a19mcmFtZV9zY3JpcHRfZXhlY3V0ZShFdmFzX09iamVjdCogZXdrRnJh
bWUsIGNvbnN0IGNoYXIqIHNjcmlwdCkKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVS
Tihld2tGcmFtZSwgc21hcnREYXRhLCAwKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc21hcnREYXRhLT5mcmFtZSwgMCk7CkBAIC00NTgsNyArNDU4LDcgQEAgY2hhciogZXdr
X2ZyYW1lX3NjcmlwdF9leGVjdXRlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciog
c2NyaXB0KQogICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gc21hcnREYXRhLT5mcmFtZS0+c2Ny
aXB0KCktPmdsb2JhbE9iamVjdChXZWJDb3JlOjptYWluVGhyZWFkTm9ybWFsV29ybGQoKSktPmds
b2JhbEV4ZWMoKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogICAgIHJlc3Vs
dFN0cmluZyA9IFdlYkNvcmU6OnVzdHJpbmdUb1N0cmluZyhyZXN1bHQudG9TdHJpbmcoZXhlYykt
PnZhbHVlKGV4ZWMpKTsKLSAgICByZXR1cm4gc3RyZHVwKHJlc3VsdFN0cmluZy51dGY4KCkuZGF0
YSgpKTsKKyAgICByZXR1cm4gZWluYV9zdHJpbmdzaGFyZV9hZGQocmVzdWx0U3RyaW5nLnV0Zjgo
KS5kYXRhKCkpOwogI2Vsc2UKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwpA
QCAtNDg1LDE0ICs0ODUsMTQgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9lZGl0YWJsZV9zZXQoRXZh
c19PYmplY3QqIGV3a0ZyYW1lLCBFaW5hX0Jvb2wgZWRpdGFibGUpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWNoYXIqIGV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBl
d2tGcmFtZSkKK2NvbnN0IGNoYXIqIGV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tGcmFtZSkKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihld2tG
cmFtZSwgc21hcnREYXRhLCAwKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
c21hcnREYXRhLT5mcmFtZSwgMCk7CiAgICAgV1RGOjpDU3RyaW5nIHNlbGVjdGVkVGV4dCA9IHNt
YXJ0RGF0YS0+ZnJhbWUtPmVkaXRvcigpLT5zZWxlY3RlZFRleHQoKS51dGY4KCk7CiAgICAgaWYg
KHNlbGVjdGVkVGV4dC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0
cmR1cChzZWxlY3RlZFRleHQuZGF0YSgpKTsKKyAgICByZXR1cm4gZWluYV9zdHJpbmdzaGFyZV9h
ZGQoc2VsZWN0ZWRUZXh0LmRhdGEoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9z
ZWFyY2goY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBjaGFyKiB0ZXh0LCBFaW5h
X0Jvb2wgY2FzZVNlbnNpdGl2ZSwgRWluYV9Cb29sIGZvcndhcmQsIEVpbmFfQm9vbCB3cmFwKQpA
QCAtMTczNiw3ICsxNzM2LDcgQEAgRWluYV9MaXN0KiBld2tfZnJhbWVfcmVzb3VyY2VzX2xvY2F0
aW9uX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpCiAgICAgICAgIGlmIChmb3VuZCkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGNoYXIqIGltYWdlTG9jYXRpb25Db3B5
ID0gc3RyZHVwKGltYWdlTG9jYXRpb24udXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGNvbnN0IGNo
YXIqIGltYWdlTG9jYXRpb25Db3B5ID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoaW1hZ2VMb2NhdGlv
bi51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgaWYgKCFpbWFnZUxvY2F0aW9uQ29weSkKICAgICAg
ICAgICAgIGdvdG8gb3V0X29mX21lbW9yeV9oYW5kbGVyOwogICAgICAgICBsaXN0T2ZJbWFnZXNM
b2NhdGlvbiA9IGVpbmFfbGlzdF9hcHBlbmQobGlzdE9mSW1hZ2VzTG9jYXRpb24sIGltYWdlTG9j
YXRpb25Db3B5KTsKQEAgLTE3NTQsNyArMTc1NCw3IEBAIG91dF9vZl9tZW1vcnlfaGFuZGxlcjoK
ICAgICByZXR1cm4gMDsKIH0KIAotY2hhciogZXdrX2ZyYW1lX3BsYWluX3RleHRfZ2V0KGNvbnN0
IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKK2NvbnN0IGNoYXIqIGV3a19mcmFtZV9wbGFpbl90ZXh0
X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dF
VF9PUl9SRVRVUk4oZXdrRnJhbWUsIHNtYXJ0RGF0YSwgMCk7CiAgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKHNtYXJ0RGF0YS0+ZnJhbWUsIDApOwpAQCAtMTc2Nyw3ICsxNzY3LDcg
QEAgY2hhciogZXdrX2ZyYW1lX3BsYWluX3RleHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tG
cmFtZSkKICAgICBpZiAoIWRvY3VtZW50RWxlbWVudCkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICByZXR1cm4gc3RyZHVwKGRvY3VtZW50RWxlbWVudC0+aW5uZXJUZXh0KCkudXRmOCgpLmRhdGEo
KSk7CisgICAgcmV0dXJuIGVpbmFfc3RyaW5nc2hhcmVfYWRkKGRvY3VtZW50RWxlbWVudC0+aW5u
ZXJUZXh0KCkudXRmOCgpLmRhdGEoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfZnJhbWVfbWl4ZWRf
Y29udGVudF9kaXNwbGF5ZWRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfZnJhbWUuaAppbmRleCA0NDk4YTQzNjMzZGQ1MWMwZjNhYjQ4ODMyOTQ4OTFk
NmIyZWVlMjZhLi5iMTk2MzMyZjJiNzFjODM4NjZmZTVkMGQxY2JhMWJkYjIzOTY2Njc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCkBAIC00NDYsMTQgKzQ0NiwxNCBAQCBFQVBJIEVpbmFf
Qm9vbCAgICBld2tfZnJhbWVfY29udGVudHNfYWx0ZXJuYXRlX3NldChFdmFzX09iamVjdCAqbywg
Y29uc3QgY2hhciAqYwogLyoqCiAgKiBSZXF1ZXN0cyBleGVjdXRpb24gb2YgdGhlIGdpdmVuIHNj
cmlwdC4KICAqCi0gKiBUaGUgcmV0dXJuZWQgc3RyaW5nIEBiIHNob3VsZCBiZSBmcmVlZCBhZnRl
ciB1c2UuCisgKiBUaGUgcmV0dXJuZWQgc3RyaW5nIEBiIHNob3VsZCBiZSBmcmVlZCBieSBlaW5h
X3N0cmluZ3NoYXJlX2RlbCgpIGFmdGVyIHVzZS4KICAqCiAgKiBAcGFyYW0gbyBmcmFtZSBvYmpl
Y3QgdG8gZXhlY3V0ZSBzY3JpcHQKICAqIEBwYXJhbSBzY3JpcHQgSmF2YSBTY3JpcHQgdG8gZXhl
Y3V0ZQogICoKICAqIEByZXR1cm4gbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBmb3IgcmVzdWx0IG9y
IEBjIE5VTEwgaWYgdGhlIHJlc3VsdCBjYW5ub3QgYmUgY29udmVydGVkIHRvIHN0cmluZyBvciBm
YWlsdXJlCiAgKi8KLUVBUEkgY2hhciAgICAgICAgKmV3a19mcmFtZV9zY3JpcHRfZXhlY3V0ZShF
dmFzX09iamVjdCAqbywgY29uc3QgY2hhciAqc2NyaXB0KTsKK0VBUEkgY29uc3QgY2hhciAgICAg
ICAgKmV3a19mcmFtZV9zY3JpcHRfZXhlY3V0ZShFdmFzX09iamVjdCAqbywgY29uc3QgY2hhciAq
c2NyaXB0KTsKIAogLyoqCiAgKiBRdWVyaWVzIGlmIHRoZSBmcmFtZSBpcyBlZGl0YWJsZS4KQEAg
LTQ3NywxMyArNDc3LDEzIEBAIEVBUEkgRWluYV9Cb29sICAgIGV3a19mcmFtZV9lZGl0YWJsZV9z
ZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBlZGl0YWJsZSk7CiAvKioKICAqIEdldHMgdGhl
IGNvcHkgb2YgdGhlIHNlbGVjdGVkIHRleHQuCiAgKgotICogVGhlIHJldHVybmVkIHN0cmluZyBA
YiBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNlLgorICogVGhlIHJldHVybmVkIHN0cmluZyBAYiBz
aG91bGQgYmUgZnJlZWQgYnkgZWluYV9zdHJpbmdzaGFyZV9kZWwoKSBhZnRlciB1c2UuCiAgKgog
ICogQHBhcmFtIG8gdGhlIGZyYW1lIG9iamVjdCB0byBnZXQgc2VsZWN0ZWQgdGV4dAogICoKICAq
IEByZXR1cm4gYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIG9yIEBjIE5VTEwgaWYgbm90aGluZyBp
cyBzZWxlY3RlZCBvciBvbiBmYWlsdXJlCiAgKi8KLUVBUEkgY2hhciAgICAgICAgKmV3a19mcmFt
ZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKK0VBUEkgY29uc3QgY2hhciAg
ICAgICAgKmV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKIAog
LyoqCiAgKiBTZWFyY2hlcyB0aGUgZ2l2ZW4gc3RyaW5nIGluIGEgZG9jdW1lbnQuCkBAIC05Njgs
MTIgKzk2OCwxNCBAQCBFQVBJIEVpbmFfTGlzdCAqZXdrX2ZyYW1lX3Jlc291cmNlc19sb2NhdGlv
bl9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRo
ZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4gZnJhbWUgY29udmVydGVkIHRvIHBsYWluIHRleHQsCiAg
KiByZW1vdmluZyBhbGwgdGhlIEhUTUwgZm9ybWF0dGluZy4KICAqCisgKiBUaGUgcmV0dXJuZWQg
c3RyaW5nIEBiIHNob3VsZCBiZSBmcmVlZCBieSBlaW5hX3N0cmluZ3NoYXJlX2RlbCgpIGFmdGVy
IHVzZS4KKyAqCiAgKiBAcGFyYW0gZXdrRnJhbWUgRnJhbWUgb2JqZWN0IHdob3NlIGNvbnRlbnRz
IHRvIHJldHJpZXZlLgogICoKICAqIEByZXR1cm4gQSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nICh3
aGljaCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIgd2l0aCBAYyBmcmVlKCkpCiAgKiAgICAg
ICAgIG9yIEBjIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlLgogICovCi1FQVBJIGNoYXIgKmV3a19m
cmFtZV9wbGFpbl90ZXh0X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CitFQVBJIGNvbnN0IGNo
YXIgKmV3a19mcmFtZV9wbGFpbl90ZXh0X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CiAKIC8q
KgogICogUmV0dXJucyB3aGV0aGVyIHRoZSBmcmFtZSBoYXMgZGlzcGxheWVkIG1peGVkIGNvbnRl
bnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudC5jcHAKaW5kZXggZWY3OTE0MTg2N2NiMzE4
NTMxNDQxY2JjY2IzODUxN2RiZDZjZDQ0Yy4uNzZjMmQ2OGRhYTcyMTI0ZWE1YjYxYjdlMjRmMDM0
YzJjMGNkYjgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmNwcApAQCAtMTA2LDIx
ICsxMDYsMjEgQEAgRWluYV9MaXN0KiBld2tfaW50ZW50X3N1Z2dlc3Rpb25zX2dldChjb25zdCBF
d2tfSW50ZW50KiBpbnRlbnQpCiAgICAgRWluYV9MaXN0KiBsaXN0T2ZTdWdnZXN0aW9ucyA9IDA7
CiAgICAgVmVjdG9yPFdlYkNvcmU6OktVUkw+Ojpjb25zdF9pdGVyYXRvciBpdDsKICAgICBmb3Ig
KGl0ID0gY29yZS0+c3VnZ2VzdGlvbnMoKS5iZWdpbigpOyBpdCAhPSBjb3JlLT5zdWdnZXN0aW9u
cygpLmVuZCgpOyArK2l0KQotICAgICAgICBsaXN0T2ZTdWdnZXN0aW9ucyA9IGVpbmFfbGlzdF9h
cHBlbmQobGlzdE9mU3VnZ2VzdGlvbnMsIHN0cmR1cChpdC0+c3RyaW5nKCkudXRmOCgpLmRhdGEo
KSkpOworICAgICAgICBsaXN0T2ZTdWdnZXN0aW9ucyA9IGVpbmFfbGlzdF9hcHBlbmQobGlzdE9m
U3VnZ2VzdGlvbnMsIGVpbmFfc3RyaW5nc2hhcmVfYWRkKGl0LT5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKSk7CiAgICAgcmV0dXJuIGxpc3RPZlN1Z2dlc3Rpb25zOwogI2Vsc2UKICAgICByZXR1cm4g
MDsKICNlbmRpZgogfQogCi1jaGFyKiBld2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50
ZW50KiBpbnRlbnQsIGNvbnN0IGNoYXIqIGtleSkKK2NvbnN0IGNoYXIqIGV3a19pbnRlbnRfZXh0
cmFfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCwgY29uc3QgY2hhcioga2V5KQogewogI2lm
IEVOQUJMRShXRUJfSU5URU5UUykKICAgICBFV0tfSU5URU5UX0NPUkVfR0VUX09SX1JFVFVSTihp
bnRlbnQsIGNvcmUsIDApOwogICAgIFdURjo6SGFzaE1hcDxTdHJpbmcsIFN0cmluZz46OmNvbnN0
X2l0ZXJhdG9yIHZhbCA9IGNvcmUtPmV4dHJhcygpLmZpbmQoU3RyaW5nOjpmcm9tVVRGOChrZXkp
KTsKICAgICBpZiAodmFsID09IGNvcmUtPmV4dHJhcygpLmVuZCgpKQogICAgICAgICByZXR1cm4g
MDsKLSAgICByZXR1cm4gc3RyZHVwKHZhbC0+c2Vjb25kLnV0ZjgoKS5kYXRhKCkpOworICAgIHJl
dHVybiBlaW5hX3N0cmluZ3NoYXJlX2FkZCh2YWwtPnNlY29uZC51dGY4KCkuZGF0YSgpKTsKICNl
bHNlCiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKQEAgLTEzMyw3ICsxMzMsNyBAQCBFaW5hX0xpc3Qq
IGV3a19pbnRlbnRfZXh0cmFfbmFtZXNfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKICAg
ICBFaW5hX0xpc3QqIGxpc3RPZk5hbWVzID0gMDsKICAgICBXVEY6Okhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+Ojpjb25zdF9pdGVyYXRvcjo6S2V5cyBpdCA9IGNvcmUtPmV4dHJhcygpLmJlZ2luKCku
a2V5cygpOwogICAgIGZvciAoOyBpdCAhPSBjb3JlLT5leHRyYXMoKS5lbmQoKS5rZXlzKCk7ICsr
aXQpCi0gICAgICAgIGxpc3RPZk5hbWVzID0gZWluYV9saXN0X2FwcGVuZChsaXN0T2ZOYW1lcywg
c3RyZHVwKGl0LT51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGxpc3RPZk5hbWVzID0gZWluYV9s
aXN0X2FwcGVuZChsaXN0T2ZOYW1lcywgZWluYV9zdHJpbmdzaGFyZV9hZGQoaXQtPnV0ZjgoKS5k
YXRhKCkpKTsKICAgICByZXR1cm4gbGlzdE9mTmFtZXM7CiAjZWxzZQogICAgIHJldHVybiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmgKaW5kZXggZjQ5YTc2ZGM0MjRlZDMxOWM5MGYxYWVk
N2MyZGViOTNiMTE1OGRmYS4uMmI3NzljZGRjMDM0M2JlNzUyM2VkOTZlNjE4ZTljYjFmMDQzMzcw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudC5oCkBAIC04NSwxMiArODUsMTQgQEAgRUFQ
SSBFaW5hX0xpc3QgKmV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0KGNvbnN0IEV3a19JbnRlbnQg
KmludGVudCk7CiAvKioKICAqIFJldHJpZXZlcyB0aGUgdmFsdWUgKGlmIGFueSkgZnJvbSB0aGUg
ZXh0cmEgZGF0YSBkaWN0aW9uYXJ5IHRoaXMgaW50ZW50IHdhcyBjb25zdHJ1Y3RlZCB3aXRoLgog
ICoKKyAqIFRoZSByZXR1cm5lZCBzdHJpbmcgc2hvdWxkIGJlIGZyZWVkIGJ5IGVpbmFfc3RyaW5n
c2hhcmVfZGVsKCkgYWZ0ZXIgdXNlLgorICoKICAqIEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0g
dG8gcXVlcnkuCiAgKiBAcGFyYW0ga2V5IGtleSB0byBxdWVyeSBpbiB0aGUgZGljdGlvbmFyeS4K
ICAqCiAgKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBvciBAYyBOVUxMIGluIGNh
c2Ugb2YgZXJyb3Igb3IgaWYgdGhlIGtleSBkb2VzIG5vdCBleGlzdC4KICAqLwotRUFQSSBjaGFy
ICpld2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQsIGNvbnN0IGNo
YXIgKmtleSk7CitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3
a19JbnRlbnQgKmludGVudCwgY29uc3QgY2hhciAqa2V5KTsKIAogLyoqCiAgKiBSZXRyaWV2ZSBh
IGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGV4dHJhIG1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUg
aW50ZW50LgpAQCAtOTgsOCArMTAwLDggQEAgRUFQSSBjaGFyICpld2tfaW50ZW50X2V4dHJhX2dl
dChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQsIGNvbnN0IGNoYXIgKmtleSk7CiAgKiBAcGFyYW0g
aW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5LgogICoKICAqIEByZXR1cm4gQGMgRWluYV9MaXN0
IHdpdGggbmFtZXMgb2YgZXh0cmEgbWV0YWRhdGEgb24gc3VjY2Vzcywgb3IgQGMgTlVMTCBvbiBm
YWlsdXJlLAotICogICAgICAgICB0aGUgRWluYV9MaXN0IGFuZCBpdHMgaXRlbXMgc2hvdWxkIGJl
IGZyZWVkIGFmdGVyIHVzZS4gVXNlIGZyZWUoKSB0byBmcmVlIHRoZQotICogICAgICAgICBpdGVt
cy4KKyAqICAgICAgICAgdGhlIEVpbmFfTGlzdCBhbmQgaXRzIGl0ZW1zIHNob3VsZCBiZSBmcmVl
ZCBhZnRlciB1c2UuIFVzZSBlaW5hX3N0cmluZ3NoYXJlX2RlbCgpCisgKiAgICAgICAgIHRvIGZy
ZWUgdGhlIGl0ZW1zLgogICovCiBFQVBJIEVpbmFfTGlzdCAqZXdrX2ludGVudF9leHRyYV9uYW1l
c19nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19qcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNw
cAppbmRleCBmMDhmOThlMTU1NzExYmQyMDZiM2VkMDgwMjIzYjQ0ODMyZWUzNmVjLi4wY2JiMTg5
NTIzODE0NTczNGFhYTlmZjYxYzE2ZjYwYzM3NWY1OGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2pzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pz
LmNwcApAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgRWluYV9Cb29sIGV3a19qc192YXJpYW50X3Rv
X25wdmFyaWFudChjb25zdCBFd2tfSlNfVmFyaWFudCogZGF0YSwgTlBWYXJpYQogICAgICAgICBE
T1VCTEVfVE9fTlBWQVJJQU5UKGRhdGEtPnZhbHVlLmQsICpyZXN1bHQpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEVXS19KU19WQVJJQU5UX1NUUklORzoKLSAgICAgICAgc3RyaW5nX3ZhbHVl
ID0gc3RyZHVwKGRhdGEtPnZhbHVlLnMpOworICAgICAgICBzdHJpbmdfdmFsdWUgPSBlaW5hX3N0
cmluZ3NoYXJlX2FkZChkYXRhLT52YWx1ZS5zKTsKICAgICAgICAgaWYgKHN0cmluZ192YWx1ZSkK
ICAgICAgICAgICAgIFNUUklOR1pfVE9fTlBWQVJJQU5UKHN0cmluZ192YWx1ZSwgKnJlc3VsdCk7
CiAgICAgICAgIGVsc2UKQEAgLTU2OSw3ICs1NjksNyBAQCBFd2tfSlNfT2JqZWN0KiBld2tfanNf
b2JqZWN0X25ldyhjb25zdCBFd2tfSlNfQ2xhc3NfTWV0YSoganNNZXRhQ2xhc3MpCiAgICAgICAg
ICAgICAgICAgdmFsdWUtPnZhbHVlLm8gPSAwOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSBFV0tfSlNfVkFSSUFOVF9TVFJJTkc6Ci0gICAgICAgICAgICAgICAgdmFs
dWUtPnZhbHVlLnMgPSBzdHJkdXAocHJvcC52YWx1ZS52YWx1ZS5zKTsKKyAgICAgICAgICAgICAg
ICB2YWx1ZS0+dmFsdWUucyA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKHByb3AudmFsdWUudmFsdWUu
cyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEVXS19KU19WQVJJ
QU5UX0JPT0w6CiAgICAgICAgICAgICAgICAgdmFsdWUtPnZhbHVlLmIgPSBwcm9wLnZhbHVlLnZh
bHVlLmI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBkYzhhYzg4YmFlNDgxNGQy
NWJmMWM1NWIzY2FlOTUxYjRkY2JhYTc3Li44MTliN2UzNzQ3NmJjNzczMDZjZGVkOTdkNmUzNmM2
MjBlOTRkNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTYzMyw5ICs2MzMs
OSBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9zaG91bGRfaW50ZXJydXB0X2ph
dmFzY3JpcHQoRXdrX1ZpZXdfU21hcnRfRGF0YQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3Rh
dGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRfcHJvbXB0KEV3a19W
aWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgRXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFy
KiBtZXNzYWdlLCBjb25zdCBjaGFyKiBkZWZhdWx0VmFsdWUsIGNoYXIqKiB2YWx1ZSkKK3N0YXRp
YyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3Byb21wdChFd2tfVmll
d19TbWFydF9EYXRhKiBzbWFydERhdGEsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciog
bWVzc2FnZSwgY29uc3QgY2hhciogZGVmYXVsdFZhbHVlLCBjb25zdCBjaGFyKiogdmFsdWUpCiB7
Ci0gICAgKnZhbHVlID0gc3RyZHVwKCJ0ZXN0Iik7CisgICAgKnZhbHVlID0gZWluYV9zdHJpbmdz
aGFyZV9hZGQoInRlc3QiKTsKICAgICBFaW5hX0Jvb2wgcmVzdWx0ID0gdHJ1ZTsKICAgICBJTkYo
ImphdmFzY3JpcHQgcHJvbXB0OlxuIgogICAgICAgICAiXHQgICAgICBtZXNzYWdlOiAlc1xuIgpA
QCAtMTU4NSwxNCArMTU4NSwxNCBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfZWRpdGFibGVfc2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wgZWRpdGFibGUpCiAgICAgcmV0dXJuIGV3a19m
cmFtZV9lZGl0YWJsZV9zZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lLCBlZGl0YWJsZSk7CiB9CiAK
LWNoYXIqIGV3a192aWV3X3NlbGVjdGlvbl9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcp
Citjb25zdCBjaGFyKiBld2tfdmlld19zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBl
d2tWaWV3KQogewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnRE
YXRhLCAwKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2
LCAwKTsKICAgICBDU3RyaW5nIHNlbGVjdGVkU3RyaW5nID0gcHJpdi0+cGFnZS0+Zm9jdXNDb250
cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCku
dXRmOCgpOwogICAgIGlmIChzZWxlY3RlZFN0cmluZy5pc051bGwoKSkKICAgICAgICAgcmV0dXJu
IDA7Ci0gICAgcmV0dXJuIHN0cmR1cChzZWxlY3RlZFN0cmluZy5kYXRhKCkpOworICAgIHJldHVy
biBlaW5hX3N0cmluZ3NoYXJlX2FkZChzZWxlY3RlZFN0cmluZy5kYXRhKCkpOwogfQogCiBFaW5h
X0Jvb2wgZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfZXhlY3V0ZShjb25zdCBFdmFzX09iamVjdCog
ZXdrVmlldywgY29uc3QgRXdrX0VkaXRvcl9Db21tYW5kIGNvbW1hbmQsIGNvbnN0IGNoYXIqIHZh
bHVlKQpAQCAtMzQ4MSw3ICszNDgxLDcgQEAgYm9vbCBld2tfdmlld19ydW5famF2YXNjcmlwdF9j
b25maXJtKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUsIGMKICAgICBy
ZXR1cm4gc21hcnREYXRhLT5hcGktPnJ1bl9qYXZhc2NyaXB0X2NvbmZpcm0oc21hcnREYXRhLCBm
cmFtZSwgbWVzc2FnZSk7CiB9CiAKLWJvb2wgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfcHJvbXB0
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUsIGNvbnN0IGNoYXIqIG1l
c3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1ZSwgY2hhcioqIHZhbHVlKQorYm9vbCBld2tf
dmlld19ydW5famF2YXNjcmlwdF9wcm9tcHQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2Jq
ZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciogZGVmYXVsdFZhbHVl
LCBjb25zdCBjaGFyKiogdmFsdWUpCiB7CiAgICAgREJHKCJld2tWaWV3PSVwIGZyYW1lPSVwIG1l
c3NhZ2U9JXMiLCBld2tWaWV3LCBmcmFtZSwgbWVzc2FnZSk7CiAgICAgRVdLX1ZJRVdfU0RfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKQEAgLTM1OTEsNyArMzU5MSw3
IEBAIGJvb2wgZXdrX3ZpZXdfcnVuX29wZW5fcGFuZWwoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2
YXNfT2JqZWN0KiBmcmFtZSwgYm9vbCBhbGxvCiAKICAgICBFaW5hX0xpc3QqIGNBY2NlcHRNSU1F
VHlwZXMgPSAwOwogICAgIGZvciAoV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+Ojpjb25zdF9pdGVy
YXRvciBpdGVyYXRvciA9IGFjY2VwdE1JTUVUeXBlcy5iZWdpbigpOyBpdGVyYXRvciAhPSBhY2Nl
cHRNSU1FVHlwZXMuZW5kKCk7ICsraXRlcmF0b3IpCi0gICAgICAgIGNBY2NlcHRNSU1FVHlwZXMg
PSBlaW5hX2xpc3RfYXBwZW5kKGNBY2NlcHRNSU1FVHlwZXMsIHN0cmR1cCgoKml0ZXJhdG9yKS51
dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGNBY2NlcHRNSU1FVHlwZXMgPSBlaW5hX2xpc3RfYXBw
ZW5kKGNBY2NlcHRNSU1FVHlwZXMsIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCgqaXRlcmF0b3IpLnV0
ZjgoKS5kYXRhKCkpKTsKIAogICAgIGJvb2wgY29uZmlybSA9IHNtYXJ0RGF0YS0+YXBpLT5ydW5f
b3Blbl9wYW5lbChzbWFydERhdGEsIGZyYW1lLCBhbGxvd3NNdWx0aXBsZUZpbGVzLCBjQWNjZXB0
TUlNRVR5cGVzLCBzZWxlY3RlZEZpbGVuYW1lcyk7CiAgICAgaWYgKCFjb25maXJtICYmICpzZWxl
Y3RlZEZpbGVuYW1lcykKQEAgLTM1OTksNyArMzU5OSw3IEBAIGJvb2wgZXdrX3ZpZXdfcnVuX29w
ZW5fcGFuZWwoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSwgYm9vbCBh
bGxvCiAKICAgICB2b2lkKiBpdGVtID0gMDsKICAgICBFSU5BX0xJU1RfRlJFRShjQWNjZXB0TUlN
RVR5cGVzLCBpdGVtKQotICAgICAgICBmcmVlKGl0ZW0pOworICAgICAgICBlaW5hX3N0cmluZ3No
YXJlX2RlbChzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oaXRlbSkpOwogCiAgICAgcmV0dXJuIGNv
bmZpcm07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IDU1ZWQzZWU4NjgxZWYwYzEx
NWQ4ZjA4M2UyNDhlODU0YjJjMDBmZTYuLjc4MTZjODBkZjdjZDIxMjk3NThiMmE2NzY1ODc4NDNj
NmQ5NGQ0NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xODIsNyArMTgyLDcgQEAg
c3RydWN0IF9Fd2tfVmlld19TbWFydF9DbGFzcyB7CiAgICAgdm9pZCAoKmFkZF9jb25zb2xlX21l
c3NhZ2UpKEV3a19WaWV3X1NtYXJ0X0RhdGEgKnNkLCBjb25zdCBjaGFyICptZXNzYWdlLCB1bnNp
Z25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgY2hhciAqc291cmNlSUQpOwogICAgIHZvaWQgKCpy
dW5famF2YXNjcmlwdF9hbGVydCkoRXdrX1ZpZXdfU21hcnRfRGF0YSAqc2QsIEV2YXNfT2JqZWN0
ICpmcmFtZSwgY29uc3QgY2hhciAqbWVzc2FnZSk7CiAgICAgRWluYV9Cb29sICgqcnVuX2phdmFz
Y3JpcHRfY29uZmlybSkoRXdrX1ZpZXdfU21hcnRfRGF0YSAqc2QsIEV2YXNfT2JqZWN0ICpmcmFt
ZSwgY29uc3QgY2hhciAqbWVzc2FnZSk7Ci0gICAgRWluYV9Cb29sICgqcnVuX2phdmFzY3JpcHRf
cHJvbXB0KShFd2tfVmlld19TbWFydF9EYXRhICpzZCwgRXZhc19PYmplY3QgKmZyYW1lLCBjb25z
dCBjaGFyICptZXNzYWdlLCBjb25zdCBjaGFyICpkZWZhdWx0VmFsdWUsIGNoYXIgKip2YWx1ZSk7
CisgICAgRWluYV9Cb29sICgqcnVuX2phdmFzY3JpcHRfcHJvbXB0KShFd2tfVmlld19TbWFydF9E
YXRhICpzZCwgRXZhc19PYmplY3QgKmZyYW1lLCBjb25zdCBjaGFyICptZXNzYWdlLCBjb25zdCBj
aGFyICpkZWZhdWx0VmFsdWUsIGNvbnN0IGNoYXIgKip2YWx1ZSk7CiAgICAgRWluYV9Cb29sICgq
c2hvdWxkX2ludGVycnVwdF9qYXZhc2NyaXB0KShFd2tfVmlld19TbWFydF9EYXRhICpzZCk7CiAg
ICAgaW50NjRfdCAoKmV4Y2VlZGVkX2FwcGxpY2F0aW9uX2NhY2hlX3F1b3RhKShFd2tfVmlld19T
bWFydF9EYXRhICpzZCwgRXdrX1NlY3VyaXR5X09yaWdpbiogb3JpZ2luLCBpbnQ2NF90IGRlZmF1
bHRPcmlnaW5RdW90YSwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKICAgICB1aW50NjRfdCAo
KmV4Y2VlZGVkX2RhdGFiYXNlX3F1b3RhKShFd2tfVmlld19TbWFydF9EYXRhICpzZCwgRXZhc19P
YmplY3QgKmZyYW1lLCBjb25zdCBjaGFyICpkYXRhYmFzZU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRf
c2l6ZSwgdWludDY0X3QgZXhwZWN0ZWRfc2l6ZSk7CkBAIC04NTgsMTMgKzg1OCwxMyBAQCBFQVBJ
IHZvaWQgICAgICAgICBld2tfdmlld19iZ19jb2xvcl9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8s
IGludCAqciwgaW50ICpnLCBpbgogLyoqCiAgKiBHZXRzIHRoZSBjb3B5IG9mIHRoZSBzZWxlY3Rl
ZCB0ZXh0LgogICoKLSAqIFRoZSByZXR1cm5lZCBzdHJpbmcgQGIgc2hvdWxkIGJlIGZyZWVkIGFm
dGVyIHVzZS4KKyAqIFRoZSByZXR1cm5lZCBzdHJpbmcgQGIgc2hvdWxkIGJlIGZyZWVkIGJ5IGVp
bmFfc3RyaW5nc2hhcmVfZGVsKCkgYWZ0ZXIgdXNlLgogICoKICAqIEBwYXJhbSBvIHZpZXcgb2Jq
ZWN0IHRvIGdldCBzZWxlY3RlZCB0ZXh0CiAgKgogICogQHJldHVybiBhIG5ld2x5IGFsbG9jYXRl
ZCBzdHJpbmcgb3IgQGMgTlVMTCBpZiBub3RoaW5nIGlzIHNlbGVjdGVkIG9yIG9uIGZhaWx1cmUK
ICAqLwotRUFQSSBjaGFyICAgICAgICAqZXdrX3ZpZXdfc2VsZWN0aW9uX2dldChjb25zdCBFdmFz
X09iamVjdCAqbyk7CitFQVBJIGNvbnN0IGNoYXIgICAgICAgICpld2tfdmlld19zZWxlY3Rpb25f
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKIAogLyoqCiAgKiBGb3J3YXJkcyBhIHJlcXVlc3Qg
b2YgYSBuZXcgQ29udGV4dCBNZW51IHRvIFdlYkNvcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3X3ByaXZhdGUuaAppbmRleCBiNzBlNzU1YjE2MDkzYTUzY2U2Y2QzNzhlMzYzZGM2OTIz
ZGYxZDg5Li42NTY4ZTcyYzk5MjBhNGRhY2U2MGUwZjEzNDhlNGVhZWM2NmVlMThiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKQEAgLTkyLDcgKzkyLDcgQEAgdm9p
ZCBld2tfdmlld19hZGRfY29uc29sZV9tZXNzYWdlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25z
dCBjaGFyKiBtZXNzYWdlLCB1bnMKIAogdm9pZCBld2tfdmlld19ydW5famF2YXNjcmlwdF9hbGVy
dChFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBt
ZXNzYWdlKTsKIGJvb2wgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfY29uZmlybShFdmFzX09iamVj
dCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBtZXNzYWdlKTsKLWJv
b2wgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfcHJvbXB0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBF
dmFzX09iamVjdCogZnJhbWUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1
bHRWYWx1ZSwgY2hhcioqIHZhbHVlKTsKK2Jvb2wgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfcHJv
bXB0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUsIGNvbnN0IGNoYXIq
IG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1ZSwgY29uc3QgY2hhcioqIHZhbHVlKTsK
IGJvb2wgZXdrX3ZpZXdfc2hvdWxkX2ludGVycnVwdF9qYXZhc2NyaXB0KEV2YXNfT2JqZWN0KiBl
d2tWaWV3KTsKIGludDY0X3QgZXdrX3ZpZXdfZXhjZWVkZWRfYXBwbGljYXRpb25fY2FjaGVfcXVv
dGEoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19TZWN1cml0eV9PcmlnaW4gKm9yaWdpbiwgaW50
NjRfdCBkZWZhdWx0T3JpZ2luUXVvdGEsIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7CiB1aW50
NjRfdCBld2tfdmlld19leGNlZWRlZF9kYXRhYmFzZV9xdW90YShFdmFzX09iamVjdCogZXdrVmll
dywgRXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBkYXRhYmFzZU5hbWUsIHVpbnQ2NF90
IGN1cnJlbnRTaXplLCB1aW50NjRfdCBleHBlY3RlZFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcAppbmRleCA3MzIyMTA4YmU3MDQ3Mjlh
OTY4ZjJiMTI4YzI5NGQ0MTFiYzBhZjU0Li44NTYxNzkzNDYxZTFiODBmOTRjNjJmNGQ4YTNiYjk2
ZmQ3MWEyNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfaW50ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
aW50ZW50LmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIEVpbmFfTGlzdCogZXdrX2ludGVudF9zdWdn
ZXN0aW9uc19nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQogICAgIGNvbnN0IHNpemVfdCBu
dW1TdWdnZXN0aW9ucyA9IFdLQXJyYXlHZXRTaXplKHdrU3VnZ2VzdGlvbnMuZ2V0KCkpOwogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtU3VnZ2VzdGlvbnM7ICsraSkgewogICAgICAgICBX
S1VSTFJlZiB3a1N1Z2dlc3Rpb24gPSBzdGF0aWNfY2FzdDxXS1VSTFJlZj4oV0tBcnJheUdldEl0
ZW1BdEluZGV4KHdrU3VnZ2VzdGlvbnMuZ2V0KCksIGkpKTsKLSAgICAgICAgbGlzdE9mU3VnZ2Vz
dGlvbnMgPSBlaW5hX2xpc3RfYXBwZW5kKGxpc3RPZlN1Z2dlc3Rpb25zLCBzdHJkdXAodG9JbXBs
KHdrU3VnZ2VzdGlvbiktPnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgbGlzdE9m
U3VnZ2VzdGlvbnMgPSBlaW5hX2xpc3RfYXBwZW5kKGxpc3RPZlN1Z2dlc3Rpb25zLCBlaW5hX3N0
cmluZ3NoYXJlX2FkZCh0b0ltcGwod2tTdWdnZXN0aW9uKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEo
KSkpOwogICAgIH0KIAogICAgIHJldHVybiBsaXN0T2ZTdWdnZXN0aW9uczsKQEAgLTE2NSw3ICsx
NjUsNyBAQCBFaW5hX0xpc3QqIGV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0KGNvbnN0IEV3a19J
bnRlbnQqIGludGVudCkKICNlbmRpZgogfQogCi1jaGFyKiBld2tfaW50ZW50X2V4dHJhX2dldChj
b25zdCBFd2tfSW50ZW50KiBpbnRlbnQsIGNvbnN0IGNoYXIqIGtleSkKK2NvbnN0IGNoYXIqIGV3
a19pbnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCwgY29uc3QgY2hhciog
a2V5KQogewogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKICAgICBFV0tfSU5URU5UX1dLX0dFVF9P
Ul9SRVRVUk4oaW50ZW50LCB3a0ludGVudCwgMCk7CkBAIC0xNzYsNyArMTc2LDcgQEAgY2hhciog
ZXdrX2ludGVudF9leHRyYV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50LCBjb25zdCBjaGFy
KiBrZXkpCiAgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICByZXR1cm4gc3RyZHVwKHZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBlaW5hX3N0
cmluZ3NoYXJlX2FkZCh2YWx1ZS51dGY4KCkuZGF0YSgpKTsKICNlbHNlCiAgICAgcmV0dXJuIDA7
CiAjZW5kaWYKQEAgLTE5Myw3ICsxOTMsNyBAQCBFaW5hX0xpc3QqIGV3a19pbnRlbnRfZXh0cmFf
bmFtZXNfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKICAgICBjb25zdCBzaXplX3QgbnVt
S2V5cyA9IFdLQXJyYXlHZXRTaXplKHdrS2V5cy5nZXQoKSk7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBudW1LZXlzOyArK2kpIHsKICAgICAgICAgV0tTdHJpbmdSZWYgd2tLZXkgPSBzdGF0
aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KHdrS2V5cy5nZXQoKSwg
aSkpOwotICAgICAgICBsaXN0T2ZLZXlzID0gZWluYV9saXN0X2FwcGVuZChsaXN0T2ZLZXlzLCBz
dHJkdXAodG9JbXBsKHdrS2V5KS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBs
aXN0T2ZLZXlzID0gZWluYV9saXN0X2FwcGVuZChsaXN0T2ZLZXlzLCBlaW5hX3N0cmluZ3NoYXJl
X2FkZCh0b0ltcGwod2tLZXkpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIGxpc3RPZktleXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfaW50ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfaW50ZW50LmgKaW5kZXggYWU3M2M2Y2U1NDc2YTIyNTc3NTU1OWQ4MjAzZmQyNjQ5ODM0
NGM2OS4uYWJjZmZhNTlmMmZjMjljZDUyNTg3ODk0NzIzMmQ2YWI4Y2I4NzA2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuaApAQCAtMTA0LDI5ICsx
MDQsMzMgQEAgRUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X3NlcnZpY2VfZ2V0KGNvbnN0IEV3
a19JbnRlbnQgKmludGVudCk7CiAgKiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5
LgogICoKICAqIEByZXR1cm4gQGMgRWluYV9MaXN0IHdpdGggc3VnZ2VzdGVkIHNlcnZpY2UgVVJM
cyBvbiBzdWNjZXNzLCBvciBAYyBOVUxMIG9uIGZhaWx1cmUsCi0gKiAgICAgICAgIHRoZSBFaW5h
X0xpc3QgYW5kIGl0cyBpdGVtcyBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNlLiBVc2UgZnJlZSgp
IHRvIGZyZWUgdGhlCi0gKiAgICAgICAgIGl0ZW1zLgorICogICAgICAgICB0aGUgRWluYV9MaXN0
IGFuZCBpdHMgaXRlbXMgc2hvdWxkIGJlIGZyZWVkIGFmdGVyIHVzZS4gVXNlIGVpbmFfc3RyaW5n
c2hhcmVfZGVsKCkKKyAqICAgICAgICAgdG8gZnJlZSB0aGUgaXRlbXMuCiAgKi8KIEVBUEkgRWlu
YV9MaXN0ICpld2tfaW50ZW50X3N1Z2dlc3Rpb25zX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRl
bnQpOwogCiAvKioKICAqIFJldHJpZXZlcyB0aGUgdmFsdWUgKGlmIGFueSkgZnJvbSB0aGUgZXh0
cmEgZGF0YSBkaWN0aW9uYXJ5IHRoaXMgaW50ZW50IHdhcyBjb25zdHJ1Y3RlZCB3aXRoLgogICoK
KyAqIFRoZSByZXR1cm5lZCBzdHJpbmcgc2hvdWxkIGJlIGZyZWVkIGJ5IGVpbmFfc3RyaW5nc2hh
cmVfZGVsKCkgYWZ0ZXIgdXNlLgorICoKICAqIEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0gdG8g
cXVlcnkuCiAgKiBAcGFyYW0ga2V5IGtleSB0byBxdWVyeSBpbiB0aGUgZGljdGlvbmFyeS4KICAq
CiAgKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBvciBAYyBOVUxMIGluIGNhc2Ug
b2YgZXJyb3Igb3IgaWYgdGhlIGtleSBkb2VzIG5vdCBleGlzdC4KICAqLwotRUFQSSBjaGFyICpl
d2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQsIGNvbnN0IGNoYXIg
KmtleSk7CitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3a19J
bnRlbnQgKmludGVudCwgY29uc3QgY2hhciAqa2V5KTsKIAogLyoqCiAgKiBSZXRyaWV2ZSBhIGxp
c3Qgb2YgdGhlIG5hbWVzIG9mIGV4dHJhIG1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW50
ZW50LgogICoKKyAqIFRoZSBpdGVtIG9mIGEgcmV0dXJuZWQgbGlzdCBzaG91bGQgYmUgZnJlZWQg
YnkgZWluYV9zdHJpbmdzaGFyZV9kZWwoKSBhZnRlciB1c2UuCisgKgogICogQHBhcmFtIGludGVu
dCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KICAqCiAgKiBAcmV0dXJuIEBjIEVpbmFfTGlzdCB3aXRo
IG5hbWVzIG9mIGV4dHJhIG1ldGFkYXRhIG9uIHN1Y2Nlc3MsIG9yIEBjIE5VTEwgb24gZmFpbHVy
ZSwKLSAqICAgICAgICAgdGhlIEVpbmFfTGlzdCBhbmQgaXRzIGl0ZW1zIHNob3VsZCBiZSBmcmVl
ZCBhZnRlciB1c2UuIFVzZSBmcmVlKCkgdG8gZnJlZSB0aGUKLSAqICAgICAgICAgaXRlbXMuCisg
KiAgICAgICAgIHRoZSBFaW5hX0xpc3QgYW5kIGl0cyBpdGVtcyBzaG91bGQgYmUgZnJlZWQgYWZ0
ZXIgdXNlLiBVc2UgZWluYV9zdHJpbmdzaGFyZV9kZWwoKQorICogICAgICAgICB0byBmcmVlIHRo
ZSBpdGVtcy4KICAqLwogRUFQSSBFaW5hX0xpc3QgKmV3a19pbnRlbnRfZXh0cmFfbmFtZXNfZ2V0
KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5oCmluZGV4IDM0ZDQ3NDM0NGRiZWJhM2NhYmU3
MDRlNjc5NGNkYTYwNmExODBkYTcuLjUwZjg1NzA2MjQwODZkMjcyZjY0ZTNkYTA4MmNhOTJlMTY3
NTIzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nl
c3NNYWluRWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vz
c01haW5FZmwuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ft
c3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2OGUw
M2U3ZTY3ZDE2MGZjZDMzMTI4NGJiOTMyOTM3NzQ3Y2FjOWZlLi5kMjk1MWQ4ZjkyM2E0N2ZmNTI5
MzZkMDkwODVmOTg2N2Y4MzRjYzMwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDctMjQgIEd5dXlvdW5nIEtp
bSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBVc2UgZWluYV9z
dHJpbmdzaGFyZV9hZGQgaW5zdGVhZCBvZiBzdHJkdXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjA3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEVpbmEgb2YgRUZMIGxpYnJhcmllcyBzdXBwb3J0cyBh
IHN0cmluZyBmdW5jdGlvbmFsaXR5IGxpa2Ugc3RyZHVwLiBTbywgRUZMIHBvcnQgbmVlZHMKKyAg
ICAgICAgdG8gcmVwbGFjZSBzdHJkdXAgd2l0aCBlaW5hX3N0cmluZ3NoYXJlX2FkZCBmdW5jdGlv
bi4KKworICAgICAgICBEdW1wUmVuZGVyVHJlZSBhbHNvIG5lZWRzIHRvIGJlIG1vZGlmaWVkIGFj
Y29yZGluZyB0byBld2sgQVBJcydzIHBhcmFtZXRlciBjaGFuZ2UuCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAoZHVtcEZyYW1lc0Fz
VGV4dCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21l
LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lSW50ZW50TmV3KToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVWaWV3LmNwcDoKKyAg
ICAgICAgKG9uSmF2YVNjcmlwdFByb21wdCk6CisKIDIwMTItMDctMjMgIERpcmsgUHJhbmtlICA8
ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjEyMzM2MC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVy
VHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwCmlu
ZGV4IDc1Mjk0NTQxMDEwYTJkODA5OGJiZjU2NjNlNjNlNThmNmZkOWZjYTYuLmMyYzlkNzFjMGM1
MTVjYjA4Y2Q0MTJkNDJhZGQwZDEwNWNhOTc1OWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNzksMTAgKzc5LDEwIEBAIHN0YXRpYyBTdHJpbmcg
ZHVtcEZyYW1lc0FzVGV4dChFdmFzX09iamVjdCogZnJhbWUpCiAgICAgICAgIHJlc3VsdC5hcHBl
bmQoIidcbi0tLS0tLS0tXG4iKTsKICAgICB9CiAKLSAgICBjaGFyKiBmcmFtZUNvbnRlbnRzID0g
ZXdrX2ZyYW1lX3BsYWluX3RleHRfZ2V0KGZyYW1lKTsKKyAgICBjb25zdCBjaGFyKiBmcmFtZUNv
bnRlbnRzID0gZXdrX2ZyYW1lX3BsYWluX3RleHRfZ2V0KGZyYW1lKTsKICAgICByZXN1bHQuYXBw
ZW5kKFN0cmluZzo6ZnJvbVVURjgoZnJhbWVDb250ZW50cykpOwogICAgIHJlc3VsdC5hcHBlbmQo
IlxuIik7Ci0gICAgZnJlZShmcmFtZUNvbnRlbnRzKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2Rl
bChmcmFtZUNvbnRlbnRzKTsKIAogICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBD
aGlsZEZyYW1lc0FzVGV4dCgpKSB7CiAgICAgICAgIEVpbmFfTGlzdCogY2hpbGRyZW4gPSBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OmZyYW1lQ2hpbGRyZW4oZnJhbWUpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKaW5kZXggY2MyZjA1
YmMyNzk2NWE2NmE4YWRkODRkNDAzMjJlMGFiNTk1N2ZmMS4uOTgzMDQ1NzhkOWQ1M2UzYTYyMzUz
MTFhNTczODRkMGU3YTc3ZDFjZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCkBAIC04NTcsMTAgKzg1NywxMCBAQCB2b2lkIER1bXBS
ZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lSW50ZW50TmV3KHZvaWQqLCBFdmFzX09iamVjdCosIHZv
aWQqIGV2ZW50SW5mbwogICAgIEVpbmFfTGlzdCogZXh0cmFOYW1lcyA9IGV3a19pbnRlbnRfZXh0
cmFfbmFtZXNfZ2V0KGludGVudCk7CiAgICAgRUlOQV9MSVNUX0ZSRUUoZXh0cmFOYW1lcywgZGF0
YSkgewogICAgICAgICBjaGFyKiBuYW1lID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGRhdGEpOwotICAg
ICAgICBjaGFyKiB2YWx1ZSA9IGV3a19pbnRlbnRfZXh0cmFfZ2V0KGludGVudCwgbmFtZSk7Cisg
ICAgICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZXdrX2ludGVudF9leHRyYV9nZXQoaW50ZW50LCBu
YW1lKTsKICAgICAgICAgaWYgKHZhbHVlKSB7CiAgICAgICAgICAgICBwcmludGYoIkV4dHJhc1sl
c10gPSAlc1xuIiwgbmFtZSwgdmFsdWUpOwotICAgICAgICAgICAgZnJlZSh2YWx1ZSk7CisgICAg
ICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbCh2YWx1ZSk7CiAgICAgICAgIH0KICAgICAgICAg
ZnJlZShuYW1lKTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVWaWV3LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVu
ZGVyVHJlZVZpZXcuY3BwCmluZGV4IDczMmFkMjhjMjhmZGZjMTQ0OTAxNzFiNjA1YzAwYTI4Njcy
NzJkODcuLmViMTVhODQwOWJlNGYyNWE0N2JmYjUzMGZkZTAyZTFmMjkzZWFiM2MgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZVZpZXcuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZVZpZXcuY3BwCkBAIC04Niwx
MCArODYsMTAgQEAgc3RhdGljIEVpbmFfQm9vbCBvbkphdmFTY3JpcHRDb25maXJtKEV3a19WaWV3
X1NtYXJ0X0RhdGEqLCBFdmFzX09iamVjdCosIGNvbnN0IGMKICAgICByZXR1cm4gRUlOQV9UUlVF
OwogfQogCi1zdGF0aWMgRWluYV9Cb29sIG9uSmF2YVNjcmlwdFByb21wdChFd2tfVmlld19TbWFy
dF9EYXRhKiwgRXZhc19PYmplY3QqLCBjb25zdCBjaGFyKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBk
ZWZhdWx0VmFsdWUsIGNoYXIqKiB2YWx1ZSkKK3N0YXRpYyBFaW5hX0Jvb2wgb25KYXZhU2NyaXB0
UHJvbXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBFdmFzX09iamVjdCosIGNvbnN0IGNoYXIqIG1l
c3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1ZSwgY29uc3QgY2hhcioqIHZhbHVlKQogewog
ICAgIHByaW50ZigiUFJPTVBUOiAlcywgZGVmYXVsdCB0ZXh0OiAlc1xuIiwgbWVzc2FnZSwgZGVm
YXVsdFZhbHVlKTsKLSAgICAqdmFsdWUgPSBzdHJkdXAoZGVmYXVsdFZhbHVlKTsKKyAgICAqdmFs
dWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChkZWZhdWx0VmFsdWUpOwogICAgIHJldHVybiBFSU5B
X1RSVUU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154299</attachid>
            <date>2012-07-25 02:11:36 -0700</date>
            <delta_ts>2012-07-25 04:26:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92072-20120725181126.patch</filename>
            <type>text/plain</type>
            <size>30927</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZmUyZTZjNTZl
M2VhMTBhNjgyZTdiZGY1Y2M2ODY0Yjg3ODA1ZWJhOS4uNDE1ZjY2MWI0NTFmNWVkZmU4MDJhOTc5
OTg5NjI2ZTBkZjJlNzdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEy
LTA3LTI0ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgW0VGTF0gVXNlIGVpbmFfc3RyaW5nc2hhcmVfYWRkIGluc3RlYWQgb2Ygc3RyZHVwLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTIwNzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFaW5hIG9mIEVGTCBs
aWJyYXJpZXMgc3VwcG9ydHMgYSBzdHJpbmcgZnVuY3Rpb25hbGl0eSB0aGF0IHJlcGxhY2VzIHN0
cmR1cC4gU28sIEVGTCBwb3J0IG5lZWRzCisgICAgICAgIHRvIHJlcGxhY2Ugc3RyZHVwIHdpdGgg
ZWluYV9zdHJpbmdzaGFyZV9hZGQgZnVuY3Rpb24uCisKKyAgICAgICAgSW4gYWRkaXRpb24sIHNv
bWUgQVBJIGRlc2NyaXB0aW9ucyBuZWVkIHRvIGJlIG1vZGlmaWVkIGFjY29yZGluZyB0byBld2sg
QVBJcydzIHBhcmFtZXRlciBhbmQKKyAgICAgICAgcmV0dXJuIHR5cGUgY2hhbmdlLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudEVmbDo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgICogZXdr
L2V3a19jb29raWVzLmNwcDoKKyAgICAgICAgKGV3a19jb29raWVzX2dldF9hbGwpOgorICAgICAg
ICAoZXdrX2Nvb2tpZXNfY29va2llX2ZyZWUpOgorICAgICAgICAqIGV3ay9ld2tfY29va2llcy5o
OgorICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX3Njcmlw
dF9leGVjdXRlKToKKyAgICAgICAgKGV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KToKKyAgICAgICAg
KGV3a19mcmFtZV9yZXNvdXJjZXNfbG9jYXRpb25fZ2V0KToKKyAgICAgICAgKGV3a19mcmFtZV9w
bGFpbl90ZXh0X2dldCk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5oOgorICAgICAgICAqIGV3
ay9ld2tfaW50ZW50LmNwcDoKKyAgICAgICAgKGV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0KToK
KyAgICAgICAgKGV3a19pbnRlbnRfZXh0cmFfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfZXh0
cmFfbmFtZXNfZ2V0KToKKyAgICAgICAgKiBld2svZXdrX2ludGVudC5oOgorICAgICAgICAqIGV3
ay9ld2tfanMuY3BwOgorICAgICAgICAoZXdrX2pzX3ZhcmlhbnRfdG9fbnB2YXJpYW50KToKKyAg
ICAgICAgKGV3a19qc19vYmplY3RfbmV3KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgor
ICAgICAgICAoX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3Byb21wdCk6CisgICAgICAg
IChld2tfdmlld19zZWxlY3Rpb25fZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3J1bl9qYXZhc2Ny
aXB0X3Byb21wdCk6CisgICAgICAgIChld2tfdmlld19ydW5fb3Blbl9wYW5lbCk6CisgICAgICAg
ICogZXdrL2V3a192aWV3Lmg6CisgICAgICAgICogZXdrL2V3a192aWV3X3ByaXZhdGUuaDoKKwog
MjAxMi0wNy0yMyAgUGllcnJlIFJvc3NpICA8cGllcnJlLnJvc3NpQGdtYWlsLmNvbT4KIAogICAg
ICAgICBVbmlmeSBudW1Ub3VjaEV2ZW50SGFuZGxlcnNDaGFuZ2VkIGFuZCBuZWVkVG91Y2hFdmVu
dHMgaW4gdGhlIGNocm9tZSBjbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwZTI0Y2Q1Y2IzYzc1ZTkzNWM1
N2ZhYTI5MjJhMDQ2YjVlMDAzYWRkLi4yODg0MmRiYTJjZTQ1MjNlN2MzODJhM2VjZmJjOTdjMWQ5
MTQ1NWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDctMjQgIEd5dXlvdW5n
IEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBVc2UgZWlu
YV9zdHJpbmdzaGFyZV9hZGQgaW5zdGVhZCBvZiBzdHJkdXAuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjA3MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVpbmEgb2YgRUZMIGxpYnJhcmllcyBzdXBwb3J0
cyBhIHN0cmluZyBmdW5jdGlvbmFsaXR5IHRoYXQgcmVwbGFjZXMgc3RyZHVwLiBTbywgRUZMIHBv
cnQgbmVlZHMKKyAgICAgICAgdG8gcmVwbGFjZSBzdHJkdXAgd2l0aCBlaW5hX3N0cmluZ3NoYXJl
X2FkZCBmdW5jdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQu
Y3BwOgorICAgICAgICAoZXdrX2ludGVudF9zdWdnZXN0aW9uc19nZXQpOgorICAgICAgICAoZXdr
X2ludGVudF9leHRyYV9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRl
bnQuaDoKKwogMjAxMi0wNy0yMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMzE4NCwgcjEyMzE5
NSwgYW5kIHIxMjMxOTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCA2YTg1OTA1M2U2NzE2NWVjYWY3MTU3Yzg5YTM2
OTRkZDZlODc5MTBkLi4xMjQ0YjQ3ZDZmZmY4ZGJhMTJhMjI0MDI4YjIyODA5ZGY0YTk1MzhlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5jcHAKQEAgLTI5NCwxMSArMjk0LDExIEBAIGJvb2wgQ2hyb21lQ2xpZW50RWZsOjpydW5K
YXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIAog
Ym9vbCBDaHJvbWVDbGllbnRFZmw6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcm
IHJlc3VsdCkKIHsKLSAgICBjaGFyKiB2YWx1ZSA9IDA7CisgICAgY29uc3QgY2hhciogdmFsdWUg
PSAwOwogICAgIGV3a192aWV3X3J1bl9qYXZhc2NyaXB0X3Byb21wdChtX3ZpZXcsIGtpdChmcmFt
ZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgZGVmYXVsdFZhbHVlLnV0ZjgoKS5kYXRhKCksICZ2
YWx1ZSk7CiAgICAgaWYgKHZhbHVlKSB7CiAgICAgICAgIHJlc3VsdCA9IFN0cmluZzo6ZnJvbVVU
RjgodmFsdWUpOwotICAgICAgICBmcmVlKHZhbHVlKTsKKyAgICAgICAgZWluYV9zdHJpbmdzaGFy
ZV9kZWwodmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5jcHAKaW5kZXggNTQ2NjUxMzkwNDdh
MjAzM2FjMDQ4MWM5MzM0Y2RlNDFlZTA0NzhhYi4uYmJlZThlNDlkNTlhM2Q0ZDRhOWMyMGQ5MDM3
ZWE5YWQ3NmY0NDRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29r
aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMuY3BwCkBAIC03
NywxMCArNzcsMTAgQEAgRWluYV9MaXN0KiBld2tfY29va2llc19nZXRfYWxsKHZvaWQpCiAgICAg
Zm9yIChwID0gbGlzdDsgcDsgcCA9IHAtPm5leHQpIHsKICAgICAgICAgU291cENvb2tpZSogY29v
a2llID0gc3RhdGljX2Nhc3Q8U291cENvb2tpZSo+KHAtPmRhdGEpOwogICAgICAgICBFd2tfQ29v
a2llKiBld2tDb29raWUgPSBuZXcgRXdrX0Nvb2tpZTsKLSAgICAgICAgZXdrQ29va2llLT5uYW1l
ID0gc3RyZHVwKGNvb2tpZS0+bmFtZSk7Ci0gICAgICAgIGV3a0Nvb2tpZS0+dmFsdWUgPSBzdHJk
dXAoY29va2llLT52YWx1ZSk7Ci0gICAgICAgIGV3a0Nvb2tpZS0+ZG9tYWluID0gc3RyZHVwKGNv
b2tpZS0+ZG9tYWluKTsKLSAgICAgICAgZXdrQ29va2llLT5wYXRoID0gc3RyZHVwKGNvb2tpZS0+
cGF0aCk7CisgICAgICAgIGV3a0Nvb2tpZS0+bmFtZSA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKGNv
b2tpZS0+bmFtZSk7CisgICAgICAgIGV3a0Nvb2tpZS0+dmFsdWUgPSBlaW5hX3N0cmluZ3NoYXJl
X2FkZChjb29raWUtPnZhbHVlKTsKKyAgICAgICAgZXdrQ29va2llLT5kb21haW4gPSBlaW5hX3N0
cmluZ3NoYXJlX2FkZChjb29raWUtPmRvbWFpbik7CisgICAgICAgIGV3a0Nvb2tpZS0+cGF0aCA9
IGVpbmFfc3RyaW5nc2hhcmVfYWRkKGNvb2tpZS0+cGF0aCk7CiAgICAgICAgIGV3a0Nvb2tpZS0+
ZXhwaXJlcyA9IHNvdXBfZGF0ZV90b190aW1lX3QoY29va2llLT5leHBpcmVzKTsKICAgICAgICAg
ZXdrQ29va2llLT5zZWN1cmUgPSBzdGF0aWNfY2FzdDxFaW5hX0Jvb2w+KGNvb2tpZS0+c2VjdXJl
KTsKICAgICAgICAgZXdrQ29va2llLT5odHRwX29ubHkgPSBzdGF0aWNfY2FzdDxFaW5hX0Jvb2w+
KGNvb2tpZS0+aHR0cF9vbmx5KTsKQEAgLTExNywxMCArMTE3LDEwIEBAIHZvaWQgZXdrX2Nvb2tp
ZXNfY29va2llX2RlbChFd2tfQ29va2llKiBjb29raWUpCiB2b2lkIGV3a19jb29raWVzX2Nvb2tp
ZV9mcmVlKEV3a19Db29raWUqIGNvb2tpZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTihjb29raWUpOwotICAgIGZyZWUoY29va2llLT5uYW1lKTsKLSAgICBmcmVlKGNvb2tpZS0+
dmFsdWUpOwotICAgIGZyZWUoY29va2llLT5kb21haW4pOwotICAgIGZyZWUoY29va2llLT5wYXRo
KTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChjb29raWUtPm5hbWUpOworICAgIGVpbmFfc3Ry
aW5nc2hhcmVfZGVsKGNvb2tpZS0+dmFsdWUpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGNv
b2tpZS0+ZG9tYWluKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChjb29raWUtPnBhdGgpOwog
ICAgIGRlbGV0ZSBjb29raWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfY29va2llcy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmgKaW5k
ZXggOTM5ZWQzZGExMjQ4ZjMzNDBmZTRkMjFlOTA4NDExOGRiNWQwYTQwYy4uZGJhMGViZTEzMDFk
NWE0ZDM1MjYyZGY5MjliZDhkNzQ0ZDE4ZWI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19jb29raWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29r
aWVzLmgKQEAgLTQyLDE2ICs0MiwxOSBAQCBleHRlcm4gIkMiIHsKICAqIFxzdHJ1Y3QgIF9Fd2tf
Q29va2llCiAgKgogICogQGJyaWVmICAgRGVzY3JpYmVzIHByb3BlcnRpZXMgb2YgYW4gSFRUUCBj
b29raWUuCisgKgorICogQWxsIHRoZSBzdHJpbmdzIGFyZSBndWFyYW50ZWVkIHRvIGJlIHN0cmlu
Z3NoYXJlZCwgc28gdXNlIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkKKyAqIGluc3RlYWQgb2YgZWlu
YV9zdHJpbmdzaGFyZV9hZGQoKSBvciBzdHJkdXAoKS4KICAqLwogc3RydWN0IF9Fd2tfQ29va2ll
IHsKICAgICAvLy8gdGhlIGNvb2tpZSBuYW1lCi0gICAgY2hhciAqbmFtZTsKKyAgICBjb25zdCBj
aGFyICpuYW1lOwogICAgIC8vLyB0aGUgY29va2llIHZhbHVlCi0gICAgY2hhciAqdmFsdWU7Cisg
ICAgY29uc3QgY2hhciAqdmFsdWU7CiAgICAgLy8vIHRoZSAiZG9tYWluIiBhdHRyaWJ1dGUsIG9y
IGVsc2UgdGhlIGhvc3RuYW1lIHRoYXQgdGhlIGNvb2tpZSBjYW1lIGZyb20KLSAgICBjaGFyICpk
b21haW47CisgICAgY29uc3QgY2hhciAqZG9tYWluOwogICAgIC8vLyB0aGUgInBhdGgiIGF0dHJp
YnV0ZSwgb3IgQGMgTlVMTAotICAgIGNoYXIgKnBhdGg7CisgICAgY29uc3QgY2hhciAqcGF0aDsK
ICAgICAvLy8gdGhlIGNvb2tpZSBleHBpcmF0aW9uIHRpbWUsIG9yIEBjIDAgZm9yIGEgc2Vzc2lv
biBjb29raWUKICAgICB0aW1lX3QgZXhwaXJlczsKICAgICAvLy8gQGMgRUlOQV9UUlVFIGlmIHRo
ZSBjb29raWUgc2hvdWxkIG9ubHkgYmUgdHJhbmZlcnJlZCBvdmVyIFNTTApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2ZyYW1lLmNwcAppbmRleCA2YTRiMWEzZjI1OTg0ZDVjOWZlMzlhYmI4OGIzYTQ1ZWVk
M2JkYjQ0Li5mYmE0NjBlYzAyNDgzNDIwY2Q5NjgyNjg2NjM5ZDcxOTg3YjU3YTc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtNDM5LDcgKzQzOSw3IEBAIEVpbmFfQm9vbCBl
d2tfZnJhbWVfY29udGVudHNfYWx0ZXJuYXRlX3NldChFdmFzX09iamVjdCogZXdrRnJhbWUsIGNv
bnN0IGNoYXIqIGNvCiAgICAgICAgICAgICAgICB1bnJlYWNoYWJsZVVyaSk7CiB9CiAKLWNoYXIq
IGV3a19mcmFtZV9zY3JpcHRfZXhlY3V0ZShFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNo
YXIqIHNjcmlwdCkKK2NvbnN0IGNoYXIqIGV3a19mcmFtZV9zY3JpcHRfZXhlY3V0ZShFdmFzX09i
amVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIqIHNjcmlwdCkKIHsKICAgICBFV0tfRlJBTUVfU0Rf
R0VUX09SX1JFVFVSTihld2tGcmFtZSwgc21hcnREYXRhLCAwKTsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLT5mcmFtZSwgMCk7CkBAIC00NTgsNyArNDU4LDcg
QEAgY2hhciogZXdrX2ZyYW1lX3NjcmlwdF9leGVjdXRlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwg
Y29uc3QgY2hhciogc2NyaXB0KQogICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gc21hcnREYXRh
LT5mcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChXZWJDb3JlOjptYWluVGhyZWFkTm9ybWFs
V29ybGQoKSktPmdsb2JhbEV4ZWMoKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKGV4ZWMp
OwogICAgIHJlc3VsdFN0cmluZyA9IFdlYkNvcmU6OnVzdHJpbmdUb1N0cmluZyhyZXN1bHQudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKLSAgICByZXR1cm4gc3RyZHVwKHJlc3VsdFN0cmlu
Zy51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gZWluYV9zdHJpbmdzaGFyZV9hZGQocmVzdWx0
U3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAg
IHJldHVybiAwOwpAQCAtNDg1LDE0ICs0ODUsMTQgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9lZGl0
YWJsZV9zZXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBFaW5hX0Jvb2wgZWRpdGFibGUpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWNoYXIqIGV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tGcmFtZSkKK2NvbnN0IGNoYXIqIGV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09S
X1JFVFVSTihld2tGcmFtZSwgc21hcnREYXRhLCAwKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwoc21hcnREYXRhLT5mcmFtZSwgMCk7CiAgICAgV1RGOjpDU3RyaW5nIHNlbGVj
dGVkVGV4dCA9IHNtYXJ0RGF0YS0+ZnJhbWUtPmVkaXRvcigpLT5zZWxlY3RlZFRleHQoKS51dGY4
KCk7CiAgICAgaWYgKHNlbGVjdGVkVGV4dC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgcmV0dXJuIHN0cmR1cChzZWxlY3RlZFRleHQuZGF0YSgpKTsKKyAgICByZXR1cm4gZWluYV9z
dHJpbmdzaGFyZV9hZGQoc2VsZWN0ZWRUZXh0LmRhdGEoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tf
ZnJhbWVfdGV4dF9zZWFyY2goY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBjaGFy
KiB0ZXh0LCBFaW5hX0Jvb2wgY2FzZVNlbnNpdGl2ZSwgRWluYV9Cb29sIGZvcndhcmQsIEVpbmFf
Qm9vbCB3cmFwKQpAQCAtMTczNiw3ICsxNzM2LDcgQEAgRWluYV9MaXN0KiBld2tfZnJhbWVfcmVz
b3VyY2VzX2xvY2F0aW9uX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpCiAgICAgICAg
IGlmIChmb3VuZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGNoYXIqIGltYWdl
TG9jYXRpb25Db3B5ID0gc3RyZHVwKGltYWdlTG9jYXRpb24udXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgIGNvbnN0IGNoYXIqIGltYWdlTG9jYXRpb25Db3B5ID0gZWluYV9zdHJpbmdzaGFyZV9hZGQo
aW1hZ2VMb2NhdGlvbi51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgaWYgKCFpbWFnZUxvY2F0aW9u
Q29weSkKICAgICAgICAgICAgIGdvdG8gb3V0X29mX21lbW9yeV9oYW5kbGVyOwogICAgICAgICBs
aXN0T2ZJbWFnZXNMb2NhdGlvbiA9IGVpbmFfbGlzdF9hcHBlbmQobGlzdE9mSW1hZ2VzTG9jYXRp
b24sIGltYWdlTG9jYXRpb25Db3B5KTsKQEAgLTE3NTQsNyArMTc1NCw3IEBAIG91dF9vZl9tZW1v
cnlfaGFuZGxlcjoKICAgICByZXR1cm4gMDsKIH0KIAotY2hhciogZXdrX2ZyYW1lX3BsYWluX3Rl
eHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKK2NvbnN0IGNoYXIqIGV3a19mcmFt
ZV9wbGFpbl90ZXh0X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7CiAgICAgRVdL
X0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIHNtYXJ0RGF0YSwgMCk7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNtYXJ0RGF0YS0+ZnJhbWUsIDApOwpAQCAtMTc2
Nyw3ICsxNzY3LDcgQEAgY2hhciogZXdrX2ZyYW1lX3BsYWluX3RleHRfZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tGcmFtZSkKICAgICBpZiAoIWRvY3VtZW50RWxlbWVudCkKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICByZXR1cm4gc3RyZHVwKGRvY3VtZW50RWxlbWVudC0+aW5uZXJUZXh0KCku
dXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIGVpbmFfc3RyaW5nc2hhcmVfYWRkKGRvY3VtZW50
RWxlbWVudC0+aW5uZXJUZXh0KCkudXRmOCgpLmRhdGEoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tf
ZnJhbWVfbWl4ZWRfY29udGVudF9kaXNwbGF5ZWRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tG
cmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAppbmRleCA0NDk4YTQzNjMzZGQ1MWMwZjNh
YjQ4ODMyOTQ4OTFkNmIyZWVlMjZhLi5iMTk2MzMyZjJiNzFjODM4NjZmZTVkMGQxY2JhMWJkYjIz
OTY2Njc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCkBAIC00NDYsMTQgKzQ0NiwxNCBA
QCBFQVBJIEVpbmFfQm9vbCAgICBld2tfZnJhbWVfY29udGVudHNfYWx0ZXJuYXRlX3NldChFdmFz
X09iamVjdCAqbywgY29uc3QgY2hhciAqYwogLyoqCiAgKiBSZXF1ZXN0cyBleGVjdXRpb24gb2Yg
dGhlIGdpdmVuIHNjcmlwdC4KICAqCi0gKiBUaGUgcmV0dXJuZWQgc3RyaW5nIEBiIHNob3VsZCBi
ZSBmcmVlZCBhZnRlciB1c2UuCisgKiBUaGUgcmV0dXJuZWQgc3RyaW5nIEBiIHNob3VsZCBiZSBm
cmVlZCBieSBlaW5hX3N0cmluZ3NoYXJlX2RlbCgpIGFmdGVyIHVzZS4KICAqCiAgKiBAcGFyYW0g
byBmcmFtZSBvYmplY3QgdG8gZXhlY3V0ZSBzY3JpcHQKICAqIEBwYXJhbSBzY3JpcHQgSmF2YSBT
Y3JpcHQgdG8gZXhlY3V0ZQogICoKICAqIEByZXR1cm4gbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBm
b3IgcmVzdWx0IG9yIEBjIE5VTEwgaWYgdGhlIHJlc3VsdCBjYW5ub3QgYmUgY29udmVydGVkIHRv
IHN0cmluZyBvciBmYWlsdXJlCiAgKi8KLUVBUEkgY2hhciAgICAgICAgKmV3a19mcmFtZV9zY3Jp
cHRfZXhlY3V0ZShFdmFzX09iamVjdCAqbywgY29uc3QgY2hhciAqc2NyaXB0KTsKK0VBUEkgY29u
c3QgY2hhciAgICAgICAgKmV3a19mcmFtZV9zY3JpcHRfZXhlY3V0ZShFdmFzX09iamVjdCAqbywg
Y29uc3QgY2hhciAqc2NyaXB0KTsKIAogLyoqCiAgKiBRdWVyaWVzIGlmIHRoZSBmcmFtZSBpcyBl
ZGl0YWJsZS4KQEAgLTQ3NywxMyArNDc3LDEzIEBAIEVBUEkgRWluYV9Cb29sICAgIGV3a19mcmFt
ZV9lZGl0YWJsZV9zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBlZGl0YWJsZSk7CiAvKioK
ICAqIEdldHMgdGhlIGNvcHkgb2YgdGhlIHNlbGVjdGVkIHRleHQuCiAgKgotICogVGhlIHJldHVy
bmVkIHN0cmluZyBAYiBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNlLgorICogVGhlIHJldHVybmVk
IHN0cmluZyBAYiBzaG91bGQgYmUgZnJlZWQgYnkgZWluYV9zdHJpbmdzaGFyZV9kZWwoKSBhZnRl
ciB1c2UuCiAgKgogICogQHBhcmFtIG8gdGhlIGZyYW1lIG9iamVjdCB0byBnZXQgc2VsZWN0ZWQg
dGV4dAogICoKICAqIEByZXR1cm4gYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIG9yIEBjIE5VTEwg
aWYgbm90aGluZyBpcyBzZWxlY3RlZCBvciBvbiBmYWlsdXJlCiAgKi8KLUVBUEkgY2hhciAgICAg
ICAgKmV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKK0VBUEkg
Y29uc3QgY2hhciAgICAgICAgKmV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2Jq
ZWN0ICpvKTsKIAogLyoqCiAgKiBTZWFyY2hlcyB0aGUgZ2l2ZW4gc3RyaW5nIGluIGEgZG9jdW1l
bnQuCkBAIC05NjgsMTIgKzk2OCwxNCBAQCBFQVBJIEVpbmFfTGlzdCAqZXdrX2ZyYW1lX3Jlc291
cmNlc19sb2NhdGlvbl9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogICogVGhpcyBmdW5jdGlv
biByZXR1cm5zIHRoZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4gZnJhbWUgY29udmVydGVkIHRvIHBs
YWluIHRleHQsCiAgKiByZW1vdmluZyBhbGwgdGhlIEhUTUwgZm9ybWF0dGluZy4KICAqCisgKiBU
aGUgcmV0dXJuZWQgc3RyaW5nIEBiIHNob3VsZCBiZSBmcmVlZCBieSBlaW5hX3N0cmluZ3NoYXJl
X2RlbCgpIGFmdGVyIHVzZS4KKyAqCiAgKiBAcGFyYW0gZXdrRnJhbWUgRnJhbWUgb2JqZWN0IHdo
b3NlIGNvbnRlbnRzIHRvIHJldHJpZXZlLgogICoKICAqIEByZXR1cm4gQSBuZXdseSBhbGxvY2F0
ZWQgc3RyaW5nICh3aGljaCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIgd2l0aCBAYyBmcmVl
KCkpCiAgKiAgICAgICAgIG9yIEBjIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlLgogICovCi1FQVBJ
IGNoYXIgKmV3a19mcmFtZV9wbGFpbl90ZXh0X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CitF
QVBJIGNvbnN0IGNoYXIgKmV3a19mcmFtZV9wbGFpbl90ZXh0X2dldChjb25zdCBFdmFzX09iamVj
dCAqbyk7CiAKIC8qKgogICogUmV0dXJucyB3aGV0aGVyIHRoZSBmcmFtZSBoYXMgZGlzcGxheWVk
IG1peGVkIGNvbnRlbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2lu
dGVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudC5jcHAKaW5kZXggZWY3
OTE0MTg2N2NiMzE4NTMxNDQxY2JjY2IzODUxN2RiZDZjZDQ0Yy4uNzZjMmQ2OGRhYTcyMTI0ZWE1
YjYxYjdlMjRmMDM0YzJjMGNkYjgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19pbnRlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmNw
cApAQCAtMTA2LDIxICsxMDYsMjEgQEAgRWluYV9MaXN0KiBld2tfaW50ZW50X3N1Z2dlc3Rpb25z
X2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQpCiAgICAgRWluYV9MaXN0KiBsaXN0T2ZTdWdn
ZXN0aW9ucyA9IDA7CiAgICAgVmVjdG9yPFdlYkNvcmU6OktVUkw+Ojpjb25zdF9pdGVyYXRvciBp
dDsKICAgICBmb3IgKGl0ID0gY29yZS0+c3VnZ2VzdGlvbnMoKS5iZWdpbigpOyBpdCAhPSBjb3Jl
LT5zdWdnZXN0aW9ucygpLmVuZCgpOyArK2l0KQotICAgICAgICBsaXN0T2ZTdWdnZXN0aW9ucyA9
IGVpbmFfbGlzdF9hcHBlbmQobGlzdE9mU3VnZ2VzdGlvbnMsIHN0cmR1cChpdC0+c3RyaW5nKCku
dXRmOCgpLmRhdGEoKSkpOworICAgICAgICBsaXN0T2ZTdWdnZXN0aW9ucyA9IGVpbmFfbGlzdF9h
cHBlbmQobGlzdE9mU3VnZ2VzdGlvbnMsIGVpbmFfc3RyaW5nc2hhcmVfYWRkKGl0LT5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKSk7CiAgICAgcmV0dXJuIGxpc3RPZlN1Z2dlc3Rpb25zOwogI2Vsc2UK
ICAgICByZXR1cm4gMDsKICNlbmRpZgogfQogCi1jaGFyKiBld2tfaW50ZW50X2V4dHJhX2dldChj
b25zdCBFd2tfSW50ZW50KiBpbnRlbnQsIGNvbnN0IGNoYXIqIGtleSkKK2NvbnN0IGNoYXIqIGV3
a19pbnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCwgY29uc3QgY2hhciog
a2V5KQogewogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKICAgICBFV0tfSU5URU5UX0NPUkVfR0VU
X09SX1JFVFVSTihpbnRlbnQsIGNvcmUsIDApOwogICAgIFdURjo6SGFzaE1hcDxTdHJpbmcsIFN0
cmluZz46OmNvbnN0X2l0ZXJhdG9yIHZhbCA9IGNvcmUtPmV4dHJhcygpLmZpbmQoU3RyaW5nOjpm
cm9tVVRGOChrZXkpKTsKICAgICBpZiAodmFsID09IGNvcmUtPmV4dHJhcygpLmVuZCgpKQogICAg
ICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gc3RyZHVwKHZhbC0+c2Vjb25kLnV0ZjgoKS5kYXRh
KCkpOworICAgIHJldHVybiBlaW5hX3N0cmluZ3NoYXJlX2FkZCh2YWwtPnNlY29uZC51dGY4KCku
ZGF0YSgpKTsKICNlbHNlCiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKQEAgLTEzMyw3ICsxMzMsNyBA
QCBFaW5hX0xpc3QqIGV3a19pbnRlbnRfZXh0cmFfbmFtZXNfZ2V0KGNvbnN0IEV3a19JbnRlbnQq
IGludGVudCkKICAgICBFaW5hX0xpc3QqIGxpc3RPZk5hbWVzID0gMDsKICAgICBXVEY6Okhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvcjo6S2V5cyBpdCA9IGNvcmUtPmV4dHJh
cygpLmJlZ2luKCkua2V5cygpOwogICAgIGZvciAoOyBpdCAhPSBjb3JlLT5leHRyYXMoKS5lbmQo
KS5rZXlzKCk7ICsraXQpCi0gICAgICAgIGxpc3RPZk5hbWVzID0gZWluYV9saXN0X2FwcGVuZChs
aXN0T2ZOYW1lcywgc3RyZHVwKGl0LT51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGxpc3RPZk5h
bWVzID0gZWluYV9saXN0X2FwcGVuZChsaXN0T2ZOYW1lcywgZWluYV9zdHJpbmdzaGFyZV9hZGQo
aXQtPnV0ZjgoKS5kYXRhKCkpKTsKICAgICByZXR1cm4gbGlzdE9mTmFtZXM7CiAjZWxzZQogICAg
IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmgKaW5kZXggZjQ5YTc2ZGM0MjRl
ZDMxOWM5MGYxYWVkN2MyZGViOTNiMTE1OGRmYS4uMmI3NzljZGRjMDM0M2JlNzUyM2VkOTZlNjE4
ZTljYjFmMDQzMzcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRl
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudC5oCkBAIC04NSwxMiAr
ODUsMTQgQEAgRUFQSSBFaW5hX0xpc3QgKmV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0KGNvbnN0
IEV3a19JbnRlbnQgKmludGVudCk7CiAvKioKICAqIFJldHJpZXZlcyB0aGUgdmFsdWUgKGlmIGFu
eSkgZnJvbSB0aGUgZXh0cmEgZGF0YSBkaWN0aW9uYXJ5IHRoaXMgaW50ZW50IHdhcyBjb25zdHJ1
Y3RlZCB3aXRoLgogICoKKyAqIFRoZSByZXR1cm5lZCBzdHJpbmcgc2hvdWxkIGJlIGZyZWVkIGJ5
IGVpbmFfc3RyaW5nc2hhcmVfZGVsKCkgYWZ0ZXIgdXNlLgorICoKICAqIEBwYXJhbSBpbnRlbnQg
aW50ZW50IGl0ZW0gdG8gcXVlcnkuCiAgKiBAcGFyYW0ga2V5IGtleSB0byBxdWVyeSBpbiB0aGUg
ZGljdGlvbmFyeS4KICAqCiAgKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBvciBA
YyBOVUxMIGluIGNhc2Ugb2YgZXJyb3Igb3IgaWYgdGhlIGtleSBkb2VzIG5vdCBleGlzdC4KICAq
LwotRUFQSSBjaGFyICpld2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRl
bnQsIGNvbnN0IGNoYXIgKmtleSk7CitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfZXh0cmFf
Z2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCwgY29uc3QgY2hhciAqa2V5KTsKIAogLyoqCiAg
KiBSZXRyaWV2ZSBhIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGV4dHJhIG1ldGFkYXRhIGFzc29jaWF0
ZWQgd2l0aCB0aGUgaW50ZW50LgpAQCAtOTgsOCArMTAwLDggQEAgRUFQSSBjaGFyICpld2tfaW50
ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQsIGNvbnN0IGNoYXIgKmtleSk7
CiAgKiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5LgogICoKICAqIEByZXR1cm4g
QGMgRWluYV9MaXN0IHdpdGggbmFtZXMgb2YgZXh0cmEgbWV0YWRhdGEgb24gc3VjY2Vzcywgb3Ig
QGMgTlVMTCBvbiBmYWlsdXJlLAotICogICAgICAgICB0aGUgRWluYV9MaXN0IGFuZCBpdHMgaXRl
bXMgc2hvdWxkIGJlIGZyZWVkIGFmdGVyIHVzZS4gVXNlIGZyZWUoKSB0byBmcmVlIHRoZQotICog
ICAgICAgICBpdGVtcy4KKyAqICAgICAgICAgdGhlIEVpbmFfTGlzdCBhbmQgaXRzIGl0ZW1zIHNo
b3VsZCBiZSBmcmVlZCBhZnRlciB1c2UuIFVzZSBlaW5hX3N0cmluZ3NoYXJlX2RlbCgpCisgKiAg
ICAgICAgIHRvIGZyZWUgdGhlIGl0ZW1zLgogICovCiBFQVBJIEVpbmFfTGlzdCAqZXdrX2ludGVu
dF9leHRyYV9uYW1lc19nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19qcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2pzLmNwcAppbmRleCBmMDhmOThlMTU1NzExYmQyMDZiM2VkMDgwMjIzYjQ0ODMyZWUz
NmVjLi4wY2JiMTg5NTIzODE0NTczNGFhYTlmZjYxYzE2ZjYwYzM3NWY1OGQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2pzLmNwcApAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgRWluYV9Cb29sIGV3a19q
c192YXJpYW50X3RvX25wdmFyaWFudChjb25zdCBFd2tfSlNfVmFyaWFudCogZGF0YSwgTlBWYXJp
YQogICAgICAgICBET1VCTEVfVE9fTlBWQVJJQU5UKGRhdGEtPnZhbHVlLmQsICpyZXN1bHQpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEVXS19KU19WQVJJQU5UX1NUUklORzoKLSAgICAgICAg
c3RyaW5nX3ZhbHVlID0gc3RyZHVwKGRhdGEtPnZhbHVlLnMpOworICAgICAgICBzdHJpbmdfdmFs
dWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChkYXRhLT52YWx1ZS5zKTsKICAgICAgICAgaWYgKHN0
cmluZ192YWx1ZSkKICAgICAgICAgICAgIFNUUklOR1pfVE9fTlBWQVJJQU5UKHN0cmluZ192YWx1
ZSwgKnJlc3VsdCk7CiAgICAgICAgIGVsc2UKQEAgLTU2OSw3ICs1NjksNyBAQCBFd2tfSlNfT2Jq
ZWN0KiBld2tfanNfb2JqZWN0X25ldyhjb25zdCBFd2tfSlNfQ2xhc3NfTWV0YSoganNNZXRhQ2xh
c3MpCiAgICAgICAgICAgICAgICAgdmFsdWUtPnZhbHVlLm8gPSAwOwogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgY2FzZSBFV0tfSlNfVkFSSUFOVF9TVFJJTkc6Ci0gICAgICAg
ICAgICAgICAgdmFsdWUtPnZhbHVlLnMgPSBzdHJkdXAocHJvcC52YWx1ZS52YWx1ZS5zKTsKKyAg
ICAgICAgICAgICAgICB2YWx1ZS0+dmFsdWUucyA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKHByb3Au
dmFsdWUudmFsdWUucyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IEVXS19KU19WQVJJQU5UX0JPT0w6CiAgICAgICAgICAgICAgICAgdmFsdWUtPnZhbHVlLmIgPSBw
cm9wLnZhbHVlLnZhbHVlLmI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBkYzhh
Yzg4YmFlNDgxNGQyNWJmMWM1NWIzY2FlOTUxYjRkY2JhYTc3Li44MTliN2UzNzQ3NmJjNzczMDZj
ZGVkOTdkNmUzNmM2MjBlOTRkNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAg
LTYzMyw5ICs2MzMsOSBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9zaG91bGRf
aW50ZXJydXB0X2phdmFzY3JpcHQoRXdrX1ZpZXdfU21hcnRfRGF0YQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRf
cHJvbXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgRXZhc19PYmplY3QqIGZyYW1l
LCBjb25zdCBjaGFyKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBkZWZhdWx0VmFsdWUsIGNoYXIqKiB2
YWx1ZSkKK3N0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3By
b21wdChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIEV2YXNfT2JqZWN0KiBmcmFtZSwg
Y29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciogZGVmYXVsdFZhbHVlLCBjb25zdCBjaGFy
KiogdmFsdWUpCiB7Ci0gICAgKnZhbHVlID0gc3RyZHVwKCJ0ZXN0Iik7CisgICAgKnZhbHVlID0g
ZWluYV9zdHJpbmdzaGFyZV9hZGQoInRlc3QiKTsKICAgICBFaW5hX0Jvb2wgcmVzdWx0ID0gdHJ1
ZTsKICAgICBJTkYoImphdmFzY3JpcHQgcHJvbXB0OlxuIgogICAgICAgICAiXHQgICAgICBtZXNz
YWdlOiAlc1xuIgpAQCAtMTU4NSwxNCArMTU4NSwxNCBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfZWRp
dGFibGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wgZWRpdGFibGUpCiAgICAg
cmV0dXJuIGV3a19mcmFtZV9lZGl0YWJsZV9zZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lLCBlZGl0
YWJsZSk7CiB9CiAKLWNoYXIqIGV3a192aWV3X3NlbGVjdGlvbl9nZXQoY29uc3QgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcpCitjb25zdCBjaGFyKiBld2tfdmlld19zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdr
Vmlldywgc21hcnREYXRhLCAwKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21h
cnREYXRhLCBwcml2LCAwKTsKICAgICBDU3RyaW5nIHNlbGVjdGVkU3RyaW5nID0gcHJpdi0+cGFn
ZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+c2Vs
ZWN0ZWRUZXh0KCkudXRmOCgpOwogICAgIGlmIChzZWxlY3RlZFN0cmluZy5pc051bGwoKSkKICAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0cmR1cChzZWxlY3RlZFN0cmluZy5kYXRhKCkp
OworICAgIHJldHVybiBlaW5hX3N0cmluZ3NoYXJlX2FkZChzZWxlY3RlZFN0cmluZy5kYXRhKCkp
OwogfQogCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfZXhlY3V0ZShjb25zdCBF
dmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXdrX0VkaXRvcl9Db21tYW5kIGNvbW1hbmQsIGNv
bnN0IGNoYXIqIHZhbHVlKQpAQCAtMzQ4MSw3ICszNDgxLDcgQEAgYm9vbCBld2tfdmlld19ydW5f
amF2YXNjcmlwdF9jb25maXJtKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJh
bWUsIGMKICAgICByZXR1cm4gc21hcnREYXRhLT5hcGktPnJ1bl9qYXZhc2NyaXB0X2NvbmZpcm0o
c21hcnREYXRhLCBmcmFtZSwgbWVzc2FnZSk7CiB9CiAKLWJvb2wgZXdrX3ZpZXdfcnVuX2phdmFz
Y3JpcHRfcHJvbXB0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUsIGNv
bnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1ZSwgY2hhcioqIHZhbHVl
KQorYm9vbCBld2tfdmlld19ydW5famF2YXNjcmlwdF9wcm9tcHQoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciog
ZGVmYXVsdFZhbHVlLCBjb25zdCBjaGFyKiogdmFsdWUpCiB7CiAgICAgREJHKCJld2tWaWV3PSVw
IGZyYW1lPSVwIG1lc3NhZ2U9JXMiLCBld2tWaWV3LCBmcmFtZSwgbWVzc2FnZSk7CiAgICAgRVdL
X1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKQEAgLTM1
OTEsNyArMzU5MSw3IEBAIGJvb2wgZXdrX3ZpZXdfcnVuX29wZW5fcGFuZWwoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSwgYm9vbCBhbGxvCiAKICAgICBFaW5hX0xpc3Qq
IGNBY2NlcHRNSU1FVHlwZXMgPSAwOwogICAgIGZvciAoV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+
Ojpjb25zdF9pdGVyYXRvciBpdGVyYXRvciA9IGFjY2VwdE1JTUVUeXBlcy5iZWdpbigpOyBpdGVy
YXRvciAhPSBhY2NlcHRNSU1FVHlwZXMuZW5kKCk7ICsraXRlcmF0b3IpCi0gICAgICAgIGNBY2Nl
cHRNSU1FVHlwZXMgPSBlaW5hX2xpc3RfYXBwZW5kKGNBY2NlcHRNSU1FVHlwZXMsIHN0cmR1cCgo
Kml0ZXJhdG9yKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGNBY2NlcHRNSU1FVHlwZXMgPSBl
aW5hX2xpc3RfYXBwZW5kKGNBY2NlcHRNSU1FVHlwZXMsIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCgq
aXRlcmF0b3IpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgIGJvb2wgY29uZmlybSA9IHNtYXJ0RGF0
YS0+YXBpLT5ydW5fb3Blbl9wYW5lbChzbWFydERhdGEsIGZyYW1lLCBhbGxvd3NNdWx0aXBsZUZp
bGVzLCBjQWNjZXB0TUlNRVR5cGVzLCBzZWxlY3RlZEZpbGVuYW1lcyk7CiAgICAgaWYgKCFjb25m
aXJtICYmICpzZWxlY3RlZEZpbGVuYW1lcykKQEAgLTM1OTksNyArMzU5OSw3IEBAIGJvb2wgZXdr
X3ZpZXdfcnVuX29wZW5fcGFuZWwoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBm
cmFtZSwgYm9vbCBhbGxvCiAKICAgICB2b2lkKiBpdGVtID0gMDsKICAgICBFSU5BX0xJU1RfRlJF
RShjQWNjZXB0TUlNRVR5cGVzLCBpdGVtKQotICAgICAgICBmcmVlKGl0ZW0pOworICAgICAgICBl
aW5hX3N0cmluZ3NoYXJlX2RlbChzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oaXRlbSkpOwogCiAg
ICAgcmV0dXJuIGNvbmZpcm07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IDU1ZWQz
ZWU4NjgxZWYwYzExNWQ4ZjA4M2UyNDhlODU0YjJjMDBmZTYuLjc4MTZjODBkZjdjZDIxMjk3NThi
MmE2NzY1ODc4NDNjNmQ5NGQ0NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xODIs
NyArMTgyLDcgQEAgc3RydWN0IF9Fd2tfVmlld19TbWFydF9DbGFzcyB7CiAgICAgdm9pZCAoKmFk
ZF9jb25zb2xlX21lc3NhZ2UpKEV3a19WaWV3X1NtYXJ0X0RhdGEgKnNkLCBjb25zdCBjaGFyICpt
ZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgY2hhciAqc291cmNlSUQpOwog
ICAgIHZvaWQgKCpydW5famF2YXNjcmlwdF9hbGVydCkoRXdrX1ZpZXdfU21hcnRfRGF0YSAqc2Qs
IEV2YXNfT2JqZWN0ICpmcmFtZSwgY29uc3QgY2hhciAqbWVzc2FnZSk7CiAgICAgRWluYV9Cb29s
ICgqcnVuX2phdmFzY3JpcHRfY29uZmlybSkoRXdrX1ZpZXdfU21hcnRfRGF0YSAqc2QsIEV2YXNf
T2JqZWN0ICpmcmFtZSwgY29uc3QgY2hhciAqbWVzc2FnZSk7Ci0gICAgRWluYV9Cb29sICgqcnVu
X2phdmFzY3JpcHRfcHJvbXB0KShFd2tfVmlld19TbWFydF9EYXRhICpzZCwgRXZhc19PYmplY3Qg
KmZyYW1lLCBjb25zdCBjaGFyICptZXNzYWdlLCBjb25zdCBjaGFyICpkZWZhdWx0VmFsdWUsIGNo
YXIgKip2YWx1ZSk7CisgICAgRWluYV9Cb29sICgqcnVuX2phdmFzY3JpcHRfcHJvbXB0KShFd2tf
Vmlld19TbWFydF9EYXRhICpzZCwgRXZhc19PYmplY3QgKmZyYW1lLCBjb25zdCBjaGFyICptZXNz
YWdlLCBjb25zdCBjaGFyICpkZWZhdWx0VmFsdWUsIGNvbnN0IGNoYXIgKip2YWx1ZSk7CiAgICAg
RWluYV9Cb29sICgqc2hvdWxkX2ludGVycnVwdF9qYXZhc2NyaXB0KShFd2tfVmlld19TbWFydF9E
YXRhICpzZCk7CiAgICAgaW50NjRfdCAoKmV4Y2VlZGVkX2FwcGxpY2F0aW9uX2NhY2hlX3F1b3Rh
KShFd2tfVmlld19TbWFydF9EYXRhICpzZCwgRXdrX1NlY3VyaXR5X09yaWdpbiogb3JpZ2luLCBp
bnQ2NF90IGRlZmF1bHRPcmlnaW5RdW90YSwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKICAg
ICB1aW50NjRfdCAoKmV4Y2VlZGVkX2RhdGFiYXNlX3F1b3RhKShFd2tfVmlld19TbWFydF9EYXRh
ICpzZCwgRXZhc19PYmplY3QgKmZyYW1lLCBjb25zdCBjaGFyICpkYXRhYmFzZU5hbWUsIHVpbnQ2
NF90IGN1cnJlbnRfc2l6ZSwgdWludDY0X3QgZXhwZWN0ZWRfc2l6ZSk7CkBAIC04NTgsMTMgKzg1
OCwxMyBAQCBFQVBJIHZvaWQgICAgICAgICBld2tfdmlld19iZ19jb2xvcl9nZXQoY29uc3QgRXZh
c19PYmplY3QgKm8sIGludCAqciwgaW50ICpnLCBpbgogLyoqCiAgKiBHZXRzIHRoZSBjb3B5IG9m
IHRoZSBzZWxlY3RlZCB0ZXh0LgogICoKLSAqIFRoZSByZXR1cm5lZCBzdHJpbmcgQGIgc2hvdWxk
IGJlIGZyZWVkIGFmdGVyIHVzZS4KKyAqIFRoZSByZXR1cm5lZCBzdHJpbmcgQGIgc2hvdWxkIGJl
IGZyZWVkIGJ5IGVpbmFfc3RyaW5nc2hhcmVfZGVsKCkgYWZ0ZXIgdXNlLgogICoKICAqIEBwYXJh
bSBvIHZpZXcgb2JqZWN0IHRvIGdldCBzZWxlY3RlZCB0ZXh0CiAgKgogICogQHJldHVybiBhIG5l
d2x5IGFsbG9jYXRlZCBzdHJpbmcgb3IgQGMgTlVMTCBpZiBub3RoaW5nIGlzIHNlbGVjdGVkIG9y
IG9uIGZhaWx1cmUKICAqLwotRUFQSSBjaGFyICAgICAgICAqZXdrX3ZpZXdfc2VsZWN0aW9uX2dl
dChjb25zdCBFdmFzX09iamVjdCAqbyk7CitFQVBJIGNvbnN0IGNoYXIgICAgICAgICpld2tfdmll
d19zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKIAogLyoqCiAgKiBGb3J3YXJk
cyBhIHJlcXVlc3Qgb2YgYSBuZXcgQ29udGV4dCBNZW51IHRvIFdlYkNvcmUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaAppbmRleCBiNzBlNzU1YjE2MDkzYTUzY2U2Y2Qz
NzhlMzYzZGM2OTIzZGYxZDg5Li42NTY4ZTcyYzk5MjBhNGRhY2U2MGUwZjEzNDhlNGVhZWM2NmVl
MThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKQEAgLTkyLDcg
KzkyLDcgQEAgdm9pZCBld2tfdmlld19hZGRfY29uc29sZV9tZXNzYWdlKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBjb25zdCBjaGFyKiBtZXNzYWdlLCB1bnMKIAogdm9pZCBld2tfdmlld19ydW5famF2
YXNjcmlwdF9hbGVydChFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lLCBj
b25zdCBjaGFyKiBtZXNzYWdlKTsKIGJvb2wgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfY29uZmly
bShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBt
ZXNzYWdlKTsKLWJvb2wgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfcHJvbXB0KEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0
IGNoYXIqIGRlZmF1bHRWYWx1ZSwgY2hhcioqIHZhbHVlKTsKK2Jvb2wgZXdrX3ZpZXdfcnVuX2ph
dmFzY3JpcHRfcHJvbXB0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUs
IGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1ZSwgY29uc3QgY2hh
cioqIHZhbHVlKTsKIGJvb2wgZXdrX3ZpZXdfc2hvdWxkX2ludGVycnVwdF9qYXZhc2NyaXB0KEV2
YXNfT2JqZWN0KiBld2tWaWV3KTsKIGludDY0X3QgZXdrX3ZpZXdfZXhjZWVkZWRfYXBwbGljYXRp
b25fY2FjaGVfcXVvdGEoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19TZWN1cml0eV9PcmlnaW4g
Km9yaWdpbiwgaW50NjRfdCBkZWZhdWx0T3JpZ2luUXVvdGEsIGludDY0X3QgdG90YWxTcGFjZU5l
ZWRlZCk7CiB1aW50NjRfdCBld2tfdmlld19leGNlZWRlZF9kYXRhYmFzZV9xdW90YShFdmFzX09i
amVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBkYXRhYmFzZU5h
bWUsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBleHBlY3RlZFNpemUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcAppbmRleCA3MzIy
MTA4YmU3MDQ3MjlhOTY4ZjJiMTI4YzI5NGQ0MTFiYzBhZjU0Li44NTYxNzkzNDYxZTFiODBmOTRj
NjJmNGQ4YTNiYjk2ZmQ3MWEyNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfaW50ZW50LmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIEVpbmFfTGlzdCogZXdr
X2ludGVudF9zdWdnZXN0aW9uc19nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQogICAgIGNv
bnN0IHNpemVfdCBudW1TdWdnZXN0aW9ucyA9IFdLQXJyYXlHZXRTaXplKHdrU3VnZ2VzdGlvbnMu
Z2V0KCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtU3VnZ2VzdGlvbnM7ICsraSkg
ewogICAgICAgICBXS1VSTFJlZiB3a1N1Z2dlc3Rpb24gPSBzdGF0aWNfY2FzdDxXS1VSTFJlZj4o
V0tBcnJheUdldEl0ZW1BdEluZGV4KHdrU3VnZ2VzdGlvbnMuZ2V0KCksIGkpKTsKLSAgICAgICAg
bGlzdE9mU3VnZ2VzdGlvbnMgPSBlaW5hX2xpc3RfYXBwZW5kKGxpc3RPZlN1Z2dlc3Rpb25zLCBz
dHJkdXAodG9JbXBsKHdrU3VnZ2VzdGlvbiktPnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAg
ICAgICAgbGlzdE9mU3VnZ2VzdGlvbnMgPSBlaW5hX2xpc3RfYXBwZW5kKGxpc3RPZlN1Z2dlc3Rp
b25zLCBlaW5hX3N0cmluZ3NoYXJlX2FkZCh0b0ltcGwod2tTdWdnZXN0aW9uKS0+c3RyaW5nKCku
dXRmOCgpLmRhdGEoKSkpOwogICAgIH0KIAogICAgIHJldHVybiBsaXN0T2ZTdWdnZXN0aW9uczsK
QEAgLTE2NSw3ICsxNjUsNyBAQCBFaW5hX0xpc3QqIGV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0
KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKICNlbmRpZgogfQogCi1jaGFyKiBld2tfaW50ZW50
X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQsIGNvbnN0IGNoYXIqIGtleSkKK2Nv
bnN0IGNoYXIqIGV3a19pbnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCwg
Y29uc3QgY2hhcioga2V5KQogewogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKICAgICBFV0tfSU5U
RU5UX1dLX0dFVF9PUl9SRVRVUk4oaW50ZW50LCB3a0ludGVudCwgMCk7CkBAIC0xNzYsNyArMTc2
LDcgQEAgY2hhciogZXdrX2ludGVudF9leHRyYV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50
LCBjb25zdCBjaGFyKiBrZXkpCiAgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICByZXR1cm4gc3RyZHVwKHZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgIHJl
dHVybiBlaW5hX3N0cmluZ3NoYXJlX2FkZCh2YWx1ZS51dGY4KCkuZGF0YSgpKTsKICNlbHNlCiAg
ICAgcmV0dXJuIDA7CiAjZW5kaWYKQEAgLTE5Myw3ICsxOTMsNyBAQCBFaW5hX0xpc3QqIGV3a19p
bnRlbnRfZXh0cmFfbmFtZXNfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKICAgICBjb25z
dCBzaXplX3QgbnVtS2V5cyA9IFdLQXJyYXlHZXRTaXplKHdrS2V5cy5nZXQoKSk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBudW1LZXlzOyArK2kpIHsKICAgICAgICAgV0tTdHJpbmdSZWYg
d2tLZXkgPSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KHdr
S2V5cy5nZXQoKSwgaSkpOwotICAgICAgICBsaXN0T2ZLZXlzID0gZWluYV9saXN0X2FwcGVuZChs
aXN0T2ZLZXlzLCBzdHJkdXAodG9JbXBsKHdrS2V5KS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkp
OworICAgICAgICBsaXN0T2ZLZXlzID0gZWluYV9saXN0X2FwcGVuZChsaXN0T2ZLZXlzLCBlaW5h
X3N0cmluZ3NoYXJlX2FkZCh0b0ltcGwod2tLZXkpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7
CiAgICAgfQogCiAgICAgcmV0dXJuIGxpc3RPZktleXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmgKaW5kZXggYWU3M2M2Y2U1NDc2YTIyNTc3NTU1OWQ4
MjAzZmQyNjQ5ODM0NGM2OS4uYWJjZmZhNTlmMmZjMjljZDUyNTg3ODk0NzIzMmQ2YWI4Y2I4NzA2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuaApA
QCAtMTA0LDI5ICsxMDQsMzMgQEAgRUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X3NlcnZpY2Vf
Z2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCk7CiAgKiBAcGFyYW0gaW50ZW50IGludGVudCBp
dGVtIHRvIHF1ZXJ5LgogICoKICAqIEByZXR1cm4gQGMgRWluYV9MaXN0IHdpdGggc3VnZ2VzdGVk
IHNlcnZpY2UgVVJMcyBvbiBzdWNjZXNzLCBvciBAYyBOVUxMIG9uIGZhaWx1cmUsCi0gKiAgICAg
ICAgIHRoZSBFaW5hX0xpc3QgYW5kIGl0cyBpdGVtcyBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNl
LiBVc2UgZnJlZSgpIHRvIGZyZWUgdGhlCi0gKiAgICAgICAgIGl0ZW1zLgorICogICAgICAgICB0
aGUgRWluYV9MaXN0IGFuZCBpdHMgaXRlbXMgc2hvdWxkIGJlIGZyZWVkIGFmdGVyIHVzZS4gVXNl
IGVpbmFfc3RyaW5nc2hhcmVfZGVsKCkKKyAqICAgICAgICAgdG8gZnJlZSB0aGUgaXRlbXMuCiAg
Ki8KIEVBUEkgRWluYV9MaXN0ICpld2tfaW50ZW50X3N1Z2dlc3Rpb25zX2dldChjb25zdCBFd2tf
SW50ZW50ICppbnRlbnQpOwogCiAvKioKICAqIFJldHJpZXZlcyB0aGUgdmFsdWUgKGlmIGFueSkg
ZnJvbSB0aGUgZXh0cmEgZGF0YSBkaWN0aW9uYXJ5IHRoaXMgaW50ZW50IHdhcyBjb25zdHJ1Y3Rl
ZCB3aXRoLgogICoKKyAqIFRoZSByZXR1cm5lZCBzdHJpbmcgc2hvdWxkIGJlIGZyZWVkIGJ5IGVp
bmFfc3RyaW5nc2hhcmVfZGVsKCkgYWZ0ZXIgdXNlLgorICoKICAqIEBwYXJhbSBpbnRlbnQgaW50
ZW50IGl0ZW0gdG8gcXVlcnkuCiAgKiBAcGFyYW0ga2V5IGtleSB0byBxdWVyeSBpbiB0aGUgZGlj
dGlvbmFyeS4KICAqCiAgKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBvciBAYyBO
VUxMIGluIGNhc2Ugb2YgZXJyb3Igb3IgaWYgdGhlIGtleSBkb2VzIG5vdCBleGlzdC4KICAqLwot
RUFQSSBjaGFyICpld2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQs
IGNvbnN0IGNoYXIgKmtleSk7CitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfZXh0cmFfZ2V0
KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCwgY29uc3QgY2hhciAqa2V5KTsKIAogLyoqCiAgKiBS
ZXRyaWV2ZSBhIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGV4dHJhIG1ldGFkYXRhIGFzc29jaWF0ZWQg
d2l0aCB0aGUgaW50ZW50LgogICoKKyAqIFRoZSBpdGVtIG9mIGEgcmV0dXJuZWQgbGlzdCBzaG91
bGQgYmUgZnJlZWQgYnkgZWluYV9zdHJpbmdzaGFyZV9kZWwoKSBhZnRlciB1c2UuCisgKgogICog
QHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KICAqCiAgKiBAcmV0dXJuIEBjIEVp
bmFfTGlzdCB3aXRoIG5hbWVzIG9mIGV4dHJhIG1ldGFkYXRhIG9uIHN1Y2Nlc3MsIG9yIEBjIE5V
TEwgb24gZmFpbHVyZSwKLSAqICAgICAgICAgdGhlIEVpbmFfTGlzdCBhbmQgaXRzIGl0ZW1zIHNo
b3VsZCBiZSBmcmVlZCBhZnRlciB1c2UuIFVzZSBmcmVlKCkgdG8gZnJlZSB0aGUKLSAqICAgICAg
ICAgaXRlbXMuCisgKiAgICAgICAgIHRoZSBFaW5hX0xpc3QgYW5kIGl0cyBpdGVtcyBzaG91bGQg
YmUgZnJlZWQgYWZ0ZXIgdXNlLiBVc2UgZWluYV9zdHJpbmdzaGFyZV9kZWwoKQorICogICAgICAg
ICB0byBmcmVlIHRoZSBpdGVtcy4KICAqLwogRUFQSSBFaW5hX0xpc3QgKmV3a19pbnRlbnRfZXh0
cmFfbmFtZXNfZ2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5oCmluZGV4IDM0ZDQ3NDM0
NGRiZWJhM2NhYmU3MDRlNjc5NGNkYTYwNmExODBkYTcuLjUwZjg1NzA2MjQwODZkMjcyZjY0ZTNk
YTA4MmNhOTJlMTY3NTIzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
ZWZsL1dlYlByb2Nlc3NNYWluRWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9l
ZmwvV2ViUHJvY2Vzc01haW5FZmwuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA2OGUwM2U3ZTY3ZDE2MGZjZDMzMTI4NGJiOTMyOTM3NzQ3Y2FjOWZlLi44NWUyNDk4
MTc4MDgzMWRjMjBiMWU1MTNhMTU2ZTJkNWFjN2QzOTVkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDctMjQg
IEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZM
XSBVc2UgZWluYV9zdHJpbmdzaGFyZV9hZGQgaW5zdGVhZCBvZiBzdHJkdXAuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjA3MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVpbmEgb2YgRUZMIGxpYnJhcmll
cyBzdXBwb3J0cyBhIHN0cmluZyBmdW5jdGlvbmFsaXR5IHRoYXQgcmVwbGFjZXMgc3RyZHVwLiBT
bywgRUZMIHBvcnQgbmVlZHMKKyAgICAgICAgdG8gcmVwbGFjZSBzdHJkdXAgd2l0aCBlaW5hX3N0
cmluZ3NoYXJlX2FkZCBmdW5jdGlvbi4KKworICAgICAgICBEdW1wUmVuZGVyVHJlZSBhbHNvIG5l
ZWRzIHRvIGJlIG1vZGlmaWVkIGFjY29yZGluZyB0byBld2sgQVBJcydzIHBhcmFtZXRlciBjaGFu
Z2UuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwOgor
ICAgICAgICAoZHVtcEZyYW1lc0FzVGV4dCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21l
OjpvbkZyYW1lSW50ZW50TmV3KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJl
bmRlclRyZWVWaWV3LmNwcDoKKyAgICAgICAgKG9uSmF2YVNjcmlwdFByb21wdCk6CisKIDIwMTIt
MDctMjMgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMzM2MC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDc1Mjk0NTQxMDEwYTJkODA5OGJiZjU2NjNlNjNlNThm
NmZkOWZjYTYuLmMyYzlkNzFjMGM1MTVjYjA4Y2Q0MTJkNDJhZGQwZDEwNWNhOTc1OWMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNzksMTAgKzc5
LDEwIEBAIHN0YXRpYyBTdHJpbmcgZHVtcEZyYW1lc0FzVGV4dChFdmFzX09iamVjdCogZnJhbWUp
CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIidcbi0tLS0tLS0tXG4iKTsKICAgICB9CiAKLSAgICBj
aGFyKiBmcmFtZUNvbnRlbnRzID0gZXdrX2ZyYW1lX3BsYWluX3RleHRfZ2V0KGZyYW1lKTsKKyAg
ICBjb25zdCBjaGFyKiBmcmFtZUNvbnRlbnRzID0gZXdrX2ZyYW1lX3BsYWluX3RleHRfZ2V0KGZy
YW1lKTsKICAgICByZXN1bHQuYXBwZW5kKFN0cmluZzo6ZnJvbVVURjgoZnJhbWVDb250ZW50cykp
OwogICAgIHJlc3VsdC5hcHBlbmQoIlxuIik7Ci0gICAgZnJlZShmcmFtZUNvbnRlbnRzKTsKKyAg
ICBlaW5hX3N0cmluZ3NoYXJlX2RlbChmcmFtZUNvbnRlbnRzKTsKIAogICAgIGlmIChnTGF5b3V0
VGVzdENvbnRyb2xsZXItPmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpKSB7CiAgICAgICAgIEVpbmFf
TGlzdCogY2hpbGRyZW4gPSBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmZyYW1lQ2hpbGRyZW4o
ZnJhbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJU
cmVlQ2hyb21lLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNo
cm9tZS5jcHAKaW5kZXggY2MyZjA1YmMyNzk2NWE2NmE4YWRkODRkNDAzMjJlMGFiNTk1N2ZmMS4u
OTgzMDQ1NzhkOWQ1M2UzYTYyMzUzMTFhNTczODRkMGU3YTc3ZDFjZCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCkBAIC04NTcsMTAg
Kzg1NywxMCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lSW50ZW50TmV3KHZv
aWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbwogICAgIEVpbmFfTGlzdCogZXh0cmFO
YW1lcyA9IGV3a19pbnRlbnRfZXh0cmFfbmFtZXNfZ2V0KGludGVudCk7CiAgICAgRUlOQV9MSVNU
X0ZSRUUoZXh0cmFOYW1lcywgZGF0YSkgewogICAgICAgICBjaGFyKiBuYW1lID0gc3RhdGljX2Nh
c3Q8Y2hhcio+KGRhdGEpOwotICAgICAgICBjaGFyKiB2YWx1ZSA9IGV3a19pbnRlbnRfZXh0cmFf
Z2V0KGludGVudCwgbmFtZSk7CisgICAgICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZXdrX2ludGVu
dF9leHRyYV9nZXQoaW50ZW50LCBuYW1lKTsKICAgICAgICAgaWYgKHZhbHVlKSB7CiAgICAgICAg
ICAgICBwcmludGYoIkV4dHJhc1slc10gPSAlc1xuIiwgbmFtZSwgdmFsdWUpOwotICAgICAgICAg
ICAgZnJlZSh2YWx1ZSk7CisgICAgICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbCh2YWx1ZSk7
CiAgICAgICAgIH0KICAgICAgICAgZnJlZShuYW1lKTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVWaWV3LmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZVZpZXcuY3BwCmluZGV4IDczMmFkMjhjMjhmZGZj
MTQ0OTAxNzFiNjA1YzAwYTI4NjcyNzJkODcuLmViMTVhODQwOWJlNGYyNWE0N2JmYjUzMGZkZTAy
ZTFmMjkzZWFiM2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVu
ZGVyVHJlZVZpZXcuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVy
VHJlZVZpZXcuY3BwCkBAIC04NiwxMCArODYsMTAgQEAgc3RhdGljIEVpbmFfQm9vbCBvbkphdmFT
Y3JpcHRDb25maXJtKEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBFdmFzX09iamVjdCosIGNvbnN0IGMK
ICAgICByZXR1cm4gRUlOQV9UUlVFOwogfQogCi1zdGF0aWMgRWluYV9Cb29sIG9uSmF2YVNjcmlw
dFByb21wdChFd2tfVmlld19TbWFydF9EYXRhKiwgRXZhc19PYmplY3QqLCBjb25zdCBjaGFyKiBt
ZXNzYWdlLCBjb25zdCBjaGFyKiBkZWZhdWx0VmFsdWUsIGNoYXIqKiB2YWx1ZSkKK3N0YXRpYyBF
aW5hX0Jvb2wgb25KYXZhU2NyaXB0UHJvbXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBFdmFzX09i
amVjdCosIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1ZSwgY29u
c3QgY2hhcioqIHZhbHVlKQogewogICAgIHByaW50ZigiUFJPTVBUOiAlcywgZGVmYXVsdCB0ZXh0
OiAlc1xuIiwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlKTsKLSAgICAqdmFsdWUgPSBzdHJkdXAoZGVm
YXVsdFZhbHVlKTsKKyAgICAqdmFsdWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChkZWZhdWx0VmFs
dWUpOwogICAgIHJldHVybiBFSU5BX1RSVUU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154324</attachid>
            <date>2012-07-25 04:27:03 -0700</date>
            <delta_ts>2012-07-25 04:47:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92072-20120725202653.patch</filename>
            <type>text/plain</type>
            <size>30295</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggOGViNjE5Yjk3
NDViNjFhNWU0NGE0OTU1MDMyMWY1NmUzOGFjY2Y4Zi4uZjE4NGZkYTU2MmYxYWZkZGMwMzFjMWUw
NzQ2NTVkMDU3OGQzYjQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEy
LTA3LTI1ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgW0VGTF0gVXNlIGVpbmFfc3RyaW5nc2hhcmVfYWRkIGluc3RlYWQgb2Ygc3RyZHVwLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTIwNzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFaW5hIG9mIEVGTCBs
aWJyYXJpZXMgc3VwcG9ydHMgYSBzdHJpbmcgZnVuY3Rpb25hbGl0eSB0aGF0IHJlcGxhY2VzIHN0
cmR1cC4gU28sIEVGTCBwb3J0IG5lZWRzCisgICAgICAgIHRvIHJlcGxhY2Ugc3RyZHVwIHdpdGgg
ZWluYV9zdHJpbmdzaGFyZV9hZGQgZnVuY3Rpb24uCisKKyAgICAgICAgSW4gYWRkaXRpb24sIHNv
bWUgQVBJIGRlc2NyaXB0aW9ucyBuZWVkIHRvIGJlIG1vZGlmaWVkIGFjY29yZGluZyB0byBld2sg
QVBJcydzIHBhcmFtZXRlciBhbmQKKyAgICAgICAgcmV0dXJuIHR5cGUgY2hhbmdlLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudEVmbDo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgICogZXdr
L2V3a19jb29raWVzLmNwcDoKKyAgICAgICAgKGV3a19jb29raWVzX2dldF9hbGwpOgorICAgICAg
ICAoZXdrX2Nvb2tpZXNfY29va2llX2ZyZWUpOgorICAgICAgICAqIGV3ay9ld2tfY29va2llcy5o
OgorICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX3Njcmlw
dF9leGVjdXRlKToKKyAgICAgICAgKGV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KToKKyAgICAgICAg
KGV3a19mcmFtZV9yZXNvdXJjZXNfbG9jYXRpb25fZ2V0KToKKyAgICAgICAgKGV3a19mcmFtZV9w
bGFpbl90ZXh0X2dldCk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5oOgorICAgICAgICAqIGV3
ay9ld2tfaW50ZW50LmNwcDoKKyAgICAgICAgKGV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0KToK
KyAgICAgICAgKGV3a19pbnRlbnRfZXh0cmFfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfZXh0
cmFfbmFtZXNfZ2V0KToKKyAgICAgICAgKiBld2svZXdrX2ludGVudC5oOgorICAgICAgICAqIGV3
ay9ld2tfanMuY3BwOgorICAgICAgICAoZXdrX2pzX3ZhcmlhbnRfdG9fbnB2YXJpYW50KToKKyAg
ICAgICAgKGV3a19qc19vYmplY3RfbmV3KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgor
ICAgICAgICAoX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3Byb21wdCk6CisgICAgICAg
IChld2tfdmlld19zZWxlY3Rpb25fZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3J1bl9qYXZhc2Ny
aXB0X3Byb21wdCk6CisgICAgICAgIChld2tfdmlld19ydW5fb3Blbl9wYW5lbCk6CisgICAgICAg
ICogZXdrL2V3a192aWV3Lmg6CisgICAgICAgICogZXdrL2V3a192aWV3X3ByaXZhdGUuaDoKKwog
MjAxMi0wNy0yNSAgS2lob25nIEt3b24gIDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBbRUZMXSBBZGQgRmlsZSBDaG9vc2VyIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGRjZDg3ZjUzM2Uz
MWM4NjE5MTcwNTg3NzYxZDYxNjNjZTNhOWIwZTkuLjQ3ZDkwNzdmMDQ1N2ZlY2ZmNDkyYTFlNTRj
NDAzMjJjODExNWQwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNy0yNSAg
R3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxd
IFVzZSBlaW5hX3N0cmluZ3NoYXJlX2FkZCBpbnN0ZWFkIG9mIHN0cmR1cC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMDcyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRWluYSBvZiBFRkwgbGlicmFyaWVz
IHN1cHBvcnRzIGEgc3RyaW5nIGZ1bmN0aW9uYWxpdHkgdGhhdCByZXBsYWNlcyBzdHJkdXAuIFNv
LCBFRkwgcG9ydCBuZWVkcworICAgICAgICB0byByZXBsYWNlIHN0cmR1cCB3aXRoIGVpbmFfc3Ry
aW5nc2hhcmVfYWRkIGZ1bmN0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2ludGVudC5jcHA6CisgICAgICAgIChld2tfaW50ZW50X3N1Z2dlc3Rpb25zX2dldCk6CisgICAg
ICAgIChld2tfaW50ZW50X2V4dHJhX2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2ludGVudC5oOgorCiAyMDEyLTA3LTI1ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1z
dW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEFkZCBld2tfdmlld19jdXJzb3Jfc2V0IHRv
IGNoYW5nZSBjdXJzb3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCA2YTg1OTA1M2U2NzE2NWVjYWY3MTU3Yzg5YTM2
OTRkZDZlODc5MTBkLi4xMjQ0YjQ3ZDZmZmY4ZGJhMTJhMjI0MDI4YjIyODA5ZGY0YTk1MzhlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5jcHAKQEAgLTI5NCwxMSArMjk0LDExIEBAIGJvb2wgQ2hyb21lQ2xpZW50RWZsOjpydW5K
YXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIAog
Ym9vbCBDaHJvbWVDbGllbnRFZmw6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcm
IHJlc3VsdCkKIHsKLSAgICBjaGFyKiB2YWx1ZSA9IDA7CisgICAgY29uc3QgY2hhciogdmFsdWUg
PSAwOwogICAgIGV3a192aWV3X3J1bl9qYXZhc2NyaXB0X3Byb21wdChtX3ZpZXcsIGtpdChmcmFt
ZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgZGVmYXVsdFZhbHVlLnV0ZjgoKS5kYXRhKCksICZ2
YWx1ZSk7CiAgICAgaWYgKHZhbHVlKSB7CiAgICAgICAgIHJlc3VsdCA9IFN0cmluZzo6ZnJvbVVU
RjgodmFsdWUpOwotICAgICAgICBmcmVlKHZhbHVlKTsKKyAgICAgICAgZWluYV9zdHJpbmdzaGFy
ZV9kZWwodmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5jcHAKaW5kZXggNTQ2NjUxMzkwNDdh
MjAzM2FjMDQ4MWM5MzM0Y2RlNDFlZTA0NzhhYi4uYmJlZThlNDlkNTlhM2Q0ZDRhOWMyMGQ5MDM3
ZWE5YWQ3NmY0NDRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29r
aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMuY3BwCkBAIC03
NywxMCArNzcsMTAgQEAgRWluYV9MaXN0KiBld2tfY29va2llc19nZXRfYWxsKHZvaWQpCiAgICAg
Zm9yIChwID0gbGlzdDsgcDsgcCA9IHAtPm5leHQpIHsKICAgICAgICAgU291cENvb2tpZSogY29v
a2llID0gc3RhdGljX2Nhc3Q8U291cENvb2tpZSo+KHAtPmRhdGEpOwogICAgICAgICBFd2tfQ29v
a2llKiBld2tDb29raWUgPSBuZXcgRXdrX0Nvb2tpZTsKLSAgICAgICAgZXdrQ29va2llLT5uYW1l
ID0gc3RyZHVwKGNvb2tpZS0+bmFtZSk7Ci0gICAgICAgIGV3a0Nvb2tpZS0+dmFsdWUgPSBzdHJk
dXAoY29va2llLT52YWx1ZSk7Ci0gICAgICAgIGV3a0Nvb2tpZS0+ZG9tYWluID0gc3RyZHVwKGNv
b2tpZS0+ZG9tYWluKTsKLSAgICAgICAgZXdrQ29va2llLT5wYXRoID0gc3RyZHVwKGNvb2tpZS0+
cGF0aCk7CisgICAgICAgIGV3a0Nvb2tpZS0+bmFtZSA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKGNv
b2tpZS0+bmFtZSk7CisgICAgICAgIGV3a0Nvb2tpZS0+dmFsdWUgPSBlaW5hX3N0cmluZ3NoYXJl
X2FkZChjb29raWUtPnZhbHVlKTsKKyAgICAgICAgZXdrQ29va2llLT5kb21haW4gPSBlaW5hX3N0
cmluZ3NoYXJlX2FkZChjb29raWUtPmRvbWFpbik7CisgICAgICAgIGV3a0Nvb2tpZS0+cGF0aCA9
IGVpbmFfc3RyaW5nc2hhcmVfYWRkKGNvb2tpZS0+cGF0aCk7CiAgICAgICAgIGV3a0Nvb2tpZS0+
ZXhwaXJlcyA9IHNvdXBfZGF0ZV90b190aW1lX3QoY29va2llLT5leHBpcmVzKTsKICAgICAgICAg
ZXdrQ29va2llLT5zZWN1cmUgPSBzdGF0aWNfY2FzdDxFaW5hX0Jvb2w+KGNvb2tpZS0+c2VjdXJl
KTsKICAgICAgICAgZXdrQ29va2llLT5odHRwX29ubHkgPSBzdGF0aWNfY2FzdDxFaW5hX0Jvb2w+
KGNvb2tpZS0+aHR0cF9vbmx5KTsKQEAgLTExNywxMCArMTE3LDEwIEBAIHZvaWQgZXdrX2Nvb2tp
ZXNfY29va2llX2RlbChFd2tfQ29va2llKiBjb29raWUpCiB2b2lkIGV3a19jb29raWVzX2Nvb2tp
ZV9mcmVlKEV3a19Db29raWUqIGNvb2tpZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTihjb29raWUpOwotICAgIGZyZWUoY29va2llLT5uYW1lKTsKLSAgICBmcmVlKGNvb2tpZS0+
dmFsdWUpOwotICAgIGZyZWUoY29va2llLT5kb21haW4pOwotICAgIGZyZWUoY29va2llLT5wYXRo
KTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChjb29raWUtPm5hbWUpOworICAgIGVpbmFfc3Ry
aW5nc2hhcmVfZGVsKGNvb2tpZS0+dmFsdWUpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGNv
b2tpZS0+ZG9tYWluKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChjb29raWUtPnBhdGgpOwog
ICAgIGRlbGV0ZSBjb29raWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfY29va2llcy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmgKaW5k
ZXggOTM5ZWQzZGExMjQ4ZjMzNDBmZTRkMjFlOTA4NDExOGRiNWQwYTQwYy4uZGJhMGViZTEzMDFk
NWE0ZDM1MjYyZGY5MjliZDhkNzQ0ZDE4ZWI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19jb29raWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29r
aWVzLmgKQEAgLTQyLDE2ICs0MiwxOSBAQCBleHRlcm4gIkMiIHsKICAqIFxzdHJ1Y3QgIF9Fd2tf
Q29va2llCiAgKgogICogQGJyaWVmICAgRGVzY3JpYmVzIHByb3BlcnRpZXMgb2YgYW4gSFRUUCBj
b29raWUuCisgKgorICogQWxsIHRoZSBzdHJpbmdzIGFyZSBndWFyYW50ZWVkIHRvIGJlIHN0cmlu
Z3NoYXJlZCwgc28gdXNlIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkKKyAqIGluc3RlYWQgb2YgZWlu
YV9zdHJpbmdzaGFyZV9hZGQoKSBvciBzdHJkdXAoKS4KICAqLwogc3RydWN0IF9Fd2tfQ29va2ll
IHsKICAgICAvLy8gdGhlIGNvb2tpZSBuYW1lCi0gICAgY2hhciAqbmFtZTsKKyAgICBjb25zdCBj
aGFyICpuYW1lOwogICAgIC8vLyB0aGUgY29va2llIHZhbHVlCi0gICAgY2hhciAqdmFsdWU7Cisg
ICAgY29uc3QgY2hhciAqdmFsdWU7CiAgICAgLy8vIHRoZSAiZG9tYWluIiBhdHRyaWJ1dGUsIG9y
IGVsc2UgdGhlIGhvc3RuYW1lIHRoYXQgdGhlIGNvb2tpZSBjYW1lIGZyb20KLSAgICBjaGFyICpk
b21haW47CisgICAgY29uc3QgY2hhciAqZG9tYWluOwogICAgIC8vLyB0aGUgInBhdGgiIGF0dHJp
YnV0ZSwgb3IgQGMgTlVMTAotICAgIGNoYXIgKnBhdGg7CisgICAgY29uc3QgY2hhciAqcGF0aDsK
ICAgICAvLy8gdGhlIGNvb2tpZSBleHBpcmF0aW9uIHRpbWUsIG9yIEBjIDAgZm9yIGEgc2Vzc2lv
biBjb29raWUKICAgICB0aW1lX3QgZXhwaXJlczsKICAgICAvLy8gQGMgRUlOQV9UUlVFIGlmIHRo
ZSBjb29raWUgc2hvdWxkIG9ubHkgYmUgdHJhbmZlcnJlZCBvdmVyIFNTTApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2ZyYW1lLmNwcAppbmRleCA2YTRiMWEzZjI1OTg0ZDVjOWZlMzlhYmI4OGIzYTQ1ZWVk
M2JkYjQ0Li5mYmE0NjBlYzAyNDgzNDIwY2Q5NjgyNjg2NjM5ZDcxOTg3YjU3YTc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtNDM5LDcgKzQzOSw3IEBAIEVpbmFfQm9vbCBl
d2tfZnJhbWVfY29udGVudHNfYWx0ZXJuYXRlX3NldChFdmFzX09iamVjdCogZXdrRnJhbWUsIGNv
bnN0IGNoYXIqIGNvCiAgICAgICAgICAgICAgICB1bnJlYWNoYWJsZVVyaSk7CiB9CiAKLWNoYXIq
IGV3a19mcmFtZV9zY3JpcHRfZXhlY3V0ZShFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNo
YXIqIHNjcmlwdCkKK2NvbnN0IGNoYXIqIGV3a19mcmFtZV9zY3JpcHRfZXhlY3V0ZShFdmFzX09i
amVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIqIHNjcmlwdCkKIHsKICAgICBFV0tfRlJBTUVfU0Rf
R0VUX09SX1JFVFVSTihld2tGcmFtZSwgc21hcnREYXRhLCAwKTsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLT5mcmFtZSwgMCk7CkBAIC00NTgsNyArNDU4LDcg
QEAgY2hhciogZXdrX2ZyYW1lX3NjcmlwdF9leGVjdXRlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwg
Y29uc3QgY2hhciogc2NyaXB0KQogICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gc21hcnREYXRh
LT5mcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChXZWJDb3JlOjptYWluVGhyZWFkTm9ybWFs
V29ybGQoKSktPmdsb2JhbEV4ZWMoKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKGV4ZWMp
OwogICAgIHJlc3VsdFN0cmluZyA9IFdlYkNvcmU6OnVzdHJpbmdUb1N0cmluZyhyZXN1bHQudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKLSAgICByZXR1cm4gc3RyZHVwKHJlc3VsdFN0cmlu
Zy51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gZWluYV9zdHJpbmdzaGFyZV9hZGQocmVzdWx0
U3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAg
IHJldHVybiAwOwpAQCAtNDg1LDE0ICs0ODUsMTQgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9lZGl0
YWJsZV9zZXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBFaW5hX0Jvb2wgZWRpdGFibGUpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWNoYXIqIGV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tGcmFtZSkKK2NvbnN0IGNoYXIqIGV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09S
X1JFVFVSTihld2tGcmFtZSwgc21hcnREYXRhLCAwKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwoc21hcnREYXRhLT5mcmFtZSwgMCk7CiAgICAgV1RGOjpDU3RyaW5nIHNlbGVj
dGVkVGV4dCA9IHNtYXJ0RGF0YS0+ZnJhbWUtPmVkaXRvcigpLT5zZWxlY3RlZFRleHQoKS51dGY4
KCk7CiAgICAgaWYgKHNlbGVjdGVkVGV4dC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgcmV0dXJuIHN0cmR1cChzZWxlY3RlZFRleHQuZGF0YSgpKTsKKyAgICByZXR1cm4gZWluYV9z
dHJpbmdzaGFyZV9hZGQoc2VsZWN0ZWRUZXh0LmRhdGEoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tf
ZnJhbWVfdGV4dF9zZWFyY2goY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBjaGFy
KiB0ZXh0LCBFaW5hX0Jvb2wgY2FzZVNlbnNpdGl2ZSwgRWluYV9Cb29sIGZvcndhcmQsIEVpbmFf
Qm9vbCB3cmFwKQpAQCAtMTczNiw3ICsxNzM2LDcgQEAgRWluYV9MaXN0KiBld2tfZnJhbWVfcmVz
b3VyY2VzX2xvY2F0aW9uX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpCiAgICAgICAg
IGlmIChmb3VuZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGNoYXIqIGltYWdl
TG9jYXRpb25Db3B5ID0gc3RyZHVwKGltYWdlTG9jYXRpb24udXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgIGNvbnN0IGNoYXIqIGltYWdlTG9jYXRpb25Db3B5ID0gZWluYV9zdHJpbmdzaGFyZV9hZGQo
aW1hZ2VMb2NhdGlvbi51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgaWYgKCFpbWFnZUxvY2F0aW9u
Q29weSkKICAgICAgICAgICAgIGdvdG8gb3V0X29mX21lbW9yeV9oYW5kbGVyOwogICAgICAgICBs
aXN0T2ZJbWFnZXNMb2NhdGlvbiA9IGVpbmFfbGlzdF9hcHBlbmQobGlzdE9mSW1hZ2VzTG9jYXRp
b24sIGltYWdlTG9jYXRpb25Db3B5KTsKQEAgLTE3NTQsNyArMTc1NCw3IEBAIG91dF9vZl9tZW1v
cnlfaGFuZGxlcjoKICAgICByZXR1cm4gMDsKIH0KIAotY2hhciogZXdrX2ZyYW1lX3BsYWluX3Rl
eHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKK2NvbnN0IGNoYXIqIGV3a19mcmFt
ZV9wbGFpbl90ZXh0X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7CiAgICAgRVdL
X0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIHNtYXJ0RGF0YSwgMCk7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNtYXJ0RGF0YS0+ZnJhbWUsIDApOwpAQCAtMTc2
Nyw3ICsxNzY3LDcgQEAgY2hhciogZXdrX2ZyYW1lX3BsYWluX3RleHRfZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tGcmFtZSkKICAgICBpZiAoIWRvY3VtZW50RWxlbWVudCkKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICByZXR1cm4gc3RyZHVwKGRvY3VtZW50RWxlbWVudC0+aW5uZXJUZXh0KCku
dXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIGVpbmFfc3RyaW5nc2hhcmVfYWRkKGRvY3VtZW50
RWxlbWVudC0+aW5uZXJUZXh0KCkudXRmOCgpLmRhdGEoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tf
ZnJhbWVfbWl4ZWRfY29udGVudF9kaXNwbGF5ZWRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tG
cmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAppbmRleCA0NDk4YTQzNjMzZGQ1MWMwZjNh
YjQ4ODMyOTQ4OTFkNmIyZWVlMjZhLi5iMTk2MzMyZjJiNzFjODM4NjZmZTVkMGQxY2JhMWJkYjIz
OTY2Njc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCkBAIC00NDYsMTQgKzQ0NiwxNCBA
QCBFQVBJIEVpbmFfQm9vbCAgICBld2tfZnJhbWVfY29udGVudHNfYWx0ZXJuYXRlX3NldChFdmFz
X09iamVjdCAqbywgY29uc3QgY2hhciAqYwogLyoqCiAgKiBSZXF1ZXN0cyBleGVjdXRpb24gb2Yg
dGhlIGdpdmVuIHNjcmlwdC4KICAqCi0gKiBUaGUgcmV0dXJuZWQgc3RyaW5nIEBiIHNob3VsZCBi
ZSBmcmVlZCBhZnRlciB1c2UuCisgKiBUaGUgcmV0dXJuZWQgc3RyaW5nIEBiIHNob3VsZCBiZSBm
cmVlZCBieSBlaW5hX3N0cmluZ3NoYXJlX2RlbCgpIGFmdGVyIHVzZS4KICAqCiAgKiBAcGFyYW0g
byBmcmFtZSBvYmplY3QgdG8gZXhlY3V0ZSBzY3JpcHQKICAqIEBwYXJhbSBzY3JpcHQgSmF2YSBT
Y3JpcHQgdG8gZXhlY3V0ZQogICoKICAqIEByZXR1cm4gbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBm
b3IgcmVzdWx0IG9yIEBjIE5VTEwgaWYgdGhlIHJlc3VsdCBjYW5ub3QgYmUgY29udmVydGVkIHRv
IHN0cmluZyBvciBmYWlsdXJlCiAgKi8KLUVBUEkgY2hhciAgICAgICAgKmV3a19mcmFtZV9zY3Jp
cHRfZXhlY3V0ZShFdmFzX09iamVjdCAqbywgY29uc3QgY2hhciAqc2NyaXB0KTsKK0VBUEkgY29u
c3QgY2hhciAgICAgICAgKmV3a19mcmFtZV9zY3JpcHRfZXhlY3V0ZShFdmFzX09iamVjdCAqbywg
Y29uc3QgY2hhciAqc2NyaXB0KTsKIAogLyoqCiAgKiBRdWVyaWVzIGlmIHRoZSBmcmFtZSBpcyBl
ZGl0YWJsZS4KQEAgLTQ3NywxMyArNDc3LDEzIEBAIEVBUEkgRWluYV9Cb29sICAgIGV3a19mcmFt
ZV9lZGl0YWJsZV9zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBlZGl0YWJsZSk7CiAvKioK
ICAqIEdldHMgdGhlIGNvcHkgb2YgdGhlIHNlbGVjdGVkIHRleHQuCiAgKgotICogVGhlIHJldHVy
bmVkIHN0cmluZyBAYiBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNlLgorICogVGhlIHJldHVybmVk
IHN0cmluZyBAYiBzaG91bGQgYmUgZnJlZWQgYnkgZWluYV9zdHJpbmdzaGFyZV9kZWwoKSBhZnRl
ciB1c2UuCiAgKgogICogQHBhcmFtIG8gdGhlIGZyYW1lIG9iamVjdCB0byBnZXQgc2VsZWN0ZWQg
dGV4dAogICoKICAqIEByZXR1cm4gYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIG9yIEBjIE5VTEwg
aWYgbm90aGluZyBpcyBzZWxlY3RlZCBvciBvbiBmYWlsdXJlCiAgKi8KLUVBUEkgY2hhciAgICAg
ICAgKmV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKK0VBUEkg
Y29uc3QgY2hhciAgICAgICAgKmV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2Jq
ZWN0ICpvKTsKIAogLyoqCiAgKiBTZWFyY2hlcyB0aGUgZ2l2ZW4gc3RyaW5nIGluIGEgZG9jdW1l
bnQuCkBAIC05NjgsMTIgKzk2OCwxNCBAQCBFQVBJIEVpbmFfTGlzdCAqZXdrX2ZyYW1lX3Jlc291
cmNlc19sb2NhdGlvbl9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogICogVGhpcyBmdW5jdGlv
biByZXR1cm5zIHRoZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4gZnJhbWUgY29udmVydGVkIHRvIHBs
YWluIHRleHQsCiAgKiByZW1vdmluZyBhbGwgdGhlIEhUTUwgZm9ybWF0dGluZy4KICAqCisgKiBU
aGUgcmV0dXJuZWQgc3RyaW5nIEBiIHNob3VsZCBiZSBmcmVlZCBieSBlaW5hX3N0cmluZ3NoYXJl
X2RlbCgpIGFmdGVyIHVzZS4KKyAqCiAgKiBAcGFyYW0gZXdrRnJhbWUgRnJhbWUgb2JqZWN0IHdo
b3NlIGNvbnRlbnRzIHRvIHJldHJpZXZlLgogICoKICAqIEByZXR1cm4gQSBuZXdseSBhbGxvY2F0
ZWQgc3RyaW5nICh3aGljaCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIgd2l0aCBAYyBmcmVl
KCkpCiAgKiAgICAgICAgIG9yIEBjIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlLgogICovCi1FQVBJ
IGNoYXIgKmV3a19mcmFtZV9wbGFpbl90ZXh0X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CitF
QVBJIGNvbnN0IGNoYXIgKmV3a19mcmFtZV9wbGFpbl90ZXh0X2dldChjb25zdCBFdmFzX09iamVj
dCAqbyk7CiAKIC8qKgogICogUmV0dXJucyB3aGV0aGVyIHRoZSBmcmFtZSBoYXMgZGlzcGxheWVk
IG1peGVkIGNvbnRlbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2lu
dGVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudC5jcHAKaW5kZXggZWY3
OTE0MTg2N2NiMzE4NTMxNDQxY2JjY2IzODUxN2RiZDZjZDQ0Yy4uNzZjMmQ2OGRhYTcyMTI0ZWE1
YjYxYjdlMjRmMDM0YzJjMGNkYjgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19pbnRlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmNw
cApAQCAtMTA2LDIxICsxMDYsMjEgQEAgRWluYV9MaXN0KiBld2tfaW50ZW50X3N1Z2dlc3Rpb25z
X2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQpCiAgICAgRWluYV9MaXN0KiBsaXN0T2ZTdWdn
ZXN0aW9ucyA9IDA7CiAgICAgVmVjdG9yPFdlYkNvcmU6OktVUkw+Ojpjb25zdF9pdGVyYXRvciBp
dDsKICAgICBmb3IgKGl0ID0gY29yZS0+c3VnZ2VzdGlvbnMoKS5iZWdpbigpOyBpdCAhPSBjb3Jl
LT5zdWdnZXN0aW9ucygpLmVuZCgpOyArK2l0KQotICAgICAgICBsaXN0T2ZTdWdnZXN0aW9ucyA9
IGVpbmFfbGlzdF9hcHBlbmQobGlzdE9mU3VnZ2VzdGlvbnMsIHN0cmR1cChpdC0+c3RyaW5nKCku
dXRmOCgpLmRhdGEoKSkpOworICAgICAgICBsaXN0T2ZTdWdnZXN0aW9ucyA9IGVpbmFfbGlzdF9h
cHBlbmQobGlzdE9mU3VnZ2VzdGlvbnMsIGVpbmFfc3RyaW5nc2hhcmVfYWRkKGl0LT5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKSk7CiAgICAgcmV0dXJuIGxpc3RPZlN1Z2dlc3Rpb25zOwogI2Vsc2UK
ICAgICByZXR1cm4gMDsKICNlbmRpZgogfQogCi1jaGFyKiBld2tfaW50ZW50X2V4dHJhX2dldChj
b25zdCBFd2tfSW50ZW50KiBpbnRlbnQsIGNvbnN0IGNoYXIqIGtleSkKK2NvbnN0IGNoYXIqIGV3
a19pbnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCwgY29uc3QgY2hhciog
a2V5KQogewogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKICAgICBFV0tfSU5URU5UX0NPUkVfR0VU
X09SX1JFVFVSTihpbnRlbnQsIGNvcmUsIDApOwogICAgIFdURjo6SGFzaE1hcDxTdHJpbmcsIFN0
cmluZz46OmNvbnN0X2l0ZXJhdG9yIHZhbCA9IGNvcmUtPmV4dHJhcygpLmZpbmQoU3RyaW5nOjpm
cm9tVVRGOChrZXkpKTsKICAgICBpZiAodmFsID09IGNvcmUtPmV4dHJhcygpLmVuZCgpKQogICAg
ICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gc3RyZHVwKHZhbC0+c2Vjb25kLnV0ZjgoKS5kYXRh
KCkpOworICAgIHJldHVybiBlaW5hX3N0cmluZ3NoYXJlX2FkZCh2YWwtPnNlY29uZC51dGY4KCku
ZGF0YSgpKTsKICNlbHNlCiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKQEAgLTEzMyw3ICsxMzMsNyBA
QCBFaW5hX0xpc3QqIGV3a19pbnRlbnRfZXh0cmFfbmFtZXNfZ2V0KGNvbnN0IEV3a19JbnRlbnQq
IGludGVudCkKICAgICBFaW5hX0xpc3QqIGxpc3RPZk5hbWVzID0gMDsKICAgICBXVEY6Okhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvcjo6S2V5cyBpdCA9IGNvcmUtPmV4dHJh
cygpLmJlZ2luKCkua2V5cygpOwogICAgIGZvciAoOyBpdCAhPSBjb3JlLT5leHRyYXMoKS5lbmQo
KS5rZXlzKCk7ICsraXQpCi0gICAgICAgIGxpc3RPZk5hbWVzID0gZWluYV9saXN0X2FwcGVuZChs
aXN0T2ZOYW1lcywgc3RyZHVwKGl0LT51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGxpc3RPZk5h
bWVzID0gZWluYV9saXN0X2FwcGVuZChsaXN0T2ZOYW1lcywgZWluYV9zdHJpbmdzaGFyZV9hZGQo
aXQtPnV0ZjgoKS5kYXRhKCkpKTsKICAgICByZXR1cm4gbGlzdE9mTmFtZXM7CiAjZWxzZQogICAg
IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRlbnQu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaW50ZW50LmgKaW5kZXggZjQ5YTc2ZGM0MjRl
ZDMxOWM5MGYxYWVkN2MyZGViOTNiMTE1OGRmYS4uMmI3NzljZGRjMDM0M2JlNzUyM2VkOTZlNjE4
ZTljYjFmMDQzMzcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19pbnRl
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ludGVudC5oCkBAIC04NSwxMiAr
ODUsMTQgQEAgRUFQSSBFaW5hX0xpc3QgKmV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0KGNvbnN0
IEV3a19JbnRlbnQgKmludGVudCk7CiAvKioKICAqIFJldHJpZXZlcyB0aGUgdmFsdWUgKGlmIGFu
eSkgZnJvbSB0aGUgZXh0cmEgZGF0YSBkaWN0aW9uYXJ5IHRoaXMgaW50ZW50IHdhcyBjb25zdHJ1
Y3RlZCB3aXRoLgogICoKKyAqIFRoZSByZXR1cm5lZCBzdHJpbmcgc2hvdWxkIGJlIGZyZWVkIGJ5
IGVpbmFfc3RyaW5nc2hhcmVfZGVsKCkgYWZ0ZXIgdXNlLgorICoKICAqIEBwYXJhbSBpbnRlbnQg
aW50ZW50IGl0ZW0gdG8gcXVlcnkuCiAgKiBAcGFyYW0ga2V5IGtleSB0byBxdWVyeSBpbiB0aGUg
ZGljdGlvbmFyeS4KICAqCiAgKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBvciBA
YyBOVUxMIGluIGNhc2Ugb2YgZXJyb3Igb3IgaWYgdGhlIGtleSBkb2VzIG5vdCBleGlzdC4KICAq
LwotRUFQSSBjaGFyICpld2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRl
bnQsIGNvbnN0IGNoYXIgKmtleSk7CitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfZXh0cmFf
Z2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCwgY29uc3QgY2hhciAqa2V5KTsKIAogLyoqCiAg
KiBSZXRyaWV2ZSBhIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGV4dHJhIG1ldGFkYXRhIGFzc29jaWF0
ZWQgd2l0aCB0aGUgaW50ZW50LgpAQCAtOTgsOCArMTAwLDggQEAgRUFQSSBjaGFyICpld2tfaW50
ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQsIGNvbnN0IGNoYXIgKmtleSk7
CiAgKiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5LgogICoKICAqIEByZXR1cm4g
QGMgRWluYV9MaXN0IHdpdGggbmFtZXMgb2YgZXh0cmEgbWV0YWRhdGEgb24gc3VjY2Vzcywgb3Ig
QGMgTlVMTCBvbiBmYWlsdXJlLAotICogICAgICAgICB0aGUgRWluYV9MaXN0IGFuZCBpdHMgaXRl
bXMgc2hvdWxkIGJlIGZyZWVkIGFmdGVyIHVzZS4gVXNlIGZyZWUoKSB0byBmcmVlIHRoZQotICog
ICAgICAgICBpdGVtcy4KKyAqICAgICAgICAgdGhlIEVpbmFfTGlzdCBhbmQgaXRzIGl0ZW1zIHNo
b3VsZCBiZSBmcmVlZCBhZnRlciB1c2UuIFVzZSBlaW5hX3N0cmluZ3NoYXJlX2RlbCgpCisgKiAg
ICAgICAgIHRvIGZyZWUgdGhlIGl0ZW1zLgogICovCiBFQVBJIEVpbmFfTGlzdCAqZXdrX2ludGVu
dF9leHRyYV9uYW1lc19nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19qcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2pzLmNwcAppbmRleCBmMDhmOThlMTU1NzExYmQyMDZiM2VkMDgwMjIzYjQ0ODMyZWUz
NmVjLi4wY2JiMTg5NTIzODE0NTczNGFhYTlmZjYxYzE2ZjYwYzM3NWY1OGQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2pzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2pzLmNwcApAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgRWluYV9Cb29sIGV3a19q
c192YXJpYW50X3RvX25wdmFyaWFudChjb25zdCBFd2tfSlNfVmFyaWFudCogZGF0YSwgTlBWYXJp
YQogICAgICAgICBET1VCTEVfVE9fTlBWQVJJQU5UKGRhdGEtPnZhbHVlLmQsICpyZXN1bHQpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEVXS19KU19WQVJJQU5UX1NUUklORzoKLSAgICAgICAg
c3RyaW5nX3ZhbHVlID0gc3RyZHVwKGRhdGEtPnZhbHVlLnMpOworICAgICAgICBzdHJpbmdfdmFs
dWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChkYXRhLT52YWx1ZS5zKTsKICAgICAgICAgaWYgKHN0
cmluZ192YWx1ZSkKICAgICAgICAgICAgIFNUUklOR1pfVE9fTlBWQVJJQU5UKHN0cmluZ192YWx1
ZSwgKnJlc3VsdCk7CiAgICAgICAgIGVsc2UKQEAgLTU2OSw3ICs1NjksNyBAQCBFd2tfSlNfT2Jq
ZWN0KiBld2tfanNfb2JqZWN0X25ldyhjb25zdCBFd2tfSlNfQ2xhc3NfTWV0YSoganNNZXRhQ2xh
c3MpCiAgICAgICAgICAgICAgICAgdmFsdWUtPnZhbHVlLm8gPSAwOwogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgY2FzZSBFV0tfSlNfVkFSSUFOVF9TVFJJTkc6Ci0gICAgICAg
ICAgICAgICAgdmFsdWUtPnZhbHVlLnMgPSBzdHJkdXAocHJvcC52YWx1ZS52YWx1ZS5zKTsKKyAg
ICAgICAgICAgICAgICB2YWx1ZS0+dmFsdWUucyA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKHByb3Au
dmFsdWUudmFsdWUucyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IEVXS19KU19WQVJJQU5UX0JPT0w6CiAgICAgICAgICAgICAgICAgdmFsdWUtPnZhbHVlLmIgPSBw
cm9wLnZhbHVlLnZhbHVlLmI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBkYzhh
Yzg4YmFlNDgxNGQyNWJmMWM1NWIzY2FlOTUxYjRkY2JhYTc3Li44MTliN2UzNzQ3NmJjNzczMDZj
ZGVkOTdkNmUzNmM2MjBlOTRkNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAg
LTYzMyw5ICs2MzMsOSBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9zaG91bGRf
aW50ZXJydXB0X2phdmFzY3JpcHQoRXdrX1ZpZXdfU21hcnRfRGF0YQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfcnVuX2phdmFzY3JpcHRf
cHJvbXB0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgRXZhc19PYmplY3QqIGZyYW1l
LCBjb25zdCBjaGFyKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBkZWZhdWx0VmFsdWUsIGNoYXIqKiB2
YWx1ZSkKK3N0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3J1bl9qYXZhc2NyaXB0X3By
b21wdChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIEV2YXNfT2JqZWN0KiBmcmFtZSwg
Y29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciogZGVmYXVsdFZhbHVlLCBjb25zdCBjaGFy
KiogdmFsdWUpCiB7Ci0gICAgKnZhbHVlID0gc3RyZHVwKCJ0ZXN0Iik7CisgICAgKnZhbHVlID0g
ZWluYV9zdHJpbmdzaGFyZV9hZGQoInRlc3QiKTsKICAgICBFaW5hX0Jvb2wgcmVzdWx0ID0gdHJ1
ZTsKICAgICBJTkYoImphdmFzY3JpcHQgcHJvbXB0OlxuIgogICAgICAgICAiXHQgICAgICBtZXNz
YWdlOiAlc1xuIgpAQCAtMTU4NSwxNCArMTU4NSwxNCBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfZWRp
dGFibGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wgZWRpdGFibGUpCiAgICAg
cmV0dXJuIGV3a19mcmFtZV9lZGl0YWJsZV9zZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lLCBlZGl0
YWJsZSk7CiB9CiAKLWNoYXIqIGV3a192aWV3X3NlbGVjdGlvbl9nZXQoY29uc3QgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcpCitjb25zdCBjaGFyKiBld2tfdmlld19zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdr
Vmlldywgc21hcnREYXRhLCAwKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21h
cnREYXRhLCBwcml2LCAwKTsKICAgICBDU3RyaW5nIHNlbGVjdGVkU3RyaW5nID0gcHJpdi0+cGFn
ZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+c2Vs
ZWN0ZWRUZXh0KCkudXRmOCgpOwogICAgIGlmIChzZWxlY3RlZFN0cmluZy5pc051bGwoKSkKICAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0cmR1cChzZWxlY3RlZFN0cmluZy5kYXRhKCkp
OworICAgIHJldHVybiBlaW5hX3N0cmluZ3NoYXJlX2FkZChzZWxlY3RlZFN0cmluZy5kYXRhKCkp
OwogfQogCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfZXhlY3V0ZShjb25zdCBF
dmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXdrX0VkaXRvcl9Db21tYW5kIGNvbW1hbmQsIGNv
bnN0IGNoYXIqIHZhbHVlKQpAQCAtMzQ4MSw3ICszNDgxLDcgQEAgYm9vbCBld2tfdmlld19ydW5f
amF2YXNjcmlwdF9jb25maXJtKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJh
bWUsIGMKICAgICByZXR1cm4gc21hcnREYXRhLT5hcGktPnJ1bl9qYXZhc2NyaXB0X2NvbmZpcm0o
c21hcnREYXRhLCBmcmFtZSwgbWVzc2FnZSk7CiB9CiAKLWJvb2wgZXdrX3ZpZXdfcnVuX2phdmFz
Y3JpcHRfcHJvbXB0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUsIGNv
bnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1ZSwgY2hhcioqIHZhbHVl
KQorYm9vbCBld2tfdmlld19ydW5famF2YXNjcmlwdF9wcm9tcHQoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3QgY2hhciog
ZGVmYXVsdFZhbHVlLCBjb25zdCBjaGFyKiogdmFsdWUpCiB7CiAgICAgREJHKCJld2tWaWV3PSVw
IGZyYW1lPSVwIG1lc3NhZ2U9JXMiLCBld2tWaWV3LCBmcmFtZSwgbWVzc2FnZSk7CiAgICAgRVdL
X1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKQEAgLTM1
OTEsNyArMzU5MSw3IEBAIGJvb2wgZXdrX3ZpZXdfcnVuX29wZW5fcGFuZWwoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSwgYm9vbCBhbGxvCiAKICAgICBFaW5hX0xpc3Qq
IGNBY2NlcHRNSU1FVHlwZXMgPSAwOwogICAgIGZvciAoV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+
Ojpjb25zdF9pdGVyYXRvciBpdGVyYXRvciA9IGFjY2VwdE1JTUVUeXBlcy5iZWdpbigpOyBpdGVy
YXRvciAhPSBhY2NlcHRNSU1FVHlwZXMuZW5kKCk7ICsraXRlcmF0b3IpCi0gICAgICAgIGNBY2Nl
cHRNSU1FVHlwZXMgPSBlaW5hX2xpc3RfYXBwZW5kKGNBY2NlcHRNSU1FVHlwZXMsIHN0cmR1cCgo
Kml0ZXJhdG9yKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGNBY2NlcHRNSU1FVHlwZXMgPSBl
aW5hX2xpc3RfYXBwZW5kKGNBY2NlcHRNSU1FVHlwZXMsIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCgq
aXRlcmF0b3IpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgIGJvb2wgY29uZmlybSA9IHNtYXJ0RGF0
YS0+YXBpLT5ydW5fb3Blbl9wYW5lbChzbWFydERhdGEsIGZyYW1lLCBhbGxvd3NNdWx0aXBsZUZp
bGVzLCBjQWNjZXB0TUlNRVR5cGVzLCBzZWxlY3RlZEZpbGVuYW1lcyk7CiAgICAgaWYgKCFjb25m
aXJtICYmICpzZWxlY3RlZEZpbGVuYW1lcykKQEAgLTM1OTksNyArMzU5OSw3IEBAIGJvb2wgZXdr
X3ZpZXdfcnVuX29wZW5fcGFuZWwoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBm
cmFtZSwgYm9vbCBhbGxvCiAKICAgICB2b2lkKiBpdGVtID0gMDsKICAgICBFSU5BX0xJU1RfRlJF
RShjQWNjZXB0TUlNRVR5cGVzLCBpdGVtKQotICAgICAgICBmcmVlKGl0ZW0pOworICAgICAgICBl
aW5hX3N0cmluZ3NoYXJlX2RlbChzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oaXRlbSkpOwogCiAg
ICAgcmV0dXJuIGNvbmZpcm07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IDU1ZWQz
ZWU4NjgxZWYwYzExNWQ4ZjA4M2UyNDhlODU0YjJjMDBmZTYuLjc4MTZjODBkZjdjZDIxMjk3NThi
MmE2NzY1ODc4NDNjNmQ5NGQ0NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xODIs
NyArMTgyLDcgQEAgc3RydWN0IF9Fd2tfVmlld19TbWFydF9DbGFzcyB7CiAgICAgdm9pZCAoKmFk
ZF9jb25zb2xlX21lc3NhZ2UpKEV3a19WaWV3X1NtYXJ0X0RhdGEgKnNkLCBjb25zdCBjaGFyICpt
ZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgY2hhciAqc291cmNlSUQpOwog
ICAgIHZvaWQgKCpydW5famF2YXNjcmlwdF9hbGVydCkoRXdrX1ZpZXdfU21hcnRfRGF0YSAqc2Qs
IEV2YXNfT2JqZWN0ICpmcmFtZSwgY29uc3QgY2hhciAqbWVzc2FnZSk7CiAgICAgRWluYV9Cb29s
ICgqcnVuX2phdmFzY3JpcHRfY29uZmlybSkoRXdrX1ZpZXdfU21hcnRfRGF0YSAqc2QsIEV2YXNf
T2JqZWN0ICpmcmFtZSwgY29uc3QgY2hhciAqbWVzc2FnZSk7Ci0gICAgRWluYV9Cb29sICgqcnVu
X2phdmFzY3JpcHRfcHJvbXB0KShFd2tfVmlld19TbWFydF9EYXRhICpzZCwgRXZhc19PYmplY3Qg
KmZyYW1lLCBjb25zdCBjaGFyICptZXNzYWdlLCBjb25zdCBjaGFyICpkZWZhdWx0VmFsdWUsIGNo
YXIgKip2YWx1ZSk7CisgICAgRWluYV9Cb29sICgqcnVuX2phdmFzY3JpcHRfcHJvbXB0KShFd2tf
Vmlld19TbWFydF9EYXRhICpzZCwgRXZhc19PYmplY3QgKmZyYW1lLCBjb25zdCBjaGFyICptZXNz
YWdlLCBjb25zdCBjaGFyICpkZWZhdWx0VmFsdWUsIGNvbnN0IGNoYXIgKip2YWx1ZSk7CiAgICAg
RWluYV9Cb29sICgqc2hvdWxkX2ludGVycnVwdF9qYXZhc2NyaXB0KShFd2tfVmlld19TbWFydF9E
YXRhICpzZCk7CiAgICAgaW50NjRfdCAoKmV4Y2VlZGVkX2FwcGxpY2F0aW9uX2NhY2hlX3F1b3Rh
KShFd2tfVmlld19TbWFydF9EYXRhICpzZCwgRXdrX1NlY3VyaXR5X09yaWdpbiogb3JpZ2luLCBp
bnQ2NF90IGRlZmF1bHRPcmlnaW5RdW90YSwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKICAg
ICB1aW50NjRfdCAoKmV4Y2VlZGVkX2RhdGFiYXNlX3F1b3RhKShFd2tfVmlld19TbWFydF9EYXRh
ICpzZCwgRXZhc19PYmplY3QgKmZyYW1lLCBjb25zdCBjaGFyICpkYXRhYmFzZU5hbWUsIHVpbnQ2
NF90IGN1cnJlbnRfc2l6ZSwgdWludDY0X3QgZXhwZWN0ZWRfc2l6ZSk7CkBAIC04NTgsMTMgKzg1
OCwxMyBAQCBFQVBJIHZvaWQgICAgICAgICBld2tfdmlld19iZ19jb2xvcl9nZXQoY29uc3QgRXZh
c19PYmplY3QgKm8sIGludCAqciwgaW50ICpnLCBpbgogLyoqCiAgKiBHZXRzIHRoZSBjb3B5IG9m
IHRoZSBzZWxlY3RlZCB0ZXh0LgogICoKLSAqIFRoZSByZXR1cm5lZCBzdHJpbmcgQGIgc2hvdWxk
IGJlIGZyZWVkIGFmdGVyIHVzZS4KKyAqIFRoZSByZXR1cm5lZCBzdHJpbmcgQGIgc2hvdWxkIGJl
IGZyZWVkIGJ5IGVpbmFfc3RyaW5nc2hhcmVfZGVsKCkgYWZ0ZXIgdXNlLgogICoKICAqIEBwYXJh
bSBvIHZpZXcgb2JqZWN0IHRvIGdldCBzZWxlY3RlZCB0ZXh0CiAgKgogICogQHJldHVybiBhIG5l
d2x5IGFsbG9jYXRlZCBzdHJpbmcgb3IgQGMgTlVMTCBpZiBub3RoaW5nIGlzIHNlbGVjdGVkIG9y
IG9uIGZhaWx1cmUKICAqLwotRUFQSSBjaGFyICAgICAgICAqZXdrX3ZpZXdfc2VsZWN0aW9uX2dl
dChjb25zdCBFdmFzX09iamVjdCAqbyk7CitFQVBJIGNvbnN0IGNoYXIgICAgICAgICpld2tfdmll
d19zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKIAogLyoqCiAgKiBGb3J3YXJk
cyBhIHJlcXVlc3Qgb2YgYSBuZXcgQ29udGV4dCBNZW51IHRvIFdlYkNvcmUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaAppbmRleCBiNzBlNzU1YjE2MDkzYTUzY2U2Y2Qz
NzhlMzYzZGM2OTIzZGYxZDg5Li42NTY4ZTcyYzk5MjBhNGRhY2U2MGUwZjEzNDhlNGVhZWM2NmVl
MThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKQEAgLTkyLDcg
KzkyLDcgQEAgdm9pZCBld2tfdmlld19hZGRfY29uc29sZV9tZXNzYWdlKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBjb25zdCBjaGFyKiBtZXNzYWdlLCB1bnMKIAogdm9pZCBld2tfdmlld19ydW5famF2
YXNjcmlwdF9hbGVydChFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lLCBj
b25zdCBjaGFyKiBtZXNzYWdlKTsKIGJvb2wgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfY29uZmly
bShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBt
ZXNzYWdlKTsKLWJvb2wgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfcHJvbXB0KEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0
IGNoYXIqIGRlZmF1bHRWYWx1ZSwgY2hhcioqIHZhbHVlKTsKK2Jvb2wgZXdrX3ZpZXdfcnVuX2ph
dmFzY3JpcHRfcHJvbXB0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUs
IGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1ZSwgY29uc3QgY2hh
cioqIHZhbHVlKTsKIGJvb2wgZXdrX3ZpZXdfc2hvdWxkX2ludGVycnVwdF9qYXZhc2NyaXB0KEV2
YXNfT2JqZWN0KiBld2tWaWV3KTsKIGludDY0X3QgZXdrX3ZpZXdfZXhjZWVkZWRfYXBwbGljYXRp
b25fY2FjaGVfcXVvdGEoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19TZWN1cml0eV9PcmlnaW4g
Km9yaWdpbiwgaW50NjRfdCBkZWZhdWx0T3JpZ2luUXVvdGEsIGludDY0X3QgdG90YWxTcGFjZU5l
ZWRlZCk7CiB1aW50NjRfdCBld2tfdmlld19leGNlZWRlZF9kYXRhYmFzZV9xdW90YShFdmFzX09i
amVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBkYXRhYmFzZU5h
bWUsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBleHBlY3RlZFNpemUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcAppbmRleCA3MzIy
MTA4YmU3MDQ3MjlhOTY4ZjJiMTI4YzI5NGQ0MTFiYzBhZjU0Li44NTYxNzkzNDYxZTFiODBmOTRj
NjJmNGQ4YTNiYjk2ZmQ3MWEyNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfaW50ZW50LmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIEVpbmFfTGlzdCogZXdr
X2ludGVudF9zdWdnZXN0aW9uc19nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQogICAgIGNv
bnN0IHNpemVfdCBudW1TdWdnZXN0aW9ucyA9IFdLQXJyYXlHZXRTaXplKHdrU3VnZ2VzdGlvbnMu
Z2V0KCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtU3VnZ2VzdGlvbnM7ICsraSkg
ewogICAgICAgICBXS1VSTFJlZiB3a1N1Z2dlc3Rpb24gPSBzdGF0aWNfY2FzdDxXS1VSTFJlZj4o
V0tBcnJheUdldEl0ZW1BdEluZGV4KHdrU3VnZ2VzdGlvbnMuZ2V0KCksIGkpKTsKLSAgICAgICAg
bGlzdE9mU3VnZ2VzdGlvbnMgPSBlaW5hX2xpc3RfYXBwZW5kKGxpc3RPZlN1Z2dlc3Rpb25zLCBz
dHJkdXAodG9JbXBsKHdrU3VnZ2VzdGlvbiktPnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAg
ICAgICAgbGlzdE9mU3VnZ2VzdGlvbnMgPSBlaW5hX2xpc3RfYXBwZW5kKGxpc3RPZlN1Z2dlc3Rp
b25zLCBlaW5hX3N0cmluZ3NoYXJlX2FkZCh0b0ltcGwod2tTdWdnZXN0aW9uKS0+c3RyaW5nKCku
dXRmOCgpLmRhdGEoKSkpOwogICAgIH0KIAogICAgIHJldHVybiBsaXN0T2ZTdWdnZXN0aW9uczsK
QEAgLTE2NSw3ICsxNjUsNyBAQCBFaW5hX0xpc3QqIGV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0
KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKICNlbmRpZgogfQogCi1jaGFyKiBld2tfaW50ZW50
X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQsIGNvbnN0IGNoYXIqIGtleSkKK2Nv
bnN0IGNoYXIqIGV3a19pbnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCwg
Y29uc3QgY2hhcioga2V5KQogewogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKICAgICBFV0tfSU5U
RU5UX1dLX0dFVF9PUl9SRVRVUk4oaW50ZW50LCB3a0ludGVudCwgMCk7CkBAIC0xNzYsNyArMTc2
LDcgQEAgY2hhciogZXdrX2ludGVudF9leHRyYV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50
LCBjb25zdCBjaGFyKiBrZXkpCiAgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICByZXR1cm4gc3RyZHVwKHZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgIHJl
dHVybiBlaW5hX3N0cmluZ3NoYXJlX2FkZCh2YWx1ZS51dGY4KCkuZGF0YSgpKTsKICNlbHNlCiAg
ICAgcmV0dXJuIDA7CiAjZW5kaWYKQEAgLTE5Myw3ICsxOTMsNyBAQCBFaW5hX0xpc3QqIGV3a19p
bnRlbnRfZXh0cmFfbmFtZXNfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKICAgICBjb25z
dCBzaXplX3QgbnVtS2V5cyA9IFdLQXJyYXlHZXRTaXplKHdrS2V5cy5nZXQoKSk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBudW1LZXlzOyArK2kpIHsKICAgICAgICAgV0tTdHJpbmdSZWYg
d2tLZXkgPSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KHdr
S2V5cy5nZXQoKSwgaSkpOwotICAgICAgICBsaXN0T2ZLZXlzID0gZWluYV9saXN0X2FwcGVuZChs
aXN0T2ZLZXlzLCBzdHJkdXAodG9JbXBsKHdrS2V5KS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkp
OworICAgICAgICBsaXN0T2ZLZXlzID0gZWluYV9saXN0X2FwcGVuZChsaXN0T2ZLZXlzLCBlaW5h
X3N0cmluZ3NoYXJlX2FkZCh0b0ltcGwod2tLZXkpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7
CiAgICAgfQogCiAgICAgcmV0dXJuIGxpc3RPZktleXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmgKaW5kZXggYWU3M2M2Y2U1NDc2YTIyNTc3NTU1OWQ4
MjAzZmQyNjQ5ODM0NGM2OS4uYWJjZmZhNTlmMmZjMjljZDUyNTg3ODk0NzIzMmQ2YWI4Y2I4NzA2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuaApA
QCAtMTA0LDI5ICsxMDQsMzMgQEAgRUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X3NlcnZpY2Vf
Z2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCk7CiAgKiBAcGFyYW0gaW50ZW50IGludGVudCBp
dGVtIHRvIHF1ZXJ5LgogICoKICAqIEByZXR1cm4gQGMgRWluYV9MaXN0IHdpdGggc3VnZ2VzdGVk
IHNlcnZpY2UgVVJMcyBvbiBzdWNjZXNzLCBvciBAYyBOVUxMIG9uIGZhaWx1cmUsCi0gKiAgICAg
ICAgIHRoZSBFaW5hX0xpc3QgYW5kIGl0cyBpdGVtcyBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNl
LiBVc2UgZnJlZSgpIHRvIGZyZWUgdGhlCi0gKiAgICAgICAgIGl0ZW1zLgorICogICAgICAgICB0
aGUgRWluYV9MaXN0IGFuZCBpdHMgaXRlbXMgc2hvdWxkIGJlIGZyZWVkIGFmdGVyIHVzZS4gVXNl
IGVpbmFfc3RyaW5nc2hhcmVfZGVsKCkKKyAqICAgICAgICAgdG8gZnJlZSB0aGUgaXRlbXMuCiAg
Ki8KIEVBUEkgRWluYV9MaXN0ICpld2tfaW50ZW50X3N1Z2dlc3Rpb25zX2dldChjb25zdCBFd2tf
SW50ZW50ICppbnRlbnQpOwogCiAvKioKICAqIFJldHJpZXZlcyB0aGUgdmFsdWUgKGlmIGFueSkg
ZnJvbSB0aGUgZXh0cmEgZGF0YSBkaWN0aW9uYXJ5IHRoaXMgaW50ZW50IHdhcyBjb25zdHJ1Y3Rl
ZCB3aXRoLgogICoKKyAqIFRoZSByZXR1cm5lZCBzdHJpbmcgc2hvdWxkIGJlIGZyZWVkIGJ5IGVp
bmFfc3RyaW5nc2hhcmVfZGVsKCkgYWZ0ZXIgdXNlLgorICoKICAqIEBwYXJhbSBpbnRlbnQgaW50
ZW50IGl0ZW0gdG8gcXVlcnkuCiAgKiBAcGFyYW0ga2V5IGtleSB0byBxdWVyeSBpbiB0aGUgZGlj
dGlvbmFyeS4KICAqCiAgKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBvciBAYyBO
VUxMIGluIGNhc2Ugb2YgZXJyb3Igb3IgaWYgdGhlIGtleSBkb2VzIG5vdCBleGlzdC4KICAqLwot
RUFQSSBjaGFyICpld2tfaW50ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQs
IGNvbnN0IGNoYXIgKmtleSk7CitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfZXh0cmFfZ2V0
KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCwgY29uc3QgY2hhciAqa2V5KTsKIAogLyoqCiAgKiBS
ZXRyaWV2ZSBhIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGV4dHJhIG1ldGFkYXRhIGFzc29jaWF0ZWQg
d2l0aCB0aGUgaW50ZW50LgogICoKKyAqIFRoZSBpdGVtIG9mIGEgcmV0dXJuZWQgbGlzdCBzaG91
bGQgYmUgZnJlZWQgYnkgZWluYV9zdHJpbmdzaGFyZV9kZWwoKSBhZnRlciB1c2UuCisgKgogICog
QHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KICAqCiAgKiBAcmV0dXJuIEBjIEVp
bmFfTGlzdCB3aXRoIG5hbWVzIG9mIGV4dHJhIG1ldGFkYXRhIG9uIHN1Y2Nlc3MsIG9yIEBjIE5V
TEwgb24gZmFpbHVyZSwKLSAqICAgICAgICAgdGhlIEVpbmFfTGlzdCBhbmQgaXRzIGl0ZW1zIHNo
b3VsZCBiZSBmcmVlZCBhZnRlciB1c2UuIFVzZSBmcmVlKCkgdG8gZnJlZSB0aGUKLSAqICAgICAg
ICAgaXRlbXMuCisgKiAgICAgICAgIHRoZSBFaW5hX0xpc3QgYW5kIGl0cyBpdGVtcyBzaG91bGQg
YmUgZnJlZWQgYWZ0ZXIgdXNlLiBVc2UgZWluYV9zdHJpbmdzaGFyZV9kZWwoKQorICogICAgICAg
ICB0byBmcmVlIHRoZSBpdGVtcy4KICAqLwogRUFQSSBFaW5hX0xpc3QgKmV3a19pbnRlbnRfZXh0
cmFfbmFtZXNfZ2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCk7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwNmIwZTM2NzUzYWVlODA3NmE4
YmQyN2NhN2QyNWZkYjZjNDg2M2UyLi5mNGNiZTAxMGVhMzlmMDRhZjM2YzM1YzU3OTJjMjkxY2Nk
NjkwOGVmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDctMjUgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtp
bUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBVc2UgZWluYV9zdHJpbmdzaGFyZV9hZGQg
aW5zdGVhZCBvZiBzdHJkdXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MjA3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEVpbmEgb2YgRUZMIGxpYnJhcmllcyBzdXBwb3J0cyBhIHN0cmluZyBmdW5jdGlv
bmFsaXR5IHRoYXQgcmVwbGFjZXMgc3RyZHVwLiBTbywgRUZMIHBvcnQgbmVlZHMKKyAgICAgICAg
dG8gcmVwbGFjZSBzdHJkdXAgd2l0aCBlaW5hX3N0cmluZ3NoYXJlX2FkZCBmdW5jdGlvbi4KKwor
ICAgICAgICBEdW1wUmVuZGVyVHJlZSBhbHNvIG5lZWRzIHRvIGJlIG1vZGlmaWVkIGFjY29yZGlu
ZyB0byBld2sgQVBJcydzIHBhcmFtZXRlciBjaGFuZ2UuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAoZHVtcEZyYW1lc0FzVGV4dCk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDoK
KyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lSW50ZW50TmV3KToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVWaWV3LmNwcDoKKyAgICAgICAg
KG9uSmF2YVNjcmlwdFByb21wdCk6CisKIDIwMTItMDctMjUgIEFsZXhhbmRlciBTaGFsYW1vdiAg
PGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CiAKICAgICAgICAgW1dUUl1bRUZMXSBXaGVl
bCBldmVudHMgYXJlIG5vdCBlbWl0dGVkCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBS
ZW5kZXJUcmVlLmNwcAppbmRleCA3NTI5NDU0MTAxMGEyZDgwOThiYmY1NjYzZTYzZTU4ZjZmZDlm
Y2E2Li5jMmM5ZDcxYzBjNTE1Y2IwOGNkNDEyZDQyYWRkMGQxMDVjYTk3NTljIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTc5LDEwICs3OSwxMCBA
QCBzdGF0aWMgU3RyaW5nIGR1bXBGcmFtZXNBc1RleHQoRXZhc19PYmplY3QqIGZyYW1lKQogICAg
ICAgICByZXN1bHQuYXBwZW5kKCInXG4tLS0tLS0tLVxuIik7CiAgICAgfQogCi0gICAgY2hhciog
ZnJhbWVDb250ZW50cyA9IGV3a19mcmFtZV9wbGFpbl90ZXh0X2dldChmcmFtZSk7CisgICAgY29u
c3QgY2hhciogZnJhbWVDb250ZW50cyA9IGV3a19mcmFtZV9wbGFpbl90ZXh0X2dldChmcmFtZSk7
CiAgICAgcmVzdWx0LmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KGZyYW1lQ29udGVudHMpKTsKICAg
ICByZXN1bHQuYXBwZW5kKCJcbiIpOwotICAgIGZyZWUoZnJhbWVDb250ZW50cyk7CisgICAgZWlu
YV9zdHJpbmdzaGFyZV9kZWwoZnJhbWVDb250ZW50cyk7CiAKICAgICBpZiAoZ0xheW91dFRlc3RD
b250cm9sbGVyLT5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKSkgewogICAgICAgICBFaW5hX0xpc3Qq
IGNoaWxkcmVuID0gRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmcmFtZUNoaWxkcmVuKGZyYW1l
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNo
cm9tZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUu
Y3BwCmluZGV4IGNjMmYwNWJjMjc5NjVhNjZhOGFkZDg0ZDQwMzIyZTBhYjU5NTdmZjEuLjk4MzA0
NTc4ZDlkNTNlM2E2MjM1MzExYTU3Mzg0ZDBlN2E3N2QxY2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtODU3LDEwICs4NTcs
MTAgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUludGVudE5ldyh2b2lkKiwg
RXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8KICAgICBFaW5hX0xpc3QqIGV4dHJhTmFtZXMg
PSBld2tfaW50ZW50X2V4dHJhX25hbWVzX2dldChpbnRlbnQpOwogICAgIEVJTkFfTElTVF9GUkVF
KGV4dHJhTmFtZXMsIGRhdGEpIHsKICAgICAgICAgY2hhciogbmFtZSA9IHN0YXRpY19jYXN0PGNo
YXIqPihkYXRhKTsKLSAgICAgICAgY2hhciogdmFsdWUgPSBld2tfaW50ZW50X2V4dHJhX2dldChp
bnRlbnQsIG5hbWUpOworICAgICAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGV3a19pbnRlbnRfZXh0
cmFfZ2V0KGludGVudCwgbmFtZSk7CiAgICAgICAgIGlmICh2YWx1ZSkgewogICAgICAgICAgICAg
cHJpbnRmKCJFeHRyYXNbJXNdID0gJXNcbiIsIG5hbWUsIHZhbHVlKTsKLSAgICAgICAgICAgIGZy
ZWUodmFsdWUpOworICAgICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwodmFsdWUpOwogICAg
ICAgICB9CiAgICAgICAgIGZyZWUobmFtZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlVmlldy5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvRHVtcFJlbmRlclRyZWVWaWV3LmNwcAppbmRleCA3MzJhZDI4YzI4ZmRmYzE0NDkw
MTcxYjYwNWMwMGEyODY3MjcyZDg3Li5lYjE1YTg0MDliZTRmMjVhNDdiZmI1MzBmZGUwMmUxZjI5
M2VhYjNjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRy
ZWVWaWV3LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVW
aWV3LmNwcApAQCAtODYsMTAgKzg2LDEwIEBAIHN0YXRpYyBFaW5hX0Jvb2wgb25KYXZhU2NyaXB0
Q29uZmlybShFd2tfVmlld19TbWFydF9EYXRhKiwgRXZhc19PYmplY3QqLCBjb25zdCBjCiAgICAg
cmV0dXJuIEVJTkFfVFJVRTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBvbkphdmFTY3JpcHRQcm9t
cHQoRXdrX1ZpZXdfU21hcnRfRGF0YSosIEV2YXNfT2JqZWN0KiwgY29uc3QgY2hhciogbWVzc2Fn
ZSwgY29uc3QgY2hhciogZGVmYXVsdFZhbHVlLCBjaGFyKiogdmFsdWUpCitzdGF0aWMgRWluYV9C
b29sIG9uSmF2YVNjcmlwdFByb21wdChFd2tfVmlld19TbWFydF9EYXRhKiwgRXZhc19PYmplY3Qq
LCBjb25zdCBjaGFyKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBkZWZhdWx0VmFsdWUsIGNvbnN0IGNo
YXIqKiB2YWx1ZSkKIHsKICAgICBwcmludGYoIlBST01QVDogJXMsIGRlZmF1bHQgdGV4dDogJXNc
biIsIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSk7Ci0gICAgKnZhbHVlID0gc3RyZHVwKGRlZmF1bHRW
YWx1ZSk7CisgICAgKnZhbHVlID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoZGVmYXVsdFZhbHVlKTsK
ICAgICByZXR1cm4gRUlOQV9UUlVFOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>