<?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>50983</bug_id>
          
          <creation_ts>2010-12-13 15:05:03 -0800</creation_ts>
          <short_desc>Remove associated page concept from WKView constructor</short_desc>
          <delta_ts>2010-12-13 17:06:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>321463</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-13 15:05:03 -0800</bug_when>
    <thetext>For now, lets remove the associated page concept (and WebPageNamespace) to simplify things out.  We can then discuss the necessary grouping mechanisms with a clean slate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321468</commentid>
    <comment_count>1</comment_count>
      <attachid>76448</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-13 15:07:12 -0800</bug_when>
    <thetext>Created attachment 76448
Step 1: Remove API entry points.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321486</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-13 15:23:30 -0800</bug_when>
    <thetext>Part 1 landed in r73976.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321508</commentid>
    <comment_count>3</comment_count>
      <attachid>76458</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-13 15:48:03 -0800</bug_when>
    <thetext>Created attachment 76458
Step 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321554</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-13 16:56:12 -0800</bug_when>
    <thetext>Part 2 landed in 73986</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321562</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-13 17:06:09 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/73986 might have broken Windows Release (Build)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76448</attachid>
            <date>2010-12-13 15:07:12 -0800</date>
            <delta_ts>2010-12-13 15:48:03 -0800</delta_ts>
            <desc>Step 1: Remove API entry points.</desc>
            <filename>step1.diff</filename>
            <type>text/plain</type>
            <size>20194</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3Mzk3MikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMTItMTMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
YXNzb2NpYXRlZCBwYWdlIGNvbmNlcHQgZnJvbSBXS1ZpZXcgY29uc3RydWN0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwOTgzCisKKyAgICAgICAg
U3RlcCAxOiBSZW1vdmUgYXNzb2NpYXRlIHBhZ2UgY29uc3RydWN0b3JzIGZyb20gV0tWaWV3IGFu
ZCBtYWtlCisgICAgICAgIGFsbCB2aWV3cyB1c2UgdGhlIHNoYXJlZCBuYW1lc3BhY2UgZm9yIHRo
ZSBjb250ZXh0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1ZpZXcuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy93aW4vV0tWaWV3Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpjb250ZXh0UmVmOnBhZ2VHcm91
cFJlZjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHQuY3BwOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdrY29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy93aW4vV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OldlYlZpZXcp
OgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViVmlldy5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3OjpjcmVhdGUpOgorCiAyMDEwLTEyLTEzICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0
ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpJbmRleDog
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLVmlldy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLVmlldy5jcHAJKHJldmlzaW9uIDczOTY1KQorKysg
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDE4ICs0MSw2IEBAIFdLVmlld1JlZiBXS1ZpZXdDcmVhdGUoUkVDVCByZWN0LCBXS0NvbnQK
ICAgICByZXR1cm4gdG9BUEkodmlldy5yZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKIH0KIAotV0tW
aWV3UmVmIFdLVmlld0NyZWF0ZVVzaW5nU2hhcmVkUHJvY2VzcyhSRUNUIHJlY3QsIFdLQ29udGV4
dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIEhXTkQgcGFyZW50
V2luZG93KQotewotICAgIFJlZlB0cjxXZWJWaWV3PiB2aWV3ID0gV2ViVmlldzo6Y3JlYXRlVXNp
bmdTaGFyZWRQcm9jZXNzKHJlY3QsIHRvSW1wbChjb250ZXh0UmVmKSwgdG9JbXBsKHBhZ2VHcm91
cFJlZiksIHBhcmVudFdpbmRvdyk7Ci0gICAgcmV0dXJuIHRvQVBJKHZpZXcucmVsZWFzZSgpLnJl
bGVhc2VSZWYoKSk7Ci19Ci0KLVdLVmlld1JlZiBXS1ZpZXdDcmVhdGVGb3JBc3NvY2lhdGVkUGFn
ZShSRUNUIHJlY3QsIFdLUGFnZVJlZiBwYWdlUmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBS
ZWYsIEhXTkQgcGFyZW50V2luZG93KQotewotICAgIFJlZlB0cjxXZWJWaWV3PiB2aWV3ID0gV2Vi
Vmlldzo6Y3JlYXRlRm9yQXNzb2NpYXRlZFBhZ2UocmVjdCwgdG9JbXBsKHBhZ2VSZWYpLCB0b0lt
cGwocGFnZUdyb3VwUmVmKSwgcGFyZW50V2luZG93KTsKLSAgICByZXR1cm4gdG9BUEkodmlldy5y
ZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKLX0KLQogSFdORCBXS1ZpZXdHZXRXaW5kb3coV0tWaWV3
UmVmIHZpZXdSZWYpCiB7CiAgICAgcmV0dXJuIHRvSW1wbCh2aWV3UmVmKS0+d2luZG93KCk7Cklu
ZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tWaWV3LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLVmlldy5oCShyZXZpc2lvbiA3Mzk2NSkKKysr
IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAt
MzYsOCArMzYsNiBAQCBleHRlcm4gIkMiIHsKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS1ZpZXdHZXRU
eXBlSUQoKTsKIAogV0tfRVhQT1JUIFdLVmlld1JlZiBXS1ZpZXdDcmVhdGUoUkVDVCByZWN0LCBX
S0NvbnRleHRSZWYgY29udGV4dCwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwLCBIV05EIHBhcmVu
dFdpbmRvdyk7Ci1XS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZVVzaW5nU2hhcmVkUHJv
Y2VzcyhSRUNUIHJlY3QsIFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdl
R3JvdXAsIEhXTkQgcGFyZW50V2luZG93KTsKLVdLX0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3Q3Jl
YXRlRm9yQXNzb2NpYXRlZFBhZ2UoUkVDVCByZWN0LCBXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlR3Jv
dXBSZWYgcGFnZUdyb3VwLCBIV05EIHBhcmVudFdpbmRvdyk7CiAKIFdLX0VYUE9SVCBIV05EIFdL
Vmlld0dldFdpbmRvdyhXS1ZpZXdSZWYgdmlldyk7CiAKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcuaAkocmV2aXNpb24gNzM5NjUpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMiArMzYsNiBAQCBAaW50ZXJmYWNlIFdL
VmlldyA6IE5TVmlldyA8TlNUZXh0SW5wdXQ+CiAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3Qp
ZnJhbWUgY29udGV4dFJlZjooV0tDb250ZXh0UmVmKWNvbnRleHRSZWY7CiAtIChpZClpbml0V2l0
aEZyYW1lOihOU1JlY3QpZnJhbWUgY29udGV4dFJlZjooV0tDb250ZXh0UmVmKWNvbnRleHRSZWYg
cGFnZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXBSZWY7CiAKLS0gKGlkKWluaXRX
aXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJl
ZiB1c2luZ1NoYXJlZFByb2Nlc3M6KEJPT0wpdXNpbmdTaGFyZWRQcm9jZXNzOwotLSAoaWQpaW5p
dFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGNvbnRleHRSZWY6KFdLQ29udGV4dFJlZiljb250ZXh0
UmVmIHBhZ2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYpcGFnZUdyb3VwUmVmIHVzaW5nU2hhcmVk
UHJvY2VzczooQk9PTCl1c2luZ1NoYXJlZFByb2Nlc3M7OwotCi0tIChpZClpbml0V2l0aEZyYW1l
OihOU1JlY3QpZnJhbWUgZm9yQXNzb2NpYXRlZFBhZ2VSZWY6KFdLUGFnZVJlZilwYWdlUmVmOwot
LSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGZvckFzc29jaWF0ZWRQYWdlUmVmOihX
S1BhZ2VSZWYpcGFnZVJlZiBwYWdlR3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJl
ZjsKLQogQHByb3BlcnR5KHJlYWRvbmx5KSBXS1BhZ2VSZWYgcGFnZVJlZjsKIAogQHByb3BlcnR5
IEJPT0wgZHJhd3NCYWNrZ3JvdW5kOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0JKHJldmlzaW9uIDczOTY1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTEyNywxMCArMTI3LDYgQEAgLSAoQk9PTCl3YW50c1RvSGFu
ZGxlTW91c2VFdmVudHM7CiAtIChCT09MKWhhbmRsZU1vdXNlRXZlbnQ6KE5TRXZlbnQgKilldmVu
dDsKIEBlbmQKIAotQGludGVyZmFjZSBXS1ZpZXcgKCkKLS0gKGlkKWluaXRXaXRoRnJhbWU6KE5T
UmVjdClmcmFtZSBwYWdlTmFtZXNwYWNlOihXZWJQYWdlTmFtZXNwYWNlKilwYWdlTmFtZXNwYWNl
IHBhZ2VHcm91cDooV2ViUGFnZUdyb3VwKilwYWdlR3JvdXA7Ci1AZW5kCi0KIEBpbXBsZW1lbnRh
dGlvbiBXS1ZpZXcKIAogLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lCkBAIC0xNDUs
MzcgKzE0MSw2IEBAIC0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb250ZXgKIAog
LSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGNvbnRleHRSZWY6KFdLQ29udGV4dFJl
Ziljb250ZXh0UmVmIHBhZ2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYpcGFnZUdyb3VwUmVmCiB7
Ci0gICAgcmV0dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29udGV4dFJlZjpjb250ZXh0
UmVmIHBhZ2VHcm91cFJlZjpwYWdlR3JvdXBSZWYgdXNpbmdTaGFyZWRQcm9jZXNzOk5PXTsKLX0K
LQotLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGNvbnRleHRSZWY6KFdLQ29udGV4
dFJlZiljb250ZXh0UmVmIHVzaW5nU2hhcmVkUHJvY2VzczooQk9PTCl1c2luZ1NoYXJlZFByb2Nl
c3MKLXsKLSAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb250ZXh0UmVmOmNv
bnRleHRSZWYgcGFnZUdyb3VwUmVmOm5pbCB1c2luZ1NoYXJlZFByb2Nlc3M6dXNpbmdTaGFyZWRQ
cm9jZXNzXTsKLX0KLQotLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGNvbnRleHRS
ZWY6KFdLQ29udGV4dFJlZiljb250ZXh0UmVmIHBhZ2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYp
cGFnZUdyb3VwUmVmIHVzaW5nU2hhcmVkUHJvY2VzczooQk9PTCl1c2luZ1NoYXJlZFByb2Nlc3MK
LXsKLSAgICBSZWZQdHI8V2ViUGFnZU5hbWVzcGFjZT4gcGFnZU5hbWVzcGFjZTsKLSAgICBpZiAo
dXNpbmdTaGFyZWRQcm9jZXNzKQotICAgICAgICBwYWdlTmFtZXNwYWNlID0gdG9JbXBsKGNvbnRl
eHRSZWYpLT5zaGFyZWRQYWdlTmFtZXNwYWNlKCk7Ci0gICAgZWxzZQotICAgICAgICBwYWdlTmFt
ZXNwYWNlID0gdG9JbXBsKGNvbnRleHRSZWYpLT5jcmVhdGVQYWdlTmFtZXNwYWNlKCk7Ci0KLSAg
ICByZXR1cm4gW3NlbGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBwYWdlTmFtZXNwYWNlOnBhZ2VOYW1l
c3BhY2UuZ2V0KCkgcGFnZUdyb3VwOnRvSW1wbChwYWdlR3JvdXBSZWYpXTsKLX0KLQotLSAoaWQp
aW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGZvckFzc29jaWF0ZWRQYWdlUmVmOihXS1BhZ2VS
ZWYpcGFnZVJlZgotewotICAgIHJldHVybiBbc2VsZiBpbml0V2l0aEZyYW1lOmZyYW1lIGZvckFz
c29jaWF0ZWRQYWdlUmVmOnBhZ2VSZWYgcGFnZUdyb3VwUmVmOm5pbF07Ci19Ci0KLS0gKGlkKWlu
aXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBmb3JBc3NvY2lhdGVkUGFnZVJlZjooV0tQYWdlUmVm
KXBhZ2VSZWYgcGFnZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXBSZWYKLXsKLSAg
ICByZXR1cm4gW3NlbGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBwYWdlTmFtZXNwYWNlOnRvSW1wbChw
YWdlUmVmKS0+cGFnZU5hbWVzcGFjZSgpIHBhZ2VHcm91cDp0b0ltcGwocGFnZUdyb3VwUmVmKV07
Ci19Ci0KLS0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBwYWdlTmFtZXNwYWNlOihX
ZWJQYWdlTmFtZXNwYWNlKilwYWdlTmFtZXNwYWNlIHBhZ2VHcm91cDooV2ViUGFnZUdyb3VwKilw
YWdlR3JvdXAKLXsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdOwogICAg
IGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTE5Myw3ICsxNTgsNyBAQCAtIChp
ZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcGFnZU5hCiAgICAgX2RhdGEgPSBbW1dLVmll
d0RhdGEgYWxsb2NdIGluaXRdOwogCiAgICAgX2RhdGEtPl9wYWdlQ2xpZW50ID0gUGFnZUNsaWVu
dEltcGw6OmNyZWF0ZShzZWxmKTsKLSAgICBfZGF0YS0+X3BhZ2UgPSBwYWdlTmFtZXNwYWNlLT5j
cmVhdGVXZWJQYWdlKHBhZ2VHcm91cCk7CisgICAgX2RhdGEtPl9wYWdlID0gdG9JbXBsKGNvbnRl
eHRSZWYpLT5zaGFyZWRQYWdlTmFtZXNwYWNlKCktPmNyZWF0ZVdlYlBhZ2UodG9JbXBsKHBhZ2VH
cm91cFJlZikpOwogICAgIF9kYXRhLT5fcGFnZS0+c2V0UGFnZUNsaWVudChfZGF0YS0+X3BhZ2VD
bGllbnQuZ2V0KCkpOwogICAgIF9kYXRhLT5fcGFnZS0+c2V0RHJhd2luZ0FyZWEoQ2h1bmtlZFVw
ZGF0ZURyYXdpbmdBcmVhUHJveHk6OmNyZWF0ZShzZWxmKSk7CiAgICAgX2RhdGEtPl9wYWdlLT5p
bml0aWFsaXplV2ViUGFnZShJbnRTaXplKGZyYW1lLnNpemUpKTsKSW5kZXg6IFdlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrY29udGV4dC5jcHAJKHJldmlzaW9uIDczOTY1KQorKysgV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSwxNCAr
NjEsNiBAQCBRV0tDb250ZXh0OjpRV0tDb250ZXh0KFdLQ29udGV4dFJlZiBjb250CiAgICAgZC0+
cGFnZU5hbWVzcGFjZSA9IGQtPmNvbnRleHQtPnNoYXJlZFBhZ2VOYW1lc3BhY2UoKTsKIH0KIAot
UVdLQ29udGV4dDo6UVdLQ29udGV4dChXS1BhZ2VSZWYgcGFnZVJlZiwgUU9iamVjdCogcGFyZW50
KQotICAgIDogUU9iamVjdChwYXJlbnQpCi0gICAgLCBkKG5ldyBRV0tDb250ZXh0UHJpdmF0ZSh0
aGlzKSkKLXsKLSAgICBkLT5jb250ZXh0ID0gdG9JbXBsKHBhZ2VSZWYpLT5jb250ZXh0KCk7Ci0g
ICAgZC0+cGFnZU5hbWVzcGFjZSA9IGQtPmNvbnRleHQtPnNoYXJlZFBhZ2VOYW1lc3BhY2UoKTsK
LX0KLQogUVdLQ29udGV4dDo6flFXS0NvbnRleHQoKQogewogICAgIGRlbGV0ZSBkOwpJbmRleDog
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrY29udGV4dC5oCShyZXZpc2lvbiA3Mzk2NSkKKysrIFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDcgKzIzLDYgQEAKICNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCiAjaW5jbHVkZSA8UU9iamVj
dD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQ29udGV4dC5oPgotI2luY2x1ZGUgPFdlYktpdDIvV0tQ
YWdlLmg+CiAKIGNsYXNzIFFXS0NvbnRleHRQcml2YXRlOwogCkBAIC0zNSw3ICszNCw2IEBAIHB1
YmxpYzoKIAogICAgIC8vIEJyaWRnZSBmcm9tIHRoZSBDIEFQSQogICAgIFFXS0NvbnRleHQoV0tD
b250ZXh0UmVmIGNvbnRleHRSZWYsIFFPYmplY3QqIHBhcmVudCA9IDApOwotICAgIFFXS0NvbnRl
eHQoV0tQYWdlUmVmIHBhZ2VSZWYsIFFPYmplY3QqIHBhcmVudCA9IDApOwogCiBwcml2YXRlOgog
ICAgIFFXS0NvbnRleHRQcml2YXRlKiBkOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dl
Ykluc3BlY3RvclByb3h5TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQkocmV2aXNpb24gNzM5NjUpCisrKyBXZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTc4
LDcgKzc4LDcgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcgogICAg
IEFTU0VSVChtX3BhZ2UpOwogICAgIEFTU0VSVCghbV9pbnNwZWN0b3JWaWV3KTsKIAotICAgIG1f
aW5zcGVjdG9yVmlldy5hZG9wdE5TKFtbV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgZm9yQXNzb2NpYXRlZFBhZ2VSZWY6dG9BUEkocGFnZSgpKSBwYWdlR3JvdXBSZWY6dG9B
UEkoaW5zcGVjdG9yUGFnZUdyb3VwKCkpXSk7CisgICAgbV9pbnNwZWN0b3JWaWV3LmFkb3B0TlMo
W1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb250ZXh0UmVmOnRvQVBJ
KHBhZ2UoKS0+Y29udGV4dCgpKSBwYWdlR3JvdXBSZWY6dG9BUEkoaW5zcGVjdG9yUGFnZUdyb3Vw
KCkpXSk7CiAgICAgQVNTRVJUKG1faW5zcGVjdG9yVmlldyk7CiAKICAgICByZXR1cm4gdG9JbXBs
KG1faW5zcGVjdG9yVmlldy5nZXQoKS5wYWdlUmVmKTsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNz
L3dpbi9XZWJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2Vi
Vmlldy5jcHAJKHJldmlzaW9uIDczOTY1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZp
ZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODIsNyArMTgyLDcgQEAgYm9vbCBXZWJWaWV3Ojpy
ZWdpc3RlcldlYlZpZXdXaW5kb3dDbGFzcwogICAgIHJldHVybiAhITo6UmVnaXN0ZXJDbGFzc0V4
KCZ3Y2V4KTsKIH0KIAotV2ViVmlldzo6V2ViVmlldyhSRUNUIHJlY3QsIFdlYkNvbnRleHQqIGNv
bnRleHQsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwLCBIV05EIHBhcmVudFdpbmRvdywgYm9vbCB1
c2luZ1NoYXJlZFByb2Nlc3MpCitXZWJWaWV3OjpXZWJWaWV3KFJFQ1QgcmVjdCwgV2ViQ29udGV4
dCogY29udGV4dCwgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXAsIEhXTkQgcGFyZW50V2luZG93KQog
ICAgIDogbV9yZWN0KHJlY3QpCiAgICAgLCBtX3RvcExldmVsUGFyZW50V2luZG93KDApCiAgICAg
LCBtX3Rvb2xUaXBXaW5kb3coMCkKQEAgLTE5MiwyNiArMTkyLDcgQEAgV2ViVmlldzo6V2ViVmll
dyhSRUNUIHJlY3QsIFdlYkNvbnRleHQqIAogICAgICwgbV90cmFja2luZ01vdXNlTGVhdmUoZmFs
c2UpCiAgICAgLCBtX2lzQmVpbmdEZXN0cm95ZWQoZmFsc2UpCiB7Ci0gICAgUmVmUHRyPFdlYlBh
Z2VOYW1lc3BhY2U+IHBhZ2VOYW1lc3BhY2U7Ci0gICAgaWYgKHVzaW5nU2hhcmVkUHJvY2VzcykK
LSAgICAgICAgcGFnZU5hbWVzcGFjZSA9IGNvbnRleHQtPnNoYXJlZFBhZ2VOYW1lc3BhY2UoKTsK
LSAgICBlbHNlCi0gICAgICAgIHBhZ2VOYW1lc3BhY2UgPSBjb250ZXh0LT5jcmVhdGVQYWdlTmFt
ZXNwYWNlKCk7Ci0KLSAgICBpbml0aWFsaXplKHBhZ2VOYW1lc3BhY2UuZ2V0KCksIHBhZ2VHcm91
cCwgcGFyZW50V2luZG93KTsKLX0KLQotV2ViVmlldzo6V2ViVmlldyhSRUNUIHJlY3QsIFdlYlBh
Z2VQcm94eSogcGFnZSwgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXAsIEhXTkQgcGFyZW50V2luZG93
KQotICAgIDogbV9yZWN0KHJlY3QpCi0gICAgLCBtX3RvcExldmVsUGFyZW50V2luZG93KDApCi0g
ICAgLCBtX3Rvb2xUaXBXaW5kb3coMCkKLSAgICAsIG1fbGFzdEN1cnNvclNldCgwKQotICAgICwg
bV93ZWJDb3JlQ3Vyc29yKDApCi0gICAgLCBtX292ZXJyaWRlQ3Vyc29yKDApCi0gICAgLCBtX3Ry
YWNraW5nTW91c2VMZWF2ZShmYWxzZSkKLSAgICAsIG1faXNCZWluZ0Rlc3Ryb3llZChmYWxzZSkK
LXsKLSAgICBpbml0aWFsaXplKHBhZ2UtPnBhZ2VOYW1lc3BhY2UoKSwgcGFnZUdyb3VwLCBwYXJl
bnRXaW5kb3cpOworICAgIGluaXRpYWxpemUoY29udGV4dC0+c2hhcmVkUGFnZU5hbWVzcGFjZSgp
LCBwYWdlR3JvdXAsIHBhcmVudFdpbmRvdyk7CiB9CiAKIHZvaWQgV2ViVmlldzo6aW5pdGlhbGl6
ZShXZWJQYWdlTmFtZXNwYWNlKiBwYWdlTmFtZXNwYWNlLCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91
cCwgSFdORCBwYXJlbnRXaW5kb3cpCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmll
dy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgJKHJldmlz
aW9uIDczOTY1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaAkod29ya2luZyBj
b3B5KQpAQCAtNDUsMTQgKzQ1LDYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJWaWV3KHJlY3QsIGNvbnRleHQsIHBhZ2VHcm91cCwgcGFyZW50V2luZG93
LCBmYWxzZSkpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJWaWV3PiBjcmVhdGVV
c2luZ1NoYXJlZFByb2Nlc3MoUkVDVCByZWN0LCBXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJQYWdl
R3JvdXAqIHBhZ2VHcm91cCwgSFdORCBwYXJlbnRXaW5kb3cpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYlZpZXcocmVjdCwgY29udGV4dCwgcGFnZUdyb3VwLCBwYXJlbnRX
aW5kb3csIHRydWUpKTsKLSAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVmlldz4gY3Jl
YXRlRm9yQXNzb2NpYXRlZFBhZ2UoUkVDVCByZWN0LCBXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYlBh
Z2VHcm91cCogcGFnZUdyb3VwLCBIV05EIHBhcmVudFdpbmRvdykKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgV2ViVmlldyhyZWN0LCBwYWdlLCBwYWdlR3JvdXAsIHBhcmVudFdp
bmRvdykpOwotICAgIH0KICAgICB+V2ViVmlldygpOwogCiAgICAgUkVDVCByZWN0KCkgY29uc3Qg
eyByZXR1cm4gbV9yZWN0OyB9CkBAIC02Niw4ICs1OCw3IEBAIHB1YmxpYzoKICAgICBXZWJQYWdl
UHJveHkqIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KIAogcHJpdmF0ZToK
LSAgICBXZWJWaWV3KFJFQ1QsIFdlYkNvbnRleHQqLCBXZWJQYWdlR3JvdXAqLCBIV05EIHBhcmVu
dFdpbmRvdywgYm9vbCB1c2luZ1NoYXJlZFByb2Nlc3MpOwotICAgIFdlYlZpZXcoUkVDVCwgV2Vi
UGFnZVByb3h5KiwgV2ViUGFnZUdyb3VwKiwgSFdORCBwYXJlbnRXaW5kb3cpOworICAgIFdlYlZp
ZXcoUkVDVCwgV2ViQ29udGV4dCosIFdlYlBhZ2VHcm91cCosIEhXTkQgcGFyZW50V2luZG93Owog
CiAgICAgdm9pZCBpbml0aWFsaXplKFdlYlBhZ2VOYW1lc3BhY2UqLCBXZWJQYWdlR3JvdXAqLCBI
V05EIHBhcmVudFdpbmRvdyk7CiAKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDczOTcyKQorKysgV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTIt
MTMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgYXNzb2NpYXRlZCBwYWdlIGNvbmNlcHQg
ZnJvbSBXS1ZpZXcgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUwOTgzCisKKyAgICAgICAgU3RlcCAxOiBSZW1vdmUgYXNzb2NpYXRl
IHBhZ2UgY29uc3RydWN0b3JzIGZyb20gV0tWaWV3IGFuZCBtYWtlCisgICAgICAgIGFsbCB2aWV3
cyB1c2UgdGhlIHNoYXJlZCBuYW1lc3BhY2UgZm9yIHRoZSBjb250ZXh0LgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS93aW4v
UGxhdGZvcm1XZWJWaWV3V2luLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1BsYXRm
b3JtV2ViVmlldy5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV1RSOjpjcmVhdGVPdGhlclBhZ2UpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwOgorCiAyMDEwLTEyLTEzICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29u
LgpJbmRleDogV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXRUb29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCShy
ZXZpc2lvbiA3Mzk2NSkKKysrIFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJW
aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDYgQEAgY2xhc3MgV2luZG93TWVzc2Fn
ZU9ic2VydmVyOwogY2xhc3MgUGxhdGZvcm1XZWJWaWV3IHsKIHB1YmxpYzoKICAgICBQbGF0Zm9y
bVdlYlZpZXcoV0tDb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiA9IDApOwotICAgIFBsYXRmb3Jt
V2ViVmlldyhXS1BhZ2VSZWYsIFdLUGFnZUdyb3VwUmVmID0gMCk7CiAgICAgflBsYXRmb3JtV2Vi
VmlldygpOwogCiAgICAgV0tQYWdlUmVmIHBhZ2UoKTsKSW5kZXg6IFdlYktpdFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRU
b29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0JKHJldmlzaW9uIDcz
OTY1KQorKysgV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MywyMCArNDMsNiBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBs
YXRmb3JtV2ViVmlldyhXS0NvbnRlCiAgICAgW21fd2luZG93IHNldFJlbGVhc2VkV2hlbkNsb3Nl
ZDpOT107CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiBw
YWdlUmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCi17Ci0gICAgTlNSZWN0IHJlY3Qg
PSBOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKTsKLSAgICBtX3ZpZXcgPSBbW1dLVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpyZWN0IGZvckFzc29jaWF0ZWRQYWdlUmVmOnBhZ2VSZWYgcGFnZUdy
b3VwUmVmOnBhZ2VHcm91cFJlZl07Ci0KLSAgICBOU1JlY3Qgd2luZG93UmVjdCA9IE5TT2Zmc2V0
UmVjdChyZWN0LCAtMTAwMDAsIFtbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0g
ZnJhbWVdLnNpemUuaGVpZ2h0IC0gcmVjdC5zaXplLmhlaWdodCArIDEwMDAwKTsKLSAgICBtX3dp
bmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6d2luZG93UmVjdCBz
dHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVm
ZmVyZWQgZGVmZXI6WUVTXTsKLSAgICBbbV93aW5kb3cgc2V0Q29sb3JTcGFjZTpbW05TU2NyZWVu
IG1haW5TY3JlZW5dIGNvbG9yU3BhY2VdXTsKLSAgICBbW21fd2luZG93IGNvbnRlbnRWaWV3XSBh
ZGRTdWJ2aWV3Om1fdmlld107Ci0gICAgW21fd2luZG93IG9yZGVyQmFjazpuaWxdOwotICAgIFtt
X3dpbmRvdyBzZXRBdXRvZGlzcGxheTpOT107Ci0gICAgW21fd2luZG93IHNldFJlbGVhc2VkV2hl
bkNsb3NlZDpOT107Ci19Ci0KIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25l
ZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogewogICAgIFttX3ZpZXcgc2V0RnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KV07CkluZGV4OiBXZWJLaXRUb29scy9UZXN0V2ViS2l0
QVBJL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAJKHJldmlzaW9uIDczOTY1
KQorKysgV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNiBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6
cmVnaXN0ZXJXaW5kb3dDbGFzCiAgICAgOjpSZWdpc3RlckNsYXNzRXhXKCZ3bmRDbGFzcyk7CiB9
CiAKLQogUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKICAgICA6IG1fcGFyZW50V2luZG93
TWVzc2FnZU9ic2VydmVyKDApCiB7CkBAIC02NywxNiArNjYsNiBAQCBQbGF0Zm9ybVdlYlZpZXc6
OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRlCiAgICAgbV92aWV3ID0gV0tWaWV3Q3JlYXRlKHZpZXdS
ZWN0LCBjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYsIG1fd2luZG93KTsKIH0KIAotUGxhdGZvcm1X
ZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLUGFnZUdyb3VwUmVm
IHBhZ2VHcm91cFJlZikKLSAgICA6IG1fcGFyZW50V2luZG93TWVzc2FnZU9ic2VydmVyKDApCi17
Ci0gICAgcmVnaXN0ZXJXaW5kb3dDbGFzcygpOwotCi0gICAgUkVDVCB2aWV3UmVjdCA9IHswLCAw
LCA4MDAsIDYwMH07Ci0gICAgbV93aW5kb3cgPSBDcmVhdGVXaW5kb3dFeFcoMCwgaG9zdFdpbmRv
d0NsYXNzTmFtZSwgTCJUZXN0V2ViS2l0QVBJIiwgV1NfT1ZFUkxBUFBFRFdJTkRPVywgdmlld1Jl
Y3QubGVmdCwgdmlld1JlY3QudG9wLCB2aWV3UmVjdC5yaWdodCwgdmlld1JlY3QuYm90dG9tLCAw
LCAwLCAwLCB0aGlzKTsKLSAgICBtX3ZpZXcgPSBXS1ZpZXdDcmVhdGVGb3JBc3NvY2lhdGVkUGFn
ZSh2aWV3UmVjdCwgcGFnZVJlZiwgcGFnZUdyb3VwUmVmLCBtX3dpbmRvdyk7Ci19Ci0KIFBsYXRm
b3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldygpCiB7CiAgICAgOjpEZXN0cm95V2luZG93KG1f
d2luZG93KTsKSW5kZXg6IFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJW
aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bVdlYlZpZXcuaAkocmV2aXNpb24gNzM5NjUpCisrKyBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtV2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw2IEBAIG5h
bWVzcGFjZSBXVFIgewogY2xhc3MgUGxhdGZvcm1XZWJWaWV3IHsKIHB1YmxpYzoKICAgICBQbGF0
Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZik7Ci0gICAgUGxhdGZvcm1X
ZWJWaWV3KFdLUGFnZVJlZiwgV0tQYWdlR3JvdXBSZWYpOwogICAgIH5QbGF0Zm9ybVdlYlZpZXco
KTsKIAogICAgIFdLUGFnZVJlZiBwYWdlKCk7CkluZGV4OiBXZWJLaXRUb29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNzM5NjUpCisrKyBXZWJL
aXRUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyB2b2lkIGNsb3NlT3RoZXJQYWdlKFdLUGFnZVJl
ZiBwYWcKIAogc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBh
Z2UsIFdLRGljdGlvbmFyeVJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9u
LCBjb25zdCB2b2lkKikKIHsKLSAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBuZXcgUGxhdGZv
cm1XZWJWaWV3KG9sZFBhZ2UsIFdLUGFnZUdldFBhZ2VHcm91cChvbGRQYWdlKSk7CisgICAgUGxh
dGZvcm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmlldyhXS1BhZ2VHZXRDb250ZXh0
KG9sZFBhZ2UpLCBXS1BhZ2VHZXRQYWdlR3JvdXAob2xkUGFnZSkpOwogICAgIFdLUGFnZVJlZiBu
ZXdQYWdlID0gdmlldy0+cGFnZSgpOwogCiAgICAgdmlldy0+cmVzaXplVG8oODAwLCA2MDApOwpJ
bmRleDogV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFj
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRm
b3JtV2ViVmlld01hYy5tbQkocmV2aXNpb24gNzM5NjUpCisrKyBXZWJLaXRUb29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQx
LDIwICs0MSw2IEBAIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGUKICAg
ICBbbV93aW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKIH0KIAotUGxhdGZvcm1XZWJW
aWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLUGFnZUdyb3VwUmVmIHBh
Z2VHcm91cFJlZikKLXsKLSAgICBOU1JlY3QgcmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgODAwLCA2
MDApOwotICAgIG1fdmlldyA9IFtbV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOnJlY3QgZm9y
QXNzb2NpYXRlZFBhZ2VSZWY6cGFnZVJlZiBwYWdlR3JvdXBSZWY6cGFnZUdyb3VwUmVmXTsKLQot
ICAgIE5TUmVjdCB3aW5kb3dSZWN0ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC0xMDAwMCwgW1tbTlNT
Y3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSByZWN0
LnNpemUuaGVpZ2h0ICsgMTAwMDApOwotICAgIG1fd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDp3aW5kb3dSZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5k
b3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwotICAgIFtt
X3dpbmRvdyBzZXRDb2xvclNwYWNlOltbTlNTY3JlZW4gbWFpblNjcmVlbl0gY29sb3JTcGFjZV1d
OwotICAgIFtbbV93aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6bV92aWV3XTsKLSAgICBb
bV93aW5kb3cgb3JkZXJCYWNrOm5pbF07Ci0gICAgW21fd2luZG93IHNldEF1dG9kaXNwbGF5Ok5P
XTsKLSAgICBbbV93aW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKLX0KLQogdm9pZCBQ
bGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQp
CiB7CiAgICAgW21fdmlldyBzZXRGcmFtZTpOU01ha2VSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQp
XTsKSW5kZXg6IFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3
UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvUGxh
dGZvcm1XZWJWaWV3UXQuY3BwCShyZXZpc2lvbiA3Mzk2NSkKKysrIFdlYktpdFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw3ICszNCw2IEBAIG5hbWVzcGFjZSBXVFIgewogY2xhc3MgV2ViVmlldyA6IHB1YmxpYyBRR3Jh
cGhpY3NWaWV3IHsKIHB1YmxpYzoKICAgICBXZWJWaWV3KFdLQ29udGV4dFJlZik7Ci0gICAgV2Vi
VmlldyhXS1BhZ2VSZWYpOwogCiAgICAgUUdyYXBoaWNzV0tWaWV3KiB3a1ZpZXcoKSBjb25zdCB7
IHJldHVybiBtX2l0ZW07IH0KIApAQCAtNTIsMTQgKzUxLDYgQEAgV2ViVmlldzo6V2ViVmlldyhX
S0NvbnRleHRSZWYgY29udGV4dFJlZgogICAgIHNjZW5lKCktPmFkZEl0ZW0obV9pdGVtKTsKIH0K
IAotV2ViVmlldzo6V2ViVmlldyhXS1BhZ2VSZWYgcGFnZVJlZikKLSAgICA6IFFHcmFwaGljc1Zp
ZXcoKQotICAgICwgbV9pdGVtKG5ldyBRR3JhcGhpY3NXS1ZpZXcobmV3IFFXS0NvbnRleHQocGFn
ZVJlZiwgdGhpcykpKQotewotICAgIHNldFNjZW5lKG5ldyBRR3JhcGhpY3NTY2VuZSh0aGlzKSk7
Ci0gICAgc2NlbmUoKS0+YWRkSXRlbShtX2l0ZW0pOwotfQotCiBQbGF0Zm9ybVdlYlZpZXc6OlBs
YXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYpCiAg
ICAgOiBtX3ZpZXcobmV3IFdlYlZpZXcoY29udGV4dFJlZikpCiAgICAgLCBtX3dpbmRvdyhuZXcg
UU1haW5XaW5kb3coKSkKQEAgLTY5LDE1ICs2MCw2IEBAIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZv
cm1XZWJWaWV3KFdLQ29udGUKICAgICBtX3dpbmRvdy0+c2V0R2VvbWV0cnkoMCwgMCwgODAwLCA2
MDApOwogfQogCi1QbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1BhZ2VSZWYgcGFn
ZVJlZiwgV0tQYWdlR3JvdXBSZWYpCi0gICAgOiBtX3ZpZXcobmV3IFdlYlZpZXcocGFnZVJlZikp
Ci0gICAgLCBtX3dpbmRvdyhuZXcgUU1haW5XaW5kb3coKSkKLXsKLSAgICBtX3ZpZXctPnNldFBh
cmVudChtX3dpbmRvdyk7Ci0gICAgbV93aW5kb3ctPnNldENlbnRyYWxXaWRnZXQobV92aWV3KTsK
LSAgICBtX3dpbmRvdy0+c2V0R2VvbWV0cnkoMCwgMCwgODAwLCA2MDApOwotfQotCiBQbGF0Zm9y
bVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQogewogICAgIGRlbGV0ZSBtX3dpbmRvdzsKSW5k
ZXg6IFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vUGxhdGZv
cm1XZWJWaWV3V2luLmNwcAkocmV2aXNpb24gNzM5NjUpCisrKyBXZWJLaXRUb29scy9XZWJLaXRU
ZXN0UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NiwxNSArNTYsNiBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRlCiAg
ICAgbV92aWV3ID0gV0tWaWV3Q3JlYXRlKHZpZXdSZWN0LCBjb250ZXh0UmVmLCBwYWdlR3JvdXBS
ZWYsIG1fd2luZG93KTsKIH0KIAotUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQ
YWdlUmVmIHBhZ2VSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKLXsKLSAgICByZWdp
c3RlcldpbmRvd0NsYXNzKCk7Ci0KLSAgICBSRUNUIHZpZXdSZWN0ID0gezAsIDAsIDgwMCwgNjAw
fTsKLSAgICBtX3dpbmRvdyA9IENyZWF0ZVdpbmRvd0V4VygwLCBob3N0V2luZG93Q2xhc3NOYW1l
LCBMIldlYktpdFRlc3RSdW5uZXIiLCBXU19PVkVSTEFQUEVEV0lORE9XLCAwIC8qWE9GRlNFVCov
LCAwIC8qWU9GRlNFVCovLCB2aWV3UmVjdC5yaWdodCwgdmlld1JlY3QuYm90dG9tLCAwLCAwLCBH
ZXRNb2R1bGVIYW5kbGUoMCksIDApOwotICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZUZvckFzc29j
aWF0ZWRQYWdlKHZpZXdSZWN0LCBwYWdlUmVmLCBwYWdlR3JvdXBSZWYsIG1fd2luZG93KTsKLX0K
LQogUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KCkKIHsKICAgICBpZiAoOjpJc1dp
bmRvdyhtX3dpbmRvdykpCg==
</data>
<flag name="review"
          id="67388"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76458</attachid>
            <date>2010-12-13 15:48:03 -0800</date>
            <delta_ts>2010-12-13 16:51:29 -0800</delta_ts>
            <desc>Step 2</desc>
            <filename>step2.diff</filename>
            <type>text/plain</type>
            <size>37769</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3Mzk3OCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDMgQEAKKzIwMTAtMTItMTMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
YXNzb2NpYXRlZCBwYWdlIGNvbmNlcHQgZnJvbSBXS1ZpZXcgY29uc3RydWN0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwOTgzCisKKyAgICAgICAg
U3RlcCAyOiBSZW1vdmUgV2ViUGFnZU5hbWVzcGFjZS4gIEl0IG5vIGxvbmdlciBkb2VzIGFueXRo
aW5nLgorCisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06
CisgICAgICAgICgtW1dLVmlldyBpbml0V2l0aEZyYW1lOmNvbnRleHRSZWY6cGFnZUdyb3VwUmVm
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHQuY3BwOgorICAgICAgICAoUVdLQ29u
dGV4dDo6UVdLQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0
X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAo
UVdLUGFnZVByaXZhdGU6OlFXS1BhZ2VQcml2YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3F3a3BhZ2VfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6V2ViQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbnRleHQ6On5XZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6
Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZU5hbWVzcGFjZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VOYW1lc3BhY2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGV4dCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXc6OldlYlZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViVmlldy5o
OgorICAgICAgICAqIFdlYktpdDIucHJvOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKIDIwMTAtMTIt
MTMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggd2luZG93cyBi
dWlsZC4KSW5kZXg6IFdlYktpdDIvV2ViS2l0Mi5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9X
ZWJLaXQyLnBybwkocmV2aXNpb24gNzM5NzUpCisrKyBXZWJLaXQyL1dlYktpdDIucHJvCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNDMsNyArMzQzLDYgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNz
L1dlYk5hdmlnYXRpb25EYXRhLmggXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVD
bGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5oIFwKLSAgICBVSVByb2Nlc3Mv
V2ViUGFnZU5hbWVzcGFjZS5oIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggXAogICAg
IFVJUHJvY2Vzcy9XZWJQb2xpY3lDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlByZWZlcmVu
Y2VzLmggXApAQCAtNTM0LDcgKzUzMyw2IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9X
ZWJOYXZpZ2F0aW9uRGF0YS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVD
bGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmNwcCBcCi0gICAgVUlQcm9j
ZXNzL1dlYlBhZ2VOYW1lc3BhY2UuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBcCiAgICAgVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9X
ZWJQcmVmZXJlbmNlcy5jcHAgXApJbmRleDogV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgJKHJldmlzaW9uIDczOTc1KQor
KysgV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcx
LDYgQEAgcHVibGljOgogICAgICAgICBUeXBlTmF2aWdhdGlvbkRhdGEsCiAgICAgICAgIFR5cGVQ
YWdlLAogICAgICAgICBUeXBlUGFnZUdyb3VwLAotICAgICAgICBUeXBlUGFnZU5hbWVzcGFjZSwK
ICAgICAgICAgVHlwZVByZWZlcmVuY2VzLAogCiAgICAgICAgIC8vIEJ1bmRsZSB0eXBlcwpJbmRl
eDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHJldmlzaW9uIDczOTc1KQorKysgV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgotI2luY2x1ZGUgIldl
YlBhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
TWVzc2FnZXMuaCIKQEAgLTc5LDcgKzc4LDYgQEAgUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBXZWJD
b250ZXh0OjpjcmVhdAogICAgIAogV2ViQ29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwg
cHJvY2Vzc01vZGVsLCBjb25zdCBTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCkKICAgICA6IG1f
cHJvY2Vzc01vZGVsKHByb2Nlc3NNb2RlbCkKLSAgICAsIG1fc2hhcmVkTmFtZXNwYWNlKDApCiAg
ICAgLCBtX2RlZmF1bHRQYWdlR3JvdXAoV2ViUGFnZUdyb3VwOjpjcmVhdGUoKSkKICAgICAsIG1f
aW5qZWN0ZWRCdW5kbGVQYXRoKGluamVjdGVkQnVuZGxlUGF0aCkKICAgICAsIG1fdmlzaXRlZExp
bmtQcm92aWRlcih0aGlzKQpAQCAtMTAwLDExICs5OCwxMCBAQCBXZWJDb250ZXh0OjpXZWJDb250
ZXh0KFByb2Nlc3NNb2RlbCBwcm9jCiAKIFdlYkNvbnRleHQ6On5XZWJDb250ZXh0KCkKIHsKLSAg
ICBBU1NFUlQobV9wYWdlTmFtZXNwYWNlcy5pc0VtcHR5KCkpOwogICAgIHJlbW92ZUxhbmd1YWdl
Q2hhbmdlT2JzZXJ2ZXIodGhpcyk7CiAKICAgICBXZWJQcm9jZXNzTWFuYWdlcjo6c2hhcmVkKCku
Y29udGV4dFdhc0Rlc3Ryb3llZCh0aGlzKTsKLSAgICAKKwogI2lmbmRlZiBOREVCVUcKICAgICB3
ZWJDb250ZXh0Q291bnRlci5kZWNyZW1lbnQoKTsKICNlbmRpZgpAQCAtMjE0LDE0ICsyMTEsMTQg
QEAgdm9pZCBXZWJDb250ZXh0Ojpwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvYwogICAgIG1fcHJvY2Vz
cyA9IDA7CiB9CiAKLVdlYlBhZ2VQcm94eSogV2ViQ29udGV4dDo6Y3JlYXRlV2ViUGFnZShXZWJQ
YWdlTmFtZXNwYWNlKiBwYWdlTmFtZXNwYWNlLCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCkKK1dl
YlBhZ2VQcm94eSogV2ViQ29udGV4dDo6Y3JlYXRlV2ViUGFnZShXZWJQYWdlR3JvdXAqIHBhZ2VH
cm91cCkKIHsKICAgICBlbnN1cmVXZWJQcm9jZXNzKCk7CiAKICAgICBpZiAoIXBhZ2VHcm91cCkK
ICAgICAgICAgcGFnZUdyb3VwID0gbV9kZWZhdWx0UGFnZUdyb3VwLmdldCgpOwogCi0gICAgcmV0
dXJuIG1fcHJvY2Vzcy0+Y3JlYXRlV2ViUGFnZShwYWdlTmFtZXNwYWNlLCBwYWdlR3JvdXApOwor
ICAgIHJldHVybiBtX3Byb2Nlc3MtPmNyZWF0ZVdlYlBhZ2UodGhpcywgcGFnZUdyb3VwKTsKIH0K
IAogdm9pZCBXZWJDb250ZXh0OjpyZWxhdW5jaFByb2Nlc3NJZk5lY2Vzc2FyeSgpCkBAIC0yMjks
MjkgKzIyNiw2IEBAIHZvaWQgV2ViQ29udGV4dDo6cmVsYXVuY2hQcm9jZXNzSWZOZWNlc3MKICAg
ICBlbnN1cmVXZWJQcm9jZXNzKCk7CiB9CiAKLVdlYlBhZ2VOYW1lc3BhY2UqIFdlYkNvbnRleHQ6
OnNoYXJlZFBhZ2VOYW1lc3BhY2UoKQotewotICAgIGlmICghbV9zaGFyZWROYW1lc3BhY2UpCi0g
ICAgICAgIG1fc2hhcmVkTmFtZXNwYWNlID0gY3JlYXRlUGFnZU5hbWVzcGFjZSgpOwotICAgIHJl
dHVybiBtX3NoYXJlZE5hbWVzcGFjZS5nZXQoKTsKLX0KLQotUGFzc1JlZlB0cjxXZWJQYWdlTmFt
ZXNwYWNlPiBXZWJDb250ZXh0OjpjcmVhdGVQYWdlTmFtZXNwYWNlKCkKLXsKLSAgICBSZWZQdHI8
V2ViUGFnZU5hbWVzcGFjZT4gcGFnZU5hbWVzcGFjZSA9IFdlYlBhZ2VOYW1lc3BhY2U6OmNyZWF0
ZSh0aGlzKTsKLSAgICBtX3BhZ2VOYW1lc3BhY2VzLmFkZChwYWdlTmFtZXNwYWNlLmdldCgpKTsK
LSAgICByZXR1cm4gcGFnZU5hbWVzcGFjZS5yZWxlYXNlKCk7Ci19Ci0KLXZvaWQgV2ViQ29udGV4
dDo6cGFnZU5hbWVzcGFjZVdhc0Rlc3Ryb3llZChXZWJQYWdlTmFtZXNwYWNlKiBwYWdlTmFtZXNw
YWNlKQotewotICAgIGlmIChwYWdlTmFtZXNwYWNlID09IG1fc2hhcmVkTmFtZXNwYWNlKQotICAg
ICAgICBtX3NoYXJlZE5hbWVzcGFjZSA9IDA7Ci0KLSAgICBBU1NFUlQobV9wYWdlTmFtZXNwYWNl
cy5jb250YWlucyhwYWdlTmFtZXNwYWNlKSk7Ci0gICAgbV9wYWdlTmFtZXNwYWNlcy5yZW1vdmUo
cGFnZU5hbWVzcGFjZSk7Ci19Ci0KIHZvaWQgV2ViQ29udGV4dDo6cG9zdE1lc3NhZ2VUb0luamVj
dGVkQnVuZGxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJv
ZHkpCiB7CiAgICAgaWYgKCFtX3Byb2Nlc3MgfHwgIW1fcHJvY2Vzcy0+Y2FuU2VuZE1lc3NhZ2Uo
KSkgewpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkocmV2aXNpb24gNzM5NzUpCisrKyBXZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDYg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7Ci1jbGFzcyBXZWJQYWdlTmFt
ZXNwYWNlOwogY2xhc3MgV2ViUGFnZVByb3h5Owogc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM7CiAKQEAgLTcxLDE0ICs3MCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcm9jZXNz
RGlkRmluaXNoTGF1bmNoaW5nKFdlYlByb2Nlc3NQcm94eSopOwogICAgIHZvaWQgcHJvY2Vzc0Rp
ZENsb3NlKFdlYlByb2Nlc3NQcm94eSopOwogCi0gICAgV2ViUGFnZVByb3h5KiBjcmVhdGVXZWJQ
YWdlKFdlYlBhZ2VOYW1lc3BhY2UqLCBXZWJQYWdlR3JvdXAqID0gMCk7CisgICAgV2ViUGFnZVBy
b3h5KiBjcmVhdGVXZWJQYWdlKFdlYlBhZ2VHcm91cCogPSAwKTsKIAogICAgIHZvaWQgcmVsYXVu
Y2hQcm9jZXNzSWZOZWNlc3NhcnkoKTsKIAotICAgIFdlYlBhZ2VOYW1lc3BhY2UqIHNoYXJlZFBh
Z2VOYW1lc3BhY2UoKTsKLSAgICBQYXNzUmVmUHRyPFdlYlBhZ2VOYW1lc3BhY2U+IGNyZWF0ZVBh
Z2VOYW1lc3BhY2UoKTsKLSAgICB2b2lkIHBhZ2VOYW1lc3BhY2VXYXNEZXN0cm95ZWQoV2ViUGFn
ZU5hbWVzcGFjZSopOwotCiAgICAgY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgoKSBj
b25zdCB7IHJldHVybiBtX2luamVjdGVkQnVuZGxlUGF0aDsgfQogCiAgICAgdm9pZCBzZXRJbmpl
Y3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGEoUGFzc1JlZlB0cjxBUElPYmplY3Q+IHVz
ZXJEYXRhKSB7IG1faW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhID0gdXNlckRh
dGE7IH0KQEAgLTE2Myw5ICsxNTgsNiBAQCBwcml2YXRlOgogICAgIC8vIEZJWE1FOiBJbiB0aGUg
ZnV0dXJlLCB0aGlzIHNob3VsZCBiZSBvbmUgb3IgbW9yZSBXZWJQcm9jZXNzUHJveGllcy4KICAg
ICBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7CiAKLSAgICBSZWZQdHI8V2ViUGFn
ZU5hbWVzcGFjZT4gbV9zaGFyZWROYW1lc3BhY2U7Ci0gICAgSGFzaFNldDxXZWJQYWdlTmFtZXNw
YWNlKj4gbV9wYWdlTmFtZXNwYWNlczsKLQogICAgIFJlZlB0cjxXZWJQYWdlR3JvdXA+IG1fZGVm
YXVsdFBhZ2VHcm91cDsKIAogICAgIFJlZlB0cjxBUElPYmplY3Q+IG1faW5qZWN0ZWRCdW5kbGVJ
bml0aWFsaXphdGlvblVzZXJEYXRhOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZU5h
bWVzcGFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZU5hbWVz
cGFjZS5jcHAJKHJldmlzaW9uIDczOTc1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZU5h
bWVzcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJXZWJQYWdlTmFtZXNwYWNlLmgiCi0KLSNpbmNsdWRlICJXS0NvbnRleHRQcml2
YXRlLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc01hbmFnZXIuaCIKLSNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHkuaCIKLQotI2lmbmRlZiBOREVCVUcKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExl
YWtDb3VudGVyLmg+Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLSNpZm5kZWYgTkRF
QlVHCi1zdGF0aWMgV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIgd2ViUGFnZU5hbWVzcGFjZUNv
dW50ZXIoIldlYlBhZ2VOYW1lc3BhY2UiKTsKLSNlbmRpZgotCi1XZWJQYWdlTmFtZXNwYWNlOjpX
ZWJQYWdlTmFtZXNwYWNlKFdlYkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBtX2NvbnRleHQoY29u
dGV4dCkKLXsKLSNpZm5kZWYgTkRFQlVHCi0gICAgd2ViUGFnZU5hbWVzcGFjZUNvdW50ZXIuaW5j
cmVtZW50KCk7Ci0jZW5kaWYKLX0KLQotV2ViUGFnZU5hbWVzcGFjZTo6fldlYlBhZ2VOYW1lc3Bh
Y2UoKQotewotICAgIEFTU0VSVChtX2NvbnRleHQpOwotICAgIG1fY29udGV4dC0+cGFnZU5hbWVz
cGFjZVdhc0Rlc3Ryb3llZCh0aGlzKTsKLQotI2lmbmRlZiBOREVCVUcKLSAgICB3ZWJQYWdlTmFt
ZXNwYWNlQ291bnRlci5kZWNyZW1lbnQoKTsKLSNlbmRpZgotfQotCi1XZWJQYWdlUHJveHkqIFdl
YlBhZ2VOYW1lc3BhY2U6OmNyZWF0ZVdlYlBhZ2UoV2ViUGFnZUdyb3VwKiBncm91cCkKLXsKLSAg
ICByZXR1cm4gbV9jb250ZXh0LT5jcmVhdGVXZWJQYWdlKHRoaXMsIGdyb3VwKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlTmFtZXNw
YWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZU5hbWVzcGFjZS5o
CShyZXZpc2lvbiA3Mzk3NSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VOYW1lc3BhY2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBX
ZWJQYWdlTmFtZXNwYWNlX2gKLSNkZWZpbmUgV2ViUGFnZU5hbWVzcGFjZV9oCi0KLSNpbmNsdWRl
ICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJXZWJDb250ZXh0LmgiCi0jaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1jbGFzcyBXZWJDb250ZXh0OwotY2xhc3MgV2ViUGFnZUdyb3VwOwotCi1jbGFzcyBXZWJQ
YWdlTmFtZXNwYWNlIDogcHVibGljIEFQSU9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVQYWdlTmFtZXNwYWNlOwotCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViUGFnZU5hbWVzcGFjZT4gY3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCi0gICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlBhZ2VOYW1lc3BhY2UoY29udGV4dCkp
OwotICAgIH0KLQotICAgIHZpcnR1YWwgfldlYlBhZ2VOYW1lc3BhY2UoKTsKLQotICAgIFdlYlBh
Z2VQcm94eSogY3JlYXRlV2ViUGFnZShXZWJQYWdlR3JvdXAqKTsKLQotICAgIFdlYkNvbnRleHQq
IGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KLSAgICBXZWJQcm9j
ZXNzUHJveHkqIHByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQtPnByb2Nlc3MoKTsg
fQotCi1wcml2YXRlOgotICAgIFdlYlBhZ2VOYW1lc3BhY2UoV2ViQ29udGV4dCopOwotCi0gICAg
dmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KLSAgICBSZWZQ
dHI8V2ViQ29udGV4dD4gbV9jb250ZXh0OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
LSNlbmRpZiAvLyBXZWJQYWdlTmFtZXNwYWNlX2gKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAkocmV2aXNpb24gNzM5NzUpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw2IEBACiAjaW5jbHVkZSAiV2ViUGFn
ZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwRGF0YS5oIgogI2luY2x1ZGUgIldlYlBh
Z2VNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlBhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJX
ZWJQb3B1cEl0ZW0uaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eS5oIgogI2luY2x1ZGUg
IldlYlByZWZlcmVuY2VzLmgiCkBAIC04MSwxNCArODAsMTQgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiBzdGF0aWMgV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIgd2ViUGFnZVByb3h5Q291bnRlcigi
V2ViUGFnZVByb3h5Iik7CiAjZW5kaWYKIAotUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+IFdlYlBh
Z2VQcm94eTo6Y3JlYXRlKFdlYlBhZ2VOYW1lc3BhY2UqIHBhZ2VOYW1lc3BhY2UsIFdlYlBhZ2VH
cm91cCogcGFnZUdyb3VwLCB1aW50NjRfdCBwYWdlSUQpCitQYXNzUmVmUHRyPFdlYlBhZ2VQcm94
eT4gV2ViUGFnZVByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCwgV2ViUGFnZUdyb3Vw
KiBwYWdlR3JvdXAsIHVpbnQ2NF90IHBhZ2VJRCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYlBhZ2VQcm94eShwYWdlTmFtZXNwYWNlLCBwYWdlR3JvdXAsIHBhZ2VJRCkpOworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgV2ViUGFnZVByb3h5KGNvbnRleHQsIHBhZ2VHcm91cCwgcGFnZUlE
KSk7CiB9CiAKLVdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFdlYlBhZ2VOYW1lc3BhY2UqIHBh
Z2VOYW1lc3BhY2UsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwLCB1aW50NjRfdCBwYWdlSUQpCitX
ZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJQYWdlR3Jv
dXAqIHBhZ2VHcm91cCwgdWludDY0X3QgcGFnZUlEKQogICAgIDogbV9wYWdlQ2xpZW50KDApCi0g
ICAgLCBtX3BhZ2VOYW1lc3BhY2UocGFnZU5hbWVzcGFjZSkKKyAgICAsIG1fY29udGV4dChjb250
ZXh0KQogICAgICwgbV9wYWdlR3JvdXAocGFnZUdyb3VwKQogICAgICwgbV9tYWluRnJhbWUoMCkK
ICAgICAsIG1fZXN0aW1hdGVkUHJvZ3Jlc3MoMC4wKQpAQCAtMTMwLDEyICsxMjksNyBAQCBXZWJQ
YWdlUHJveHk6On5XZWJQYWdlUHJveHkoKQogCiBXZWJQcm9jZXNzUHJveHkqIFdlYlBhZ2VQcm94
eTo6cHJvY2VzcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGFnZU5hbWVzcGFjZS0+cHJvY2Vz
cygpOwotfQotCi1XZWJDb250ZXh0KiBXZWJQYWdlUHJveHk6OmNvbnRleHQoKSBjb25zdAotewot
ICAgIHJldHVybiBtX3BhZ2VOYW1lc3BhY2UtPmNvbnRleHQoKTsKKyAgICByZXR1cm4gbV9jb250
ZXh0LT5wcm9jZXNzKCk7CiB9CiAKIGJvb2wgV2ViUGFnZVByb3h5Ojppc1ZhbGlkKCkKQEAgLTE5
Myw4ICsxODcsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aW5pdGlhbGl6ZUNvbnRleHRNZW51CiB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVsYXVuY2goKQogewogICAgIG1faXNWYWxpZCA9IHRydWU7Ci0g
ICAgbV9wYWdlTmFtZXNwYWNlLT5jb250ZXh0KCktPnJlbGF1bmNoUHJvY2Vzc0lmTmVjZXNzYXJ5
KCk7Ci0gICAgbV9wYWdlTmFtZXNwYWNlLT5wcm9jZXNzKCktPmFkZEV4aXN0aW5nV2ViUGFnZSh0
aGlzLCBtX3BhZ2VJRCk7CisgICAgY29udGV4dCgpLT5yZWxhdW5jaFByb2Nlc3NJZk5lY2Vzc2Fy
eSgpOworICAgIHByb2Nlc3MoKS0+YWRkRXhpc3RpbmdXZWJQYWdlKHRoaXMsIG1fcGFnZUlEKTsK
IAogICAgIG1fcGFnZUNsaWVudC0+ZGlkUmVsYXVuY2hQcm9jZXNzKCk7CiB9CkBAIC0zOTgsNyAr
MzkyLDcgQEAgYm9vbCBXZWJQYWdlUHJveHk6OmNhblNob3dNSU1FVHlwZShjb25zdAogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICBTdHJpbmcgbmV3TWltZVR5cGUgPSBtaW1lVHlwZTsK
LSAgICBQbHVnaW5JbmZvU3RvcmU6OlBsdWdpbiBwbHVnaW4gPSBwYWdlTmFtZXNwYWNlKCktPmNv
bnRleHQoKS0+cGx1Z2luSW5mb1N0b3JlKCktPmZpbmRQbHVnaW4obmV3TWltZVR5cGUsIEtVUkwo
KSk7CisgICAgUGx1Z2luSW5mb1N0b3JlOjpQbHVnaW4gcGx1Z2luID0gY29udGV4dCgpLT5wbHVn
aW5JbmZvU3RvcmUoKS0+ZmluZFBsdWdpbihuZXdNaW1lVHlwZSwgS1VSTCgpKTsKICAgICBpZiAo
IXBsdWdpbi5wYXRoLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtNTk0LDcg
KzU4OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW8KICAgICB1
aW50NjRfdCBkb3dubG9hZElEID0gMDsKICAgICBpZiAoYWN0aW9uID09IFBvbGljeURvd25sb2Fk
KSB7CiAgICAgICAgIC8vIENyZWF0ZSBhIGRvd25sb2FkIHByb3h5LgotICAgICAgICBkb3dubG9h
ZElEID0gcGFnZU5hbWVzcGFjZSgpLT5jb250ZXh0KCktPmNyZWF0ZURvd25sb2FkUHJveHkoKTsK
KyAgICAgICAgZG93bmxvYWRJRCA9IGNvbnRleHQoKS0+Y3JlYXRlRG93bmxvYWRQcm94eSgpOwog
ICAgIH0KIAogICAgIC8vIElmIHdlIHJlY2VpdmVkIGEgcG9saWN5IGRlY2lzaW9uIHdoaWxlIGlu
IGRlY2lkZVBvbGljeUZvck1JTUVUeXBlIHRoZSBkZWNpc2lvbiB3aWxsIApAQCAtODM4LDcgKzgz
Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hQcm9ncmVzcygpCiB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBsb2FkaW5nU3Vic3RpdHV0ZURhdGFGb3JVbnJlYWNo
YWJsZVVSTCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVm
UHRyPEFQSU9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2Rl
ciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcGFnZU5hbWVzcGFjZSgpLT5jb250ZXh0KCkpOwor
ICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEs
IGNvbnRleHQoKSk7CiAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2Rlcikp
CiAgICAgICAgIHJldHVybjsKIApAQCAtODU0LDcgKzg0OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRTdGFydFByb3Zpc2lvbmFsTG8KIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIHVybCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7
CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNz
YWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcGFnZU5hbWVzcGFjZSgpLT5jb250
ZXh0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIo
dXNlckRhdGEsIGNvbnRleHQoKSk7CiAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdl
RGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtODY3LDcgKzg2MSw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXIKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRG
YWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewog
ICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIHBhZ2VOYW1lc3BhY2UoKS0+Y29udGV4
dCgpKTsKKyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVz
ZXJEYXRhLCBjb250ZXh0KCkpOwogICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURl
Y29kZXIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTg4MCw3ICs4NzQsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29t
bWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IGJvb2wgZnJhbWVIYXNDdXN0b21SZXByZXNlbnRhdGlvbiwgY29uc3QgUGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29udGV4
dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcGFnZU5hbWVzcGFj
ZSgpLT5jb250ZXh0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZURlY29kZXIodXNlckRhdGEsIGNvbnRleHQoKSk7CiAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29k
ZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTAwLDcgKzg5NCw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUKIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0
PiB1c2VyRGF0YTsKLSAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNv
ZGVyKHVzZXJEYXRhLCBwYWdlTmFtZXNwYWNlKCktPmNvbnRleHQoKSk7CisgICAgV2ViQ29udGV4
dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgY29udGV4dCgpKTsK
ICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC05MTIsNyArOTA2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERv
Y3VtZW50TG9hZAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKIHsKICAg
ICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKLSAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VE
ZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBwYWdlTmFtZXNwYWNlKCktPmNvbnRleHQo
KSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2Vy
RGF0YSwgY29udGV4dCgpKTsKICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNv
ZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05MjUsNyArOTE5LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZQogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Is
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAgIFJlZlB0cjxBUElP
YmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZURlY29kZXIodXNlckRhdGEsIHBhZ2VOYW1lc3BhY2UoKS0+Y29udGV4dCgpKTsKKyAgICBXZWJD
b250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBjb250ZXh0
KCkpOwogICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTkzOCw3ICs5MzIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFp
bExvYWRGb3JGcmFtZSh1CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wYXF1ZVNhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIHVybCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7Ci0gICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcGFn
ZU5hbWVzcGFjZSgpLT5jb250ZXh0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29k
ZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIGNvbnRleHQoKSk7CiAgICAgaWYgKCFhcmd1bWVu
dHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTUxLDcg
Kzk0NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2EKIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIHRpdGxlLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykK
IHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKLSAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBwYWdlTmFtZXNwYWNlKCktPmNv
bnRleHQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rl
cih1c2VyRGF0YSwgY29udGV4dCgpKTsKICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3Nh
Z2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05NjksNyArOTYzLDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYQogdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7Ci0g
ICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwg
cGFnZU5hbWVzcGFjZSgpLT5jb250ZXh0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURl
Y29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIGNvbnRleHQoKSk7CiAgICAgaWYgKCFhcmd1
bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTgx
LDcgKzk3NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZyYW0KIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKIHsK
ICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKLSAgICBXZWJDb250ZXh0VXNlck1lc3Nh
Z2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBwYWdlTmFtZXNwYWNlKCktPmNvbnRl
eHQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1
c2VyRGF0YSwgY29udGV4dCgpKTsKICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05OTMsNyArOTg3LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZpcnN0VmlzdWFsbHlOb25FbQogdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJl
bW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsK
LSAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRh
LCBwYWdlTmFtZXNwYWNlKCktPmNvbnRleHQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgY29udGV4dCgpKTsKICAgICBpZiAoIWFy
Z3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0x
MDA1LDcgKzk5OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZW1vdmVGcmFtZUZyb21IaWUK
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAg
ICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcGFnZU5hbWVzcGFjZSgpLT5jb250ZXh0
KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNl
ckRhdGEsIGNvbnRleHQoKSk7CiAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVj
b2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTAxNyw3ICsxMDExLDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbgogdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1
bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRh
OwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRh
dGEsIHBhZ2VOYW1lc3BhY2UoKS0+Y29udGV4dCgpKTsKKyAgICBXZWJDb250ZXh0VXNlck1lc3Nh
Z2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBjb250ZXh0KCkpOwogICAgIGlmICgh
YXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKQEAg
LTEwODcsNyArMTA4MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JNSU1F
VHkKIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBTdHJpbmdQYWlyVmVjdG9yJiB0ZXh0RmllbGRW
YWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRl
eHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIHBhZ2VOYW1lc3Bh
Y2UoKS0+Y29udGV4dCgpKTsKKyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3Nh
Z2VEZWNvZGVyKHVzZXJEYXRhLCBjb250ZXh0KCkpOwogICAgIGlmICghYXJndW1lbnRzLT5kZWNv
ZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTExNDYsNyArMTE0MCw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojptb3VzZURpZE1vdmVPdmVyRWxlbWUKIHsKIAogICAgIFJl
ZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29k
ZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIHBhZ2VOYW1lc3BhY2UoKS0+Y29udGV4dCgpKTsK
KyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRh
LCBjb250ZXh0KCkpOwogICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIp
KQogICAgICAgICByZXR1cm47CiAKQEAgLTEzNzIsNyArMTM2Niw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpoaWRlUG9wdXBNZW51KCkKIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29udGV4dE1lbnUo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVMb2NhdGlvbiwgY29uc3QgVmVjdG9yPFdlYkNv
bnRleHRNZW51SXRlbURhdGE+JiBwcm9wb3NlZEl0ZW1zLCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKLSAgICBX
ZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBwYWdl
TmFtZXNwYWNlKCktPmNvbnRleHQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2Rl
ciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgY29udGV4dCgpKTsKICAgICBpZiAoIWFyZ3VtZW50
cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBXZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gNzM5NzUpCisrKyBXZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNiBAQCBjbGFzcyBX
ZWJFZGl0Q29tbWFuZFByb3h5OwogY2xhc3MgV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFdlYk1v
dXNlRXZlbnQ7CiBjbGFzcyBXZWJQYWdlR3JvdXA7Ci1jbGFzcyBXZWJQYWdlTmFtZXNwYWNlOwog
Y2xhc3MgV2ViUG9wdXBNZW51UHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiBjbGFzcyBX
ZWJVUkxSZXF1ZXN0OwpAQCAtMTA0LDcgKzEwMyw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eSA6IHB1
YmxpYyBBUElPYmplY3QgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUg
PSBUeXBlUGFnZTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gY3JlYXRl
KFdlYlBhZ2VOYW1lc3BhY2UqLCBXZWJQYWdlR3JvdXAqLCB1aW50NjRfdCBwYWdlSUQpOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqLCBXZWJQ
YWdlR3JvdXAqLCB1aW50NjRfdCBwYWdlSUQpOwogCiAgICAgdmlydHVhbCB+V2ViUGFnZVByb3h5
KCk7CiAKQEAgLTI0OSw4ICsyNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlckVkaXRD
b21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4sIFVuZG9PclJlZG8pOwogCiAg
ICAgV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzKCkgY29uc3Q7Ci0gICAgV2ViUGFnZU5hbWVzcGFj
ZSogcGFnZU5hbWVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZU5hbWVzcGFjZS5nZXQoKTsg
fQotICAgIFdlYkNvbnRleHQqIGNvbnRleHQoKSBjb25zdDsKKyAgICBXZWJDb250ZXh0KiBjb250
ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKICAgICBXZWJQYWdlR3Jv
dXAqIHBhZ2VHcm91cCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUdyb3VwLmdldCgpOyB9CiAKQEAg
LTI3NCw3ICsyNzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBXZWJQYWdl
UHJveHkoV2ViUGFnZU5hbWVzcGFjZSosIFdlYlBhZ2VHcm91cCosIHVpbnQ2NF90IHBhZ2VJRCk7
CisgICAgV2ViUGFnZVByb3h5KFdlYkNvbnRleHQqLCBXZWJQYWdlR3JvdXAqLCB1aW50NjRfdCBw
YWdlSUQpOwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBl
OyB9CiAKQEAgLTQwOCw3ICs0MDYsNyBAQCBwcml2YXRlOgogICAgIFdlYlBhZ2VDb250ZXh0TWVu
dUNsaWVudCBtX2NvbnRleHRNZW51Q2xpZW50OwogCiAgICAgT3duUHRyPERyYXdpbmdBcmVhUHJv
eHk+IG1fZHJhd2luZ0FyZWE7Ci0gICAgUmVmUHRyPFdlYlBhZ2VOYW1lc3BhY2U+IG1fcGFnZU5h
bWVzcGFjZTsKKyAgICBSZWZQdHI8V2ViQ29udGV4dD4gbV9jb250ZXh0OwogICAgIFJlZlB0cjxX
ZWJQYWdlR3JvdXA+IG1fcGFnZUdyb3VwOwogICAgIFJlZlB0cjxXZWJGcmFtZVByb3h5PiBtX21h
aW5GcmFtZTsKICAgICBSZWZQdHI8V2ViRnJhbWVQcm94eT4gbV9mb2N1c2VkRnJhbWU7CkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDczOTc1KQorKysg
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNs
dWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oIgot
I2luY2x1ZGUgIldlYlBhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNz
YWdlcy5oIgpAQCAtMTM2LDEyICsxMzUsMTIgQEAgV2ViUGFnZVByb3h5KiBXZWJQcm9jZXNzUHJv
eHk6OndlYlBhZ2UodQogICAgIHJldHVybiBtX3BhZ2VNYXAuZ2V0KHBhZ2VJRCkuZ2V0KCk7CiB9
CiAKLVdlYlBhZ2VQcm94eSogV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQYWdlKFdlYlBhZ2VO
YW1lc3BhY2UqIHBhZ2VOYW1lc3BhY2UsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwKQorV2ViUGFn
ZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVdlYlBhZ2UoV2ViQ29udGV4dCogY29udGV4
dCwgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXApCiB7Ci0gICAgQVNTRVJUKHBhZ2VOYW1lc3BhY2Ut
PnByb2Nlc3MoKSA9PSB0aGlzKTsKKyAgICBBU1NFUlQoY29udGV4dC0+cHJvY2VzcygpID09IHRo
aXMpOwogCiAgICAgdW5zaWduZWQgcGFnZUlEID0gZ2VuZXJhdGVQYWdlSUQoKTsKLSAgICBSZWZQ
dHI8V2ViUGFnZVByb3h5PiB3ZWJQYWdlID0gV2ViUGFnZVByb3h5OjpjcmVhdGUocGFnZU5hbWVz
cGFjZSwgcGFnZUdyb3VwLCBwYWdlSUQpOworICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IHdlYlBh
Z2UgPSBXZWJQYWdlUHJveHk6OmNyZWF0ZShjb250ZXh0LCBwYWdlR3JvdXAsIHBhZ2VJRCk7CiAg
ICAgbV9wYWdlTWFwLnNldChwYWdlSUQsIHdlYlBhZ2UpOwogICAgIHJldHVybiB3ZWJQYWdlLmdl
dCgpOwogfQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHJldmlzaW9uIDcz
OTc1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ5LDcgKzQ5LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQ29udGV4dDsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKLWNs
YXNzIFdlYlBhZ2VOYW1lc3BhY2U7CiBzdHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZTsKIAog
Y2xhc3MgV2ViUHJvY2Vzc1Byb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUHJvY2Vzc1Byb3h5
PiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGll
bnQsIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50LCBUaHJlYWRMYXVuY2hlcjo6Q2xpZW50IHsKQEAg
LTc5LDcgKzc4LDcgQEAgcHVibGljOgogICAgIFBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIgcHJv
Y2Vzc0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NMYXVuY2hlci0+cHJvY2Vz
c0lkZW50aWZpZXIoKTsgfQogCiAgICAgV2ViUGFnZVByb3h5KiB3ZWJQYWdlKHVpbnQ2NF90IHBh
Z2VJRCkgY29uc3Q7Ci0gICAgV2ViUGFnZVByb3h5KiBjcmVhdGVXZWJQYWdlKFdlYlBhZ2VOYW1l
c3BhY2UqLCBXZWJQYWdlR3JvdXAqKTsKKyAgICBXZWJQYWdlUHJveHkqIGNyZWF0ZVdlYlBhZ2Uo
V2ViQ29udGV4dCosIFdlYlBhZ2VHcm91cCopOwogICAgIHZvaWQgYWRkRXhpc3RpbmdXZWJQYWdl
KFdlYlBhZ2VQcm94eSosIHVpbnQ2NF90IHBhZ2VJRCk7CiAgICAgdm9pZCByZW1vdmVXZWJQYWdl
KHVpbnQ2NF90IHBhZ2VJRCk7CiAKQEAgLTE0NCwxMCArMTQzLDcgQEAgcHJpdmF0ZToKIAogICAg
IFdlYkNvbnRleHQqIG1fY29udGV4dDsKIAotICAgIC8vIE5PVEU6IFRoaXMgbWFwIGlzIGZvciBX
ZWJQYWdlUHJveGllcyBpbiBhbGwgV2ViUGFnZU5hbWVzcGFjZXMgdGhhdCB1c2UgdGhpcyBwcm9j
ZXNzLgogICAgIFdlYlBhZ2VQcm94eU1hcCBtX3BhZ2VNYXA7Ci0KLSAgICAvLyBOT1RFOiBUaGlz
IG1hcCBpcyBmb3IgV2ViQmFja0ZvcndhcmRMaXN0SXRlbXMgaW4gYWxsIFdlYlBhZ2VOYW1lc3Bh
Y2VzIGFuZCBXZWJQYWdlUHJveGllcyB0aGF0IHVzZSB0aGlzIHByb2Nlc3MuCiAgICAgV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbU1hcCBtX2JhY2tGb3J3YXJkTGlzdEl0ZW1NYXA7CiAKICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViRnJhbWVQcm94eT4gPiBtX2ZyYW1lTWFwOwpJbmRleDog
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgJKHJldmlzaW9uIDczOTc1KQorKysgV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgdHlw
ZWRlZiB2b2lkICgqV0tQYWdlRGlkU3RhcnRQcm9ncmVzc0NhbAogdHlwZWRlZiB2b2lkICgqV0tQ
YWdlRGlkQ2hhbmdlUHJvZ3Jlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRmluaXNoUHJvZ3Jlc3NDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCi0vLyBXZWJQ
YWdlTmFtZXNwYWNlIENsaWVudAorLy8gV2ViUHJvY2VzcyBDbGllbnQKIC8vIEZJWE1FOiBUaGVz
ZSB0aHJlZSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBiZSBwYXJ0IG9mIHRoaXMgY2xpZW50LgogdHlw
ZWRlZiB2b2lkICgqV0tQYWdlUHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZUNhbGxiYWNrKShX
S1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VQcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQkocmV2aXNpb24gNzM5NzYpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQAogI2ltcG9ydCAiV2ViQ29udGV4
dC5oIgogI2ltcG9ydCAiV2ViRXZlbnRGYWN0b3J5LmgiCiAjaW1wb3J0ICJXZWJQYWdlLmgiCi0j
aW1wb3J0ICJXZWJQYWdlTmFtZXNwYWNlLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNp
bXBvcnQgIldlYlByb2Nlc3NNYW5hZ2VyLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIK
QEAgLTE1OCw3ICsxNTcsNyBAQCAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgY29u
dGV4CiAgICAgX2RhdGEgPSBbW1dLVmlld0RhdGEgYWxsb2NdIGluaXRdOwogCiAgICAgX2RhdGEt
Pl9wYWdlQ2xpZW50ID0gUGFnZUNsaWVudEltcGw6OmNyZWF0ZShzZWxmKTsKLSAgICBfZGF0YS0+
X3BhZ2UgPSB0b0ltcGwoY29udGV4dFJlZiktPnNoYXJlZFBhZ2VOYW1lc3BhY2UoKS0+Y3JlYXRl
V2ViUGFnZSh0b0ltcGwocGFnZUdyb3VwUmVmKSk7CisgICAgX2RhdGEtPl9wYWdlID0gdG9JbXBs
KGNvbnRleHRSZWYpLT5jcmVhdGVXZWJQYWdlKHRvSW1wbChwYWdlR3JvdXBSZWYpKTsKICAgICBf
ZGF0YS0+X3BhZ2UtPnNldFBhZ2VDbGllbnQoX2RhdGEtPl9wYWdlQ2xpZW50LmdldCgpKTsKICAg
ICBfZGF0YS0+X3BhZ2UtPnNldERyYXdpbmdBcmVhKENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVBy
b3h5OjpjcmVhdGUoc2VsZikpOwogICAgIF9kYXRhLT5fcGFnZS0+aW5pdGlhbGl6ZVdlYlBhZ2Uo
SW50U2l6ZShmcmFtZS5zaXplKSk7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdy
YXBoaWNzd2t2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cWdyYXBoaWNzd2t2aWV3LmNwcAkocmV2aXNpb24gNzM5NzUpCisrKyBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYs
NiBAQAogI2luY2x1ZGUgIlRpbGVkRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIlVwZGF0
ZUNodW5rLmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViUGFnZU5hbWVz
cGFjZS5oIgogI2luY2x1ZGUgInF3a3BhZ2UuaCIKICNpbmNsdWRlICJxd2twYWdlX3AuaCIKICNp
bmNsdWRlIDxRQ3Vyc29yPgpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRl
eHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0
LmNwcAkocmV2aXNpb24gNzM5NzYpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrY29u
dGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDYgQEAgUVdLQ29udGV4dDo6UVdL
Q29udGV4dChRT2JqZWN0KiBwYXJlbnQpCiAgICAgLCBkKG5ldyBRV0tDb250ZXh0UHJpdmF0ZSh0
aGlzKSkKIHsKICAgICBkLT5jb250ZXh0ID0gV2ViQ29udGV4dDo6Y3JlYXRlKFN0cmluZygpKTsK
LSAgICBkLT5wYWdlTmFtZXNwYWNlID0gZC0+Y29udGV4dC0+c2hhcmVkUGFnZU5hbWVzcGFjZSgp
OwogfQogCiBRV0tDb250ZXh0OjpRV0tDb250ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBR
T2JqZWN0KiBwYXJlbnQpCkBAIC01OCw3ICs1Nyw2IEBAIFFXS0NvbnRleHQ6OlFXS0NvbnRleHQo
V0tDb250ZXh0UmVmIGNvbnQKICAgICAsIGQobmV3IFFXS0NvbnRleHRQcml2YXRlKHRoaXMpKQog
ewogICAgIGQtPmNvbnRleHQgPSB0b0ltcGwoY29udGV4dFJlZik7Ci0gICAgZC0+cGFnZU5hbWVz
cGFjZSA9IGQtPmNvbnRleHQtPnNoYXJlZFBhZ2VOYW1lc3BhY2UoKTsKIH0KIAogUVdLQ29udGV4
dDo6flFXS0NvbnRleHQoKQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRl
eHRfcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0
X3AuaAkocmV2aXNpb24gNzM5NzUpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrY29u
dGV4dF9wLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDYgQEAKICNkZWZpbmUgcXdrY29u
dGV4dF9wX2gKIAogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKLSNpbmNsdWRlICJXZWJQYWdlTmFt
ZXNwYWNlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBjbGFzcyBRV0tDb250ZXh0UHJp
dmF0ZSB7CkBAIC0zMyw3ICszMiw2IEBAIHB1YmxpYzoKICAgICBRV0tDb250ZXh0KiBxOwogCiAg
ICAgUmVmUHRyPFdlYktpdDo6V2ViQ29udGV4dD4gY29udGV4dDsKLSAgICBSZWZQdHI8V2ViS2l0
OjpXZWJQYWdlTmFtZXNwYWNlPiBwYWdlTmFtZXNwYWNlOwogfTsKIAogI2VuZGlmIC8qIHFrY29u
dGV4dF9wX2ggKi8KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAJKHJldmlz
aW9uIDczOTc1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIFFXS1BhZ2VQcml2YXRlOjpRV0tQYWdlUHJpdmF0
ZShRV0tQYWdlKiAKICAgICAsIGNyZWF0ZU5ld1BhZ2VGbigwKQogewogICAgIG1lbXNldChhY3Rp
b25zLCAwLCBzaXplb2YoYWN0aW9ucykpOwotICAgIHBhZ2UgPSBjb250ZXh0LT5kLT5wYWdlTmFt
ZXNwYWNlLT5jcmVhdGVXZWJQYWdlKDApOworICAgIHBhZ2UgPSBjb250ZXh0LT5kLT5jb250ZXh0
LT5jcmVhdGVXZWJQYWdlKDApOwogICAgIHBhZ2UtPnNldFBhZ2VDbGllbnQodGhpcyk7CiAgICAg
aGlzdG9yeSA9IFFXS0hpc3RvcnlQcml2YXRlOjpjcmVhdGVIaXN0b3J5KHBhZ2UtPmJhY2tGb3J3
YXJkTGlzdCgpKTsKIH0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3Au
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmgJKHJl
dmlzaW9uIDczOTc1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94
eS5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJxd2twYWdlLmgiCi0jaW5j
bHVkZSAiV2ViUGFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpJbmRleDog
V2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
VUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24gNzM5NzYpCisrKyBXZWJLaXQyL1VJ
UHJvY2Vzcy93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDYgQEAK
ICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5V2luLmgiCiAjaW5jbHVkZSAiV2ViRWRpdENv
bW1hbmRQcm94eS5oIgogI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgotI2luY2x1ZGUgIldl
YlBhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJX
ZWJQb3B1cE1lbnVQcm94eVdpbi5oIgogI2luY2x1ZGUgPENvbW1jdHJsLmg+CkBAIC0xOTIsMTQg
KzE5MSw5IEBAIFdlYlZpZXc6OldlYlZpZXcoUkVDVCByZWN0LCBXZWJDb250ZXh0KiAKICAgICAs
IG1fdHJhY2tpbmdNb3VzZUxlYXZlKGZhbHNlKQogICAgICwgbV9pc0JlaW5nRGVzdHJveWVkKGZh
bHNlKQogewotICAgIGluaXRpYWxpemUoY29udGV4dC0+c2hhcmVkUGFnZU5hbWVzcGFjZSgpLCBw
YWdlR3JvdXAsIHBhcmVudFdpbmRvdyk7Ci19Ci0KLXZvaWQgV2ViVmlldzo6aW5pdGlhbGl6ZShX
ZWJQYWdlTmFtZXNwYWNlKiBwYWdlTmFtZXNwYWNlLCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCwg
SFdORCBwYXJlbnRXaW5kb3cpCi17CiAgICAgcmVnaXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MoKTsK
IAotICAgIG1fcGFnZSA9IHBhZ2VOYW1lc3BhY2UtPmNyZWF0ZVdlYlBhZ2UocGFnZUdyb3VwKTsK
KyAgICBtX3BhZ2UgPSBjb250ZXh0LT5jcmVhdGVXZWJQYWdlKHBhZ2VHcm91cCk7CiAgICAgbV9w
YWdlLT5zZXRQYWdlQ2xpZW50KHRoaXMpOwogICAgIG1fcGFnZS0+c2V0RHJhd2luZ0FyZWEoQ2h1
bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OmNyZWF0ZSh0aGlzKSk7CiAKSW5kZXg6IFdlYktp
dDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nl
c3Mvd2luL1dlYlZpZXcuaAkocmV2aXNpb24gNzM5NzYpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy93
aW4vV2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBACiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgRHJhd2luZ0FyZWFQcm94eTsKLWNsYXNzIFdlYlBhZ2VOYW1lc3Bh
Y2U7CiAKIGNsYXNzIFdlYlZpZXcgOiBwdWJsaWMgQVBJT2JqZWN0LCBwdWJsaWMgUGFnZUNsaWVu
dCwgV2ViQ29yZTo6V2luZG93TWVzc2FnZUxpc3RlbmVyIHsKIHB1YmxpYzoKQEAgLTYwLDggKzU5
LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJWaWV3KFJFQ1QsIFdlYkNvbnRleHQqLCBX
ZWJQYWdlR3JvdXAqLCBIV05EIHBhcmVudFdpbmRvdzsKIAotICAgIHZvaWQgaW5pdGlhbGl6ZShX
ZWJQYWdlTmFtZXNwYWNlKiwgV2ViUGFnZUdyb3VwKiwgSFdORCBwYXJlbnRXaW5kb3cpOwotCiAg
ICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBUeXBlVmlldzsgfQogCiAgICAg
c3RhdGljIGJvb2wgcmVnaXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MoKTsKSW5kZXg6IFdlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3Mzk3NSkKKysrIFdl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC01MzksOCArNTM5LDYgQEAKIAkJQkNFRTdEQzYxMjhCNjQ1RDAwOTgyN0RBIC8qIEluamVjdGVk
QnVuZGxlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRUU3REM0MTI4QjY0NUQwMDk4MjdEQSAvKiBJbmplY3RlZEJ1bmRsZUNsaWVudC5j
cHAgKi87IH07CiAJCUJDRUU5NjZDMTEyRkFGNTcwMDZCQ0MyNCAvKiBBdHRhY2htZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUU5NjZBMTEy
RkFGNTcwMDZCQ0MyNCAvKiBBdHRhY2htZW50LmNwcCAqLzsgfTsKIAkJQkNFRTk2NkQxMTJGQUY1
NzAwNkJDQzI0IC8qIEF0dGFjaG1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRUU5NjZCMTEyRkFGNTcwMDZCQ0MyNCAvKiBBdHRhY2htZW50Lmgg
Ki87IH07Ci0JCUJDRUU5OEM2MTEzMzE0RDcwMDZCQ0MyNCAvKiBXZWJQYWdlTmFtZXNwYWNlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUU5OEM0
MTEzMzE0RDcwMDZCQ0MyNCAvKiBXZWJQYWdlTmFtZXNwYWNlLmNwcCAqLzsgfTsKLQkJQkNFRTk4
QzcxMTMzMTRENzAwNkJDQzI0IC8qIFdlYlBhZ2VOYW1lc3BhY2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUU5OEM1MTEzMzE0RDcwMDZCQ0MyNCAv
KiBXZWJQYWdlTmFtZXNwYWNlLmggKi87IH07CiAJCUJDRjA0OUU2MTFGRTIwRjYwMEY4NkE1OCAv
KiBXS0J1bmRsZUZyYW1lUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNGMDQ5RTQxMUZFMjBGNjAwRjg2QTU4IC8qIFdLQnVuZGxlRnJhbWVQ
cml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkNGMDQ5RTcxMUZFMjBGNjAwRjg2QTU4IC8qIFdLQnVuZGxlUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGMDQ5RTUxMUZFMjBGNjAw
Rjg2QTU4IC8qIFdLQnVuZGxlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJDRjUwMTIxMTIzRUQzQjMwMDU5NTVBRSAvKiBUaHJlYWRM
YXVuY2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNGNTAxMUYxMjNFRDNCMzAwNTk1NUFFIC8qIFRocmVhZExhdW5jaGVyLmggKi87IH07CkBAIC0x
MTkyLDggKzExOTAsNiBAQAogCQlCQ0VFN0RDNDEyOEI2NDVEMDA5ODI3REEgLyogSW5qZWN0ZWRC
dW5kbGVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5q
ZWN0ZWRCdW5kbGVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VF
OTY2QTExMkZBRjU3MDA2QkNDMjQgLyogQXR0YWNobWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBdHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNFRTk2NkIxMTJGQUY1NzAwNkJDQzI0IC8qIEF0dGFjaG1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXR0YWNobWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlCQ0VFOThDNDExMzMxNEQ3MDA2QkNDMjQgLyogV2ViUGFnZU5hbWVzcGFj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQYWdlTmFtZXNw
YWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNFRTk4QzUxMTMzMTRENzAw
NkJDQzI0IC8qIFdlYlBhZ2VOYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViUGFnZU5hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0YwNDlFNDExRkUyMEY2MDBGODZBNTggLyogV0tCdW5kbGVGcmFtZVByaXZhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVGcmFtZVByaXZhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGMDQ5RTUxMUZFMjBGNjAwRjg2QTU4IC8qIFdLQnVu
ZGxlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZVBy
aXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGMDRDOEMxMUZGOUI3RDAw
Rjg2QTU4IC8qIEFQSU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
UElPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTUsOCArMTg5MSw2
IEBACiAJCQkJNTE1MzU2OUIxMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNs
aWVudC5oICovLAogCQkJCUJDN0I2MjA1MTI5QTBBNjcwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXAu
Y3BwICovLAogCQkJCUJDN0I2MjA0MTI5QTBBNjcwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXAuaCAq
LywKLQkJCQlCQ0VFOThDNDExMzMxNEQ3MDA2QkNDMjQgLyogV2ViUGFnZU5hbWVzcGFjZS5jcHAg
Ki8sCi0JCQkJQkNFRTk4QzUxMTMzMTRENzAwNkJDQzI0IC8qIFdlYlBhZ2VOYW1lc3BhY2UuaCAq
LywKIAkJCQlCQzExMUIwQjExMkY1RTRGMDAzMzdCQUIgLyogV2ViUGFnZVByb3h5LmNwcCAqLywK
IAkJCQlCQzAzMkRDQjEwRjQzODlGMDA1OEMxNUEgLyogV2ViUGFnZVByb3h5LmggKi8sCiAJCQkJ
QkNCRDM4RkExMjVCQUI5QTAwRDJDMjlGIC8qIFdlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiAqLywK
QEAgLTI0NzcsNyArMjQ3MSw2IEBACiAJCQkJQkNGNjlGQTIxMTc2RDAxNDAwNDcxQTUyIC8qIFdl
Yk5hdmlnYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Y2OUY5QTExNzZDRUQ2MDA0
NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMw
MzJEOEYxMEY0MzdBMDAwNThDMTVBIC8qIFdlYlBhZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUJD
RUU5OEM3MTEzMzE0RDcwMDZCQ0MyNCAvKiBXZWJQYWdlTmFtZXNwYWNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzAzMkREMTEwRjQzODlGMDA1OEMxNUEgLyogV2ViUGFnZVByb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTNFNzM2MTExQ0MyNjU5MDA3QkQ1MzkgLyogV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0I5RjhCMDExMjRFMDc3MDBBMTM3RTAgLyog
V2ViUG9saWN5Q2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5MDYsNyArMjg5OSw2IEBACiAJ
CQkJQkNGNjlGQTMxMTc2RDAxNDAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDOTYzRDZCMTEzREQxOTIwMDU3NEJFMiAvKiBXZWJQYWdlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDOTYzRDZFMTEzREQxQTUwMDU3NEJFMiAvKiBXZWJQYWdlTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNFRTk4QzYxMTMzMTRENzAwNkJDQzI0IC8qIFdlYlBh
Z2VOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCMEYxMTJGNUU0RjAwMzM3
QkFCIC8qIFdlYlBhZ2VQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTNFNzM2MjExQ0My
NjU5MDA3QkQ1MzkgLyogV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDQjlGOEFGMTEyNEUwNzcwMEExMzdFMCAvKiBXZWJQb2xpY3lDbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8sCkluZGV4OiBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNzM5NzUpCisrKyBXZWJLaXQy
L3dpbi9XZWJLaXQyLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjA2MywxNCArMjA2Myw2IEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1xXZWJQYWdlTmFtZXNwYWNlLmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYlBhZ2VOYW1lc3BhY2UuaCIKLQkJCQk+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdl
YlBhZ2VQcm94eS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgo=
</data>
<flag name="review"
          id="67399"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>