<?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>65357</bug_id>
          
          <creation_ts>2011-07-28 20:27:01 -0700</creation_ts>
          <short_desc>[EFL] Fix pointer operator coding style in ewk_frame</short_desc>
          <delta_ts>2011-07-28 21:18:40 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>443790</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-07-28 20:27:01 -0700</bug_when>
    <thetext>Move &apos;*&apos; operator to variable according to efl coding style. Because, &apos;*&apos; operator is next to variable in EFL coding style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443791</commentid>
    <comment_count>1</comment_count>
      <attachid>102330</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-07-28 20:28:10 -0700</bug_when>
    <thetext>Created attachment 102330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443792</commentid>
    <comment_count>2</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-07-28 20:29:27 -0700</bug_when>
    <thetext>Hello tkent, could you please review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443793</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-28 20:30:43 -0700</bug_when>
    <thetext>Attachment 102330 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/efl/ChangeLog&apos;, u&apos;Source/Web...&quot; exit_code: 1

Source/WebKit/efl/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443794</commentid>
    <comment_count>4</comment_count>
      <attachid>102331</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-07-28 20:31:33 -0700</bug_when>
    <thetext>Created attachment 102331
Patch

There was changelog problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443799</commentid>
    <comment_count>5</comment_count>
      <attachid>102331</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-28 20:43:02 -0700</bug_when>
    <thetext>Comment on attachment 102331
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443803</commentid>
    <comment_count>6</comment_count>
      <attachid>102331</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-28 21:18:34 -0700</bug_when>
    <thetext>Comment on attachment 102331
Patch

Clearing flags on attachment: 102331

Committed r91971: &lt;http://trac.webkit.org/changeset/91971&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443804</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-28 21:18:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102330</attachid>
            <date>2011-07-28 20:28:10 -0700</date>
            <delta_ts>2011-07-28 20:31:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch-codingstyle-ewk-frame.patch</filename>
            <type>text/plain</type>
            <size>43307</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA3ODIzNTk1Li5kYzZjNzBhIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsOTkgQEAKKzIwMTEtMDctMjcgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBz
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBGaXggcG9pbnRlciBvcGVyYXRvciBjb2Rpbmcg
c3R5bGUgaW4gZXdrX2ZyYW1lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9eHh4eAorCisgICAgICAgIE1vdmUgJyonIG9wZXJhdG9yIHRvIHZhcmlhYmxl
IGFjY29yZGluZyB0byBlZmwgY29kaW5nIHN0eWxlLgorICAgICAgICBCZWNhdXNlLCAnKicgb3Bl
cmF0b3IgaXMgbmV4dCB0byB2YXJpYWJsZSBpbiBFRkwgY29kaW5nIHN0eWxlLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZXdrL2V3a19mcmFtZS5j
cHA6CisgICAgICAgIChfZXdrX2ZyYW1lX2RlYnVnKToKKyAgICAgICAgKF9ld2tfZnJhbWVfbG9h
ZGVyX2VmbF9nZXQpOgorICAgICAgICAoa2l0KToKKyAgICAgICAgKF9ld2tfZnJhbWVfY2hpbGRy
ZW5faXRlcmF0b3JfbmV4dCk6CisgICAgICAgIChfZXdrX2ZyYW1lX2NoaWxkcmVuX2l0ZXJhdG9y
X2dldF9jb250YWluZXIpOgorICAgICAgICAoX2V3a19mcmFtZV9zbWFydF9hZGQpOgorICAgICAg
ICAoX2V3a19mcmFtZV9zbWFydF9kZWwpOgorICAgICAgICAoX2V3a19mcmFtZV9zbWFydF9yZXNp
emUpOgorICAgICAgICAoX2V3a19mcmFtZV9zbWFydF9zZXQpOgorICAgICAgICAoX2V3a19mcmFt
ZV9zbWFydF9jbGFzc19uZXcpOgorICAgICAgICAoZXdrX2ZyYW1lX3ZpZXdfZ2V0KToKKyAgICAg
ICAgKGV3a19mcmFtZV9jaGlsZHJlbl9pdGVyYXRvcl9uZXcpOgorICAgICAgICAoZXdrX2ZyYW1l
X2NoaWxkX2ZpbmQpOgorICAgICAgICAoZXdrX2ZyYW1lX3VyaV9zZXQpOgorICAgICAgICAoZXdr
X2ZyYW1lX3VyaV9nZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3RpdGxlX2dldCk6CisgICAgICAg
IChld2tfZnJhbWVfbmFtZV9nZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX2NvbnRlbnRzX3NpemVf
Z2V0KToKKyAgICAgICAgKF9ld2tfZnJhbWVfY29udGVudHNfc2V0X2ludGVybmFsKToKKyAgICAg
ICAgKGV3a19mcmFtZV9jb250ZW50c19zZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX2NvbnRlbnRz
X2FsdGVybmF0ZV9zZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3NjcmlwdF9leGVjdXRlKToKKyAg
ICAgICAgKGV3a19mcmFtZV9lZGl0YWJsZV9nZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX2VkaXRh
YmxlX3NldCk6CisgICAgICAgIChld2tfZnJhbWVfc2VsZWN0aW9uX2dldCk6CisgICAgICAgIChl
d2tfZnJhbWVfdGV4dF9zZWFyY2gpOgorICAgICAgICAoZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19t
YXJrKToKKyAgICAgICAgKGV3a19mcmFtZV90ZXh0X21hdGNoZXNfdW5tYXJrX2FsbCk6CisgICAg
ICAgIChld2tfZnJhbWVfdGV4dF9tYXRjaGVzX2hpZ2hsaWdodF9zZXQpOgorICAgICAgICAoZXdr
X2ZyYW1lX3RleHRfbWF0Y2hlc19oaWdobGlnaHRfZ2V0KToKKyAgICAgICAgKF9ld2tfZnJhbWVf
cmVjdF9jbXBfbGVzc190aGFuKToKKyAgICAgICAgKF9ld2tfZnJhbWVfcmVjdF9pc19uZWdhdGl2
ZV92YWx1ZSk6CisgICAgICAgIChld2tfZnJhbWVfdGV4dF9tYXRjaGVzX250aF9wb3NfZ2V0KToK
KyAgICAgICAgKGV3a19mcmFtZV9zdG9wKToKKyAgICAgICAgKGV3a19mcmFtZV9yZWxvYWQpOgor
ICAgICAgICAoZXdrX2ZyYW1lX3JlbG9hZF9mdWxsKToKKyAgICAgICAgKGV3a19mcmFtZV9iYWNr
KToKKyAgICAgICAgKGV3a19mcmFtZV9mb3J3YXJkKToKKyAgICAgICAgKGV3a19mcmFtZV9uYXZp
Z2F0ZSk6CisgICAgICAgIChld2tfZnJhbWVfYmFja19wb3NzaWJsZSk6CisgICAgICAgIChld2tf
ZnJhbWVfZm9yd2FyZF9wb3NzaWJsZSk6CisgICAgICAgIChld2tfZnJhbWVfbmF2aWdhdGVfcG9z
c2libGUpOgorICAgICAgICAoZXdrX2ZyYW1lX3pvb21fZ2V0KToKKyAgICAgICAgKGV3a19mcmFt
ZV96b29tX3NldCk6CisgICAgICAgIChld2tfZnJhbWVfem9vbV90ZXh0X29ubHlfZ2V0KToKKyAg
ICAgICAgKGV3a19mcmFtZV96b29tX3RleHRfb25seV9zZXQpOgorICAgICAgICAoZXdrX2ZyYW1l
X2hpdF90ZXN0X2ZyZWUpOgorICAgICAgICAoZXdrX2ZyYW1lX2hpdF90ZXN0X25ldyk6CisgICAg
ICAgIChld2tfZnJhbWVfc2Nyb2xsX2FkZCk6CisgICAgICAgIChld2tfZnJhbWVfc2Nyb2xsX3Nl
dCk6CisgICAgICAgIChld2tfZnJhbWVfc2Nyb2xsX3NpemVfZ2V0KToKKyAgICAgICAgKGV3a19m
cmFtZV9zY3JvbGxfcG9zX2dldCk6CisgICAgICAgIChld2tfZnJhbWVfdmlzaWJsZV9jb250ZW50
X2dlb21ldHJ5X2dldCk6CisgICAgICAgIChld2tfZnJhbWVfcGFpbnRfZnVsbF9nZXQpOgorICAg
ICAgICAoZXdrX2ZyYW1lX3BhaW50X2Z1bGxfc2V0KToKKyAgICAgICAgKGV3a19mcmFtZV9mZWVk
X2ZvY3VzX2luKToKKyAgICAgICAgKGV3a19mcmFtZV9mZWVkX2ZvY3VzX291dCk6CisgICAgICAg
IChld2tfZnJhbWVfZmVlZF9tb3VzZV93aGVlbCk6CisgICAgICAgIChld2tfZnJhbWVfZmVlZF9t
b3VzZV9kb3duKToKKyAgICAgICAgKGV3a19mcmFtZV9mZWVkX21vdXNlX3VwKToKKyAgICAgICAg
KGV3a19mcmFtZV9mZWVkX21vdXNlX21vdmUpOgorICAgICAgICAoZXdrX2ZyYW1lX2ZlZWRfdG91
Y2hfZXZlbnQpOgorICAgICAgICAoX2V3a19mcmFtZV9oYW5kbGVfa2V5X3Njcm9sbGluZyk6Cisg
ICAgICAgIChld2tfZnJhbWVfZmVlZF9rZXlfZG93bik6CisgICAgICAgIChld2tfZnJhbWVfZmVl
ZF9rZXlfdXApOgorICAgICAgICAoZXdrX2ZyYW1lX3RleHRfc2VsZWN0aW9uX3R5cGVfZ2V0KToK
KyAgICAgICAgKGV3a19mcmFtZV9hZGQpOgorICAgICAgICAoZXdrX2ZyYW1lX2luaXQpOgorICAg
ICAgICAoZXdrX2ZyYW1lX2NoaWxkX2FkZCk6CisgICAgICAgIChld2tfZnJhbWVfY29yZV9nb25l
KToKKyAgICAgICAgKGV3a19mcmFtZV9jb3JlX2dldCk6CisgICAgICAgIChld2tfZnJhbWVfbG9h
ZF9zdGFydGVkKToKKyAgICAgICAgKGV3a19mcmFtZV9sb2FkX3Byb3Zpc2lvbmFsKToKKyAgICAg
ICAgKGV3a19mcmFtZV9sb2FkX2ZpbmlzaGVkKToKKyAgICAgICAgKGV3a19mcmFtZV9sb2FkX2Vy
cm9yKToKKyAgICAgICAgKGV3a19mcmFtZV9sb2FkX3Byb2dyZXNzX2NoYW5nZWQpOgorICAgICAg
ICAoZXdrX2ZyYW1lX2NvbnRlbnRzX3NpemVfY2hhbmdlZCk6CisgICAgICAgIChld2tfZnJhbWVf
dGl0bGVfc2V0KToKKyAgICAgICAgKGV3a19mcmFtZV92aWV3X2NyZWF0ZV9mb3Jfdmlldyk6Cisg
ICAgICAgIChld2tfZnJhbWVfdXJpX2NoYW5nZWQpOgorICAgICAgICAoZXdrX2ZyYW1lX2ZvcmNl
X2xheW91dCk6CisgICAgICAgIChld2tfZnJhbWVfcGx1Z2luX2NyZWF0ZSk6CisgICAgICAgIChl
d2tfZnJhbWVfZWRpdG9yX2NsaWVudF9zZWxlY3Rpb25fY2hhbmdlZCk6CisgICAgICAgICogZXdr
L2V3a19mcmFtZS5oOgorCiAyMDExLTA3LTI2ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1A
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gRml4IHBvaW50ZXIgb3BlcmF0b3IgY29kaW5n
IHN0eWxlIGluIGV3a192aWV3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCAw
NTcwOTQwLi5jYjU2MTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Zy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtNTks
MTUgKzU5LDE1IEBAIHN0YXRpYyBjb25zdCBjaGFyIEVXS19GUkFNRV9UWVBFX1NUUltdID0gIkVX
S19GcmFtZSI7CiAKIHN0cnVjdCBFd2tfRnJhbWVfU21hcnRfRGF0YSB7CiAgICAgRXZhc19PYmpl
Y3RfU21hcnRfQ2xpcHBlZF9EYXRhIGJhc2U7Ci0gICAgRXZhc19PYmplY3QqIHNlbGY7Ci0gICAg
RXZhc19PYmplY3QqIHZpZXc7CisgICAgRXZhc19PYmplY3QgKnNlbGY7CisgICAgRXZhc19PYmpl
Y3QgKnZpZXc7CiAjaWZkZWYgRVdLX0ZSQU1FX0RFQlVHCi0gICAgRXZhc19PYmplY3QqIHJlZ2lv
bjsKKyAgICBFdmFzX09iamVjdCAqcmVnaW9uOwogI2VuZGlmCi0gICAgV2ViQ29yZTo6RnJhbWUq
IGZyYW1lOwotICAgIGNvbnN0IGNoYXIqIHRpdGxlOwotICAgIGNvbnN0IGNoYXIqIHVyaTsKLSAg
ICBjb25zdCBjaGFyKiBuYW1lOworICAgIFdlYkNvcmU6OkZyYW1lICpmcmFtZTsKKyAgICBjb25z
dCBjaGFyICp0aXRsZTsKKyAgICBjb25zdCBjaGFyICp1cmk7CisgICAgY29uc3QgY2hhciAqbmFt
ZTsKICAgICBzdHJ1Y3QgewogICAgICAgICBFdmFzX0Nvb3JkIHcsIGg7CiAgICAgfSBjb250ZW50
c19zaXplOwpAQCAtNzcsNyArNzcsNyBAQCBzdHJ1Y3QgRXdrX0ZyYW1lX1NtYXJ0X0RhdGEgewog
CiBzdHJ1Y3QgRWluYV9JdGVyYXRvcl9Fd2tfRnJhbWUgewogICAgIEVpbmFfSXRlcmF0b3IgYmFz
ZTsKLSAgICBFdmFzX09iamVjdCogb2JqOworICAgIEV2YXNfT2JqZWN0ICpvYmo7CiAgICAgdW5z
aWduZWQgY3VycmVudEluZGV4OwogfTsKIApAQCAtODYsNyArODYsNyBAQCBzdHJ1Y3QgRWluYV9J
dGVyYXRvcl9Fd2tfRnJhbWUgewogI2Vsc2UKICNkZWZpbmUgRVdLX0ZSQU1FX1RZUEVfQ0hFQ0so
bywgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBkbyB7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgICAgY29uc3QgY2hhciogX3RtcF9vdHlwZSA9IGV2YXNfb2JqZWN0X3R5cGVf
Z2V0KG8pOyAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgY2hhciAqX3RtcF9vdHlwZSA9
IGV2YXNfb2JqZWN0X3R5cGVfZ2V0KG8pOyAgICAgICAgICAgICAgIFwKICAgICAgICAgaWYgKEVJ
TkFfVU5MSUtFTFkoX3RtcF9vdHlwZSAhPSBFV0tfRlJBTUVfVFlQRV9TVFIpKSB7ICAgICAgICAg
IFwKICAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAoIiVwICglcykgaXMgbm90IG9m
IGFuIGV3a19mcmFtZSEiLCBvLCAgICAgICAgICAgICAgICAgIFwKQEAgLTk3LDcgKzk3LDcgQEAg
c3RydWN0IEVpbmFfSXRlcmF0b3JfRXdrX0ZyYW1lIHsKICNlbmRpZgogCiAjZGVmaW5lIEVXS19G
UkFNRV9TRF9HRVQobywgcHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IEV3a19GcmFtZV9TbWFydF9EYXRhKiBwdHIgPSAoRXdrX0ZyYW1lX1NtYXJ0X0RhdGEqKWV2YXNf
b2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KG8pCisgICAgRXdrX0ZyYW1lX1NtYXJ0X0RhdGEgKnB0ciA9
IChFd2tfRnJhbWVfU21hcnRfRGF0YSAqKWV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KG8pCiAK
ICNkZWZpbmUgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgcHRyLCAuLi4pICAgICAgICAg
XAogICAgIEVXS19GUkFNRV9UWVBFX0NIRUNLKG8sIF9fVkFfQVJHU19fKTsgICAgICAgICAgICAg
ICBcCkBAIC0xMTEsOSArMTExLDkgQEAgc3RydWN0IEVpbmFfSXRlcmF0b3JfRXdrX0ZyYW1lIHsK
IHN0YXRpYyBFdmFzX1NtYXJ0X0NsYXNzIF9wYXJlbnRfc2MgPSBFVkFTX1NNQVJUX0NMQVNTX0lO
SVRfTlVMTDsKIAogI2lmZGVmIEVXS19GUkFNRV9ERUJVRwotc3RhdGljIGlubGluZSB2b2lkIF9l
d2tfZnJhbWVfZGVidWcoRXZhc19PYmplY3QqIG8pCitzdGF0aWMgaW5saW5lIHZvaWQgX2V3a19m
cmFtZV9kZWJ1ZyhFdmFzX09iamVjdCAqbykKIHsKLSAgICBFdmFzX09iamVjdCogY2xpcCwgKnBh
cmVudDsKKyAgICBFdmFzX09iamVjdCAqY2xpcCwgKnBhcmVudDsKICAgICBFdmFzX0Nvb3JkIHgs
IHksIHcsIGgsIGN4LCBjeSwgY3csIGNoOwogICAgIGludCByLCBnLCBiLCBhLCBjciwgY2csIGNi
LCBjYTsKIApAQCAtMTM2LDIyICsxMzYsMjIgQEAgc3RhdGljIGlubGluZSB2b2lkIF9ld2tfZnJh
bWVfZGVidWcoRXZhc19PYmplY3QqIG8pCiB9CiAjZW5kaWYKIAotc3RhdGljIFdlYkNvcmU6OkZy
YW1lTG9hZGVyQ2xpZW50RWZsKiBfZXdrX2ZyYW1lX2xvYWRlcl9lZmxfZ2V0KFdlYkNvcmU6OkZy
YW1lKiBmcmFtZSkKK3N0YXRpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbCAqX2V3a19m
cmFtZV9sb2FkZXJfZWZsX2dldChXZWJDb3JlOjpGcmFtZSAqZnJhbWUpCiB7CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsKj4oZnJhbWUtPmxvYWRl
cigpLT5jbGllbnQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXZhc19PYmplY3QqIGtpdChXZWJD
b3JlOjpGcmFtZSogZnJhbWUpCitzdGF0aWMgaW5saW5lIEV2YXNfT2JqZWN0ICpraXQoV2ViQ29y
ZTo6RnJhbWUgKmZyYW1lKQogewogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiAwOwot
ICAgIFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsKiBmbCA9IF9ld2tfZnJhbWVfbG9hZGVy
X2VmbF9nZXQoZnJhbWUpOworICAgIFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsICpmbCA9
IF9ld2tfZnJhbWVfbG9hZGVyX2VmbF9nZXQoZnJhbWUpOwogICAgIGlmICghZmwpCiAgICAgICAg
IHJldHVybiAwOwogICAgIHJldHVybiBmbC0+d2ViRnJhbWUoKTsKIH0KIAotc3RhdGljIEVpbmFf
Qm9vbCBfZXdrX2ZyYW1lX2NoaWxkcmVuX2l0ZXJhdG9yX25leHQoRWluYV9JdGVyYXRvcl9Fd2tf
RnJhbWUqIGl0LCBFdmFzX09iamVjdCoqIGRhdGEpCitzdGF0aWMgRWluYV9Cb29sIF9ld2tfZnJh
bWVfY2hpbGRyZW5faXRlcmF0b3JfbmV4dChFaW5hX0l0ZXJhdG9yX0V3a19GcmFtZSAqaXQsIEV2
YXNfT2JqZWN0ICoqZGF0YSkKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihpdC0+
b2JqLCBzZCwgRUlOQV9GQUxTRSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7CkBAIC0xNjcsMTIgKzE2NywxMiBAQCBzdGF0aWMgRWlu
YV9Cb29sIF9ld2tfZnJhbWVfY2hpbGRyZW5faXRlcmF0b3JfbmV4dChFaW5hX0l0ZXJhdG9yX0V3
a19GcmFtZSogaXQsCiAgICAgcmV0dXJuIEVJTkFfRkFMU0U7CiB9CiAKLXN0YXRpYyBFdmFzX09i
amVjdCogX2V3a19mcmFtZV9jaGlsZHJlbl9pdGVyYXRvcl9nZXRfY29udGFpbmVyKEVpbmFfSXRl
cmF0b3JfRXdrX0ZyYW1lKiBpdCkKK3N0YXRpYyBFdmFzX09iamVjdCAqX2V3a19mcmFtZV9jaGls
ZHJlbl9pdGVyYXRvcl9nZXRfY29udGFpbmVyKEVpbmFfSXRlcmF0b3JfRXdrX0ZyYW1lICppdCkK
IHsKICAgICByZXR1cm4gaXQtPm9iajsKIH0KIAotc3RhdGljIHZvaWQgX2V3a19mcmFtZV9zbWFy
dF9hZGQoRXZhc19PYmplY3QqIG8pCitzdGF0aWMgdm9pZCBfZXdrX2ZyYW1lX3NtYXJ0X2FkZChF
dmFzX09iamVjdCAqbykKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUKG8sIHNkKTsKIApAQCAtMjI4
LDE0ICsyMjgsMTQgQEAgc3RhdGljIHZvaWQgX2V3a19mcmFtZV9zbWFydF9hZGQoRXZhc19PYmpl
Y3QqIG8pCiAjZW5kaWYKIH0KIAotc3RhdGljIHZvaWQgX2V3a19mcmFtZV9zbWFydF9kZWwoRXZh
c19PYmplY3QqIG8pCitzdGF0aWMgdm9pZCBfZXdrX2ZyYW1lX3NtYXJ0X2RlbChFdmFzX09iamVj
dCAqbykKIHsKICAgICBXUk4oIm89JXAiLCBvKTsgLy8gWFhYIFJFTU9WRSBNRSBMQVRFUgogICAg
IEVXS19GUkFNRV9TRF9HRVQobywgc2QpOwogCiAgICAgaWYgKHNkKSB7CiAgICAgICAgIGlmIChz
ZC0+ZnJhbWUpIHsKLSAgICAgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsKiBm
bGMgPSBfZXdrX2ZyYW1lX2xvYWRlcl9lZmxfZ2V0KHNkLT5mcmFtZSk7CisgICAgICAgICAgICBX
ZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbCAqZmxjID0gX2V3a19mcmFtZV9sb2FkZXJfZWZs
X2dldChzZC0+ZnJhbWUpOwogICAgICAgICAgICAgZmxjLT5zZXRXZWJGcmFtZSgwKTsKICAgICAg
ICAgICAgIHNkLT5mcmFtZS0+bG9hZGVyKCktPmNhbmNlbEFuZENsZWFyKCk7CiAgICAgICAgICAg
ICBzZC0+ZnJhbWUgPSAwOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfZnJh
bWVfc21hcnRfZGVsKEV2YXNfT2JqZWN0KiBvKQogICAgIF9wYXJlbnRfc2MuZGVsKG8pOwogfQog
Ci1zdGF0aWMgdm9pZCBfZXdrX2ZyYW1lX3NtYXJ0X3Jlc2l6ZShFdmFzX09iamVjdCogbywgRXZh
c19Db29yZCB3LCBFdmFzX0Nvb3JkIGgpCitzdGF0aWMgdm9pZCBfZXdrX2ZyYW1lX3NtYXJ0X3Jl
c2l6ZShFdmFzX09iamVjdCAqbywgRXZhc19Db29yZCB3LCBFdmFzX0Nvb3JkIGgpCiB7CiAgICAg
RVdLX0ZSQU1FX1NEX0dFVChvLCBzZCk7CiAgICAgZXZhc19vYmplY3RfcmVzaXplKHNkLT5iYXNl
LmNsaXBwZXIsIHcsIGgpOwpAQCAtMjY0LDcgKzI2NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfZnJh
bWVfc21hcnRfcmVzaXplKEV2YXNfT2JqZWN0KiBvLCBFdmFzX0Nvb3JkIHcsIEV2YXNfQ29vcmQg
aCkKICNlbmRpZgogfQogCi1zdGF0aWMgdm9pZCBfZXdrX2ZyYW1lX3NtYXJ0X3NldChFdmFzX1Nt
YXJ0X0NsYXNzKiBhcGkpCitzdGF0aWMgdm9pZCBfZXdrX2ZyYW1lX3NtYXJ0X3NldChFdmFzX1Nt
YXJ0X0NsYXNzICphcGkpCiB7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2xpcHBlZF9zbWFydF9z
ZXQoYXBpKTsKICAgICBhcGktPmFkZCA9IF9ld2tfZnJhbWVfc21hcnRfYWRkOwpAQCAtMjcyLDEw
ICsyNzIsMTAgQEAgc3RhdGljIHZvaWQgX2V3a19mcmFtZV9zbWFydF9zZXQoRXZhc19TbWFydF9D
bGFzcyogYXBpKQogICAgIGFwaS0+cmVzaXplID0gX2V3a19mcmFtZV9zbWFydF9yZXNpemU7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgRXZhc19TbWFydCogX2V3a19mcmFtZV9zbWFydF9jbGFzc19uZXco
dm9pZCkKK3N0YXRpYyBpbmxpbmUgRXZhc19TbWFydCAqX2V3a19mcmFtZV9zbWFydF9jbGFzc19u
ZXcodm9pZCkKIHsKICAgICBzdGF0aWMgRXZhc19TbWFydF9DbGFzcyBzYyA9IEVWQVNfU01BUlRf
Q0xBU1NfSU5JVF9OQU1FX1ZFUlNJT04oRVdLX0ZSQU1FX1RZUEVfU1RSKTsKLSAgICBzdGF0aWMg
RXZhc19TbWFydCogc21hcnQgPSAwOworICAgIHN0YXRpYyBFdmFzX1NtYXJ0ICpzbWFydCA9IDA7
CiAKICAgICBpZiAoRUlOQV9VTkxJS0VMWSghc21hcnQpKSB7CiAgICAgICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X2NsaXBwZWRfc21hcnRfc2V0KCZfcGFyZW50X3NjKTsKQEAgLTI5Myw3ICsyOTMsNyBA
QCBzdGF0aWMgaW5saW5lIEV2YXNfU21hcnQqIF9ld2tfZnJhbWVfc21hcnRfY2xhc3NfbmV3KHZv
aWQpCiAgKgogICogQHJldHVybiB2aWV3IG9iamVjdCBvciBAYyAwIG9uIGZhaWx1cmUKICAqLwot
RXZhc19PYmplY3QqIGV3a19mcmFtZV92aWV3X2dldChjb25zdCBFdmFzX09iamVjdCogbykKK0V2
YXNfT2JqZWN0ICpld2tfZnJhbWVfdmlld19nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pCiB7CiAg
ICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIDApOwogICAgIHJldHVybiBzZC0+
dmlldzsKQEAgLTMxMiwxMyArMzEyLDEzIEBAIEV2YXNfT2JqZWN0KiBld2tfZnJhbWVfdmlld19n
ZXQoY29uc3QgRXZhc19PYmplY3QqIG8pCiAgKgogICogQHBhcmFtIG8gZnJhbWUgb2JqZWN0IHRv
IGNyZWF0ZSB0aGUgaXRlcmF0b3IKICAqCi0gKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIGl0
ZXJhdG9yIG9uIHN1Y2Vzcywgb3IgQGMgMCBpZiBub3QgcG9zc2libGUgdG8gCisgKiBAcmV0dXJu
IGEgbmV3bHkgYWxsb2NhdGVkIGl0ZXJhdG9yIG9uIHN1Y2Vzcywgb3IgQGMgMCBpZiBub3QgcG9z
c2libGUgdG8KICAqICAgICAgY3JlYXRlIHRoZSBpdGVyYXRvcgogICovCi1FaW5hX0l0ZXJhdG9y
KiBld2tfZnJhbWVfY2hpbGRyZW5faXRlcmF0b3JfbmV3KEV2YXNfT2JqZWN0KiBvKQorRWluYV9J
dGVyYXRvciAqZXdrX2ZyYW1lX2NoaWxkcmVuX2l0ZXJhdG9yX25ldyhFdmFzX09iamVjdCAqbykK
IHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgMCk7Ci0gICAgRWluYV9J
dGVyYXRvcl9Fd2tfRnJhbWUqIGl0ID0gKEVpbmFfSXRlcmF0b3JfRXdrX0ZyYW1lKikKKyAgICBF
aW5hX0l0ZXJhdG9yX0V3a19GcmFtZSAqaXQgPSAoRWluYV9JdGVyYXRvcl9Fd2tfRnJhbWUgKikK
ICAgICAgICAgY2FsbG9jKDEsIHNpemVvZihFaW5hX0l0ZXJhdG9yX0V3a19GcmFtZSkpOwogICAg
IGlmICghaXQpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMzUxLDcgKzM1MSw3IEBAIEVpbmFfSXRl
cmF0b3IqIGV3a19mcmFtZV9jaGlsZHJlbl9pdGVyYXRvcl9uZXcoRXZhc19PYmplY3QqIG8pCiAg
KgogICogQHJldHVybiBjaGlsZCBmcmFtZSBvZiB0aGUgZ2l2ZW4gZnJhbWUsIG9yIEBjIDAgaWYg
dGhlIHRoZSBjaGlsZCB3YXNuJ3QgZm91bmQKICAqLwotRXZhc19PYmplY3QqIGV3a19mcmFtZV9j
aGlsZF9maW5kKEV2YXNfT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBuYW1lKQorRXZhc19PYmplY3Qg
KmV3a19mcmFtZV9jaGlsZF9maW5kKEV2YXNfT2JqZWN0ICpvLCBjb25zdCBjaGFyICpuYW1lKQog
ewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCAwKTsKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobmFtZSwgMCk7CkBAIC0zNjgsMTIgKzM2OCwxMiBAQCBF
dmFzX09iamVjdCogZXdrX2ZyYW1lX2NoaWxkX2ZpbmQoRXZhc19PYmplY3QqIG8sIGNvbnN0IGNo
YXIqIG5hbWUpCiAgKgogICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2Vzcywgb3IgQGMg
RUlOQV9GQUxTRSBvbiBmYWlsdXJlCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJhbWVfdXJpX3NldChF
dmFzX09iamVjdCogbywgY29uc3QgY2hhciogdXJpKQorRWluYV9Cb29sIGV3a19mcmFtZV91cmlf
c2V0KEV2YXNfT2JqZWN0ICpvLCBjb25zdCBjaGFyICp1cmkpCiB7CiAgICAgRVdLX0ZSQU1FX1NE
X0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOwogICAgIFdlYkNvcmU6OktVUkwga3Vy
bChXZWJDb3JlOjpLVVJMKCksIFdURjo6U3RyaW5nOjpmcm9tVVRGOCh1cmkpKTsKICAgICBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxKGt1cmwpOwotICAgIFdlYkNvcmU6OkZyYW1lTG9hZGVy
KiBsb2FkZXIgPSBzZC0+ZnJhbWUtPmxvYWRlcigpOworICAgIFdlYkNvcmU6OkZyYW1lTG9hZGVy
ICpsb2FkZXIgPSBzZC0+ZnJhbWUtPmxvYWRlcigpOwogICAgIGxvYWRlci0+bG9hZChyZXEsIGZh
bHNlKTsKICAgICByZXR1cm4gRUlOQV9UUlVFOwogfQpAQCAtMzg4LDcgKzM4OCw3IEBAIEVpbmFf
Qm9vbCBld2tfZnJhbWVfdXJpX3NldChFdmFzX09iamVjdCogbywgY29uc3QgY2hhciogdXJpKQog
ICoKICAqIEByZXR1cm4gZnJhbWUgdXJpIG9uIHN1Y2Nlc3Mgb3IgQGMgMCBvbiBmYWlsdXJlCiAg
Ki8KLWNvbnN0IGNoYXIqIGV3a19mcmFtZV91cmlfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBvKQor
Y29uc3QgY2hhciAqZXdrX2ZyYW1lX3VyaV9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pCiB7CiAg
ICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIDApOwogICAgIHJldHVybiBzZC0+
dXJpOwpAQCAtNDA0LDcgKzQwNCw3IEBAIGNvbnN0IGNoYXIqIGV3a19mcmFtZV91cmlfZ2V0KGNv
bnN0IEV2YXNfT2JqZWN0KiBvKQogICoKICAqIEByZXR1cm4gZnJhbWUgdGl0bGUgb24gc3VjY2Vz
cyBvciBAYyAwIG9uIGZhaWx1cmUKICAqLwotY29uc3QgY2hhciogZXdrX2ZyYW1lX3RpdGxlX2dl
dChjb25zdCBFdmFzX09iamVjdCogbykKK2NvbnN0IGNoYXIgKmV3a19mcmFtZV90aXRsZV9nZXQo
Y29uc3QgRXZhc19PYmplY3QgKm8pCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4o
bywgc2QsIDApOwogICAgIHJldHVybiBzZC0+dGl0bGU7CkBAIC00MjAsNyArNDIwLDcgQEAgY29u
c3QgY2hhciogZXdrX2ZyYW1lX3RpdGxlX2dldChjb25zdCBFdmFzX09iamVjdCogbykKICAqCiAg
KiBAcmV0dXJuIGZyYW1lIG5hbWUgb24gc3VjY2VzcyBvciBAYyAwIG9uIGZhaWx1cmUKICAqLwot
Y29uc3QgY2hhciogZXdrX2ZyYW1lX25hbWVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBvKQorY29u
c3QgY2hhciAqZXdrX2ZyYW1lX25hbWVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKQogewogICAg
IEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCAwKTsKIApAQCAtNDQ4LDcgKzQ0OCw3
IEBAIGNvbnN0IGNoYXIqIGV3a19mcmFtZV9uYW1lX2dldChjb25zdCBFdmFzX09iamVjdCogbykK
ICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBm
YWlsdXJlIGFuZAogICogICAgICAgICBAYSB3IGFuZCBAYSBoIHdpbGwgYmUgemVyb2VkCiAgKi8K
LUVpbmFfQm9vbCBld2tfZnJhbWVfY29udGVudHNfc2l6ZV9nZXQoY29uc3QgRXZhc19PYmplY3Qq
IG8sIEV2YXNfQ29vcmQqIHcsIEV2YXNfQ29vcmQqIGgpCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX2Nv
bnRlbnRzX3NpemVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvLCBFdmFzX0Nvb3JkICp3LCBFdmFz
X0Nvb3JkICpoKQogewogICAgIGlmICh3KQogICAgICAgICAqdyA9IDA7CkBAIC00NjIsNyArNDYy
LDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9jb250ZW50c19zaXplX2dldChjb25zdCBFdmFzX09i
amVjdCogbywgRXZhc19Db29yZCogdywgRXZhc18KICAgICByZXR1cm4gRUlOQV9UUlVFOwogfQog
Ci1zdGF0aWMgRWluYV9Cb29sIF9ld2tfZnJhbWVfY29udGVudHNfc2V0X2ludGVybmFsKEV3a19G
cmFtZV9TbWFydF9EYXRhICpzZCwgY29uc3QgY2hhciogY29udGVudHMsIHNpemVfdCBjb250ZW50
c19zaXplLCBjb25zdCBjaGFyKiBtaW1lX3R5cGUsIGNvbnN0IGNoYXIqIGVuY29kaW5nLCBjb25z
dCBjaGFyKiBiYXNlX3VyaSwgY29uc3QgY2hhciogdW5yZWFjaGFibGVfdXJpKQorc3RhdGljIEVp
bmFfQm9vbCBfZXdrX2ZyYW1lX2NvbnRlbnRzX3NldF9pbnRlcm5hbChFd2tfRnJhbWVfU21hcnRf
RGF0YSAqc2QsIGNvbnN0IGNoYXIgKmNvbnRlbnRzLCBzaXplX3QgY29udGVudHNfc2l6ZSwgY29u
c3QgY2hhciAqbWltZV90eXBlLCBjb25zdCBjaGFyICplbmNvZGluZywgY29uc3QgY2hhciAqYmFz
ZV91cmksIGNvbnN0IGNoYXIgKnVucmVhY2hhYmxlX3VyaSkKIHsKICAgICBzaXplX3QgbGVuID0g
c3RybGVuKGNvbnRlbnRzKTsKICAgICBpZiAoY29udGVudHNfc2l6ZSA8IDEgfHwgY29udGVudHNf
c2l6ZSA+IGxlbikKQEAgLTUwNyw3ICs1MDcsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfZnJh
bWVfY29udGVudHNfc2V0X2ludGVybmFsKEV3a19GcmFtZV9TbWFydF9EYXRhICpzZCwgY29ucwog
ICoKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3NmdWwgcmVxdWVzdCwgQGMgRUlO
QV9GQUxTRSBvbiBlcnJvcnMKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9jb250ZW50c19zZXQo
RXZhc19PYmplY3QqIG8sIGNvbnN0IGNoYXIqIGNvbnRlbnRzLCBzaXplX3QgY29udGVudHNfc2l6
ZSwgY29uc3QgY2hhciogbWltZV90eXBlLCBjb25zdCBjaGFyKiBlbmNvZGluZywgY29uc3QgY2hh
ciogYmFzZV91cmkpCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX2NvbnRlbnRzX3NldChFdmFzX09iamVj
dCAqbywgY29uc3QgY2hhciAqY29udGVudHMsIHNpemVfdCBjb250ZW50c19zaXplLCBjb25zdCBj
aGFyICptaW1lX3R5cGUsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBjb25zdCBjaGFyICpiYXNlX3Vy
aSkKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7
CiAgICAgRUlOQV9TQUZFVFlfT05fRkFMU0VfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFM
U0UpOwpAQCAtNTM2LDcgKzUzNiw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfY29udGVudHNfc2V0
KEV2YXNfT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBjb250ZW50cywgc2l6ZV90IGNvCiAgKgogICog
QHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2Vzc2Z1bCByZXF1ZXN0LCBAYyBFSU5BX0ZBTFNF
IG9uIGVycm9ycwogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX2NvbnRlbnRzX2FsdGVybmF0ZV9z
ZXQoRXZhc19PYmplY3QqIG8sIGNvbnN0IGNoYXIqIGNvbnRlbnRzLCBzaXplX3QgY29udGVudHNf
c2l6ZSwgY29uc3QgY2hhciogbWltZV90eXBlLCBjb25zdCBjaGFyKiBlbmNvZGluZywgY29uc3Qg
Y2hhciogYmFzZV91cmksIGNvbnN0IGNoYXIqIHVucmVhY2hhYmxlX3VyaSkKK0VpbmFfQm9vbCBl
d2tfZnJhbWVfY29udGVudHNfYWx0ZXJuYXRlX3NldChFdmFzX09iamVjdCAqbywgY29uc3QgY2hh
ciAqY29udGVudHMsIHNpemVfdCBjb250ZW50c19zaXplLCBjb25zdCBjaGFyICptaW1lX3R5cGUs
IGNvbnN0IGNoYXIgKmVuY29kaW5nLCBjb25zdCBjaGFyICpiYXNlX3VyaSwgY29uc3QgY2hhciAq
dW5yZWFjaGFibGVfdXJpKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNk
LCBFSU5BX0ZBTFNFKTsKICAgICBFSU5BX1NBRkVUWV9PTl9GQUxTRV9SRVRVUk5fVkFMKHNkLT5m
cmFtZSwgRUlOQV9GQUxTRSk7CkBAIC01NTUsNyArNTU1LDcgQEAgRWluYV9Cb29sIGV3a19mcmFt
ZV9jb250ZW50c19hbHRlcm5hdGVfc2V0KEV2YXNfT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBjb250
ZW50cywKICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiByZXF1ZXN0IHdhcyBkb25lLCBA
YyBFSU5BX0ZBTFNFIG9uIGVycm9ycwogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX3NjcmlwdF9l
eGVjdXRlKEV2YXNfT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBzY3JpcHQpCitFaW5hX0Jvb2wgZXdr
X2ZyYW1lX3NjcmlwdF9leGVjdXRlKEV2YXNfT2JqZWN0ICpvLCBjb25zdCBjaGFyICpzY3JpcHQp
CiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOwog
ICAgIEVJTkFfU0FGRVRZX09OX0ZBTFNFX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNF
KTsKQEAgLTU3MSw3ICs1NzEsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3NjcmlwdF9leGVjdXRl
KEV2YXNfT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBzY3JpcHQpCiAgKgogICogQHJldHVybiBAYyBF
SU5BX1RSVUUgaWYgdGhlIGZyYW1lIGlzIGVkaXRhYmxlLCBAYyBFSU5BX0ZBTFNFIG90aGVyd2lz
ZQogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX2VkaXRhYmxlX2dldChjb25zdCBFdmFzX09iamVj
dCogbykKK0VpbmFfQm9vbCBld2tfZnJhbWVfZWRpdGFibGVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0
ICpvKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNF
KTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZB
TFNFKTsKQEAgLTU4Niw3ICs1ODYsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2VkaXRhYmxlX2dl
dChjb25zdCBFdmFzX09iamVjdCogbykKICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBz
dWNjZXNzLCBAYyBFSU5BX0ZBTFNFIG90aGVyd2lzZQogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1l
X2VkaXRhYmxlX3NldChFdmFzX09iamVjdCogbywgRWluYV9Cb29sIGVkaXRhYmxlKQorRWluYV9C
b29sIGV3a19mcmFtZV9lZGl0YWJsZV9zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBlZGl0
YWJsZSkKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxT
RSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9G
QUxTRSk7CkBAIC02MDcsNyArNjA3LDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9lZGl0YWJsZV9z
ZXQoRXZhc19PYmplY3QqIG8sIEVpbmFfQm9vbCBlZGl0YWJsZSkKICAqCiAgKiBAcmV0dXJuIGEg
bmV3bHkgYWxsb2NhdGVkIHN0cmluZyBvciBAYyAwIGlmIG5vdGhpbmcgaXMgc2VsZWN0ZWQgb3Ig
b24gZmFpbHVyZQogICovCi1jaGFyKiBld2tfZnJhbWVfc2VsZWN0aW9uX2dldChjb25zdCBFdmFz
X09iamVjdCogbykKK2NoYXIgKmV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2Jq
ZWN0ICpvKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCAwKTsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCAwKTsKQEAgLTYyOCw3
ICs2MjgsNyBAQCBjaGFyKiBld2tfZnJhbWVfc2VsZWN0aW9uX2dldChjb25zdCBFdmFzX09iamVj
dCogbykKICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUgZ2l2ZW4gc3RyaW5nIHdh
cyBmb3VuZCwgQGMgRUlOQV9GQUxTRSBpZiBub3Qgb3IgZmFpbHVyZQogICovCi1FaW5hX0Jvb2wg
ZXdrX2ZyYW1lX3RleHRfc2VhcmNoKGNvbnN0IEV2YXNfT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBz
dHJpbmcsIEVpbmFfQm9vbCBjYXNlX3NlbnNpdGl2ZSwgRWluYV9Cb29sIGZvcndhcmQsIEVpbmFf
Qm9vbCB3cmFwKQorRWluYV9Cb29sIGV3a19mcmFtZV90ZXh0X3NlYXJjaChjb25zdCBFdmFzX09i
amVjdCAqbywgY29uc3QgY2hhciAqc3RyaW5nLCBFaW5hX0Jvb2wgY2FzZV9zZW5zaXRpdmUsIEVp
bmFfQm9vbCBmb3J3YXJkLCBFaW5hX0Jvb2wgd3JhcCkKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VU
X09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7CkBAIC02NDgsNyArNjQ4LDcgQEAgRWlu
YV9Cb29sIGV3a19mcmFtZV90ZXh0X3NlYXJjaChjb25zdCBFdmFzX09iamVjdCogbywgY29uc3Qg
Y2hhciogc3RyaW5nLCBFaW5hX0IKICAqCiAgKiBAcmV0dXJuIG51bWJlciBvZiBtYXRjaGVkIEBh
IHN0cmluZwogICovCi11bnNpZ25lZCBpbnQgZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19tYXJrKEV2
YXNfT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBzdHJpbmcsIEVpbmFfQm9vbCBjYXNlX3NlbnNpdGl2
ZSwgRWluYV9Cb29sIGhpZ2hsaWdodCwgdW5zaWduZWQgaW50IGxpbWl0KQordW5zaWduZWQgaW50
IGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbWFyayhFdmFzX09iamVjdCAqbywgY29uc3QgY2hhciAq
c3RyaW5nLCBFaW5hX0Jvb2wgY2FzZV9zZW5zaXRpdmUsIEVpbmFfQm9vbCBoaWdobGlnaHQsIHVu
c2lnbmVkIGludCBsaW1pdCkKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBz
ZCwgMCk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlO
QV9GQUxTRSk7CkBAIC02NjYsNyArNjY2LDcgQEAgdW5zaWduZWQgaW50IGV3a19mcmFtZV90ZXh0
X21hdGNoZXNfbWFyayhFdmFzX09iamVjdCogbywgY29uc3QgY2hhciogc3RyaW5nLCBFaW4KICAq
CiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzLCBAYyBFSU5BX0ZBTFNFIG9uIGZh
aWx1cmUKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV90ZXh0X21hdGNoZXNfdW5tYXJrX2FsbChF
dmFzX09iamVjdCogbykKK0VpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX3VubWFya19h
bGwoRXZhc19PYmplY3QgKm8pCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywg
c2QsIEVJTkFfRkFMU0UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZC0+
ZnJhbWUsIEVJTkFfRkFMU0UpOwpAQCAtNjgzLDcgKzY4Myw3IEBAIEVpbmFfQm9vbCBld2tfZnJh
bWVfdGV4dF9tYXRjaGVzX3VubWFya19hbGwoRXZhc19PYmplY3QqIG8pCiAgKgogICogQHJldHVy
biBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcywgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCiAgKi8K
LUVpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX2hpZ2hsaWdodF9zZXQoRXZhc19PYmpl
Y3QqIG8sIEVpbmFfQm9vbCBoaWdobGlnaHQpCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRfbWF0
Y2hlc19oaWdobGlnaHRfc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgaGlnaGxpZ2h0KQog
ewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsK
QEAgLTY5OCwyNSArNjk4LDI1IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX2hp
Z2hsaWdodF9zZXQoRXZhc19PYmplY3QqIG8sIEVpbmFfQm9vbCBoaWdobGlnCiAgKgogICogQHJl
dHVybiBAYyBFSU5BX1RSVUUgaWYgbWF0Y2hlcyBhcmUgaGlnaGxpZ2h0ZWQsIEBjIEVJTkFfRkFM
U0Ugb3RoZXJ3aXNlCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX2hpZ2hs
aWdodF9nZXQoY29uc3QgRXZhc19PYmplY3QqIG8pCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRf
bWF0Y2hlc19oaWdobGlnaHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKQogewogICAgIEVXS19G
UkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsKICAgICByZXR1cm4g
c2QtPmZyYW1lLT5lZGl0b3IoKS0+bWFya2VkVGV4dE1hdGNoZXNBcmVIaWdobGlnaHRlZCgpOwog
fQogCi0vKiogCisvKioKICAqIENvbXBhcmlzb24gZnVuY3Rpb24gdXNlZCBieSBld2tfZnJhbWVf
dGV4dF9tYXRjaGVzX250aF9wb3NfZ2V0CiAgKi8KLXN0YXRpYyBib29sIF9ld2tfZnJhbWVfcmVj
dF9jbXBfbGVzc190aGFuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGksIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGopCitzdGF0aWMgYm9vbCBfZXdrX2ZyYW1lX3JlY3RfY21wX2xlc3NfdGhhbihj
b25zdCBXZWJDb3JlOjpJbnRSZWN0ICZpLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0ICZqKQogewog
ICAgIHJldHVybiAoaS55KCkgPCBqLnkoKSB8fCAoaS55KCkgPT0gai55KCkgJiYgaS54KCkgPCBq
LngoKSkpOwotfSAgIAotICAgIAorfQorCiAvKioKICAqIFByZWRpY2F0ZSB1c2VkIGJ5IGV3a19m
cmFtZV90ZXh0X21hdGNoZXNfbnRoX3Bvc19nZXQKICAqLwotc3RhdGljIGJvb2wgX2V3a19mcmFt
ZV9yZWN0X2lzX25lZ2F0aXZlX3ZhbHVlKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGkpCitzdGF0
aWMgYm9vbCBfZXdrX2ZyYW1lX3JlY3RfaXNfbmVnYXRpdmVfdmFsdWUoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCAmaSkKIHsKICAgICByZXR1cm4gKGkueCgpIDwgMCB8fCBpLnkoKSA8IDApOwogfQpA
QCAtNzI5LDEwICs3MjksMTAgQEAgc3RhdGljIGJvb2wgX2V3a19mcmFtZV9yZWN0X2lzX25lZ2F0
aXZlX3ZhbHVlKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGkpCiAgKiBAcGFyYW0geCB0aGUgcG9p
bnRlciB0byBzdG9yZSB0aGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiBAYSBuIG1hdGNoZWQgdGV4
dCwgbWF5IGJlIEBjIDAKICAqIEBwYXJhbSB5IHRoZSBwb2ludGVyIHRvIHN0b3JlIHRoZSB2ZXJ0
aWNhbCBwb3NpdGlvbiBvZiBAYSBuIG1hdGNoZWQgdGV4dCwgbWF5IGJlIEBjIDAKICAqCi0gKiBA
cmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzLCBAYyBFSU5BX0ZBTFNFIHdoZW4gbm8gbWF0
Y2hlcyB3ZXJlIGZvdW5kIG9yIAorICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2Vzcywg
QGMgRUlOQV9GQUxTRSB3aGVuIG5vIG1hdGNoZXMgd2VyZSBmb3VuZCBvcgogICogICAgICAgICBA
YSBuIGlzIGJpZ2dlciB0aGFuIHNlYXJjaCByZXN1bHRzIG9yIG9uIGZhaWx1cmUKICAqLwotRWlu
YV9Cb29sIGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbnRoX3Bvc19nZXQoRXZhc19PYmplY3QqIG8s
IHNpemVfdCBuLCBpbnQqIHgsIGludCogeSkKK0VpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9tYXRj
aGVzX250aF9wb3NfZ2V0KEV2YXNfT2JqZWN0ICpvLCBzaXplX3QgbiwgaW50ICp4LCBpbnQgKnkp
CiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOwog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFMU0Up
OwpAQCAtNzYxLDcgKzc2MSw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX250
aF9wb3NfZ2V0KEV2YXNfT2JqZWN0KiBvLCBzaXplX3QgbiwgaW50KiB4LCBpCiAgKgogICogQHJl
dHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcywgQGMgRUlOQV9GQUxTRSBvdGhlcndpc2UKICAq
LwotRWluYV9Cb29sIGV3a19mcmFtZV9zdG9wKEV2YXNfT2JqZWN0KiBvKQorRWluYV9Cb29sIGV3
a19mcmFtZV9zdG9wKEV2YXNfT2JqZWN0ICpvKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1Jf
UkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsKQEAgLTc3OCw3ICs3NzgsNyBAQCBFaW5hX0Jv
b2wgZXdrX2ZyYW1lX3N0b3AoRXZhc19PYmplY3QqIG8pCiAgKgogICogQHNlZSBld2tfZnJhbWVf
cmVsb2FkX2Z1bGwoKQogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX3JlbG9hZChFdmFzX09iamVj
dCogbykKK0VpbmFfQm9vbCBld2tfZnJhbWVfcmVsb2FkKEV2YXNfT2JqZWN0ICpvKQogewogICAg
IEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsKQEAgLTc5
Myw3ICs3OTMsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3JlbG9hZChFdmFzX09iamVjdCogbykK
ICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzLCBAYyBFSU5BX0ZBTFNFIG90
aGVyd2lzZQogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX3JlbG9hZF9mdWxsKEV2YXNfT2JqZWN0
KiBvKQorRWluYV9Cb29sIGV3a19mcmFtZV9yZWxvYWRfZnVsbChFdmFzX09iamVjdCAqbykKIHsK
ICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7CkBA
IC04MTAsNyArODEwLDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9yZWxvYWRfZnVsbChFdmFzX09i
amVjdCogbykKICAqCiAgKiBAc2VlIGV3a19mcmFtZV9uYXZpZ2F0ZSgpCiAgKi8KLUVpbmFfQm9v
bCBld2tfZnJhbWVfYmFjayhFdmFzX09iamVjdCogbykKK0VpbmFfQm9vbCBld2tfZnJhbWVfYmFj
ayhFdmFzX09iamVjdCAqbykKIHsKICAgICByZXR1cm4gZXdrX2ZyYW1lX25hdmlnYXRlKG8sIC0x
KTsKIH0KQEAgLTgyNCw3ICs4MjQsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2JhY2soRXZhc19P
YmplY3QqIG8pCiAgKgogICogQHNlZSBld2tfZnJhbWVfbmF2aWdhdGUoKQogICovCi1FaW5hX0Jv
b2wgZXdrX2ZyYW1lX2ZvcndhcmQoRXZhc19PYmplY3QqIG8pCitFaW5hX0Jvb2wgZXdrX2ZyYW1l
X2ZvcndhcmQoRXZhc19PYmplY3QgKm8pCiB7CiAgICAgcmV0dXJuIGV3a19mcmFtZV9uYXZpZ2F0
ZShvLCAxKTsKIH0KQEAgLTgzOCwxMSArODM4LDExIEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfZm9y
d2FyZChFdmFzX09iamVjdCogbykKICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNj
ZXNzLCBAYyBFSU5BX0ZBTFNFIG90aGVyd2lzZQogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX25h
dmlnYXRlKEV2YXNfT2JqZWN0KiBvLCBpbnQgc3RlcHMpCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX25h
dmlnYXRlKEV2YXNfT2JqZWN0ICpvLCBpbnQgc3RlcHMpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dF
VF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFMU0UpOwotICAgIFdlYkNvcmU6OlBhZ2UqIHBh
Z2UgPSBzZC0+ZnJhbWUtPnBhZ2UoKTsKKyAgICBXZWJDb3JlOjpQYWdlICpwYWdlID0gc2QtPmZy
YW1lLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlLT5jYW5Hb0JhY2tPckZvcndhcmQoc3RlcHMpKQog
ICAgICAgICByZXR1cm4gRUlOQV9GQUxTRTsKICAgICBwYWdlLT5nb0JhY2tPckZvcndhcmQoc3Rl
cHMpOwpAQCAtODU4LDcgKzg1OCw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfbmF2aWdhdGUoRXZh
c19PYmplY3QqIG8sIGludCBzdGVwcykKICAqCiAgKiBAc2VlIGV3a19mcmFtZV9uYXZpZ2F0ZV9w
b3NzaWJsZSgpCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJhbWVfYmFja19wb3NzaWJsZShFdmFzX09i
amVjdCogbykKK0VpbmFfQm9vbCBld2tfZnJhbWVfYmFja19wb3NzaWJsZShFdmFzX09iamVjdCAq
bykKIHsKICAgICByZXR1cm4gZXdrX2ZyYW1lX25hdmlnYXRlX3Bvc3NpYmxlKG8sIC0xKTsKIH0K
QEAgLTg3Miw3ICs4NzIsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2JhY2tfcG9zc2libGUoRXZh
c19PYmplY3QqIG8pCiAgKgogICogQHNlZSBld2tfZnJhbWVfbmF2aWdhdGVfcG9zc2libGUoKQog
ICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZvcndhcmRfcG9zc2libGUoRXZhc19PYmplY3QqIG8p
CitFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZvcndhcmRfcG9zc2libGUoRXZhc19PYmplY3QgKm8pCiB7
CiAgICAgcmV0dXJuIGV3a19mcmFtZV9uYXZpZ2F0ZV9wb3NzaWJsZShvLCAxKTsKIH0KQEAgLTg4
Niw3ICs4ODYsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZvcndhcmRfcG9zc2libGUoRXZhc19P
YmplY3QqIG8pCiAgKgogICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgaXQncyBwb3NzaWJsZSB0
byBuYXZpZ2F0ZSBAYSBzdGVwcyBpbiB0aGUgaGlzdG9yeSwgQGMgRUlOQV9GQUxTRSBvdGhlcndp
c2UKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9uYXZpZ2F0ZV9wb3NzaWJsZShFdmFzX09iamVj
dCogbywgaW50IHN0ZXBzKQorRWluYV9Cb29sIGV3a19mcmFtZV9uYXZpZ2F0ZV9wb3NzaWJsZShF
dmFzX09iamVjdCAqbywgaW50IHN0ZXBzKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVU
VVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsKQEAgLTkwMSw3ICs5MDEsNyBAQCBFaW5hX0Jvb2wg
ZXdrX2ZyYW1lX25hdmlnYXRlX3Bvc3NpYmxlKEV2YXNfT2JqZWN0KiBvLCBpbnQgc3RlcHMpCiAg
KgogICogQHJldHVybiB6b29tIGxldmVsIGZvciB0aGUgZnJhbWUgb3IgQGMgLTEuMCBvbiBmYWls
dXJlCiAgKi8KLWZsb2F0IGV3a19mcmFtZV96b29tX2dldChjb25zdCBFdmFzX09iamVjdCogbykK
K2Zsb2F0IGV3a19mcmFtZV96b29tX2dldChjb25zdCBFdmFzX09iamVjdCAqbykKIHsKICAgICBF
V0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgLTEuMCk7CiAgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgLTEuMCk7CkBAIC05MjEsNyArOTIxLDcgQEAg
ZmxvYXQgZXdrX2ZyYW1lX3pvb21fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBvKQogICoKICAqIEBz
ZWUgZXdrX2ZyYW1lX3pvb21fdGV4dF9vbmx5X3NldCgpCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJh
bWVfem9vbV9zZXQoRXZhc19PYmplY3QqIG8sIGZsb2F0IHpvb20pCitFaW5hX0Jvb2wgZXdrX2Zy
YW1lX3pvb21fc2V0KEV2YXNfT2JqZWN0ICpvLCBmbG9hdCB6b29tKQogewogICAgIEVXS19GUkFN
RV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsKQEAgLTkzOSw3ICs5Mzks
NyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3pvb21fc2V0KEV2YXNfT2JqZWN0KiBvLCBmbG9hdCB6
b29tKQogICoKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHpvb20gbGV2ZWwgaXMgYXBwbGll
ZCB0byB0ZXh0IG9ubHksIEBjIEVJTkFfRkFMU0UgaWYgbm90IG9yIG9uIGZhaWx1cmUKICAqLwot
RWluYV9Cb29sIGV3a19mcmFtZV96b29tX3RleHRfb25seV9nZXQoY29uc3QgRXZhc19PYmplY3Qq
IG8pCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX3pvb21fdGV4dF9vbmx5X2dldChjb25zdCBFdmFzX09i
amVjdCAqbykKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9G
QUxTRSk7CiAgICAgcmV0dXJuIHNkLT50ZXh0Wm9vbTsKQEAgLTk1Myw3ICs5NTMsNyBAQCBFaW5h
X0Jvb2wgZXdrX2ZyYW1lX3pvb21fdGV4dF9vbmx5X2dldChjb25zdCBFdmFzX09iamVjdCogbykK
ICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzLCBAYyBFSU5BX0ZBTFNFIG90
aGVyd2lzZQogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX3pvb21fdGV4dF9vbmx5X3NldChFdmFz
X09iamVjdCogbywgRWluYV9Cb29sIHNldHRpbmcpCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX3pvb21f
dGV4dF9vbmx5X3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIHNldHRpbmcpCiB7CiAgICAg
RVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOwogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFMU0UpOwpAQCAtOTc0
LDcgKzk3NCw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfem9vbV90ZXh0X29ubHlfc2V0KEV2YXNf
T2JqZWN0KiBvLCBFaW5hX0Jvb2wgc2V0dGluZykKICAqCiAgKiBAcGFyYW0gaGl0X3Rlc3QgaW5z
dGFuY2UKICAqLwotdm9pZCBld2tfZnJhbWVfaGl0X3Rlc3RfZnJlZShFd2tfSGl0X1Rlc3QqIGhp
dF90ZXN0KQordm9pZCBld2tfZnJhbWVfaGl0X3Rlc3RfZnJlZShFd2tfSGl0X1Rlc3QgKmhpdF90
ZXN0KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGhpdF90ZXN0KTsKICAgICBl
aW5hX3N0cmluZ3NoYXJlX2RlbChoaXRfdGVzdC0+dGl0bGUpOwpAQCAtOTk4LDcgKzk5OCw3IEBA
IHZvaWQgZXdrX2ZyYW1lX2hpdF90ZXN0X2ZyZWUoRXdrX0hpdF9UZXN0KiBoaXRfdGVzdCkKICAq
CiAgKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIGhpdCB0ZXN0IG9uIHN1Y2Nlc3MsIEBjIDAg
b3RoZXJ3aXNlCiAgKi8KLUV3a19IaXRfVGVzdCogZXdrX2ZyYW1lX2hpdF90ZXN0X25ldyhjb25z
dCBFdmFzX09iamVjdCogbywgaW50IHgsIGludCB5KQorRXdrX0hpdF9UZXN0ICpld2tfZnJhbWVf
aGl0X3Rlc3RfbmV3KGNvbnN0IEV2YXNfT2JqZWN0ICpvLCBpbnQgeCwgaW50IHkpCiB7CiAgICAg
RVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIDApOwogICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIDApOwpAQCAtMTAxNiw3ICsxMDE2LDcgQEAgRXdr
X0hpdF9UZXN0KiBld2tfZnJhbWVfaGl0X3Rlc3RfbmV3KGNvbnN0IEV2YXNfT2JqZWN0KiBvLCBp
bnQgeCwgaW50IHkpCiAgICAgaWYgKCFyZXN1bHQuaW5uZXJOb2RlKCkpCiAgICAgICAgIHJldHVy
biAwOwogCi0gICAgRXdrX0hpdF9UZXN0KiBoaXRfdGVzdCA9IChFd2tfSGl0X1Rlc3QqKWNhbGxv
YygxLCBzaXplb2YoRXdrX0hpdF9UZXN0KSk7CisgICAgRXdrX0hpdF9UZXN0ICpoaXRfdGVzdCA9
IChFd2tfSGl0X1Rlc3QgKiljYWxsb2MoMSwgc2l6ZW9mKEV3a19IaXRfVGVzdCkpOwogICAgIGlm
ICghaGl0X3Rlc3QpIHsKICAgICAgICAgQ1JJVElDQUwoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1v
cnkgZm9yIGhpdCB0ZXN0LiIpOwogICAgICAgICByZXR1cm4gMDsKQEAgLTEwODMsNyArMTA4Myw3
IEBAIEV3a19IaXRfVGVzdCogZXdrX2ZyYW1lX2hpdF90ZXN0X25ldyhjb25zdCBFdmFzX09iamVj
dCogbywgaW50IHgsIGludCB5KQogICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2Vzcywg
QGMgRUlOQV9GQUxTRSBvdGhlcndpc2UKICAqLwogRWluYV9Cb29sCi1ld2tfZnJhbWVfc2Nyb2xs
X2FkZChFdmFzX09iamVjdCogbywgaW50IGR4LCBpbnQgZHkpCitld2tfZnJhbWVfc2Nyb2xsX2Fk
ZChFdmFzX09iamVjdCAqbywgaW50IGR4LCBpbnQgZHkpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dF
VF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFMU0UpOwpAQCAtMTEwNSw3ICsxMTA1LDcgQEAg
ZXdrX2ZyYW1lX3Njcm9sbF9hZGQoRXZhc19PYmplY3QqIG8sIGludCBkeCwgaW50IGR5KQogICog
QHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcywgQGMgRUlOQV9GQUxTRSBvdGhlcndpc2UK
ICAqLwogRWluYV9Cb29sCi1ld2tfZnJhbWVfc2Nyb2xsX3NldChFdmFzX09iamVjdCogbywgaW50
IHgsIGludCB5KQorZXdrX2ZyYW1lX3Njcm9sbF9zZXQoRXZhc19PYmplY3QgKm8sIGludCB4LCBp
bnQgeSkKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxT
RSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9G
QUxTRSk7CkBAIC0xMTMwLDcgKzExMzAsNyBAQCBld2tfZnJhbWVfc2Nyb2xsX3NldChFdmFzX09i
amVjdCogbywgaW50IHgsIGludCB5KQogICogICAgICAgICB2YWx1ZXMgYXJlIHplcm9lZAogICov
CiBFaW5hX0Jvb2wKLWV3a19mcmFtZV9zY3JvbGxfc2l6ZV9nZXQoY29uc3QgRXZhc19PYmplY3Qq
IG8sIGludCogdywgaW50KiBoKQorZXdrX2ZyYW1lX3Njcm9sbF9zaXplX2dldChjb25zdCBFdmFz
X09iamVjdCAqbywgaW50ICp3LCBpbnQgKmgpCiB7CiAgICAgaWYgKHcpCiAgICAgICAgICp3ID0g
MDsKQEAgLTExNTgsNyArMTE1OCw3IEBAIGV3a19mcmFtZV9zY3JvbGxfc2l6ZV9nZXQoY29uc3Qg
RXZhc19PYmplY3QqIG8sIGludCogdywgaW50KiBoKQogICogICAgICAgICB2YWx1ZXMgYXJlIHpl
cm9lZC4KICAqLwogRWluYV9Cb29sCi1ld2tfZnJhbWVfc2Nyb2xsX3Bvc19nZXQoY29uc3QgRXZh
c19PYmplY3QqIG8sIGludCogeCwgaW50KiB5KQorZXdrX2ZyYW1lX3Njcm9sbF9wb3NfZ2V0KGNv
bnN0IEV2YXNfT2JqZWN0ICpvLCBpbnQgKngsIGludCAqeSkKIHsKICAgICBpZiAoeCkKICAgICAg
ICAgKnggPSAwOwpAQCAtMTE4OCw3ICsxMTg4LDcgQEAgZXdrX2ZyYW1lX3Njcm9sbF9wb3NfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0KiBvLCBpbnQqIHgsIGludCogeSkKICAqIEByZXR1cm4gQGMgRUlO
QV9UUlVFIG9uIHN1Y2Nlc3MsIEBjIEVJTkFfRkFMU0Ugb3RoZXJ3aXNlIGFuZAogICogICAgICAg
ICB2YWx1ZXMgYXJlIHplcm9lZAogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX3Zpc2libGVfY29u
dGVudF9nZW9tZXRyeV9nZXQoY29uc3QgRXZhc19PYmplY3QqIG8sIEVpbmFfQm9vbCBpbmNsdWRl
X3Njcm9sbGJhcnMsIGludCogeCwgaW50KiB5LCBpbnQqIHcsIGludCogaCkKK0VpbmFfQm9vbCBl
d2tfZnJhbWVfdmlzaWJsZV9jb250ZW50X2dlb21ldHJ5X2dldChjb25zdCBFdmFzX09iamVjdCAq
bywgRWluYV9Cb29sIGluY2x1ZGVfc2Nyb2xsYmFycywgaW50ICp4LCBpbnQgKnksIGludCAqdywg
aW50ICpoKQogewogICAgIGlmICh4KQogICAgICAgICAqeCA9IDA7CkBAIC0xMjI0LDcgKzEyMjQs
NyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3Zpc2libGVfY29udGVudF9nZW9tZXRyeV9nZXQoY29u
c3QgRXZhc19PYmplY3QqIG8sIEVpbmFfQm9vbAogICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYg
YW55IGRpcnR5IGFyZWFzIHNob3VsZCBiZSByZXBhaW50ZWQsIEBjIEVJTkFfRkFMU0UKICAqICAg
ICAgICAgb3RoZXJ3aXNlCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJhbWVfcGFpbnRfZnVsbF9nZXQo
Y29uc3QgRXZhc19PYmplY3QqIG8pCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX3BhaW50X2Z1bGxfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0ICpvKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJO
KG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
c2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsKQEAgLTEyNDIsNyArMTI0Miw3IEBAIEVpbmFfQm9vbCBl
d2tfZnJhbWVfcGFpbnRfZnVsbF9nZXQoY29uc3QgRXZhc19PYmplY3QqIG8pCiAgKiBAcGFyYW0g
ZmxhZyBAYyBFSU5BX1RSVUUgdG8gcmVwYWludCB0aGUgZnJhbWUgY29tcGxldGVseSwKICAqICAg
ICAgICAgICAgIEBjIEVJTkFfRkFMU0UgaWYgbm90CiAgKi8KLXZvaWQgZXdrX2ZyYW1lX3BhaW50
X2Z1bGxfc2V0KEV2YXNfT2JqZWN0KiBvLCBFaW5hX0Jvb2wgZmxhZykKK3ZvaWQgZXdrX2ZyYW1l
X3BhaW50X2Z1bGxfc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgZmxhZykKIHsKICAgICBF
V0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk4oc2QtPmZyYW1lKTsKQEAgLTEyNTcsNyArMTI1Nyw3IEBAIHZvaWQgZXdrX2ZyYW1l
X3BhaW50X2Z1bGxfc2V0KEV2YXNfT2JqZWN0KiBvLCBFaW5hX0Jvb2wgZmxhZykKICAqCiAgKiBA
cmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUgZm9jdXMgd2FzIGhhbmRsZWQsIEBjIEVJTkFfRkFM
U0Ugb3RoZXJ3aXNlCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19pbihFdmFz
X09iamVjdCogbykKK0VpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19pbihFdmFzX09iamVj
dCAqbykKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxT
RSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9G
QUxTRSk7CkBAIC0xMjczLDcgKzEyNzMsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfZm9j
dXNfaW4oRXZhc19PYmplY3QqIG8pCiAgKgogICogQHJldHVybiBAYyBFSU5BX0ZBTFNFIHNpbmNl
IHRoZSBmZWF0dXJlIGlzIG5vdCBpbXBsZW1lbnRlZAogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1l
X2ZlZWRfZm9jdXNfb3V0KEV2YXNfT2JqZWN0KiBvKQorRWluYV9Cb29sIGV3a19mcmFtZV9mZWVk
X2ZvY3VzX291dChFdmFzX09iamVjdCAqbykKIHsKICAgICAvLyBUT0RPOiB3aGF0IHRvIGRvIG9u
IGZvY3VzIG91dD8KICAgICBFUlIoIndoYXQgdG8gZG8/Iik7CkBAIC0xMjg4LDcgKzEyODgsNyBA
QCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfZm9jdXNfb3V0KEV2YXNfT2JqZWN0KiBvKQogICoK
ICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBtb3VzZSB3aGVlbCBldmVudCB3YXMgaGFu
ZGxlZCwgQGMgRUlOQV9GQUxTRSBvdGhlcndpc2UKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9m
ZWVkX21vdXNlX3doZWVsKEV2YXNfT2JqZWN0KiBvLCBjb25zdCBFdmFzX0V2ZW50X01vdXNlX1do
ZWVsKiBldikKK0VpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9tb3VzZV93aGVlbChFdmFzX09iamVj
dCAqbywgY29uc3QgRXZhc19FdmVudF9Nb3VzZV9XaGVlbCAqZXYpCiB7CiAgICAgRVdLX0ZSQU1F
X1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOwogICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFMU0UpOwpAQCAtMTMxMSw3ICsxMzEx
LDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX21vdXNlX3doZWVsKEV2YXNfT2JqZWN0KiBv
LCBjb25zdCBFdmFzX0V2ZW50X01vdXNlX1doZWUKICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJV
RSBpZiB0aGUgbW91c2UgZG93biBldmVudCB3YXMgaGFuZGxlZCwgQGMgRUlOQV9GQUxTRSBvdGhl
cndpc2UKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX21vdXNlX2Rvd24oRXZhc19PYmpl
Y3QqIG8sIGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfRG93biogZXYpCitFaW5hX0Jvb2wgZXdrX2Zy
YW1lX2ZlZWRfbW91c2VfZG93bihFdmFzX09iamVjdCAqbywgY29uc3QgRXZhc19FdmVudF9Nb3Vz
ZV9Eb3duICpldikKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlO
QV9GQUxTRSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwg
RUlOQV9GQUxTRSk7CkBAIC0xMzM3LDEzICsxMzM3LDEzIEBAIEVpbmFfQm9vbCBld2tfZnJhbWVf
ZmVlZF9tb3VzZV9kb3duKEV2YXNfT2JqZWN0KiBvLCBjb25zdCBFdmFzX0V2ZW50X01vdXNlX0Rv
d24qCiAgKgogICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIG1vdXNlIHVwIGV2ZW50IHdh
cyBoYW5kbGVkLCBAYyBFSU5BX0ZBTFNFIG90aGVyd2lzZQogICovCi1FaW5hX0Jvb2wgZXdrX2Zy
YW1lX2ZlZWRfbW91c2VfdXAoRXZhc19PYmplY3QqIG8sIGNvbnN0IEV2YXNfRXZlbnRfTW91c2Vf
VXAqIGV2KQorRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX21vdXNlX3VwKEV2YXNfT2JqZWN0ICpv
LCBjb25zdCBFdmFzX0V2ZW50X01vdXNlX1VwICpldikKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VU
X09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKGV2LCBFSU5BX0ZBTFNFKTsKIAotICAgIFdlYkNvcmU6OkZyYW1lVmlldyog
dmlldyA9IHNkLT5mcmFtZS0+dmlldygpOworICAgIFdlYkNvcmU6OkZyYW1lVmlldyAqdmlldyA9
IHNkLT5mcmFtZS0+dmlldygpOwogICAgIERCRygibz0lcCwgdmlldz0lcCwgYnV0dG9uPSVkLCBw
b3M9JWQsJWQiLAogICAgICAgICBvLCB2aWV3LCBldi0+YnV0dG9uLCBldi0+Y2FudmFzLngsIGV2
LT5jYW52YXMueSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHZpZXcsIEVJ
TkFfRkFMU0UpOwpAQCAtMTM2Myw3ICsxMzYzLDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9mZWVk
X21vdXNlX3VwKEV2YXNfT2JqZWN0KiBvLCBjb25zdCBFdmFzX0V2ZW50X01vdXNlX1VwKiBldikK
ICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUgbW91c2UgbW92ZSBldmVudCB3YXMg
aGFuZGxlZCwgQGMgRUlOQV9GQUxTRSBvdGhlcndpc2UKICAqLwotRWluYV9Cb29sIGV3a19mcmFt
ZV9mZWVkX21vdXNlX21vdmUoRXZhc19PYmplY3QqIG8sIGNvbnN0IEV2YXNfRXZlbnRfTW91c2Vf
TW92ZSogZXYpCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfbW91c2VfbW92ZShFdmFzX09iamVj
dCAqbywgY29uc3QgRXZhc19FdmVudF9Nb3VzZV9Nb3ZlICpldikKIHsKICAgICBFV0tfRlJBTUVf
U0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7CiAgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7CkBAIC0xMzkyLDcgKzEzOTIs
NyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfbW91c2VfbW92ZShFdmFzX09iamVjdCogbywg
Y29uc3QgRXZhc19FdmVudF9Nb3VzZV9Nb3ZlKgogICoKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVF
IGlmIHRvdWNoIGV2ZW50IHdhcyBoYW5kbGVkLCBAYyBFSU5BX0ZBTFNFIG90aGVyd2lzZQogICov
Ci1FaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfdG91Y2hfZXZlbnQoRXZhc19PYmplY3QqIG8sIEV3
a19Ub3VjaF9FdmVudF9UeXBlIGFjdGlvbiwgRWluYV9MaXN0KiBwb2ludHMsIGludCBtZXRhU3Rh
dGUpCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfdG91Y2hfZXZlbnQoRXZhc19PYmplY3QgKm8s
IEV3a19Ub3VjaF9FdmVudF9UeXBlIGFjdGlvbiwgRWluYV9MaXN0ICpwb2ludHMsIGludCBtZXRh
U3RhdGUpCiB7CiAgICAgRWluYV9Cb29sIHJldCA9IEVJTkFfRkFMU0U7CiAKQEAgLTE0MDEsNyAr
MTQwMSw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF90b3VjaF9ldmVudChFdmFzX09iamVj
dCogbywgRXdrX1RvdWNoX0V2ZW50X1R5cGUgYWN0aW9uCiAgICAgRVdLX0ZSQU1FX1NEX0dFVChv
LCBzZCk7CiAKICAgICBpZiAoIXNkIHx8ICFzZC0+ZnJhbWUgfHwgIWV3a192aWV3X25lZWRfdG91
Y2hfZXZlbnRzX2dldChzZC0+dmlldykpIHsKLSAgICAgICAgdm9pZCogcG9pbnQ7CisgICAgICAg
IHZvaWQgKnBvaW50OwogICAgICAgICBFSU5BX0xJU1RfRlJFRShwb2ludHMsIHBvaW50KTsKICAg
ICAgICAgcmV0dXJuIEVJTkFfRkFMU0U7CiAgICAgfQpAQCAtMTQzMyw3ICsxNDMzLDcgQEAgRWlu
YV9Cb29sIGV3a19mcmFtZV9mZWVkX3RvdWNoX2V2ZW50KEV2YXNfT2JqZWN0KiBvLCBFd2tfVG91
Y2hfRXZlbnRfVHlwZSBhY3Rpb24KICAgICByZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW5saW5l
IEVpbmFfQm9vbCBfZXdrX2ZyYW1lX2hhbmRsZV9rZXlfc2Nyb2xsaW5nKFdlYkNvcmU6OkZyYW1l
KiBmcmFtZSwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50ICZldmVudCkKK3N0
YXRpYyBpbmxpbmUgRWluYV9Cb29sIF9ld2tfZnJhbWVfaGFuZGxlX2tleV9zY3JvbGxpbmcoV2Vi
Q29yZTo6RnJhbWUgKmZyYW1lLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQg
JmV2ZW50KQogewogICAgIFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb247CiAgICAg
V2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7CkBAIC0xNTA1LDcgKzE1MDUs
NyBAQCBzdGF0aWMgaW5saW5lIEVpbmFfQm9vbCBfZXdrX2ZyYW1lX2hhbmRsZV9rZXlfc2Nyb2xs
aW5nKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgYwogICoKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVF
IGlmIHRoZSBrZXkgZG93biBldmVudCB3YXMgaGFuZGxlZCwgQGMgRUlOQV9GQUxTRSBvdGhlcndp
c2UKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX2tleV9kb3duKEV2YXNfT2JqZWN0KiBv
LCBjb25zdCBFdmFzX0V2ZW50X0tleV9Eb3duKiBldikKK0VpbmFfQm9vbCBld2tfZnJhbWVfZmVl
ZF9rZXlfZG93bihFdmFzX09iamVjdCAqbywgY29uc3QgRXZhc19FdmVudF9LZXlfRG93biAqZXYp
CiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOwog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFMU0Up
OwpAQCAtMTUyOSw3ICsxNTI5LDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX2tleV9kb3du
KEV2YXNfT2JqZWN0KiBvLCBjb25zdCBFdmFzX0V2ZW50X0tleV9Eb3duKiBldikKICAqCiAgKiBA
cmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUga2V5IHVwIGV2ZW50IHdhcyBoYW5kbGVkLCBAYyBF
SU5BX0ZBTFNFIG90aGVyd2lzZQogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfa2V5X3Vw
KEV2YXNfT2JqZWN0KiBvLCBjb25zdCBFdmFzX0V2ZW50X0tleV9VcCogZXYpCitFaW5hX0Jvb2wg
ZXdrX2ZyYW1lX2ZlZWRfa2V5X3VwKEV2YXNfT2JqZWN0ICpvLCBjb25zdCBFdmFzX0V2ZW50X0tl
eV9VcCAqZXYpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFf
RkFMU0UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJ
TkFfRkFMU0UpOwpAQCAtMTU1Myw3ICsxNTUzLDcgQEAgRXdrX1RleHRfU2VsZWN0aW9uX1R5cGUg
ZXdrX2ZyYW1lX3RleHRfc2VsZWN0aW9uX3R5cGVfZ2V0KEV2YXNfT2JqZWN0ICpvKQogICAgIEVX
S19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFV0tfVEVYVF9TRUxFQ1RJT05fTk9ORSk7
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRVdLX1RFWFRf
U0VMRUNUSU9OX05PTkUpOwogCi0gICAgV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24qIGNvbnRyb2xs
ZXIgPSBzZC0+ZnJhbWUtPnNlbGVjdGlvbigpOworICAgIFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
ICpjb250cm9sbGVyID0gc2QtPmZyYW1lLT5zZWxlY3Rpb24oKTsKICAgICBpZiAoIWNvbnRyb2xs
ZXIpCiAgICAgICAgIHJldHVybiBFV0tfVEVYVF9TRUxFQ1RJT05fTk9ORTsKIApAQCAtMTU4Miw3
ICsxNTgyLDcgQEAgRXdrX1RleHRfU2VsZWN0aW9uX1R5cGUgZXdrX2ZyYW1lX3RleHRfc2VsZWN0
aW9uX3R5cGVfZ2V0KEV2YXNfT2JqZWN0ICpvKQogICoKICAqIEByZXR1cm4gYSBuZXcgZnJhbWUg
b2JqZWN0IG9yIEBjIDAgb24gZmFpbHVyZQogICovCi1FdmFzX09iamVjdCogZXdrX2ZyYW1lX2Fk
ZChFdmFzKiBlKQorRXZhc19PYmplY3QgKmV3a19mcmFtZV9hZGQoRXZhcyAqZSkKIHsKICAgICBy
ZXR1cm4gZXZhc19vYmplY3Rfc21hcnRfYWRkKGUsIF9ld2tfZnJhbWVfc21hcnRfY2xhc3NfbmV3
KCkpOwogfQpAQCAtMTU5NCw3ICsxNTk0LDcgQEAgRXZhc19PYmplY3QqIGV3a19mcmFtZV9hZGQo
RXZhcyogZSkKICAqCiAgKiBUaGlzIGlzIGludGVybmFsIGFuZCBzaG91bGQgbmV2ZXIgYmUgY2Fs
bGVkIGJ5IGV4dGVybmFsIHVzZXJzLgogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX2luaXQoRXZh
c19PYmplY3QqIG8sIEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpGcmFtZSogZnJhbWUpCitF
aW5hX0Jvb2wgZXdrX2ZyYW1lX2luaXQoRXZhc19PYmplY3QgKm8sIEV2YXNfT2JqZWN0ICp2aWV3
LCBXZWJDb3JlOjpGcmFtZSAqZnJhbWUpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRV
Uk4obywgc2QsIEVJTkFfRkFMU0UpOwogICAgIGlmICghc2QtPmZyYW1lKSB7CkBAIC0xNjE2LDEx
ICsxNjE2LDExIEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfaW5pdChFdmFzX09iamVjdCogbywgRXZh
c19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkZyYW1lKiBmcmFtCiAgKgogICogQWRkcyBjaGlsZCB0
byB0aGUgZnJhbWUuCiAgKi8KLUV2YXNfT2JqZWN0KiBld2tfZnJhbWVfY2hpbGRfYWRkKEV2YXNf
T2JqZWN0KiBvLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNoaWxkLCBjb25zdCBX
VEY6OlN0cmluZyYgbmFtZSwgY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBjb25zdCBXVEY6OlN0
cmluZyYgcmVmZXJyZXIpCitFdmFzX09iamVjdCAqZXdrX2ZyYW1lX2NoaWxkX2FkZChFdmFzX09i
amVjdCAqbywgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjaGlsZCwgY29uc3QgV1RG
OjpTdHJpbmcgJm5hbWUsIGNvbnN0IFdlYkNvcmU6OktVUkwgJnVybCwgY29uc3QgV1RGOjpTdHJp
bmcgJnJlZmVycmVyKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCAw
KTsKICAgICBjaGFyIGJ1ZlsyNTZdOwotICAgIEV2YXNfT2JqZWN0KiBmcmFtZTsKKyAgICBFdmFz
X09iamVjdCAqZnJhbWU7CiAgICAgV2ViQ29yZTo6RnJhbWUqIGNmOwogCiAgICAgZnJhbWUgPSBl
d2tfZnJhbWVfYWRkKHNkLT5iYXNlLmV2YXMpOwpAQCAtMTY2Nyw3ICsxNjY3LDcgQEAgZGllZDoK
ICAqIEBpbnRlcm5hbAogICogRnJhbWUgd2FzIGRlc3Ryb3llZCBieSBsb2FkZXIsIHJlbW92ZSBp
bnRlcm5hbCByZWZlcmVuY2UuCiAgKi8KLXZvaWQgZXdrX2ZyYW1lX2NvcmVfZ29uZShFdmFzX09i
amVjdCogbykKK3ZvaWQgZXdrX2ZyYW1lX2NvcmVfZ29uZShFdmFzX09iamVjdCAqbykKIHsKICAg
ICBEQkcoIm89JXAiLCBvKTsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCk7
CkBAIC0xNjgxLDcgKzE2ODEsNyBAQCB2b2lkIGV3a19mcmFtZV9jb3JlX2dvbmUoRXZhc19PYmpl
Y3QqIG8pCiAgKiBBdm9pZCB1c2luZyB0aGlzIGNhbGwgZnJvbSBvdXRzaWRlLCBhZGQgc3BlY2lm
aWMgZXdrX2ZyYW1lXyoKICAqIGFjdGlvbnMgaW5zdGVhZC4KICAqLwotV2ViQ29yZTo6RnJhbWUq
IGV3a19mcmFtZV9jb3JlX2dldChjb25zdCBFdmFzX09iamVjdCogbykKK1dlYkNvcmU6OkZyYW1l
KiBld2tfZnJhbWVfY29yZV9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pCiB7CiAgICAgRVdLX0ZS
QU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIDApOwogICAgIHJldHVybiBzZC0+ZnJhbWU7CkBA
IC0xNzQxLDcgKzE3NDEsNyBAQCB2b2lkIGV3a19mcmFtZV9kaWRfcGVyZm9ybV9maXJzdF9uYXZp
Z2F0aW9uKEV2YXNfT2JqZWN0ICpvKQogICoKICAqIEVtaXRzIHNpZ25hbDogInN0YXRlLHNhdmUi
CiAgKi8KLXZvaWQgZXdrX2ZyYW1lX3ZpZXdfc3RhdGVfc2F2ZShFdmFzX09iamVjdCAqbywgV2Vi
Q29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0pCit2b2lkIGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUo
RXZhc19PYmplY3QgKm8sIFdlYkNvcmU6Okhpc3RvcnlJdGVtICppdGVtKQogewogICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobywgInN0YXRlLHNhdmUiLCAwKTsKIH0KQEAgLTE3
NTIsOSArMTc1Miw5IEBAIHZvaWQgZXdrX2ZyYW1lX3ZpZXdfc3RhdGVfc2F2ZShFdmFzX09iamVj
dCAqbywgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0pCiAgKgogICogRW1pdHMgc2lnbmFsOiAi
bG9hZCxzdGFydGVkIiB3aXRoIG5vIHBhcmFtZXRlcnMuCiAgKi8KLXZvaWQgZXdrX2ZyYW1lX2xv
YWRfc3RhcnRlZChFdmFzX09iamVjdCogbykKK3ZvaWQgZXdrX2ZyYW1lX2xvYWRfc3RhcnRlZChF
dmFzX09iamVjdCAqbykKIHsKLSAgICBFdmFzX09iamVjdCogbWFpbl9mcmFtZTsKKyAgICBFdmFz
X09iamVjdCAqbWFpbl9mcmFtZTsKICAgICBEQkcoIm89JXAiLCBvKTsKICAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19jYWxsKG8sICJsb2FkLHN0YXJ0ZWQiLCAwKTsKICAgICBFV0tfRlJB
TUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCk7CkBAIC0xNzczLDcgKzE3NzMsNyBAQCB2b2lkIGV3
a19mcmFtZV9sb2FkX3N0YXJ0ZWQoRXZhc19PYmplY3QqIG8pCiAgKgogICogRW1pdHMgc2lnbmFs
OiAibG9hZCxwcm92aXNpb25hbCIgd2l0aCBubyBwYXJhbWV0ZXJzLgogICovCi12b2lkIGV3a19m
cmFtZV9sb2FkX3Byb3Zpc2lvbmFsKEV2YXNfT2JqZWN0KiBvKQordm9pZCBld2tfZnJhbWVfbG9h
ZF9wcm92aXNpb25hbChFdmFzX09iamVjdCAqbykKIHsKICAgICBldmFzX29iamVjdF9zbWFydF9j
YWxsYmFja19jYWxsKG8sICJsb2FkLHByb3Zpc2lvbmFsIiwgMCk7CiB9CkBAIC0xODI3LDcgKzE4
MjcsNyBAQCB2b2lkIGV3a19mcmFtZV9sb2FkX2RvY3VtZW50X2ZpbmlzaGVkKEV2YXNfT2JqZWN0
ICpvKQogICogQG5vdGUgdGhlcmUgc2hvdWxkIG5vdGJlIGFueSBlcnJvciBzdHVmZiBoZXJlLCBi
dXQgdHJ5aW5nIHRvIGJlCiAgKiAgICAgICBjb21wYXRpYmxlIHdpdGggcHJldmlvdXMgV2ViS2l0
LgogICovCi12b2lkIGV3a19mcmFtZV9sb2FkX2ZpbmlzaGVkKEV2YXNfT2JqZWN0KiBvLCBjb25z
dCBjaGFyKiBlcnJvcl9kb21haW4sIGludCBlcnJvcl9jb2RlLCBFaW5hX0Jvb2wgaXNfY2FuY2Vs
bGF0aW9uLCBjb25zdCBjaGFyKiBlcnJvcl9kZXNjcmlwdGlvbiwgY29uc3QgY2hhciogZmFpbGlu
Z191cmwpCit2b2lkIGV3a19mcmFtZV9sb2FkX2ZpbmlzaGVkKEV2YXNfT2JqZWN0ICpvLCBjb25z
dCBjaGFyICplcnJvcl9kb21haW4sIGludCBlcnJvcl9jb2RlLCBFaW5hX0Jvb2wgaXNfY2FuY2Vs
bGF0aW9uLCBjb25zdCBjaGFyICplcnJvcl9kZXNjcmlwdGlvbiwgY29uc3QgY2hhciAqZmFpbGlu
Z191cmwpCiB7CiAgICAgRXdrX0ZyYW1lX0xvYWRfRXJyb3IgYnVmLCAqZXJyb3I7CiAgICAgaWYg
KCFlcnJvcl9kb21haW4pIHsKQEAgLTE4NTcsNyArMTg1Nyw3IEBAIHZvaWQgZXdrX2ZyYW1lX2xv
YWRfZmluaXNoZWQoRXZhc19PYmplY3QqIG8sIGNvbnN0IGNoYXIqIGVycm9yX2RvbWFpbiwgaW50
IGVycm9yCiAgKgogICogRW1pdHMgc2lnbmFsOiAibG9hZCxlcnJvciIgd2l0aCBwb2ludGVyIHRv
IEV3a19GcmFtZV9Mb2FkX0Vycm9yLgogICovCi12b2lkIGV3a19mcmFtZV9sb2FkX2Vycm9yKEV2
YXNfT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBlcnJvcl9kb21haW4sIGludCBlcnJvcl9jb2RlLCBF
aW5hX0Jvb2wgaXNfY2FuY2VsbGF0aW9uLCBjb25zdCBjaGFyKiBlcnJvcl9kZXNjcmlwdGlvbiwg
Y29uc3QgY2hhciogZmFpbGluZ191cmwpCit2b2lkIGV3a19mcmFtZV9sb2FkX2Vycm9yKEV2YXNf
T2JqZWN0ICpvLCBjb25zdCBjaGFyICplcnJvcl9kb21haW4sIGludCBlcnJvcl9jb2RlLCBFaW5h
X0Jvb2wgaXNfY2FuY2VsbGF0aW9uLCBjb25zdCBjaGFyICplcnJvcl9kZXNjcmlwdGlvbiwgY29u
c3QgY2hhciAqZmFpbGluZ191cmwpCiB7CiAgICAgRXdrX0ZyYW1lX0xvYWRfRXJyb3IgZXJyb3I7
CiAKQEAgLTE4ODQsNyArMTg4NCw3IEBAIHZvaWQgZXdrX2ZyYW1lX2xvYWRfZXJyb3IoRXZhc19P
YmplY3QqIG8sIGNvbnN0IGNoYXIqIGVycm9yX2RvbWFpbiwgaW50IGVycm9yX2NvCiAgKgogICog
RW1pdHMgc2lnbmFsOiAibG9hZCxwcm9ncmVzcyIgd2l0aCBwb2ludGVyIHRvIGEgZG91YmxlIGZy
b20gMC4wIHRvIDEuMC4KICAqLwotdm9pZCBld2tfZnJhbWVfbG9hZF9wcm9ncmVzc19jaGFuZ2Vk
KEV2YXNfT2JqZWN0KiBvKQordm9pZCBld2tfZnJhbWVfbG9hZF9wcm9ncmVzc19jaGFuZ2VkKEV2
YXNfT2JqZWN0ICpvKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkKTsK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzZC0+ZnJhbWUpOwpAQCAtMTkwNCw3ICsx
OTA0LDcgQEAgdm9pZCBld2tfZnJhbWVfbG9hZF9wcm9ncmVzc19jaGFuZ2VkKEV2YXNfT2JqZWN0
KiBvKQogICoKICAqIFJlcG9ydHMgY29udGVudHMgc2l6ZSBjaGFuZ2VkLgogICovCi12b2lkIGV3
a19mcmFtZV9jb250ZW50c19zaXplX2NoYW5nZWQoRXZhc19PYmplY3QqIG8sIEV2YXNfQ29vcmQg
dywgRXZhc19Db29yZCBoKQordm9pZCBld2tfZnJhbWVfY29udGVudHNfc2l6ZV9jaGFuZ2VkKEV2
YXNfT2JqZWN0ICpvLCBFdmFzX0Nvb3JkIHcsIEV2YXNfQ29vcmQgaCkKIHsKICAgICBEQkcoIm89
JXA6ICVkeCVkIiwgbywgdywgaCk7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywg
c2QpOwpAQCAtMTkyMywyMSArMTkyMywyMSBAQCB2b2lkIGV3a19mcmFtZV9jb250ZW50c19zaXpl
X2NoYW5nZWQoRXZhc19PYmplY3QqIG8sIEV2YXNfQ29vcmQgdywgRXZhc19Db29yZCBoKQogICoK
ICAqIFJlcG9ydHMgdGl0bGUgY2hhbmdlZC4KICAqLwotdm9pZCBld2tfZnJhbWVfdGl0bGVfc2V0
KEV2YXNfT2JqZWN0KiBvLCBjb25zdCBjaGFyKiB0aXRsZSkKK3ZvaWQgZXdrX2ZyYW1lX3RpdGxl
X3NldChFdmFzX09iamVjdCAqbywgY29uc3QgY2hhciAqdGl0bGUpCiB7CiAgICAgREJHKCJvPSVw
LCB0aXRsZT0lcyIsIG8sIHRpdGxlID8gdGl0bGUgOiAiKG51bGwpIik7CiAgICAgRVdLX0ZSQU1F
X1NEX0dFVF9PUl9SRVRVUk4obywgc2QpOwogICAgIGlmICghZWluYV9zdHJpbmdzaGFyZV9yZXBs
YWNlKCZzZC0+dGl0bGUsIHRpdGxlKSkKICAgICAgICAgcmV0dXJuOwotICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X2NhbGxiYWNrX2NhbGwobywgInRpdGxlLGNoYW5nZWQiLCAodm9pZCopc2QtPnRpdGxl
KTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG8sICJ0aXRsZSxjaGFuZ2Vk
IiwgKHZvaWQgKilzZC0+dGl0bGUpOwogfQogCiAvKioKICAqIEBpbnRlcm5hbAotICogCisgKgog
ICogQ3JlYXRlcyBhIHZpZXcuCiAgKi8KLXZvaWQgZXdrX2ZyYW1lX3ZpZXdfY3JlYXRlX2Zvcl92
aWV3KEV2YXNfT2JqZWN0KiBvLCBFdmFzX09iamVjdCogdmlldykKK3ZvaWQgZXdrX2ZyYW1lX3Zp
ZXdfY3JlYXRlX2Zvcl92aWV3KEV2YXNfT2JqZWN0ICpvLCBFdmFzX09iamVjdCAqdmlldykKIHsK
ICAgICBEQkcoIm89JXAsIHZpZXc9JXAiLCBvLCB2aWV3KTsKICAgICBFV0tfRlJBTUVfU0RfR0VU
X09SX1JFVFVSTihvLCBzZCk7CkBAIC0xOTY1LDcgKzE5NjUsNyBAQCB2b2lkIGV3a19mcmFtZV92
aWV3X2NyZWF0ZV9mb3JfdmlldyhFdmFzX09iamVjdCogbywgRXZhc19PYmplY3QqIHZpZXcpCiAg
ICAgaWYgKCFzZC0+ZnJhbWUtPnZpZXcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29uc3Qg
Y2hhciogdGhlbWUgPSBld2tfdmlld190aGVtZV9nZXQodmlldyk7CisgICAgY29uc3QgY2hhciAq
dGhlbWUgPSBld2tfdmlld190aGVtZV9nZXQodmlldyk7CiAgICAgc2QtPmZyYW1lLT52aWV3KCkt
PnNldEVkamVUaGVtZSh0aGVtZSk7CiAgICAgc2QtPmZyYW1lLT52aWV3KCktPnNldEV2YXNPYmpl
Y3Qobyk7CiB9CkBAIC0xOTc2LDcgKzE5NzYsNyBAQCB2b2lkIGV3a19mcmFtZV92aWV3X2NyZWF0
ZV9mb3JfdmlldyhFdmFzX09iamVjdCogbywgRXZhc19PYmplY3QqIHZpZXcpCiAgKgogICogRW1p
dHMgc2lnbmFsOiAidXJpLGNoYW5nZWQiIHdpdGggbmV3IHVyaSBhcyBwYXJhbWV0ZXIuCiAgKi8K
LUVpbmFfQm9vbCBld2tfZnJhbWVfdXJpX2NoYW5nZWQoRXZhc19PYmplY3QqIG8pCitFaW5hX0Jv
b2wgZXdrX2ZyYW1lX3VyaV9jaGFuZ2VkKEV2YXNfT2JqZWN0ICpvKQogewogICAgIEVXS19GUkFN
RV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsKQEAgLTE5OTgsNyArMTk5
OCw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfdXJpX2NoYW5nZWQoRXZhc19PYmplY3QqIG8pCiAg
KgogICogRm9yY2VzIGxheW91dCBmb3IgZnJhbWUuCiAgKi8KLXZvaWQgZXdrX2ZyYW1lX2ZvcmNl
X2xheW91dChFdmFzX09iamVjdCogbykKK3ZvaWQgZXdrX2ZyYW1lX2ZvcmNlX2xheW91dChFdmFz
X09iamVjdCAqbykKIHsKICAgICBEQkcoIm89JXAiLCBvKTsKICAgICBFV0tfRlJBTUVfU0RfR0VU
X09SX1JFVFVSTihvLCBzZCk7CkBAIC0yMDEzLDcgKzIwMTMsNyBAQCB2b2lkIGV3a19mcmFtZV9m
b3JjZV9sYXlvdXQoRXZhc19PYmplY3QqIG8pCiAgKgogICogQ3JlYXRlcyBwbHVnaW4uCiAgKi8K
LVdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a19mcmFtZV9wbHVnaW5fY3JlYXRl
KEV2YXNfT2JqZWN0KiBvLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBwbHVnaW5TaXplLCBXZWJD
b3JlOjpIVE1MUGx1Z0luRWxlbWVudCogZWxlbWVudCwgY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJs
LCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdURjo6
VmVjdG9yPFdURjo6U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFdURjo6U3RyaW5nJiBtaW1l
VHlwZSwgYm9vbCBsb2FkTWFudWFsbHkpCitXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0
PiBld2tfZnJhbWVfcGx1Z2luX2NyZWF0ZShFdmFzX09iamVjdCAqbywgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSAmcGx1Z2luU2l6ZSwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQgKmVsZW1lbnQs
IGNvbnN0IFdlYkNvcmU6OktVUkwgJnVybCwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+
ICZwYXJhbU5hbWVzLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4gJnBhcmFtVmFsdWVz
LCBjb25zdCBXVEY6OlN0cmluZyAmbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVhbGx5KQogewogICAg
IHJldHVybiAwOwogfQpAQCAtMjAyNiw3ICsyMDI2LDcgQEAgV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OldpZGdldD4gZXdrX2ZyYW1lX3BsdWdpbl9jcmVhdGUoRXZhc19PYmplY3QqIG8sIGNvbnN0
IFcKICAqCiAgKiBFbWl0cyBzaWduYWw6ICJlZGl0b3JjbGllbnRzZWxlY3Rpb24sY2hhbmdlZCIg
d2l0aCBubyBwYXJhbWV0ZXJzLgogICovCi12b2lkIGV3a19mcmFtZV9lZGl0b3JfY2xpZW50X3Nl
bGVjdGlvbl9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBvKQordm9pZCBld2tfZnJhbWVfZWRpdG9yX2Ns
aWVudF9zZWxlY3Rpb25fY2hhbmdlZChFdmFzX09iamVjdCAqbykKIHsKICAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19jYWxsKG8sICJlZGl0b3JjbGllbnQsc2VsZWN0aW9uLGNoYW5nZWQi
LCAwKTsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2ZyYW1lLmgKaW5kZXggMTU4ZWM2ZC4uYzdjMjhhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfZnJhbWUuaApAQCAtMjM3LDExICsyMzcsMTEgQEAgRUFQSSBFaW5hX0Jvb2wgICAgZXdrX2Zy
YW1lX2ZlZWRfbW91c2Vfd2hlZWwoRXZhc19PYmplY3QgKm8sIGNvbnN0IEV2YXNfRXZlbnRfTW8K
IEVBUEkgRWluYV9Cb29sICAgIGV3a19mcmFtZV9mZWVkX21vdXNlX2Rvd24oRXZhc19PYmplY3Qg
Km8sIGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfRG93biAqZXYpOwogRUFQSSBFaW5hX0Jvb2wgICAg
ZXdrX2ZyYW1lX2ZlZWRfbW91c2VfdXAoRXZhc19PYmplY3QgKm8sIGNvbnN0IEV2YXNfRXZlbnRf
TW91c2VfVXAgKmV2KTsKIEVBUEkgRWluYV9Cb29sICAgIGV3a19mcmFtZV9mZWVkX21vdXNlX21v
dmUoRXZhc19PYmplY3QgKm8sIGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfTW92ZSAqZXYpOwotRUFQ
SSBFaW5hX0Jvb2wgICAgZXdrX2ZyYW1lX2ZlZWRfdG91Y2hfZXZlbnQoRXZhc19PYmplY3QqIG8s
IEV3a19Ub3VjaF9FdmVudF9UeXBlIGFjdGlvbiwgRWluYV9MaXN0KiBwb2ludHMsIGludCBtZXRh
U3RhdGUpOworRUFQSSBFaW5hX0Jvb2wgICAgZXdrX2ZyYW1lX2ZlZWRfdG91Y2hfZXZlbnQoRXZh
c19PYmplY3QgKm8sIEV3a19Ub3VjaF9FdmVudF9UeXBlIGFjdGlvbiwgRWluYV9MaXN0ICpwb2lu
dHMsIGludCBtZXRhU3RhdGUpOwogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX2ZyYW1lX2ZlZWRfa2V5
X2Rvd24oRXZhc19PYmplY3QgKm8sIGNvbnN0IEV2YXNfRXZlbnRfS2V5X0Rvd24gKmV2KTsKIEVB
UEkgRWluYV9Cb29sICAgIGV3a19mcmFtZV9mZWVkX2tleV91cChFdmFzX09iamVjdCAqbywgY29u
c3QgRXZhc19FdmVudF9LZXlfVXAgKmV2KTsKIAotRUFQSSBFd2tfVGV4dF9TZWxlY3Rpb25fVHlw
ZSBld2tfZnJhbWVfdGV4dF9zZWxlY3Rpb25fdHlwZV9nZXQoRXZhc19PYmplY3QqIG8pOworRUFQ
SSBFd2tfVGV4dF9TZWxlY3Rpb25fVHlwZSBld2tfZnJhbWVfdGV4dF9zZWxlY3Rpb25fdHlwZV9n
ZXQoRXZhc19PYmplY3QgKm8pOwogCiAKICNpZmRlZiBfX2NwbHVzcGx1cwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102331</attachid>
            <date>2011-07-28 20:31:33 -0700</date>
            <delta_ts>2011-07-28 21:18:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch-codingstyle-ewk-frame.patch</filename>
            <type>text/plain</type>
            <size>43308</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA3ODIzNTk1Li43NDM0NDFiIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsOTkgQEAKKzIwMTEtMDctMjcgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBz
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBGaXggcG9pbnRlciBvcGVyYXRvciBjb2Rpbmcg
c3R5bGUgaW4gZXdrX2ZyYW1lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjUzNTcKKworICAgICAgICBNb3ZlICcqJyBvcGVyYXRvciB0byB2YXJpYWJs
ZSBhY2NvcmRpbmcgdG8gZWZsIGNvZGluZyBzdHlsZS4KKyAgICAgICAgQmVjYXVzZSwgJyonIG9w
ZXJhdG9yIGlzIG5leHQgdG8gdmFyaWFibGUgaW4gRUZMIGNvZGluZyBzdHlsZS4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGV3ay9ld2tfZnJhbWUu
Y3BwOgorICAgICAgICAoX2V3a19mcmFtZV9kZWJ1Zyk6CisgICAgICAgIChfZXdrX2ZyYW1lX2xv
YWRlcl9lZmxfZ2V0KToKKyAgICAgICAgKGtpdCk6CisgICAgICAgIChfZXdrX2ZyYW1lX2NoaWxk
cmVuX2l0ZXJhdG9yX25leHQpOgorICAgICAgICAoX2V3a19mcmFtZV9jaGlsZHJlbl9pdGVyYXRv
cl9nZXRfY29udGFpbmVyKToKKyAgICAgICAgKF9ld2tfZnJhbWVfc21hcnRfYWRkKToKKyAgICAg
ICAgKF9ld2tfZnJhbWVfc21hcnRfZGVsKToKKyAgICAgICAgKF9ld2tfZnJhbWVfc21hcnRfcmVz
aXplKToKKyAgICAgICAgKF9ld2tfZnJhbWVfc21hcnRfc2V0KToKKyAgICAgICAgKF9ld2tfZnJh
bWVfc21hcnRfY2xhc3NfbmV3KToKKyAgICAgICAgKGV3a19mcmFtZV92aWV3X2dldCk6CisgICAg
ICAgIChld2tfZnJhbWVfY2hpbGRyZW5faXRlcmF0b3JfbmV3KToKKyAgICAgICAgKGV3a19mcmFt
ZV9jaGlsZF9maW5kKToKKyAgICAgICAgKGV3a19mcmFtZV91cmlfc2V0KToKKyAgICAgICAgKGV3
a19mcmFtZV91cmlfZ2V0KToKKyAgICAgICAgKGV3a19mcmFtZV90aXRsZV9nZXQpOgorICAgICAg
ICAoZXdrX2ZyYW1lX25hbWVfZ2V0KToKKyAgICAgICAgKGV3a19mcmFtZV9jb250ZW50c19zaXpl
X2dldCk6CisgICAgICAgIChfZXdrX2ZyYW1lX2NvbnRlbnRzX3NldF9pbnRlcm5hbCk6CisgICAg
ICAgIChld2tfZnJhbWVfY29udGVudHNfc2V0KToKKyAgICAgICAgKGV3a19mcmFtZV9jb250ZW50
c19hbHRlcm5hdGVfc2V0KToKKyAgICAgICAgKGV3a19mcmFtZV9zY3JpcHRfZXhlY3V0ZSk6Cisg
ICAgICAgIChld2tfZnJhbWVfZWRpdGFibGVfZ2V0KToKKyAgICAgICAgKGV3a19mcmFtZV9lZGl0
YWJsZV9zZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3NlbGVjdGlvbl9nZXQpOgorICAgICAgICAo
ZXdrX2ZyYW1lX3RleHRfc2VhcmNoKToKKyAgICAgICAgKGV3a19mcmFtZV90ZXh0X21hdGNoZXNf
bWFyayk6CisgICAgICAgIChld2tfZnJhbWVfdGV4dF9tYXRjaGVzX3VubWFya19hbGwpOgorICAg
ICAgICAoZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19oaWdobGlnaHRfc2V0KToKKyAgICAgICAgKGV3
a19mcmFtZV90ZXh0X21hdGNoZXNfaGlnaGxpZ2h0X2dldCk6CisgICAgICAgIChfZXdrX2ZyYW1l
X3JlY3RfY21wX2xlc3NfdGhhbik6CisgICAgICAgIChfZXdrX2ZyYW1lX3JlY3RfaXNfbmVnYXRp
dmVfdmFsdWUpOgorICAgICAgICAoZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19udGhfcG9zX2dldCk6
CisgICAgICAgIChld2tfZnJhbWVfc3RvcCk6CisgICAgICAgIChld2tfZnJhbWVfcmVsb2FkKToK
KyAgICAgICAgKGV3a19mcmFtZV9yZWxvYWRfZnVsbCk6CisgICAgICAgIChld2tfZnJhbWVfYmFj
ayk6CisgICAgICAgIChld2tfZnJhbWVfZm9yd2FyZCk6CisgICAgICAgIChld2tfZnJhbWVfbmF2
aWdhdGUpOgorICAgICAgICAoZXdrX2ZyYW1lX2JhY2tfcG9zc2libGUpOgorICAgICAgICAoZXdr
X2ZyYW1lX2ZvcndhcmRfcG9zc2libGUpOgorICAgICAgICAoZXdrX2ZyYW1lX25hdmlnYXRlX3Bv
c3NpYmxlKToKKyAgICAgICAgKGV3a19mcmFtZV96b29tX2dldCk6CisgICAgICAgIChld2tfZnJh
bWVfem9vbV9zZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3pvb21fdGV4dF9vbmx5X2dldCk6Cisg
ICAgICAgIChld2tfZnJhbWVfem9vbV90ZXh0X29ubHlfc2V0KToKKyAgICAgICAgKGV3a19mcmFt
ZV9oaXRfdGVzdF9mcmVlKToKKyAgICAgICAgKGV3a19mcmFtZV9oaXRfdGVzdF9uZXcpOgorICAg
ICAgICAoZXdrX2ZyYW1lX3Njcm9sbF9hZGQpOgorICAgICAgICAoZXdrX2ZyYW1lX3Njcm9sbF9z
ZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3Njcm9sbF9zaXplX2dldCk6CisgICAgICAgIChld2tf
ZnJhbWVfc2Nyb2xsX3Bvc19nZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3Zpc2libGVfY29udGVu
dF9nZW9tZXRyeV9nZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3BhaW50X2Z1bGxfZ2V0KToKKyAg
ICAgICAgKGV3a19mcmFtZV9wYWludF9mdWxsX3NldCk6CisgICAgICAgIChld2tfZnJhbWVfZmVl
ZF9mb2N1c19pbik6CisgICAgICAgIChld2tfZnJhbWVfZmVlZF9mb2N1c19vdXQpOgorICAgICAg
ICAoZXdrX2ZyYW1lX2ZlZWRfbW91c2Vfd2hlZWwpOgorICAgICAgICAoZXdrX2ZyYW1lX2ZlZWRf
bW91c2VfZG93bik6CisgICAgICAgIChld2tfZnJhbWVfZmVlZF9tb3VzZV91cCk6CisgICAgICAg
IChld2tfZnJhbWVfZmVlZF9tb3VzZV9tb3ZlKToKKyAgICAgICAgKGV3a19mcmFtZV9mZWVkX3Rv
dWNoX2V2ZW50KToKKyAgICAgICAgKF9ld2tfZnJhbWVfaGFuZGxlX2tleV9zY3JvbGxpbmcpOgor
ICAgICAgICAoZXdrX2ZyYW1lX2ZlZWRfa2V5X2Rvd24pOgorICAgICAgICAoZXdrX2ZyYW1lX2Zl
ZWRfa2V5X3VwKToKKyAgICAgICAgKGV3a19mcmFtZV90ZXh0X3NlbGVjdGlvbl90eXBlX2dldCk6
CisgICAgICAgIChld2tfZnJhbWVfYWRkKToKKyAgICAgICAgKGV3a19mcmFtZV9pbml0KToKKyAg
ICAgICAgKGV3a19mcmFtZV9jaGlsZF9hZGQpOgorICAgICAgICAoZXdrX2ZyYW1lX2NvcmVfZ29u
ZSk6CisgICAgICAgIChld2tfZnJhbWVfY29yZV9nZXQpOgorICAgICAgICAoZXdrX2ZyYW1lX2xv
YWRfc3RhcnRlZCk6CisgICAgICAgIChld2tfZnJhbWVfbG9hZF9wcm92aXNpb25hbCk6CisgICAg
ICAgIChld2tfZnJhbWVfbG9hZF9maW5pc2hlZCk6CisgICAgICAgIChld2tfZnJhbWVfbG9hZF9l
cnJvcik6CisgICAgICAgIChld2tfZnJhbWVfbG9hZF9wcm9ncmVzc19jaGFuZ2VkKToKKyAgICAg
ICAgKGV3a19mcmFtZV9jb250ZW50c19zaXplX2NoYW5nZWQpOgorICAgICAgICAoZXdrX2ZyYW1l
X3RpdGxlX3NldCk6CisgICAgICAgIChld2tfZnJhbWVfdmlld19jcmVhdGVfZm9yX3ZpZXcpOgor
ICAgICAgICAoZXdrX2ZyYW1lX3VyaV9jaGFuZ2VkKToKKyAgICAgICAgKGV3a19mcmFtZV9mb3Jj
ZV9sYXlvdXQpOgorICAgICAgICAoZXdrX2ZyYW1lX3BsdWdpbl9jcmVhdGUpOgorICAgICAgICAo
ZXdrX2ZyYW1lX2VkaXRvcl9jbGllbnRfc2VsZWN0aW9uX2NoYW5nZWQpOgorICAgICAgICAqIGV3
ay9ld2tfZnJhbWUuaDoKKwogMjAxMS0wNy0yNiAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2lt
QHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEZpeCBwb2ludGVyIG9wZXJhdG9yIGNvZGlu
ZyBzdHlsZSBpbiBld2tfdmlldy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXgg
MDU3MDk0MC4uY2I1NjE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19m
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTU5
LDE1ICs1OSwxNSBAQCBzdGF0aWMgY29uc3QgY2hhciBFV0tfRlJBTUVfVFlQRV9TVFJbXSA9ICJF
V0tfRnJhbWUiOwogCiBzdHJ1Y3QgRXdrX0ZyYW1lX1NtYXJ0X0RhdGEgewogICAgIEV2YXNfT2Jq
ZWN0X1NtYXJ0X0NsaXBwZWRfRGF0YSBiYXNlOwotICAgIEV2YXNfT2JqZWN0KiBzZWxmOwotICAg
IEV2YXNfT2JqZWN0KiB2aWV3OworICAgIEV2YXNfT2JqZWN0ICpzZWxmOworICAgIEV2YXNfT2Jq
ZWN0ICp2aWV3OwogI2lmZGVmIEVXS19GUkFNRV9ERUJVRwotICAgIEV2YXNfT2JqZWN0KiByZWdp
b247CisgICAgRXZhc19PYmplY3QgKnJlZ2lvbjsKICNlbmRpZgotICAgIFdlYkNvcmU6OkZyYW1l
KiBmcmFtZTsKLSAgICBjb25zdCBjaGFyKiB0aXRsZTsKLSAgICBjb25zdCBjaGFyKiB1cmk7Ci0g
ICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBXZWJDb3JlOjpGcmFtZSAqZnJhbWU7CisgICAgY29u
c3QgY2hhciAqdGl0bGU7CisgICAgY29uc3QgY2hhciAqdXJpOworICAgIGNvbnN0IGNoYXIgKm5h
bWU7CiAgICAgc3RydWN0IHsKICAgICAgICAgRXZhc19Db29yZCB3LCBoOwogICAgIH0gY29udGVu
dHNfc2l6ZTsKQEAgLTc3LDcgKzc3LDcgQEAgc3RydWN0IEV3a19GcmFtZV9TbWFydF9EYXRhIHsK
IAogc3RydWN0IEVpbmFfSXRlcmF0b3JfRXdrX0ZyYW1lIHsKICAgICBFaW5hX0l0ZXJhdG9yIGJh
c2U7Ci0gICAgRXZhc19PYmplY3QqIG9iajsKKyAgICBFdmFzX09iamVjdCAqb2JqOwogICAgIHVu
c2lnbmVkIGN1cnJlbnRJbmRleDsKIH07CiAKQEAgLTg2LDcgKzg2LDcgQEAgc3RydWN0IEVpbmFf
SXRlcmF0b3JfRXdrX0ZyYW1lIHsKICNlbHNlCiAjZGVmaW5lIEVXS19GUkFNRV9UWVBFX0NIRUNL
KG8sIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgZG8geyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgICAgIGNvbnN0IGNoYXIqIF90bXBfb3R5cGUgPSBldmFzX29iamVjdF90eXBl
X2dldChvKTsgICAgICAgICAgICAgICBcCisgICAgICAgIGNvbnN0IGNoYXIgKl90bXBfb3R5cGUg
PSBldmFzX29iamVjdF90eXBlX2dldChvKTsgICAgICAgICAgICAgICBcCiAgICAgICAgIGlmIChF
SU5BX1VOTElLRUxZKF90bXBfb3R5cGUgIT0gRVdLX0ZSQU1FX1RZUEVfU1RSKSkgeyAgICAgICAg
ICBcCiAgICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKCIlcCAoJXMpIGlzIG5vdCBv
ZiBhbiBld2tfZnJhbWUhIiwgbywgICAgICAgICAgICAgICAgICBcCkBAIC05Nyw3ICs5Nyw3IEBA
IHN0cnVjdCBFaW5hX0l0ZXJhdG9yX0V3a19GcmFtZSB7CiAjZW5kaWYKIAogI2RlZmluZSBFV0tf
RlJBTUVfU0RfR0VUKG8sIHB0cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBFd2tfRnJhbWVfU21hcnRfRGF0YSogcHRyID0gKEV3a19GcmFtZV9TbWFydF9EYXRhKilldmFz
X29iamVjdF9zbWFydF9kYXRhX2dldChvKQorICAgIEV3a19GcmFtZV9TbWFydF9EYXRhICpwdHIg
PSAoRXdrX0ZyYW1lX1NtYXJ0X0RhdGEgKilldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChvKQog
CiAjZGVmaW5lIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHB0ciwgLi4uKSAgICAgICAg
IFwKICAgICBFV0tfRlJBTUVfVFlQRV9DSEVDSyhvLCBfX1ZBX0FSR1NfXyk7ICAgICAgICAgICAg
ICAgXApAQCAtMTExLDkgKzExMSw5IEBAIHN0cnVjdCBFaW5hX0l0ZXJhdG9yX0V3a19GcmFtZSB7
CiBzdGF0aWMgRXZhc19TbWFydF9DbGFzcyBfcGFyZW50X3NjID0gRVZBU19TTUFSVF9DTEFTU19J
TklUX05VTEw7CiAKICNpZmRlZiBFV0tfRlJBTUVfREVCVUcKLXN0YXRpYyBpbmxpbmUgdm9pZCBf
ZXdrX2ZyYW1lX2RlYnVnKEV2YXNfT2JqZWN0KiBvKQorc3RhdGljIGlubGluZSB2b2lkIF9ld2tf
ZnJhbWVfZGVidWcoRXZhc19PYmplY3QgKm8pCiB7Ci0gICAgRXZhc19PYmplY3QqIGNsaXAsICpw
YXJlbnQ7CisgICAgRXZhc19PYmplY3QgKmNsaXAsICpwYXJlbnQ7CiAgICAgRXZhc19Db29yZCB4
LCB5LCB3LCBoLCBjeCwgY3ksIGN3LCBjaDsKICAgICBpbnQgciwgZywgYiwgYSwgY3IsIGNnLCBj
YiwgY2E7CiAKQEAgLTEzNiwyMiArMTM2LDIyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX2Zy
YW1lX2RlYnVnKEV2YXNfT2JqZWN0KiBvKQogfQogI2VuZGlmCiAKLXN0YXRpYyBXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEVmbCogX2V3a19mcmFtZV9sb2FkZXJfZWZsX2dldChXZWJDb3JlOjpG
cmFtZSogZnJhbWUpCitzdGF0aWMgV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmwgKl9ld2tf
ZnJhbWVfbG9hZGVyX2VmbF9nZXQoV2ViQ29yZTo6RnJhbWUgKmZyYW1lKQogewogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbCo+KGZyYW1lLT5sb2Fk
ZXIoKS0+Y2xpZW50KCkpOwogfQogCi1zdGF0aWMgaW5saW5lIEV2YXNfT2JqZWN0KiBraXQoV2Vi
Q29yZTo6RnJhbWUqIGZyYW1lKQorc3RhdGljIGlubGluZSBFdmFzX09iamVjdCAqa2l0KFdlYkNv
cmU6OkZyYW1lICpmcmFtZSkKIHsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gMDsK
LSAgICBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbCogZmwgPSBfZXdrX2ZyYW1lX2xvYWRl
cl9lZmxfZ2V0KGZyYW1lKTsKKyAgICBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbCAqZmwg
PSBfZXdrX2ZyYW1lX2xvYWRlcl9lZmxfZ2V0KGZyYW1lKTsKICAgICBpZiAoIWZsKQogICAgICAg
ICByZXR1cm4gMDsKICAgICByZXR1cm4gZmwtPndlYkZyYW1lKCk7CiB9CiAKLXN0YXRpYyBFaW5h
X0Jvb2wgX2V3a19mcmFtZV9jaGlsZHJlbl9pdGVyYXRvcl9uZXh0KEVpbmFfSXRlcmF0b3JfRXdr
X0ZyYW1lKiBpdCwgRXZhc19PYmplY3QqKiBkYXRhKQorc3RhdGljIEVpbmFfQm9vbCBfZXdrX2Zy
YW1lX2NoaWxkcmVuX2l0ZXJhdG9yX25leHQoRWluYV9JdGVyYXRvcl9Fd2tfRnJhbWUgKml0LCBF
dmFzX09iamVjdCAqKmRhdGEpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oaXQt
Pm9iaiwgc2QsIEVJTkFfRkFMU0UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChzZC0+ZnJhbWUsIEVJTkFfRkFMU0UpOwpAQCAtMTY3LDEyICsxNjcsMTIgQEAgc3RhdGljIEVp
bmFfQm9vbCBfZXdrX2ZyYW1lX2NoaWxkcmVuX2l0ZXJhdG9yX25leHQoRWluYV9JdGVyYXRvcl9F
d2tfRnJhbWUqIGl0LAogICAgIHJldHVybiBFSU5BX0ZBTFNFOwogfQogCi1zdGF0aWMgRXZhc19P
YmplY3QqIF9ld2tfZnJhbWVfY2hpbGRyZW5faXRlcmF0b3JfZ2V0X2NvbnRhaW5lcihFaW5hX0l0
ZXJhdG9yX0V3a19GcmFtZSogaXQpCitzdGF0aWMgRXZhc19PYmplY3QgKl9ld2tfZnJhbWVfY2hp
bGRyZW5faXRlcmF0b3JfZ2V0X2NvbnRhaW5lcihFaW5hX0l0ZXJhdG9yX0V3a19GcmFtZSAqaXQp
CiB7CiAgICAgcmV0dXJuIGl0LT5vYmo7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfZnJhbWVfc21h
cnRfYWRkKEV2YXNfT2JqZWN0KiBvKQorc3RhdGljIHZvaWQgX2V3a19mcmFtZV9zbWFydF9hZGQo
RXZhc19PYmplY3QgKm8pCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVChvLCBzZCk7CiAKQEAgLTIy
OCwxNCArMjI4LDE0IEBAIHN0YXRpYyB2b2lkIF9ld2tfZnJhbWVfc21hcnRfYWRkKEV2YXNfT2Jq
ZWN0KiBvKQogI2VuZGlmCiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfZnJhbWVfc21hcnRfZGVsKEV2
YXNfT2JqZWN0KiBvKQorc3RhdGljIHZvaWQgX2V3a19mcmFtZV9zbWFydF9kZWwoRXZhc19PYmpl
Y3QgKm8pCiB7CiAgICAgV1JOKCJvPSVwIiwgbyk7IC8vIFhYWCBSRU1PVkUgTUUgTEFURVIKICAg
ICBFV0tfRlJBTUVfU0RfR0VUKG8sIHNkKTsKIAogICAgIGlmIChzZCkgewogICAgICAgICBpZiAo
c2QtPmZyYW1lKSB7Ci0gICAgICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbCog
ZmxjID0gX2V3a19mcmFtZV9sb2FkZXJfZWZsX2dldChzZC0+ZnJhbWUpOworICAgICAgICAgICAg
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmwgKmZsYyA9IF9ld2tfZnJhbWVfbG9hZGVyX2Vm
bF9nZXQoc2QtPmZyYW1lKTsKICAgICAgICAgICAgIGZsYy0+c2V0V2ViRnJhbWUoMCk7CiAgICAg
ICAgICAgICBzZC0+ZnJhbWUtPmxvYWRlcigpLT5jYW5jZWxBbmRDbGVhcigpOwogICAgICAgICAg
ICAgc2QtPmZyYW1lID0gMDsKQEAgLTI0OSw3ICsyNDksNyBAQCBzdGF0aWMgdm9pZCBfZXdrX2Zy
YW1lX3NtYXJ0X2RlbChFdmFzX09iamVjdCogbykKICAgICBfcGFyZW50X3NjLmRlbChvKTsKIH0K
IAotc3RhdGljIHZvaWQgX2V3a19mcmFtZV9zbWFydF9yZXNpemUoRXZhc19PYmplY3QqIG8sIEV2
YXNfQ29vcmQgdywgRXZhc19Db29yZCBoKQorc3RhdGljIHZvaWQgX2V3a19mcmFtZV9zbWFydF9y
ZXNpemUoRXZhc19PYmplY3QgKm8sIEV2YXNfQ29vcmQgdywgRXZhc19Db29yZCBoKQogewogICAg
IEVXS19GUkFNRV9TRF9HRVQobywgc2QpOwogICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShzZC0+YmFz
ZS5jbGlwcGVyLCB3LCBoKTsKQEAgLTI2NCw3ICsyNjQsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX2Zy
YW1lX3NtYXJ0X3Jlc2l6ZShFdmFzX09iamVjdCogbywgRXZhc19Db29yZCB3LCBFdmFzX0Nvb3Jk
IGgpCiAjZW5kaWYKIH0KIAotc3RhdGljIHZvaWQgX2V3a19mcmFtZV9zbWFydF9zZXQoRXZhc19T
bWFydF9DbGFzcyogYXBpKQorc3RhdGljIHZvaWQgX2V3a19mcmFtZV9zbWFydF9zZXQoRXZhc19T
bWFydF9DbGFzcyAqYXBpKQogewogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NsaXBwZWRfc21hcnRf
c2V0KGFwaSk7CiAgICAgYXBpLT5hZGQgPSBfZXdrX2ZyYW1lX3NtYXJ0X2FkZDsKQEAgLTI3Miwx
MCArMjcyLDEwIEBAIHN0YXRpYyB2b2lkIF9ld2tfZnJhbWVfc21hcnRfc2V0KEV2YXNfU21hcnRf
Q2xhc3MqIGFwaSkKICAgICBhcGktPnJlc2l6ZSA9IF9ld2tfZnJhbWVfc21hcnRfcmVzaXplOwog
fQogCi1zdGF0aWMgaW5saW5lIEV2YXNfU21hcnQqIF9ld2tfZnJhbWVfc21hcnRfY2xhc3NfbmV3
KHZvaWQpCitzdGF0aWMgaW5saW5lIEV2YXNfU21hcnQgKl9ld2tfZnJhbWVfc21hcnRfY2xhc3Nf
bmV3KHZvaWQpCiB7CiAgICAgc3RhdGljIEV2YXNfU21hcnRfQ2xhc3Mgc2MgPSBFVkFTX1NNQVJU
X0NMQVNTX0lOSVRfTkFNRV9WRVJTSU9OKEVXS19GUkFNRV9UWVBFX1NUUik7Ci0gICAgc3RhdGlj
IEV2YXNfU21hcnQqIHNtYXJ0ID0gMDsKKyAgICBzdGF0aWMgRXZhc19TbWFydCAqc21hcnQgPSAw
OwogCiAgICAgaWYgKEVJTkFfVU5MSUtFTFkoIXNtYXJ0KSkgewogICAgICAgICBldmFzX29iamVj
dF9zbWFydF9jbGlwcGVkX3NtYXJ0X3NldCgmX3BhcmVudF9zYyk7CkBAIC0yOTMsNyArMjkzLDcg
QEAgc3RhdGljIGlubGluZSBFdmFzX1NtYXJ0KiBfZXdrX2ZyYW1lX3NtYXJ0X2NsYXNzX25ldyh2
b2lkKQogICoKICAqIEByZXR1cm4gdmlldyBvYmplY3Qgb3IgQGMgMCBvbiBmYWlsdXJlCiAgKi8K
LUV2YXNfT2JqZWN0KiBld2tfZnJhbWVfdmlld19nZXQoY29uc3QgRXZhc19PYmplY3QqIG8pCitF
dmFzX09iamVjdCAqZXdrX2ZyYW1lX3ZpZXdfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKQogewog
ICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCAwKTsKICAgICByZXR1cm4gc2Qt
PnZpZXc7CkBAIC0zMTIsMTMgKzMxMiwxMyBAQCBFdmFzX09iamVjdCogZXdrX2ZyYW1lX3ZpZXdf
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBvKQogICoKICAqIEBwYXJhbSBvIGZyYW1lIG9iamVjdCB0
byBjcmVhdGUgdGhlIGl0ZXJhdG9yCiAgKgotICogQHJldHVybiBhIG5ld2x5IGFsbG9jYXRlZCBp
dGVyYXRvciBvbiBzdWNlc3MsIG9yIEBjIDAgaWYgbm90IHBvc3NpYmxlIHRvIAorICogQHJldHVy
biBhIG5ld2x5IGFsbG9jYXRlZCBpdGVyYXRvciBvbiBzdWNlc3MsIG9yIEBjIDAgaWYgbm90IHBv
c3NpYmxlIHRvCiAgKiAgICAgIGNyZWF0ZSB0aGUgaXRlcmF0b3IKICAqLwotRWluYV9JdGVyYXRv
ciogZXdrX2ZyYW1lX2NoaWxkcmVuX2l0ZXJhdG9yX25ldyhFdmFzX09iamVjdCogbykKK0VpbmFf
SXRlcmF0b3IgKmV3a19mcmFtZV9jaGlsZHJlbl9pdGVyYXRvcl9uZXcoRXZhc19PYmplY3QgKm8p
CiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIDApOwotICAgIEVpbmFf
SXRlcmF0b3JfRXdrX0ZyYW1lKiBpdCA9IChFaW5hX0l0ZXJhdG9yX0V3a19GcmFtZSopCisgICAg
RWluYV9JdGVyYXRvcl9Fd2tfRnJhbWUgKml0ID0gKEVpbmFfSXRlcmF0b3JfRXdrX0ZyYW1lICop
CiAgICAgICAgIGNhbGxvYygxLCBzaXplb2YoRWluYV9JdGVyYXRvcl9Fd2tfRnJhbWUpKTsKICAg
ICBpZiAoIWl0KQogICAgICAgICByZXR1cm4gMDsKQEAgLTM1MSw3ICszNTEsNyBAQCBFaW5hX0l0
ZXJhdG9yKiBld2tfZnJhbWVfY2hpbGRyZW5faXRlcmF0b3JfbmV3KEV2YXNfT2JqZWN0KiBvKQog
ICoKICAqIEByZXR1cm4gY2hpbGQgZnJhbWUgb2YgdGhlIGdpdmVuIGZyYW1lLCBvciBAYyAwIGlm
IHRoZSB0aGUgY2hpbGQgd2Fzbid0IGZvdW5kCiAgKi8KLUV2YXNfT2JqZWN0KiBld2tfZnJhbWVf
Y2hpbGRfZmluZChFdmFzX09iamVjdCogbywgY29uc3QgY2hhciogbmFtZSkKK0V2YXNfT2JqZWN0
ICpld2tfZnJhbWVfY2hpbGRfZmluZChFdmFzX09iamVjdCAqbywgY29uc3QgY2hhciAqbmFtZSkK
IHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgMCk7CiAgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG5hbWUsIDApOwpAQCAtMzY4LDEyICszNjgsMTIgQEAg
RXZhc19PYmplY3QqIGV3a19mcmFtZV9jaGlsZF9maW5kKEV2YXNfT2JqZWN0KiBvLCBjb25zdCBj
aGFyKiBuYW1lKQogICoKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3MsIG9yIEBj
IEVJTkFfRkFMU0Ugb24gZmFpbHVyZQogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX3VyaV9zZXQo
RXZhc19PYmplY3QqIG8sIGNvbnN0IGNoYXIqIHVyaSkKK0VpbmFfQm9vbCBld2tfZnJhbWVfdXJp
X3NldChFdmFzX09iamVjdCAqbywgY29uc3QgY2hhciAqdXJpKQogewogICAgIEVXS19GUkFNRV9T
RF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBXZWJDb3JlOjpLVVJMIGt1
cmwoV2ViQ29yZTo6S1VSTCgpLCBXVEY6OlN0cmluZzo6ZnJvbVVURjgodXJpKSk7CiAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcShrdXJsKTsKLSAgICBXZWJDb3JlOjpGcmFtZUxvYWRl
ciogbG9hZGVyID0gc2QtPmZyYW1lLT5sb2FkZXIoKTsKKyAgICBXZWJDb3JlOjpGcmFtZUxvYWRl
ciAqbG9hZGVyID0gc2QtPmZyYW1lLT5sb2FkZXIoKTsKICAgICBsb2FkZXItPmxvYWQocmVxLCBm
YWxzZSk7CiAgICAgcmV0dXJuIEVJTkFfVFJVRTsKIH0KQEAgLTM4OCw3ICszODgsNyBAQCBFaW5h
X0Jvb2wgZXdrX2ZyYW1lX3VyaV9zZXQoRXZhc19PYmplY3QqIG8sIGNvbnN0IGNoYXIqIHVyaSkK
ICAqCiAgKiBAcmV0dXJuIGZyYW1lIHVyaSBvbiBzdWNjZXNzIG9yIEBjIDAgb24gZmFpbHVyZQog
ICovCi1jb25zdCBjaGFyKiBld2tfZnJhbWVfdXJpX2dldChjb25zdCBFdmFzX09iamVjdCogbykK
K2NvbnN0IGNoYXIgKmV3a19mcmFtZV91cmlfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKQogewog
ICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCAwKTsKICAgICByZXR1cm4gc2Qt
PnVyaTsKQEAgLTQwNCw3ICs0MDQsNyBAQCBjb25zdCBjaGFyKiBld2tfZnJhbWVfdXJpX2dldChj
b25zdCBFdmFzX09iamVjdCogbykKICAqCiAgKiBAcmV0dXJuIGZyYW1lIHRpdGxlIG9uIHN1Y2Nl
c3Mgb3IgQGMgMCBvbiBmYWlsdXJlCiAgKi8KLWNvbnN0IGNoYXIqIGV3a19mcmFtZV90aXRsZV9n
ZXQoY29uc3QgRXZhc19PYmplY3QqIG8pCitjb25zdCBjaGFyICpld2tfZnJhbWVfdGl0bGVfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0ICpvKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJO
KG8sIHNkLCAwKTsKICAgICByZXR1cm4gc2QtPnRpdGxlOwpAQCAtNDIwLDcgKzQyMCw3IEBAIGNv
bnN0IGNoYXIqIGV3a19mcmFtZV90aXRsZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIG8pCiAgKgog
ICogQHJldHVybiBmcmFtZSBuYW1lIG9uIHN1Y2Nlc3Mgb3IgQGMgMCBvbiBmYWlsdXJlCiAgKi8K
LWNvbnN0IGNoYXIqIGV3a19mcmFtZV9uYW1lX2dldChjb25zdCBFdmFzX09iamVjdCogbykKK2Nv
bnN0IGNoYXIgKmV3a19mcmFtZV9uYW1lX2dldChjb25zdCBFdmFzX09iamVjdCAqbykKIHsKICAg
ICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgMCk7CiAKQEAgLTQ0OCw3ICs0NDgs
NyBAQCBjb25zdCBjaGFyKiBld2tfZnJhbWVfbmFtZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIG8p
CiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24g
ZmFpbHVyZSBhbmQKICAqICAgICAgICAgQGEgdyBhbmQgQGEgaCB3aWxsIGJlIHplcm9lZAogICov
Ci1FaW5hX0Jvb2wgZXdrX2ZyYW1lX2NvbnRlbnRzX3NpemVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0
KiBvLCBFdmFzX0Nvb3JkKiB3LCBFdmFzX0Nvb3JkKiBoKQorRWluYV9Cb29sIGV3a19mcmFtZV9j
b250ZW50c19zaXplX2dldChjb25zdCBFdmFzX09iamVjdCAqbywgRXZhc19Db29yZCAqdywgRXZh
c19Db29yZCAqaCkKIHsKICAgICBpZiAodykKICAgICAgICAgKncgPSAwOwpAQCAtNDYyLDcgKzQ2
Miw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfY29udGVudHNfc2l6ZV9nZXQoY29uc3QgRXZhc19P
YmplY3QqIG8sIEV2YXNfQ29vcmQqIHcsIEV2YXNfCiAgICAgcmV0dXJuIEVJTkFfVFJVRTsKIH0K
IAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX2ZyYW1lX2NvbnRlbnRzX3NldF9pbnRlcm5hbChFd2tf
RnJhbWVfU21hcnRfRGF0YSAqc2QsIGNvbnN0IGNoYXIqIGNvbnRlbnRzLCBzaXplX3QgY29udGVu
dHNfc2l6ZSwgY29uc3QgY2hhciogbWltZV90eXBlLCBjb25zdCBjaGFyKiBlbmNvZGluZywgY29u
c3QgY2hhciogYmFzZV91cmksIGNvbnN0IGNoYXIqIHVucmVhY2hhYmxlX3VyaSkKK3N0YXRpYyBF
aW5hX0Jvb2wgX2V3a19mcmFtZV9jb250ZW50c19zZXRfaW50ZXJuYWwoRXdrX0ZyYW1lX1NtYXJ0
X0RhdGEgKnNkLCBjb25zdCBjaGFyICpjb250ZW50cywgc2l6ZV90IGNvbnRlbnRzX3NpemUsIGNv
bnN0IGNoYXIgKm1pbWVfdHlwZSwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGNvbnN0IGNoYXIgKmJh
c2VfdXJpLCBjb25zdCBjaGFyICp1bnJlYWNoYWJsZV91cmkpCiB7CiAgICAgc2l6ZV90IGxlbiA9
IHN0cmxlbihjb250ZW50cyk7CiAgICAgaWYgKGNvbnRlbnRzX3NpemUgPCAxIHx8IGNvbnRlbnRz
X3NpemUgPiBsZW4pCkBAIC01MDcsNyArNTA3LDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX2Zy
YW1lX2NvbnRlbnRzX3NldF9pbnRlcm5hbChFd2tfRnJhbWVfU21hcnRfRGF0YSAqc2QsIGNvbnMK
ICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzZnVsIHJlcXVlc3QsIEBjIEVJ
TkFfRkFMU0Ugb24gZXJyb3JzCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJhbWVfY29udGVudHNfc2V0
KEV2YXNfT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBjb250ZW50cywgc2l6ZV90IGNvbnRlbnRzX3Np
emUsIGNvbnN0IGNoYXIqIG1pbWVfdHlwZSwgY29uc3QgY2hhciogZW5jb2RpbmcsIGNvbnN0IGNo
YXIqIGJhc2VfdXJpKQorRWluYV9Cb29sIGV3a19mcmFtZV9jb250ZW50c19zZXQoRXZhc19PYmpl
Y3QgKm8sIGNvbnN0IGNoYXIgKmNvbnRlbnRzLCBzaXplX3QgY29udGVudHNfc2l6ZSwgY29uc3Qg
Y2hhciAqbWltZV90eXBlLCBjb25zdCBjaGFyICplbmNvZGluZywgY29uc3QgY2hhciAqYmFzZV91
cmkpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0Up
OwogICAgIEVJTkFfU0FGRVRZX09OX0ZBTFNFX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZB
TFNFKTsKQEAgLTUzNiw3ICs1MzYsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2NvbnRlbnRzX3Nl
dChFdmFzX09iamVjdCogbywgY29uc3QgY2hhciogY29udGVudHMsIHNpemVfdCBjbwogICoKICAq
IEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3NmdWwgcmVxdWVzdCwgQGMgRUlOQV9GQUxT
RSBvbiBlcnJvcnMKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9jb250ZW50c19hbHRlcm5hdGVf
c2V0KEV2YXNfT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBjb250ZW50cywgc2l6ZV90IGNvbnRlbnRz
X3NpemUsIGNvbnN0IGNoYXIqIG1pbWVfdHlwZSwgY29uc3QgY2hhciogZW5jb2RpbmcsIGNvbnN0
IGNoYXIqIGJhc2VfdXJpLCBjb25zdCBjaGFyKiB1bnJlYWNoYWJsZV91cmkpCitFaW5hX0Jvb2wg
ZXdrX2ZyYW1lX2NvbnRlbnRzX2FsdGVybmF0ZV9zZXQoRXZhc19PYmplY3QgKm8sIGNvbnN0IGNo
YXIgKmNvbnRlbnRzLCBzaXplX3QgY29udGVudHNfc2l6ZSwgY29uc3QgY2hhciAqbWltZV90eXBl
LCBjb25zdCBjaGFyICplbmNvZGluZywgY29uc3QgY2hhciAqYmFzZV91cmksIGNvbnN0IGNoYXIg
KnVucmVhY2hhYmxlX3VyaSkKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBz
ZCwgRUlOQV9GQUxTRSk7CiAgICAgRUlOQV9TQUZFVFlfT05fRkFMU0VfUkVUVVJOX1ZBTChzZC0+
ZnJhbWUsIEVJTkFfRkFMU0UpOwpAQCAtNTU1LDcgKzU1NSw3IEBAIEVpbmFfQm9vbCBld2tfZnJh
bWVfY29udGVudHNfYWx0ZXJuYXRlX3NldChFdmFzX09iamVjdCogbywgY29uc3QgY2hhciogY29u
dGVudHMsCiAgKgogICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgcmVxdWVzdCB3YXMgZG9uZSwg
QGMgRUlOQV9GQUxTRSBvbiBlcnJvcnMKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9zY3JpcHRf
ZXhlY3V0ZShFdmFzX09iamVjdCogbywgY29uc3QgY2hhciogc2NyaXB0KQorRWluYV9Cb29sIGV3
a19mcmFtZV9zY3JpcHRfZXhlY3V0ZShFdmFzX09iamVjdCAqbywgY29uc3QgY2hhciAqc2NyaXB0
KQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsK
ICAgICBFSU5BX1NBRkVUWV9PTl9GQUxTRV9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9GQUxT
RSk7CkBAIC01NzEsNyArNTcxLDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9zY3JpcHRfZXhlY3V0
ZShFdmFzX09iamVjdCogbywgY29uc3QgY2hhciogc2NyaXB0KQogICoKICAqIEByZXR1cm4gQGMg
RUlOQV9UUlVFIGlmIHRoZSBmcmFtZSBpcyBlZGl0YWJsZSwgQGMgRUlOQV9GQUxTRSBvdGhlcndp
c2UKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9lZGl0YWJsZV9nZXQoY29uc3QgRXZhc19PYmpl
Y3QqIG8pCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX2VkaXRhYmxlX2dldChjb25zdCBFdmFzX09iamVj
dCAqbykKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxT
RSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9G
QUxTRSk7CkBAIC01ODYsNyArNTg2LDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9lZGl0YWJsZV9n
ZXQoY29uc3QgRXZhc19PYmplY3QqIG8pCiAgKgogICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24g
c3VjY2VzcywgQGMgRUlOQV9GQUxTRSBvdGhlcndpc2UKICAqLwotRWluYV9Cb29sIGV3a19mcmFt
ZV9lZGl0YWJsZV9zZXQoRXZhc19PYmplY3QqIG8sIEVpbmFfQm9vbCBlZGl0YWJsZSkKK0VpbmFf
Qm9vbCBld2tfZnJhbWVfZWRpdGFibGVfc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgZWRp
dGFibGUpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFM
U0UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFf
RkFMU0UpOwpAQCAtNjA3LDcgKzYwNyw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfZWRpdGFibGVf
c2V0KEV2YXNfT2JqZWN0KiBvLCBFaW5hX0Jvb2wgZWRpdGFibGUpCiAgKgogICogQHJldHVybiBh
IG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgb3IgQGMgMCBpZiBub3RoaW5nIGlzIHNlbGVjdGVkIG9y
IG9uIGZhaWx1cmUKICAqLwotY2hhciogZXdrX2ZyYW1lX3NlbGVjdGlvbl9nZXQoY29uc3QgRXZh
c19PYmplY3QqIG8pCitjaGFyICpld2tfZnJhbWVfc2VsZWN0aW9uX2dldChjb25zdCBFdmFzX09i
amVjdCAqbykKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgMCk7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgMCk7CkBAIC02Mjgs
NyArNjI4LDcgQEAgY2hhciogZXdrX2ZyYW1lX3NlbGVjdGlvbl9nZXQoY29uc3QgRXZhc19PYmpl
Y3QqIG8pCiAgKgogICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIGdpdmVuIHN0cmluZyB3
YXMgZm91bmQsIEBjIEVJTkFfRkFMU0UgaWYgbm90IG9yIGZhaWx1cmUKICAqLwotRWluYV9Cb29s
IGV3a19mcmFtZV90ZXh0X3NlYXJjaChjb25zdCBFdmFzX09iamVjdCogbywgY29uc3QgY2hhciog
c3RyaW5nLCBFaW5hX0Jvb2wgY2FzZV9zZW5zaXRpdmUsIEVpbmFfQm9vbCBmb3J3YXJkLCBFaW5h
X0Jvb2wgd3JhcCkKK0VpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9zZWFyY2goY29uc3QgRXZhc19P
YmplY3QgKm8sIGNvbnN0IGNoYXIgKnN0cmluZywgRWluYV9Cb29sIGNhc2Vfc2Vuc2l0aXZlLCBF
aW5hX0Jvb2wgZm9yd2FyZCwgRWluYV9Cb29sIHdyYXApCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dF
VF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFMU0UpOwpAQCAtNjQ4LDcgKzY0OCw3IEBAIEVp
bmFfQm9vbCBld2tfZnJhbWVfdGV4dF9zZWFyY2goY29uc3QgRXZhc19PYmplY3QqIG8sIGNvbnN0
IGNoYXIqIHN0cmluZywgRWluYV9CCiAgKgogICogQHJldHVybiBudW1iZXIgb2YgbWF0Y2hlZCBA
YSBzdHJpbmcKICAqLwotdW5zaWduZWQgaW50IGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbWFyayhF
dmFzX09iamVjdCogbywgY29uc3QgY2hhciogc3RyaW5nLCBFaW5hX0Jvb2wgY2FzZV9zZW5zaXRp
dmUsIEVpbmFfQm9vbCBoaWdobGlnaHQsIHVuc2lnbmVkIGludCBsaW1pdCkKK3Vuc2lnbmVkIGlu
dCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX21hcmsoRXZhc19PYmplY3QgKm8sIGNvbnN0IGNoYXIg
KnN0cmluZywgRWluYV9Cb29sIGNhc2Vfc2Vuc2l0aXZlLCBFaW5hX0Jvb2wgaGlnaGxpZ2h0LCB1
bnNpZ25lZCBpbnQgbGltaXQpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywg
c2QsIDApOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJ
TkFfRkFMU0UpOwpAQCAtNjY2LDcgKzY2Niw3IEBAIHVuc2lnbmVkIGludCBld2tfZnJhbWVfdGV4
dF9tYXRjaGVzX21hcmsoRXZhc19PYmplY3QqIG8sIGNvbnN0IGNoYXIqIHN0cmluZywgRWluCiAg
KgogICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcywgQGMgRUlOQV9GQUxTRSBvbiBm
YWlsdXJlCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX3VubWFya19hbGwo
RXZhc19PYmplY3QqIG8pCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc191bm1hcmtf
YWxsKEV2YXNfT2JqZWN0ICpvKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8s
IHNkLCBFSU5BX0ZBTFNFKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2Qt
PmZyYW1lLCBFSU5BX0ZBTFNFKTsKQEAgLTY4Myw3ICs2ODMsNyBAQCBFaW5hX0Jvb2wgZXdrX2Zy
YW1lX3RleHRfbWF0Y2hlc191bm1hcmtfYWxsKEV2YXNfT2JqZWN0KiBvKQogICoKICAqIEByZXR1
cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3MsIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQogICov
Ci1FaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19oaWdobGlnaHRfc2V0KEV2YXNfT2Jq
ZWN0KiBvLCBFaW5hX0Jvb2wgaGlnaGxpZ2h0KQorRWluYV9Cb29sIGV3a19mcmFtZV90ZXh0X21h
dGNoZXNfaGlnaGxpZ2h0X3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGhpZ2hsaWdodCkK
IHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7
CkBAIC02OTgsMjUgKzY5OCwyNSBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19o
aWdobGlnaHRfc2V0KEV2YXNfT2JqZWN0KiBvLCBFaW5hX0Jvb2wgaGlnaGxpZwogICoKICAqIEBy
ZXR1cm4gQGMgRUlOQV9UUlVFIGlmIG1hdGNoZXMgYXJlIGhpZ2hsaWdodGVkLCBAYyBFSU5BX0ZB
TFNFIG90aGVyd2lzZQogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19oaWdo
bGlnaHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBvKQorRWluYV9Cb29sIGV3a19mcmFtZV90ZXh0
X21hdGNoZXNfaGlnaGxpZ2h0X2dldChjb25zdCBFdmFzX09iamVjdCAqbykKIHsKICAgICBFV0tf
RlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7CiAgICAgcmV0dXJu
IHNkLT5mcmFtZS0+ZWRpdG9yKCktPm1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0ZWQoKTsK
IH0KIAotLyoqIAorLyoqCiAgKiBDb21wYXJpc29uIGZ1bmN0aW9uIHVzZWQgYnkgZXdrX2ZyYW1l
X3RleHRfbWF0Y2hlc19udGhfcG9zX2dldAogICovCi1zdGF0aWMgYm9vbCBfZXdrX2ZyYW1lX3Jl
Y3RfY21wX2xlc3NfdGhhbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBqKQorc3RhdGljIGJvb2wgX2V3a19mcmFtZV9yZWN0X2NtcF9sZXNzX3RoYW4o
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCAmaSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCAmaikKIHsK
ICAgICByZXR1cm4gKGkueSgpIDwgai55KCkgfHwgKGkueSgpID09IGoueSgpICYmIGkueCgpIDwg
ai54KCkpKTsKLX0gICAKLSAgICAKK30KKwogLyoqCiAgKiBQcmVkaWNhdGUgdXNlZCBieSBld2tf
ZnJhbWVfdGV4dF9tYXRjaGVzX250aF9wb3NfZ2V0CiAgKi8KLXN0YXRpYyBib29sIF9ld2tfZnJh
bWVfcmVjdF9pc19uZWdhdGl2ZV92YWx1ZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpKQorc3Rh
dGljIGJvb2wgX2V3a19mcmFtZV9yZWN0X2lzX25lZ2F0aXZlX3ZhbHVlKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QgJmkpCiB7CiAgICAgcmV0dXJuIChpLngoKSA8IDAgfHwgaS55KCkgPCAwKTsKIH0K
QEAgLTcyOSwxMCArNzI5LDEwIEBAIHN0YXRpYyBib29sIF9ld2tfZnJhbWVfcmVjdF9pc19uZWdh
dGl2ZV92YWx1ZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpKQogICogQHBhcmFtIHggdGhlIHBv
aW50ZXIgdG8gc3RvcmUgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgQGEgbiBtYXRjaGVkIHRl
eHQsIG1heSBiZSBAYyAwCiAgKiBAcGFyYW0geSB0aGUgcG9pbnRlciB0byBzdG9yZSB0aGUgdmVy
dGljYWwgcG9zaXRpb24gb2YgQGEgbiBtYXRjaGVkIHRleHQsIG1heSBiZSBAYyAwCiAgKgotICog
QHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcywgQGMgRUlOQV9GQUxTRSB3aGVuIG5vIG1h
dGNoZXMgd2VyZSBmb3VuZCBvciAKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Ms
IEBjIEVJTkFfRkFMU0Ugd2hlbiBubyBtYXRjaGVzIHdlcmUgZm91bmQgb3IKICAqICAgICAgICAg
QGEgbiBpcyBiaWdnZXIgdGhhbiBzZWFyY2ggcmVzdWx0cyBvciBvbiBmYWlsdXJlCiAgKi8KLUVp
bmFfQm9vbCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX250aF9wb3NfZ2V0KEV2YXNfT2JqZWN0KiBv
LCBzaXplX3QgbiwgaW50KiB4LCBpbnQqIHkpCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRfbWF0
Y2hlc19udGhfcG9zX2dldChFdmFzX09iamVjdCAqbywgc2l6ZV90IG4sIGludCAqeCwgaW50ICp5
KQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNF
KTsKQEAgLTc2MSw3ICs3NjEsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRfbWF0Y2hlc19u
dGhfcG9zX2dldChFdmFzX09iamVjdCogbywgc2l6ZV90IG4sIGludCogeCwgaQogICoKICAqIEBy
ZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3MsIEBjIEVJTkFfRkFMU0Ugb3RoZXJ3aXNlCiAg
Ki8KLUVpbmFfQm9vbCBld2tfZnJhbWVfc3RvcChFdmFzX09iamVjdCogbykKK0VpbmFfQm9vbCBl
d2tfZnJhbWVfc3RvcChFdmFzX09iamVjdCAqbykKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09S
X1JFVFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7CkBAIC03NzgsNyArNzc4LDcgQEAgRWluYV9C
b29sIGV3a19mcmFtZV9zdG9wKEV2YXNfT2JqZWN0KiBvKQogICoKICAqIEBzZWUgZXdrX2ZyYW1l
X3JlbG9hZF9mdWxsKCkKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9yZWxvYWQoRXZhc19PYmpl
Y3QqIG8pCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX3JlbG9hZChFdmFzX09iamVjdCAqbykKIHsKICAg
ICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7CkBAIC03
OTMsNyArNzkzLDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9yZWxvYWQoRXZhc19PYmplY3QqIG8p
CiAgKgogICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcywgQGMgRUlOQV9GQUxTRSBv
dGhlcndpc2UKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9yZWxvYWRfZnVsbChFdmFzX09iamVj
dCogbykKK0VpbmFfQm9vbCBld2tfZnJhbWVfcmVsb2FkX2Z1bGwoRXZhc19PYmplY3QgKm8pCiB7
CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOwogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFMU0UpOwpA
QCAtODEwLDcgKzgxMCw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfcmVsb2FkX2Z1bGwoRXZhc19P
YmplY3QqIG8pCiAgKgogICogQHNlZSBld2tfZnJhbWVfbmF2aWdhdGUoKQogICovCi1FaW5hX0Jv
b2wgZXdrX2ZyYW1lX2JhY2soRXZhc19PYmplY3QqIG8pCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX2Jh
Y2soRXZhc19PYmplY3QgKm8pCiB7CiAgICAgcmV0dXJuIGV3a19mcmFtZV9uYXZpZ2F0ZShvLCAt
MSk7CiB9CkBAIC04MjQsNyArODI0LDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9iYWNrKEV2YXNf
T2JqZWN0KiBvKQogICoKICAqIEBzZWUgZXdrX2ZyYW1lX25hdmlnYXRlKCkKICAqLwotRWluYV9C
b29sIGV3a19mcmFtZV9mb3J3YXJkKEV2YXNfT2JqZWN0KiBvKQorRWluYV9Cb29sIGV3a19mcmFt
ZV9mb3J3YXJkKEV2YXNfT2JqZWN0ICpvKQogewogICAgIHJldHVybiBld2tfZnJhbWVfbmF2aWdh
dGUobywgMSk7CiB9CkBAIC04MzgsMTEgKzgzOCwxMSBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2Zv
cndhcmQoRXZhc19PYmplY3QqIG8pCiAgKgogICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3Vj
Y2VzcywgQGMgRUlOQV9GQUxTRSBvdGhlcndpc2UKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9u
YXZpZ2F0ZShFdmFzX09iamVjdCogbywgaW50IHN0ZXBzKQorRWluYV9Cb29sIGV3a19mcmFtZV9u
YXZpZ2F0ZShFdmFzX09iamVjdCAqbywgaW50IHN0ZXBzKQogewogICAgIEVXS19GUkFNRV9TRF9H
RVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsKLSAgICBXZWJDb3JlOjpQYWdlKiBw
YWdlID0gc2QtPmZyYW1lLT5wYWdlKCk7CisgICAgV2ViQ29yZTo6UGFnZSAqcGFnZSA9IHNkLT5m
cmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZS0+Y2FuR29CYWNrT3JGb3J3YXJkKHN0ZXBzKSkK
ICAgICAgICAgcmV0dXJuIEVJTkFfRkFMU0U7CiAgICAgcGFnZS0+Z29CYWNrT3JGb3J3YXJkKHN0
ZXBzKTsKQEAgLTg1OCw3ICs4NTgsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX25hdmlnYXRlKEV2
YXNfT2JqZWN0KiBvLCBpbnQgc3RlcHMpCiAgKgogICogQHNlZSBld2tfZnJhbWVfbmF2aWdhdGVf
cG9zc2libGUoKQogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX2JhY2tfcG9zc2libGUoRXZhc19P
YmplY3QqIG8pCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX2JhY2tfcG9zc2libGUoRXZhc19PYmplY3Qg
Km8pCiB7CiAgICAgcmV0dXJuIGV3a19mcmFtZV9uYXZpZ2F0ZV9wb3NzaWJsZShvLCAtMSk7CiB9
CkBAIC04NzIsNyArODcyLDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9iYWNrX3Bvc3NpYmxlKEV2
YXNfT2JqZWN0KiBvKQogICoKICAqIEBzZWUgZXdrX2ZyYW1lX25hdmlnYXRlX3Bvc3NpYmxlKCkK
ICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9mb3J3YXJkX3Bvc3NpYmxlKEV2YXNfT2JqZWN0KiBv
KQorRWluYV9Cb29sIGV3a19mcmFtZV9mb3J3YXJkX3Bvc3NpYmxlKEV2YXNfT2JqZWN0ICpvKQog
ewogICAgIHJldHVybiBld2tfZnJhbWVfbmF2aWdhdGVfcG9zc2libGUobywgMSk7CiB9CkBAIC04
ODYsNyArODg2LDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9mb3J3YXJkX3Bvc3NpYmxlKEV2YXNf
T2JqZWN0KiBvKQogICoKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIGl0J3MgcG9zc2libGUg
dG8gbmF2aWdhdGUgQGEgc3RlcHMgaW4gdGhlIGhpc3RvcnksIEBjIEVJTkFfRkFMU0Ugb3RoZXJ3
aXNlCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJhbWVfbmF2aWdhdGVfcG9zc2libGUoRXZhc19PYmpl
Y3QqIG8sIGludCBzdGVwcykKK0VpbmFfQm9vbCBld2tfZnJhbWVfbmF2aWdhdGVfcG9zc2libGUo
RXZhc19PYmplY3QgKm8sIGludCBzdGVwcykKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JF
VFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7CkBAIC05MDEsNyArOTAxLDcgQEAgRWluYV9Cb29s
IGV3a19mcmFtZV9uYXZpZ2F0ZV9wb3NzaWJsZShFdmFzX09iamVjdCogbywgaW50IHN0ZXBzKQog
ICoKICAqIEByZXR1cm4gem9vbSBsZXZlbCBmb3IgdGhlIGZyYW1lIG9yIEBjIC0xLjAgb24gZmFp
bHVyZQogICovCi1mbG9hdCBld2tfZnJhbWVfem9vbV9nZXQoY29uc3QgRXZhc19PYmplY3QqIG8p
CitmbG9hdCBld2tfZnJhbWVfem9vbV9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pCiB7CiAgICAg
RVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIC0xLjApOwogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIC0xLjApOwpAQCAtOTIxLDcgKzkyMSw3IEBA
IGZsb2F0IGV3a19mcmFtZV96b29tX2dldChjb25zdCBFdmFzX09iamVjdCogbykKICAqCiAgKiBA
c2VlIGV3a19mcmFtZV96b29tX3RleHRfb25seV9zZXQoKQogICovCi1FaW5hX0Jvb2wgZXdrX2Zy
YW1lX3pvb21fc2V0KEV2YXNfT2JqZWN0KiBvLCBmbG9hdCB6b29tKQorRWluYV9Cb29sIGV3a19m
cmFtZV96b29tX3NldChFdmFzX09iamVjdCAqbywgZmxvYXQgem9vbSkKIHsKICAgICBFV0tfRlJB
TUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7CiAgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7CkBAIC05MzksNyArOTM5
LDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV96b29tX3NldChFdmFzX09iamVjdCogbywgZmxvYXQg
em9vbSkKICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB6b29tIGxldmVsIGlzIGFwcGxp
ZWQgdG8gdGV4dCBvbmx5LCBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWlsdXJlCiAgKi8K
LUVpbmFfQm9vbCBld2tfZnJhbWVfem9vbV90ZXh0X29ubHlfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0
KiBvKQorRWluYV9Cb29sIGV3a19mcmFtZV96b29tX3RleHRfb25seV9nZXQoY29uc3QgRXZhc19P
YmplY3QgKm8pCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFf
RkFMU0UpOwogICAgIHJldHVybiBzZC0+dGV4dFpvb207CkBAIC05NTMsNyArOTUzLDcgQEAgRWlu
YV9Cb29sIGV3a19mcmFtZV96b29tX3RleHRfb25seV9nZXQoY29uc3QgRXZhc19PYmplY3QqIG8p
CiAgKgogICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcywgQGMgRUlOQV9GQUxTRSBv
dGhlcndpc2UKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV96b29tX3RleHRfb25seV9zZXQoRXZh
c19PYmplY3QqIG8sIEVpbmFfQm9vbCBzZXR0aW5nKQorRWluYV9Cb29sIGV3a19mcmFtZV96b29t
X3RleHRfb25seV9zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBzZXR0aW5nKQogewogICAg
IEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsKQEAgLTk3
NCw3ICs5NzQsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3pvb21fdGV4dF9vbmx5X3NldChFdmFz
X09iamVjdCogbywgRWluYV9Cb29sIHNldHRpbmcpCiAgKgogICogQHBhcmFtIGhpdF90ZXN0IGlu
c3RhbmNlCiAgKi8KLXZvaWQgZXdrX2ZyYW1lX2hpdF90ZXN0X2ZyZWUoRXdrX0hpdF9UZXN0KiBo
aXRfdGVzdCkKK3ZvaWQgZXdrX2ZyYW1lX2hpdF90ZXN0X2ZyZWUoRXdrX0hpdF9UZXN0ICpoaXRf
dGVzdCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihoaXRfdGVzdCk7CiAgICAg
ZWluYV9zdHJpbmdzaGFyZV9kZWwoaGl0X3Rlc3QtPnRpdGxlKTsKQEAgLTk5OCw3ICs5OTgsNyBA
QCB2b2lkIGV3a19mcmFtZV9oaXRfdGVzdF9mcmVlKEV3a19IaXRfVGVzdCogaGl0X3Rlc3QpCiAg
KgogICogQHJldHVybiBhIG5ld2x5IGFsbG9jYXRlZCBoaXQgdGVzdCBvbiBzdWNjZXNzLCBAYyAw
IG90aGVyd2lzZQogICovCi1Fd2tfSGl0X1Rlc3QqIGV3a19mcmFtZV9oaXRfdGVzdF9uZXcoY29u
c3QgRXZhc19PYmplY3QqIG8sIGludCB4LCBpbnQgeSkKK0V3a19IaXRfVGVzdCAqZXdrX2ZyYW1l
X2hpdF90ZXN0X25ldyhjb25zdCBFdmFzX09iamVjdCAqbywgaW50IHgsIGludCB5KQogewogICAg
IEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCAwKTsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCAwKTsKQEAgLTEwMTYsNyArMTAxNiw3IEBAIEV3
a19IaXRfVGVzdCogZXdrX2ZyYW1lX2hpdF90ZXN0X25ldyhjb25zdCBFdmFzX09iamVjdCogbywg
aW50IHgsIGludCB5KQogICAgIGlmICghcmVzdWx0LmlubmVyTm9kZSgpKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIEV3a19IaXRfVGVzdCogaGl0X3Rlc3QgPSAoRXdrX0hpdF9UZXN0KiljYWxs
b2MoMSwgc2l6ZW9mKEV3a19IaXRfVGVzdCkpOworICAgIEV3a19IaXRfVGVzdCAqaGl0X3Rlc3Qg
PSAoRXdrX0hpdF9UZXN0ICopY2FsbG9jKDEsIHNpemVvZihFd2tfSGl0X1Rlc3QpKTsKICAgICBp
ZiAoIWhpdF90ZXN0KSB7CiAgICAgICAgIENSSVRJQ0FMKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVt
b3J5IGZvciBoaXQgdGVzdC4iKTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMDgzLDcgKzEwODMs
NyBAQCBFd2tfSGl0X1Rlc3QqIGV3a19mcmFtZV9oaXRfdGVzdF9uZXcoY29uc3QgRXZhc19PYmpl
Y3QqIG8sIGludCB4LCBpbnQgeSkKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Ms
IEBjIEVJTkFfRkFMU0Ugb3RoZXJ3aXNlCiAgKi8KIEVpbmFfQm9vbAotZXdrX2ZyYW1lX3Njcm9s
bF9hZGQoRXZhc19PYmplY3QqIG8sIGludCBkeCwgaW50IGR5KQorZXdrX2ZyYW1lX3Njcm9sbF9h
ZGQoRXZhc19PYmplY3QgKm8sIGludCBkeCwgaW50IGR5KQogewogICAgIEVXS19GUkFNRV9TRF9H
RVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsKQEAgLTExMDUsNyArMTEwNSw3IEBA
IGV3a19mcmFtZV9zY3JvbGxfYWRkKEV2YXNfT2JqZWN0KiBvLCBpbnQgZHgsIGludCBkeSkKICAq
IEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3MsIEBjIEVJTkFfRkFMU0Ugb3RoZXJ3aXNl
CiAgKi8KIEVpbmFfQm9vbAotZXdrX2ZyYW1lX3Njcm9sbF9zZXQoRXZhc19PYmplY3QqIG8sIGlu
dCB4LCBpbnQgeSkKK2V3a19mcmFtZV9zY3JvbGxfc2V0KEV2YXNfT2JqZWN0ICpvLCBpbnQgeCwg
aW50IHkpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFM
U0UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFf
RkFMU0UpOwpAQCAtMTEzMCw3ICsxMTMwLDcgQEAgZXdrX2ZyYW1lX3Njcm9sbF9zZXQoRXZhc19P
YmplY3QqIG8sIGludCB4LCBpbnQgeSkKICAqICAgICAgICAgdmFsdWVzIGFyZSB6ZXJvZWQKICAq
LwogRWluYV9Cb29sCi1ld2tfZnJhbWVfc2Nyb2xsX3NpemVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0
KiBvLCBpbnQqIHcsIGludCogaCkKK2V3a19mcmFtZV9zY3JvbGxfc2l6ZV9nZXQoY29uc3QgRXZh
c19PYmplY3QgKm8sIGludCAqdywgaW50ICpoKQogewogICAgIGlmICh3KQogICAgICAgICAqdyA9
IDA7CkBAIC0xMTU4LDcgKzExNTgsNyBAQCBld2tfZnJhbWVfc2Nyb2xsX3NpemVfZ2V0KGNvbnN0
IEV2YXNfT2JqZWN0KiBvLCBpbnQqIHcsIGludCogaCkKICAqICAgICAgICAgdmFsdWVzIGFyZSB6
ZXJvZWQuCiAgKi8KIEVpbmFfQm9vbAotZXdrX2ZyYW1lX3Njcm9sbF9wb3NfZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBvLCBpbnQqIHgsIGludCogeSkKK2V3a19mcmFtZV9zY3JvbGxfcG9zX2dldChj
b25zdCBFdmFzX09iamVjdCAqbywgaW50ICp4LCBpbnQgKnkpCiB7CiAgICAgaWYgKHgpCiAgICAg
ICAgICp4ID0gMDsKQEAgLTExODgsNyArMTE4OCw3IEBAIGV3a19mcmFtZV9zY3JvbGxfcG9zX2dl
dChjb25zdCBFdmFzX09iamVjdCogbywgaW50KiB4LCBpbnQqIHkpCiAgKiBAcmV0dXJuIEBjIEVJ
TkFfVFJVRSBvbiBzdWNjZXNzLCBAYyBFSU5BX0ZBTFNFIG90aGVyd2lzZSBhbmQKICAqICAgICAg
ICAgdmFsdWVzIGFyZSB6ZXJvZWQKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV92aXNpYmxlX2Nv
bnRlbnRfZ2VvbWV0cnlfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBvLCBFaW5hX0Jvb2wgaW5jbHVk
ZV9zY3JvbGxiYXJzLCBpbnQqIHgsIGludCogeSwgaW50KiB3LCBpbnQqIGgpCitFaW5hX0Jvb2wg
ZXdrX2ZyYW1lX3Zpc2libGVfY29udGVudF9nZW9tZXRyeV9nZXQoY29uc3QgRXZhc19PYmplY3Qg
Km8sIEVpbmFfQm9vbCBpbmNsdWRlX3Njcm9sbGJhcnMsIGludCAqeCwgaW50ICp5LCBpbnQgKncs
IGludCAqaCkKIHsKICAgICBpZiAoeCkKICAgICAgICAgKnggPSAwOwpAQCAtMTIyNCw3ICsxMjI0
LDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV92aXNpYmxlX2NvbnRlbnRfZ2VvbWV0cnlfZ2V0KGNv
bnN0IEV2YXNfT2JqZWN0KiBvLCBFaW5hX0Jvb2wKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlm
IGFueSBkaXJ0eSBhcmVhcyBzaG91bGQgYmUgcmVwYWludGVkLCBAYyBFSU5BX0ZBTFNFCiAgKiAg
ICAgICAgIG90aGVyd2lzZQogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX3BhaW50X2Z1bGxfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0KiBvKQorRWluYV9Cb29sIGV3a19mcmFtZV9wYWludF9mdWxsX2dl
dChjb25zdCBFdmFzX09iamVjdCAqbykKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVS
TihvLCBzZCwgRUlOQV9GQUxTRSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7CkBAIC0xMjQyLDcgKzEyNDIsNyBAQCBFaW5hX0Jvb2wg
ZXdrX2ZyYW1lX3BhaW50X2Z1bGxfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBvKQogICogQHBhcmFt
IGZsYWcgQGMgRUlOQV9UUlVFIHRvIHJlcGFpbnQgdGhlIGZyYW1lIGNvbXBsZXRlbHksCiAgKiAg
ICAgICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdAogICovCi12b2lkIGV3a19mcmFtZV9wYWlu
dF9mdWxsX3NldChFdmFzX09iamVjdCogbywgRWluYV9Cb29sIGZsYWcpCit2b2lkIGV3a19mcmFt
ZV9wYWludF9mdWxsX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGZsYWcpCiB7CiAgICAg
RVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QpOwogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOKHNkLT5mcmFtZSk7CkBAIC0xMjU3LDcgKzEyNTcsNyBAQCB2b2lkIGV3a19mcmFt
ZV9wYWludF9mdWxsX3NldChFdmFzX09iamVjdCogbywgRWluYV9Cb29sIGZsYWcpCiAgKgogICog
QHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIGZvY3VzIHdhcyBoYW5kbGVkLCBAYyBFSU5BX0ZB
TFNFIG90aGVyd2lzZQogICovCi1FaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfZm9jdXNfaW4oRXZh
c19PYmplY3QqIG8pCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfZm9jdXNfaW4oRXZhc19PYmpl
Y3QgKm8pCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFM
U0UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFf
RkFMU0UpOwpAQCAtMTI3Myw3ICsxMjczLDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX2Zv
Y3VzX2luKEV2YXNfT2JqZWN0KiBvKQogICoKICAqIEByZXR1cm4gQGMgRUlOQV9GQUxTRSBzaW5j
ZSB0aGUgZmVhdHVyZSBpcyBub3QgaW1wbGVtZW50ZWQKICAqLwotRWluYV9Cb29sIGV3a19mcmFt
ZV9mZWVkX2ZvY3VzX291dChFdmFzX09iamVjdCogbykKK0VpbmFfQm9vbCBld2tfZnJhbWVfZmVl
ZF9mb2N1c19vdXQoRXZhc19PYmplY3QgKm8pCiB7CiAgICAgLy8gVE9ETzogd2hhdCB0byBkbyBv
biBmb2N1cyBvdXQ/CiAgICAgRVJSKCJ3aGF0IHRvIGRvPyIpOwpAQCAtMTI4OCw3ICsxMjg4LDcg
QEAgRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX2ZvY3VzX291dChFdmFzX09iamVjdCogbykKICAq
CiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUgbW91c2Ugd2hlZWwgZXZlbnQgd2FzIGhh
bmRsZWQsIEBjIEVJTkFfRkFMU0Ugb3RoZXJ3aXNlCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJhbWVf
ZmVlZF9tb3VzZV93aGVlbChFdmFzX09iamVjdCogbywgY29uc3QgRXZhc19FdmVudF9Nb3VzZV9X
aGVlbCogZXYpCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfbW91c2Vfd2hlZWwoRXZhc19PYmpl
Y3QgKm8sIGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfV2hlZWwgKmV2KQogewogICAgIEVXS19GUkFN
RV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNFKTsKQEAgLTEzMTEsNyArMTMx
MSw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9tb3VzZV93aGVlbChFdmFzX09iamVjdCog
bywgY29uc3QgRXZhc19FdmVudF9Nb3VzZV9XaGVlCiAgKgogICogQHJldHVybiBAYyBFSU5BX1RS
VUUgaWYgdGhlIG1vdXNlIGRvd24gZXZlbnQgd2FzIGhhbmRsZWQsIEBjIEVJTkFfRkFMU0Ugb3Ro
ZXJ3aXNlCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9tb3VzZV9kb3duKEV2YXNfT2Jq
ZWN0KiBvLCBjb25zdCBFdmFzX0V2ZW50X01vdXNlX0Rvd24qIGV2KQorRWluYV9Cb29sIGV3a19m
cmFtZV9mZWVkX21vdXNlX2Rvd24oRXZhc19PYmplY3QgKm8sIGNvbnN0IEV2YXNfRXZlbnRfTW91
c2VfRG93biAqZXYpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJ
TkFfRkFMU0UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUs
IEVJTkFfRkFMU0UpOwpAQCAtMTMzNywxMyArMTMzNywxMyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1l
X2ZlZWRfbW91c2VfZG93bihFdmFzX09iamVjdCogbywgY29uc3QgRXZhc19FdmVudF9Nb3VzZV9E
b3duKgogICoKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBtb3VzZSB1cCBldmVudCB3
YXMgaGFuZGxlZCwgQGMgRUlOQV9GQUxTRSBvdGhlcndpc2UKICAqLwotRWluYV9Cb29sIGV3a19m
cmFtZV9mZWVkX21vdXNlX3VwKEV2YXNfT2JqZWN0KiBvLCBjb25zdCBFdmFzX0V2ZW50X01vdXNl
X1VwKiBldikKK0VpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9tb3VzZV91cChFdmFzX09iamVjdCAq
bywgY29uc3QgRXZhc19FdmVudF9Nb3VzZV9VcCAqZXYpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dF
VF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFMU0UpOwogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChldiwgRUlOQV9GQUxTRSk7CiAKLSAgICBXZWJDb3JlOjpGcmFtZVZpZXcq
IHZpZXcgPSBzZC0+ZnJhbWUtPnZpZXcoKTsKKyAgICBXZWJDb3JlOjpGcmFtZVZpZXcgKnZpZXcg
PSBzZC0+ZnJhbWUtPnZpZXcoKTsKICAgICBEQkcoIm89JXAsIHZpZXc9JXAsIGJ1dHRvbj0lZCwg
cG9zPSVkLCVkIiwKICAgICAgICAgbywgdmlldywgZXYtPmJ1dHRvbiwgZXYtPmNhbnZhcy54LCBl
di0+Y2FudmFzLnkpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh2aWV3LCBF
SU5BX0ZBTFNFKTsKQEAgLTEzNjMsNyArMTM2Myw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfZmVl
ZF9tb3VzZV91cChFdmFzX09iamVjdCogbywgY29uc3QgRXZhc19FdmVudF9Nb3VzZV9VcCogZXYp
CiAgKgogICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIG1vdXNlIG1vdmUgZXZlbnQgd2Fz
IGhhbmRsZWQsIEBjIEVJTkFfRkFMU0Ugb3RoZXJ3aXNlCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJh
bWVfZmVlZF9tb3VzZV9tb3ZlKEV2YXNfT2JqZWN0KiBvLCBjb25zdCBFdmFzX0V2ZW50X01vdXNl
X01vdmUqIGV2KQorRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX21vdXNlX21vdmUoRXZhc19PYmpl
Y3QgKm8sIGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfTW92ZSAqZXYpCiB7CiAgICAgRVdLX0ZSQU1F
X1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOwogICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVJTkFfRkFMU0UpOwpAQCAtMTM5Miw3ICsxMzky
LDcgQEAgRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX21vdXNlX21vdmUoRXZhc19PYmplY3QqIG8s
IGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfTW92ZSoKICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJV
RSBpZiB0b3VjaCBldmVudCB3YXMgaGFuZGxlZCwgQGMgRUlOQV9GQUxTRSBvdGhlcndpc2UKICAq
LwotRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX3RvdWNoX2V2ZW50KEV2YXNfT2JqZWN0KiBvLCBF
d2tfVG91Y2hfRXZlbnRfVHlwZSBhY3Rpb24sIEVpbmFfTGlzdCogcG9pbnRzLCBpbnQgbWV0YVN0
YXRlKQorRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX3RvdWNoX2V2ZW50KEV2YXNfT2JqZWN0ICpv
LCBFd2tfVG91Y2hfRXZlbnRfVHlwZSBhY3Rpb24sIEVpbmFfTGlzdCAqcG9pbnRzLCBpbnQgbWV0
YVN0YXRlKQogewogICAgIEVpbmFfQm9vbCByZXQgPSBFSU5BX0ZBTFNFOwogCkBAIC0xNDAxLDcg
KzE0MDEsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfdG91Y2hfZXZlbnQoRXZhc19PYmpl
Y3QqIG8sIEV3a19Ub3VjaF9FdmVudF9UeXBlIGFjdGlvbgogICAgIEVXS19GUkFNRV9TRF9HRVQo
bywgc2QpOwogCiAgICAgaWYgKCFzZCB8fCAhc2QtPmZyYW1lIHx8ICFld2tfdmlld19uZWVkX3Rv
dWNoX2V2ZW50c19nZXQoc2QtPnZpZXcpKSB7Ci0gICAgICAgIHZvaWQqIHBvaW50OworICAgICAg
ICB2b2lkICpwb2ludDsKICAgICAgICAgRUlOQV9MSVNUX0ZSRUUocG9pbnRzLCBwb2ludCk7CiAg
ICAgICAgIHJldHVybiBFSU5BX0ZBTFNFOwogICAgIH0KQEAgLTE0MzMsNyArMTQzMyw3IEBAIEVp
bmFfQm9vbCBld2tfZnJhbWVfZmVlZF90b3VjaF9ldmVudChFdmFzX09iamVjdCogbywgRXdrX1Rv
dWNoX0V2ZW50X1R5cGUgYWN0aW9uCiAgICAgcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGlubGlu
ZSBFaW5hX0Jvb2wgX2V3a19mcmFtZV9oYW5kbGVfa2V5X3Njcm9sbGluZyhXZWJDb3JlOjpGcmFt
ZSogZnJhbWUsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCAmZXZlbnQpCitz
dGF0aWMgaW5saW5lIEVpbmFfQm9vbCBfZXdrX2ZyYW1lX2hhbmRsZV9rZXlfc2Nyb2xsaW5nKFdl
YkNvcmU6OkZyYW1lICpmcmFtZSwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50
ICZldmVudCkKIHsKICAgICBXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uOwogICAg
IFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5OwpAQCAtMTUwNSw3ICsxNTA1
LDcgQEAgc3RhdGljIGlubGluZSBFaW5hX0Jvb2wgX2V3a19mcmFtZV9oYW5kbGVfa2V5X3Njcm9s
bGluZyhXZWJDb3JlOjpGcmFtZSogZnJhbWUsIGMKICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJV
RSBpZiB0aGUga2V5IGRvd24gZXZlbnQgd2FzIGhhbmRsZWQsIEBjIEVJTkFfRkFMU0Ugb3RoZXJ3
aXNlCiAgKi8KLUVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9rZXlfZG93bihFdmFzX09iamVjdCog
bywgY29uc3QgRXZhc19FdmVudF9LZXlfRG93biogZXYpCitFaW5hX0Jvb2wgZXdrX2ZyYW1lX2Zl
ZWRfa2V5X2Rvd24oRXZhc19PYmplY3QgKm8sIGNvbnN0IEV2YXNfRXZlbnRfS2V5X0Rvd24gKmV2
KQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBFSU5BX0ZBTFNF
KTsKQEAgLTE1MjksNyArMTUyOSw3IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9rZXlfZG93
bihFdmFzX09iamVjdCogbywgY29uc3QgRXZhc19FdmVudF9LZXlfRG93biogZXYpCiAgKgogICog
QHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIGtleSB1cCBldmVudCB3YXMgaGFuZGxlZCwgQGMg
RUlOQV9GQUxTRSBvdGhlcndpc2UKICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9mZWVkX2tleV91
cChFdmFzX09iamVjdCogbywgY29uc3QgRXZhc19FdmVudF9LZXlfVXAqIGV2KQorRWluYV9Cb29s
IGV3a19mcmFtZV9mZWVkX2tleV91cChFdmFzX09iamVjdCAqbywgY29uc3QgRXZhc19FdmVudF9L
ZXlfVXAgKmV2KQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5B
X0ZBTFNFKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2QtPmZyYW1lLCBF
SU5BX0ZBTFNFKTsKQEAgLTE1NTMsNyArMTU1Myw3IEBAIEV3a19UZXh0X1NlbGVjdGlvbl9UeXBl
IGV3a19mcmFtZV90ZXh0X3NlbGVjdGlvbl90eXBlX2dldChFdmFzX09iamVjdCAqbykKICAgICBF
V0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRVdLX1RFWFRfU0VMRUNUSU9OX05PTkUp
OwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZC0+ZnJhbWUsIEVXS19URVhU
X1NFTEVDVElPTl9OT05FKTsKIAotICAgIFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uKiBjb250cm9s
bGVyID0gc2QtPmZyYW1lLT5zZWxlY3Rpb24oKTsKKyAgICBXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
biAqY29udHJvbGxlciA9IHNkLT5mcmFtZS0+c2VsZWN0aW9uKCk7CiAgICAgaWYgKCFjb250cm9s
bGVyKQogICAgICAgICByZXR1cm4gRVdLX1RFWFRfU0VMRUNUSU9OX05PTkU7CiAKQEAgLTE1ODIs
NyArMTU4Miw3IEBAIEV3a19UZXh0X1NlbGVjdGlvbl9UeXBlIGV3a19mcmFtZV90ZXh0X3NlbGVj
dGlvbl90eXBlX2dldChFdmFzX09iamVjdCAqbykKICAqCiAgKiBAcmV0dXJuIGEgbmV3IGZyYW1l
IG9iamVjdCBvciBAYyAwIG9uIGZhaWx1cmUKICAqLwotRXZhc19PYmplY3QqIGV3a19mcmFtZV9h
ZGQoRXZhcyogZSkKK0V2YXNfT2JqZWN0ICpld2tfZnJhbWVfYWRkKEV2YXMgKmUpCiB7CiAgICAg
cmV0dXJuIGV2YXNfb2JqZWN0X3NtYXJ0X2FkZChlLCBfZXdrX2ZyYW1lX3NtYXJ0X2NsYXNzX25l
dygpKTsKIH0KQEAgLTE1OTQsNyArMTU5NCw3IEBAIEV2YXNfT2JqZWN0KiBld2tfZnJhbWVfYWRk
KEV2YXMqIGUpCiAgKgogICogVGhpcyBpcyBpbnRlcm5hbCBhbmQgc2hvdWxkIG5ldmVyIGJlIGNh
bGxlZCBieSBleHRlcm5hbCB1c2Vycy4KICAqLwotRWluYV9Cb29sIGV3a19mcmFtZV9pbml0KEV2
YXNfT2JqZWN0KiBvLCBFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQor
RWluYV9Cb29sIGV3a19mcmFtZV9pbml0KEV2YXNfT2JqZWN0ICpvLCBFdmFzX09iamVjdCAqdmll
dywgV2ViQ29yZTo6RnJhbWUgKmZyYW1lKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVU
VVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKICAgICBpZiAoIXNkLT5mcmFtZSkgewpAQCAtMTYxNiwx
MSArMTYxNiwxMSBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2luaXQoRXZhc19PYmplY3QqIG8sIEV2
YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpGcmFtZSogZnJhbQogICoKICAqIEFkZHMgY2hpbGQg
dG8gdGhlIGZyYW1lLgogICovCi1FdmFzX09iamVjdCogZXdrX2ZyYW1lX2NoaWxkX2FkZChFdmFz
X09iamVjdCogbywgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjaGlsZCwgY29uc3Qg
V1RGOjpTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3QgV1RGOjpT
dHJpbmcmIHJlZmVycmVyKQorRXZhc19PYmplY3QgKmV3a19mcmFtZV9jaGlsZF9hZGQoRXZhc19P
YmplY3QgKm8sIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY2hpbGQsIGNvbnN0IFdU
Rjo6U3RyaW5nICZuYW1lLCBjb25zdCBXZWJDb3JlOjpLVVJMICZ1cmwsIGNvbnN0IFdURjo6U3Ry
aW5nICZyZWZlcnJlcikKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwg
MCk7CiAgICAgY2hhciBidWZbMjU2XTsKLSAgICBFdmFzX09iamVjdCogZnJhbWU7CisgICAgRXZh
c19PYmplY3QgKmZyYW1lOwogICAgIFdlYkNvcmU6OkZyYW1lKiBjZjsKIAogICAgIGZyYW1lID0g
ZXdrX2ZyYW1lX2FkZChzZC0+YmFzZS5ldmFzKTsKQEAgLTE2NjcsNyArMTY2Nyw3IEBAIGRpZWQ6
CiAgKiBAaW50ZXJuYWwKICAqIEZyYW1lIHdhcyBkZXN0cm95ZWQgYnkgbG9hZGVyLCByZW1vdmUg
aW50ZXJuYWwgcmVmZXJlbmNlLgogICovCi12b2lkIGV3a19mcmFtZV9jb3JlX2dvbmUoRXZhc19P
YmplY3QqIG8pCit2b2lkIGV3a19mcmFtZV9jb3JlX2dvbmUoRXZhc19PYmplY3QgKm8pCiB7CiAg
ICAgREJHKCJvPSVwIiwgbyk7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2Qp
OwpAQCAtMTY4MSw3ICsxNjgxLDcgQEAgdm9pZCBld2tfZnJhbWVfY29yZV9nb25lKEV2YXNfT2Jq
ZWN0KiBvKQogICogQXZvaWQgdXNpbmcgdGhpcyBjYWxsIGZyb20gb3V0c2lkZSwgYWRkIHNwZWNp
ZmljIGV3a19mcmFtZV8qCiAgKiBhY3Rpb25zIGluc3RlYWQuCiAgKi8KLVdlYkNvcmU6OkZyYW1l
KiBld2tfZnJhbWVfY29yZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIG8pCitXZWJDb3JlOjpGcmFt
ZSogZXdrX2ZyYW1lX2NvcmVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKQogewogICAgIEVXS19G
UkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCAwKTsKICAgICByZXR1cm4gc2QtPmZyYW1lOwpA
QCAtMTc0MSw3ICsxNzQxLDcgQEAgdm9pZCBld2tfZnJhbWVfZGlkX3BlcmZvcm1fZmlyc3RfbmF2
aWdhdGlvbihFdmFzX09iamVjdCAqbykKICAqCiAgKiBFbWl0cyBzaWduYWw6ICJzdGF0ZSxzYXZl
IgogICovCi12b2lkIGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUoRXZhc19PYmplY3QgKm8sIFdl
YkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVtKQordm9pZCBld2tfZnJhbWVfdmlld19zdGF0ZV9zYXZl
KEV2YXNfT2JqZWN0ICpvLCBXZWJDb3JlOjpIaXN0b3J5SXRlbSAqaXRlbSkKIHsKICAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG8sICJzdGF0ZSxzYXZlIiwgMCk7CiB9CkBAIC0x
NzUyLDkgKzE3NTIsOSBAQCB2b2lkIGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUoRXZhc19PYmpl
Y3QgKm8sIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVtKQogICoKICAqIEVtaXRzIHNpZ25hbDog
ImxvYWQsc3RhcnRlZCIgd2l0aCBubyBwYXJhbWV0ZXJzLgogICovCi12b2lkIGV3a19mcmFtZV9s
b2FkX3N0YXJ0ZWQoRXZhc19PYmplY3QqIG8pCit2b2lkIGV3a19mcmFtZV9sb2FkX3N0YXJ0ZWQo
RXZhc19PYmplY3QgKm8pCiB7Ci0gICAgRXZhc19PYmplY3QqIG1haW5fZnJhbWU7CisgICAgRXZh
c19PYmplY3QgKm1haW5fZnJhbWU7CiAgICAgREJHKCJvPSVwIiwgbyk7CiAgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfY2FsbChvLCAibG9hZCxzdGFydGVkIiwgMCk7CiAgICAgRVdLX0ZS
QU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QpOwpAQCAtMTc3Myw3ICsxNzczLDcgQEAgdm9pZCBl
d2tfZnJhbWVfbG9hZF9zdGFydGVkKEV2YXNfT2JqZWN0KiBvKQogICoKICAqIEVtaXRzIHNpZ25h
bDogImxvYWQscHJvdmlzaW9uYWwiIHdpdGggbm8gcGFyYW1ldGVycy4KICAqLwotdm9pZCBld2tf
ZnJhbWVfbG9hZF9wcm92aXNpb25hbChFdmFzX09iamVjdCogbykKK3ZvaWQgZXdrX2ZyYW1lX2xv
YWRfcHJvdmlzaW9uYWwoRXZhc19PYmplY3QgKm8pCiB7CiAgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfY2FsbChvLCAibG9hZCxwcm92aXNpb25hbCIsIDApOwogfQpAQCAtMTgyNyw3ICsx
ODI3LDcgQEAgdm9pZCBld2tfZnJhbWVfbG9hZF9kb2N1bWVudF9maW5pc2hlZChFdmFzX09iamVj
dCAqbykKICAqIEBub3RlIHRoZXJlIHNob3VsZCBub3RiZSBhbnkgZXJyb3Igc3R1ZmYgaGVyZSwg
YnV0IHRyeWluZyB0byBiZQogICogICAgICAgY29tcGF0aWJsZSB3aXRoIHByZXZpb3VzIFdlYktp
dC4KICAqLwotdm9pZCBld2tfZnJhbWVfbG9hZF9maW5pc2hlZChFdmFzX09iamVjdCogbywgY29u
c3QgY2hhciogZXJyb3JfZG9tYWluLCBpbnQgZXJyb3JfY29kZSwgRWluYV9Cb29sIGlzX2NhbmNl
bGxhdGlvbiwgY29uc3QgY2hhciogZXJyb3JfZGVzY3JpcHRpb24sIGNvbnN0IGNoYXIqIGZhaWxp
bmdfdXJsKQordm9pZCBld2tfZnJhbWVfbG9hZF9maW5pc2hlZChFdmFzX09iamVjdCAqbywgY29u
c3QgY2hhciAqZXJyb3JfZG9tYWluLCBpbnQgZXJyb3JfY29kZSwgRWluYV9Cb29sIGlzX2NhbmNl
bGxhdGlvbiwgY29uc3QgY2hhciAqZXJyb3JfZGVzY3JpcHRpb24sIGNvbnN0IGNoYXIgKmZhaWxp
bmdfdXJsKQogewogICAgIEV3a19GcmFtZV9Mb2FkX0Vycm9yIGJ1ZiwgKmVycm9yOwogICAgIGlm
ICghZXJyb3JfZG9tYWluKSB7CkBAIC0xODU3LDcgKzE4NTcsNyBAQCB2b2lkIGV3a19mcmFtZV9s
b2FkX2ZpbmlzaGVkKEV2YXNfT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBlcnJvcl9kb21haW4sIGlu
dCBlcnJvcgogICoKICAqIEVtaXRzIHNpZ25hbDogImxvYWQsZXJyb3IiIHdpdGggcG9pbnRlciB0
byBFd2tfRnJhbWVfTG9hZF9FcnJvci4KICAqLwotdm9pZCBld2tfZnJhbWVfbG9hZF9lcnJvcihF
dmFzX09iamVjdCogbywgY29uc3QgY2hhciogZXJyb3JfZG9tYWluLCBpbnQgZXJyb3JfY29kZSwg
RWluYV9Cb29sIGlzX2NhbmNlbGxhdGlvbiwgY29uc3QgY2hhciogZXJyb3JfZGVzY3JpcHRpb24s
IGNvbnN0IGNoYXIqIGZhaWxpbmdfdXJsKQordm9pZCBld2tfZnJhbWVfbG9hZF9lcnJvcihFdmFz
X09iamVjdCAqbywgY29uc3QgY2hhciAqZXJyb3JfZG9tYWluLCBpbnQgZXJyb3JfY29kZSwgRWlu
YV9Cb29sIGlzX2NhbmNlbGxhdGlvbiwgY29uc3QgY2hhciAqZXJyb3JfZGVzY3JpcHRpb24sIGNv
bnN0IGNoYXIgKmZhaWxpbmdfdXJsKQogewogICAgIEV3a19GcmFtZV9Mb2FkX0Vycm9yIGVycm9y
OwogCkBAIC0xODg0LDcgKzE4ODQsNyBAQCB2b2lkIGV3a19mcmFtZV9sb2FkX2Vycm9yKEV2YXNf
T2JqZWN0KiBvLCBjb25zdCBjaGFyKiBlcnJvcl9kb21haW4sIGludCBlcnJvcl9jbwogICoKICAq
IEVtaXRzIHNpZ25hbDogImxvYWQscHJvZ3Jlc3MiIHdpdGggcG9pbnRlciB0byBhIGRvdWJsZSBm
cm9tIDAuMCB0byAxLjAuCiAgKi8KLXZvaWQgZXdrX2ZyYW1lX2xvYWRfcHJvZ3Jlc3NfY2hhbmdl
ZChFdmFzX09iamVjdCogbykKK3ZvaWQgZXdrX2ZyYW1lX2xvYWRfcHJvZ3Jlc3NfY2hhbmdlZChF
dmFzX09iamVjdCAqbykKIHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCk7
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oc2QtPmZyYW1lKTsKQEAgLTE5MDQsNyAr
MTkwNCw3IEBAIHZvaWQgZXdrX2ZyYW1lX2xvYWRfcHJvZ3Jlc3NfY2hhbmdlZChFdmFzX09iamVj
dCogbykKICAqCiAgKiBSZXBvcnRzIGNvbnRlbnRzIHNpemUgY2hhbmdlZC4KICAqLwotdm9pZCBl
d2tfZnJhbWVfY29udGVudHNfc2l6ZV9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBvLCBFdmFzX0Nvb3Jk
IHcsIEV2YXNfQ29vcmQgaCkKK3ZvaWQgZXdrX2ZyYW1lX2NvbnRlbnRzX3NpemVfY2hhbmdlZChF
dmFzX09iamVjdCAqbywgRXZhc19Db29yZCB3LCBFdmFzX0Nvb3JkIGgpCiB7CiAgICAgREJHKCJv
PSVwOiAlZHglZCIsIG8sIHcsIGgpOwogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKG8s
IHNkKTsKQEAgLTE5MjMsMjEgKzE5MjMsMjEgQEAgdm9pZCBld2tfZnJhbWVfY29udGVudHNfc2l6
ZV9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBvLCBFdmFzX0Nvb3JkIHcsIEV2YXNfQ29vcmQgaCkKICAq
CiAgKiBSZXBvcnRzIHRpdGxlIGNoYW5nZWQuCiAgKi8KLXZvaWQgZXdrX2ZyYW1lX3RpdGxlX3Nl
dChFdmFzX09iamVjdCogbywgY29uc3QgY2hhciogdGl0bGUpCit2b2lkIGV3a19mcmFtZV90aXRs
ZV9zZXQoRXZhc19PYmplY3QgKm8sIGNvbnN0IGNoYXIgKnRpdGxlKQogewogICAgIERCRygibz0l
cCwgdGl0bGU9JXMiLCBvLCB0aXRsZSA/IHRpdGxlIDogIihudWxsKSIpOwogICAgIEVXS19GUkFN
RV9TRF9HRVRfT1JfUkVUVVJOKG8sIHNkKTsKICAgICBpZiAoIWVpbmFfc3RyaW5nc2hhcmVfcmVw
bGFjZSgmc2QtPnRpdGxlLCB0aXRsZSkpCiAgICAgICAgIHJldHVybjsKLSAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19jYWxsKG8sICJ0aXRsZSxjaGFuZ2VkIiwgKHZvaWQqKXNkLT50aXRs
ZSk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChvLCAidGl0bGUsY2hhbmdl
ZCIsICh2b2lkICopc2QtPnRpdGxlKTsKIH0KIAogLyoqCiAgKiBAaW50ZXJuYWwKLSAqIAorICoK
ICAqIENyZWF0ZXMgYSB2aWV3LgogICovCi12b2lkIGV3a19mcmFtZV92aWV3X2NyZWF0ZV9mb3Jf
dmlldyhFdmFzX09iamVjdCogbywgRXZhc19PYmplY3QqIHZpZXcpCit2b2lkIGV3a19mcmFtZV92
aWV3X2NyZWF0ZV9mb3JfdmlldyhFdmFzX09iamVjdCAqbywgRXZhc19PYmplY3QgKnZpZXcpCiB7
CiAgICAgREJHKCJvPSVwLCB2aWV3PSVwIiwgbywgdmlldyk7CiAgICAgRVdLX0ZSQU1FX1NEX0dF
VF9PUl9SRVRVUk4obywgc2QpOwpAQCAtMTk2NSw3ICsxOTY1LDcgQEAgdm9pZCBld2tfZnJhbWVf
dmlld19jcmVhdGVfZm9yX3ZpZXcoRXZhc19PYmplY3QqIG8sIEV2YXNfT2JqZWN0KiB2aWV3KQog
ICAgIGlmICghc2QtPmZyYW1lLT52aWV3KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnN0
IGNoYXIqIHRoZW1lID0gZXdrX3ZpZXdfdGhlbWVfZ2V0KHZpZXcpOworICAgIGNvbnN0IGNoYXIg
KnRoZW1lID0gZXdrX3ZpZXdfdGhlbWVfZ2V0KHZpZXcpOwogICAgIHNkLT5mcmFtZS0+dmlldygp
LT5zZXRFZGplVGhlbWUodGhlbWUpOwogICAgIHNkLT5mcmFtZS0+dmlldygpLT5zZXRFdmFzT2Jq
ZWN0KG8pOwogfQpAQCAtMTk3Niw3ICsxOTc2LDcgQEAgdm9pZCBld2tfZnJhbWVfdmlld19jcmVh
dGVfZm9yX3ZpZXcoRXZhc19PYmplY3QqIG8sIEV2YXNfT2JqZWN0KiB2aWV3KQogICoKICAqIEVt
aXRzIHNpZ25hbDogInVyaSxjaGFuZ2VkIiB3aXRoIG5ldyB1cmkgYXMgcGFyYW1ldGVyLgogICov
Ci1FaW5hX0Jvb2wgZXdrX2ZyYW1lX3VyaV9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBvKQorRWluYV9C
b29sIGV3a19mcmFtZV91cmlfY2hhbmdlZChFdmFzX09iamVjdCAqbykKIHsKICAgICBFV0tfRlJB
TUVfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7CiAgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKHNkLT5mcmFtZSwgRUlOQV9GQUxTRSk7CkBAIC0xOTk4LDcgKzE5
OTgsNyBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3VyaV9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBvKQog
ICoKICAqIEZvcmNlcyBsYXlvdXQgZm9yIGZyYW1lLgogICovCi12b2lkIGV3a19mcmFtZV9mb3Jj
ZV9sYXlvdXQoRXZhc19PYmplY3QqIG8pCit2b2lkIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoRXZh
c19PYmplY3QgKm8pCiB7CiAgICAgREJHKCJvPSVwIiwgbyk7CiAgICAgRVdLX0ZSQU1FX1NEX0dF
VF9PUl9SRVRVUk4obywgc2QpOwpAQCAtMjAxMyw3ICsyMDEzLDcgQEAgdm9pZCBld2tfZnJhbWVf
Zm9yY2VfbGF5b3V0KEV2YXNfT2JqZWN0KiBvKQogICoKICAqIENyZWF0ZXMgcGx1Z2luLgogICov
Ci1XVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBld2tfZnJhbWVfcGx1Z2luX2NyZWF0
ZShFdmFzX09iamVjdCogbywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgcGx1Z2luU2l6ZSwgV2Vi
Q29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFdlYkNvcmU6OktVUkwmIHVy
bCwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBXVEY6
OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzLCBjb25zdCBXVEY6OlN0cmluZyYgbWlt
ZVR5cGUsIGJvb2wgbG9hZE1hbnVhbGx5KQorV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdl
dD4gZXdrX2ZyYW1lX3BsdWdpbl9jcmVhdGUoRXZhc19PYmplY3QgKm8sIGNvbnN0IFdlYkNvcmU6
OkludFNpemUgJnBsdWdpblNpemUsIFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50ICplbGVtZW50
LCBjb25zdCBXZWJDb3JlOjpLVVJMICZ1cmwsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5n
PiAmcGFyYW1OYW1lcywgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+ICZwYXJhbVZhbHVl
cywgY29uc3QgV1RGOjpTdHJpbmcgJm1pbWVUeXBlLCBib29sIGxvYWRNYW51YWxseSkKIHsKICAg
ICByZXR1cm4gMDsKIH0KQEAgLTIwMjYsNyArMjAyNiw3IEBAIFdURjo6UGFzc1JlZlB0cjxXZWJD
b3JlOjpXaWRnZXQ+IGV3a19mcmFtZV9wbHVnaW5fY3JlYXRlKEV2YXNfT2JqZWN0KiBvLCBjb25z
dCBXCiAgKgogICogRW1pdHMgc2lnbmFsOiAiZWRpdG9yY2xpZW50c2VsZWN0aW9uLGNoYW5nZWQi
IHdpdGggbm8gcGFyYW1ldGVycy4KICAqLwotdm9pZCBld2tfZnJhbWVfZWRpdG9yX2NsaWVudF9z
ZWxlY3Rpb25fY2hhbmdlZChFdmFzX09iamVjdCogbykKK3ZvaWQgZXdrX2ZyYW1lX2VkaXRvcl9j
bGllbnRfc2VsZWN0aW9uX2NoYW5nZWQoRXZhc19PYmplY3QgKm8pCiB7CiAgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfY2FsbChvLCAiZWRpdG9yY2xpZW50LHNlbGVjdGlvbixjaGFuZ2Vk
IiwgMCk7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4obywgc2QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19mcmFtZS5oCmluZGV4IDE1OGVjNmQuLmM3YzI4YTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2ZyYW1lLmgKQEAgLTIzNywxMSArMjM3LDExIEBAIEVBUEkgRWluYV9Cb29sICAgIGV3a19m
cmFtZV9mZWVkX21vdXNlX3doZWVsKEV2YXNfT2JqZWN0ICpvLCBjb25zdCBFdmFzX0V2ZW50X01v
CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfZnJhbWVfZmVlZF9tb3VzZV9kb3duKEV2YXNfT2JqZWN0
ICpvLCBjb25zdCBFdmFzX0V2ZW50X01vdXNlX0Rvd24gKmV2KTsKIEVBUEkgRWluYV9Cb29sICAg
IGV3a19mcmFtZV9mZWVkX21vdXNlX3VwKEV2YXNfT2JqZWN0ICpvLCBjb25zdCBFdmFzX0V2ZW50
X01vdXNlX1VwICpldik7CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfZnJhbWVfZmVlZF9tb3VzZV9t
b3ZlKEV2YXNfT2JqZWN0ICpvLCBjb25zdCBFdmFzX0V2ZW50X01vdXNlX01vdmUgKmV2KTsKLUVB
UEkgRWluYV9Cb29sICAgIGV3a19mcmFtZV9mZWVkX3RvdWNoX2V2ZW50KEV2YXNfT2JqZWN0KiBv
LCBFd2tfVG91Y2hfRXZlbnRfVHlwZSBhY3Rpb24sIEVpbmFfTGlzdCogcG9pbnRzLCBpbnQgbWV0
YVN0YXRlKTsKK0VBUEkgRWluYV9Cb29sICAgIGV3a19mcmFtZV9mZWVkX3RvdWNoX2V2ZW50KEV2
YXNfT2JqZWN0ICpvLCBFd2tfVG91Y2hfRXZlbnRfVHlwZSBhY3Rpb24sIEVpbmFfTGlzdCAqcG9p
bnRzLCBpbnQgbWV0YVN0YXRlKTsKIEVBUEkgRWluYV9Cb29sICAgIGV3a19mcmFtZV9mZWVkX2tl
eV9kb3duKEV2YXNfT2JqZWN0ICpvLCBjb25zdCBFdmFzX0V2ZW50X0tleV9Eb3duICpldik7CiBF
QVBJIEVpbmFfQm9vbCAgICBld2tfZnJhbWVfZmVlZF9rZXlfdXAoRXZhc19PYmplY3QgKm8sIGNv
bnN0IEV2YXNfRXZlbnRfS2V5X1VwICpldik7CiAKLUVBUEkgRXdrX1RleHRfU2VsZWN0aW9uX1R5
cGUgZXdrX2ZyYW1lX3RleHRfc2VsZWN0aW9uX3R5cGVfZ2V0KEV2YXNfT2JqZWN0KiBvKTsKK0VB
UEkgRXdrX1RleHRfU2VsZWN0aW9uX1R5cGUgZXdrX2ZyYW1lX3RleHRfc2VsZWN0aW9uX3R5cGVf
Z2V0KEV2YXNfT2JqZWN0ICpvKTsKIAogCiAjaWZkZWYgX19jcGx1c3BsdXMK
</data>

          </attachment>
      

    </bug>

</bugzilla>