<?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>105439</bug_id>
          
          <creation_ts>2012-12-19 08:38:39 -0800</creation_ts>
          <short_desc>REGRESSION(r138157): Crashes with assertion failures in EFL debug build. (Requested by drott on #webkit).</short_desc>
          <delta_ts>2012-12-19 08:41:24 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>104815</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>d-r</cc>
    
    <cc>kenneth</cc>
    
    <cc>noam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>794699</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-19 08:38:39 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/138157 broke the build:
Crashes with assertion failures in EFL debug build. (Requested by drott on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794702</commentid>
    <comment_count>1</comment_count>
      <attachid>180173</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-19 08:39:24 -0800</bug_when>
    <thetext>Created attachment 180173
ROLLOUT of r138157

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794704</commentid>
    <comment_count>2</comment_count>
      <attachid>180173</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-12-19 08:41:16 -0800</bug_when>
    <thetext>Comment on attachment 180173
ROLLOUT of r138157

Clearing flags on attachment: 180173

Committed r138168: &lt;http://trac.webkit.org/changeset/138168&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794705</commentid>
    <comment_count>3</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-12-19 08:41:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180173</attachid>
            <date>2012-12-19 08:39:24 -0800</date>
            <delta_ts>2012-12-19 08:41:16 -0800</delta_ts>
            <desc>ROLLOUT of r138157</desc>
            <filename>bug-105439-20121219164550.patch</filename>
            <type>text/plain</type>
            <size>47882</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzc0NWYyOTgxYmY0Njlk
NjdhOTlmNTBkMzdlZGQwODZiNGQ2MzE5ZC4uMGFhN2UxMGUyYTcyMGQxYjA0ZGM1ODg0OGRkZTc4
N2UzZmViNmMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEyLTE5ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTM4MTU3LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMzgxNTcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNTQzOQorCisgICAgICAgIENyYXNoZXMgd2l0aCBhc3NlcnRpb24gZmFpbHVy
ZXMgaW4gRUZMIGRlYnVnIGJ1aWxkLiAoUmVxdWVzdGVkCisgICAgICAgIGJ5IGRyb3R0IG9uICN3
ZWJraXQpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHA6CisgICAgICAgIChTaGFyZWRHTERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyR0w6OmRyYXdUZXh0dXJlV2l0aEFudGlhbGlhc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpr
ZXlGb3JGaWx0ZXJUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OnByZXBhcmVGaWx0ZXJQcm9ncmFt
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd0ZpbHRlcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6YmVnaW5DbGlwKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTaGFkZXJTcGVjKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRlclNwZWM6OlNoYWRlclNwZWMpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0U2hhZGVy
U3BlYyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6Z2V0
U2hhZGVyUHJvZ3JhbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmg6CisgICAgICAgIChUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbSk6CisgICAgICAgIChUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcik6CisKIDIwMTItMTIt
MTkgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RL
XSBFbmFibGUgTmF2aWdhdGlvbiBUaW1pbmcgYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNw
cAppbmRleCA5MWI0YWUyOWFlZTk3MDk3MzhjZmM5ZDI1YTQwY2MwZTBjYjAyZjgwLi5kYzFmMmRi
OGZlZGJjZmJhZjI3ODBmMmRmYTU5MzIwMTYyMTYxNzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNw
cApAQCAtODUsNiArODUsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNoYXJlZEdMRGF0YShjb250ZXh0KSk7CiAgICAgICAgIH0KIAorCisKICAgICAgICAgVGV4
dHVyZU1hcHBlclNoYWRlck1hbmFnZXIgdGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI7CiAKICAg
ICAgICAgZXhwbGljaXQgU2hhcmVkR0xEYXRhKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQpA
QCAtNDExLDE2ICs0MTMsMTYgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlKFBs
YXRmb3JtM0RPYmplY3QgdGV4dHVyZSwgRmxhZ3MgZmxhZ3MsIGNvbnN0IEkKICAgICBpZiAoIXVz
ZVJlY3QgJiYgbmVlZHNBbnRpYWxpYXNpbmcgJiYgZHJhd1RleHR1cmVXaXRoQW50aWFsaWFzaW5n
KHRleHR1cmUsIGZsYWdzLCB0ZXh0dXJlU2l6ZSwgdGFyZ2V0UmVjdCwgbW9kZWxWaWV3TWF0cml4
LCBvcGFjaXR5LCBtYXNrVGV4dHVyZSwgZXhwb3NlZEVkZ2VzKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6Ok9wdGlvbnMgb3B0aW9ucyA9IFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpUZXh0dXJlOwotICAgIGlmIChtYXNrZWQpCi0gICAgICAg
IG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6Ok1hc2s7Ci0gICAgaWYgKGZs
YWdzICYgU2hvdWxkVXNlQVJCVGV4dHVyZVJlY3QpCi0gICAgICAgIG9wdGlvbnMgfD0gVGV4dHVy
ZU1hcHBlclNoYWRlck1hbmFnZXI6OlJlY3Q7Ci0gICAgaWYgKG9wYWNpdHkgPCAxKQotICAgICAg
ICBvcHRpb25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpPcGFjaXR5OworICAgIFRl
eHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5ID0gVGV4dHVyZU1hcHBlclNo
YWRlck1hbmFnZXI6OkRlZmF1bHQ7CisgICAgaWYgKG1hc2tlZCAmJiB1c2VSZWN0KQorICAgICAg
ICBrZXkgPSBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6TWFza2VkUmVjdDsKKyAgICBlbHNl
IGlmIChtYXNrZWQpCisgICAgICAgIGtleSA9IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpN
YXNrZWQ7CisgICAgZWxzZSBpZiAodXNlUmVjdCkKKyAgICAgICAga2V5ID0gVGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXI6OlJlY3Q7CiAKICAgICBSZWZQdHI8VGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW0+IHByb2dyYW07Ci0gICAgcHJvZ3JhbSA9IGRhdGEoKS5zaGFyZWRHTERhdGEoKS50ZXh0
dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9ncmFtKG9wdGlvbnMpOworICAgIHBy
b2dyYW0gPSBkYXRhKCkuc2hhcmVkR0xEYXRhKCkudGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIu
Z2V0U2hhZGVyUHJvZ3JhbShrZXkpOwogICAgIG1fY29udGV4dDNELT51c2VQcm9ncmFtKHByb2dy
YW0tPnByb2dyYW1JRCgpKTsKIAogICAgIGRyYXdUZXh0dXJlZFF1YWRXaXRoUHJvZ3JhbShwcm9n
cmFtLmdldCgpLCB0ZXh0dXJlLCBmbGFncywgdGV4dHVyZVNpemUsIHRhcmdldFJlY3QsIG1vZGVs
Vmlld01hdHJpeCwgb3BhY2l0eSwgbWFza1RleHR1cmUpOwpAQCAtNTYwLDExICs1NjIsOCBAQCBi
b29sIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmVXaXRoQW50aWFsaWFzaW5nKHVpbnQzMl90
IHRleHR1cmUsIEZsYWdzIGZsYWdzLAogICAgIGZsb2F0IHRhcmdldFF1YWRFZGdlc1syNF07CiAg
ICAgcXVhZFRvRWRnZUFycmF5KGV4cGFuZGVkUXVhZEluU2NyZWVuU3BhY2UsIHRhcmdldFF1YWRF
ZGdlcyk7CiAgICAgcXVhZFRvRWRnZUFycmF5KGluZmxhdGVRdWFkKHF1YWRJblNjcmVlblNwYWNl
LmJvdW5kaW5nQm94KCksICBpbmZsYXRpb25EaXN0YW5jZSksIHRhcmdldFF1YWRFZGdlcyArIDEy
KTsKLSAgICBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6T3B0aW9ucyBvcHRpb25zID0gVGV4
dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OkFudGlhbGlhcyB8IFRleHR1cmVNYXBwZXJTaGFkZXJN
YW5hZ2VyOjpUZXh0dXJlOwotICAgIGlmIChvcGFjaXR5IDwgMSkKLSAgICAgICAgb3B0aW9ucyB8
PSBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6T3BhY2l0eTsKIAotICAgIFJlZlB0cjxUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gcHJvZ3JhbSA9IGRhdGEoKS5zaGFyZWRHTERhdGEoKS50
ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9ncmFtKG9wdGlvbnMpOworICAg
IFJlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gcHJvZ3JhbSA9IGRhdGEoKS5zaGFy
ZWRHTERhdGEoKS50ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9ncmFtKFRl
eHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpBbnRpYWxpYXNlZCk7CiAgICAgbV9jb250ZXh0M0Qt
PnVzZVByb2dyYW0ocHJvZ3JhbS0+cHJvZ3JhbUlEKCkpOwogICAgIG1fY29udGV4dDNELT51bmlm
b3JtM2Z2KHByb2dyYW0tPmV4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZUxvY2F0aW9uKCks
IDgsIHRhcmdldFF1YWRFZGdlcyk7CiAKQEAgLTc1NywzMyArNzU2LDMyIEBAIHZvaWQgQml0bWFw
VGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cyhJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIHRh
cmdldFJlY3QsIGNvCiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAKLXN0YXRpYyBUZXh0dXJl
TWFwcGVyU2hhZGVyTWFuYWdlcjo6T3B0aW9ucyBvcHRpb25zRm9yRmlsdGVyVHlwZShGaWx0ZXJP
cGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSwgdW5zaWduZWQgcGFzcykKK3N0YXRpYyBUZXh0
dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleUZvckZpbHRlclR5cGUoRmlsdGVy
T3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUsIHVuc2lnbmVkIHBhc3MpCiB7CiAgICAgc3dp
dGNoICh0eXBlKSB7CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkdSQVlTQ0FMRToKLSAgICAg
ICAgcmV0dXJuIFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpUZXh0dXJlIHwgVGV4dHVyZU1h
cHBlclNoYWRlck1hbmFnZXI6OkdyYXlzY2FsZUZpbHRlcjsKKyAgICAgICAgcmV0dXJuIFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpHcmF5c2NhbGVGaWx0ZXI7CiAgICAgY2FzZSBGaWx0ZXJP
cGVyYXRpb246OlNFUElBOgotICAgICAgICByZXR1cm4gVGV4dHVyZU1hcHBlclNoYWRlck1hbmFn
ZXI6OlRleHR1cmUgfCBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2VwaWFGaWx0ZXI7Cisg
ICAgICAgIHJldHVybiBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2VwaWFGaWx0ZXI7CiAg
ICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OlNBVFVSQVRFOgotICAgICAgICByZXR1cm4gVGV4dHVy
ZU1hcHBlclNoYWRlck1hbmFnZXI6OlRleHR1cmUgfCBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdl
cjo6U2F0dXJhdGVGaWx0ZXI7CisgICAgICAgIHJldHVybiBUZXh0dXJlTWFwcGVyU2hhZGVyTWFu
YWdlcjo6U2F0dXJhdGVGaWx0ZXI7CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkhVRV9ST1RB
VEU6Ci0gICAgICAgIHJldHVybiBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6VGV4dHVyZSB8
IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpIdWVSb3RhdGVGaWx0ZXI7CisgICAgICAgIHJl
dHVybiBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6SHVlUm90YXRlRmlsdGVyOwogICAgIGNh
c2UgRmlsdGVyT3BlcmF0aW9uOjpJTlZFUlQ6Ci0gICAgICAgIHJldHVybiBUZXh0dXJlTWFwcGVy
U2hhZGVyTWFuYWdlcjo6VGV4dHVyZSB8IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpJbnZl
cnRGaWx0ZXI7CisgICAgICAgIHJldHVybiBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6SW52
ZXJ0RmlsdGVyOwogICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpCUklHSFRORVNTOgotICAgICAg
ICByZXR1cm4gVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlRleHR1cmUgfCBUZXh0dXJlTWFw
cGVyU2hhZGVyTWFuYWdlcjo6QnJpZ2h0bmVzc0ZpbHRlcjsKKyAgICAgICAgcmV0dXJuIFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpCcmlnaHRuZXNzRmlsdGVyOwogICAgIGNhc2UgRmlsdGVy
T3BlcmF0aW9uOjpDT05UUkFTVDoKLSAgICAgICAgcmV0dXJuIFRleHR1cmVNYXBwZXJTaGFkZXJN
YW5hZ2VyOjpUZXh0dXJlIHwgVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OkNvbnRyYXN0Rmls
dGVyOworICAgICAgICByZXR1cm4gVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OkNvbnRyYXN0
RmlsdGVyOwogICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpPUEFDSVRZOgotICAgICAgICByZXR1
cm4gVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlRleHR1cmUgfCBUZXh0dXJlTWFwcGVyU2hh
ZGVyTWFuYWdlcjo6T3BhY2l0eUZpbHRlcjsKKyAgICAgICAgcmV0dXJuIFRleHR1cmVNYXBwZXJT
aGFkZXJNYW5hZ2VyOjpPcGFjaXR5RmlsdGVyOwogICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpC
TFVSOgogICAgICAgICByZXR1cm4gVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OkJsdXJGaWx0
ZXI7CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkRST1BfU0hBRE9XOgotICAgICAgICByZXR1
cm4gVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OkFscGhhQmx1cgotICAgICAgICAgICAgfCAo
cGFzcyA/IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpDb250ZW50VGV4dHVyZSB8IFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTb2xpZENvbG9yOiAwKTsKKyAgICAgICAgcmV0dXJuIHBh
c3MgPyBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZG93RmlsdGVyUGFzczIgOiBUZXh0
dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZG93RmlsdGVyUGFzczE7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OkludmFsaWQ7CiAgICAgfQogfQog
CkBAIC04NTQsMTMgKzg1MiwxMyBAQCBzdGF0aWMgdm9pZCBwcmVwYXJlRmlsdGVyUHJvZ3JhbShU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QgRmlsdAogICAgIGNhc2Ug
RmlsdGVyT3BlcmF0aW9uOjpTRVBJQToKICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6U0FUVVJB
VEU6CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkhVRV9ST1RBVEU6Ci0gICAgICAgIGNvbnRl
eHQtPnVuaWZvcm0xZihwcm9ncmFtLT5maWx0ZXJBbW91bnRMb2NhdGlvbigpLCBzdGF0aWNfY2Fz
dDxjb25zdCBCYXNpY0NvbG9yTWF0cml4RmlsdGVyT3BlcmF0aW9uJj4ob3BlcmF0aW9uKS5hbW91
bnQoKSk7CisgICAgICAgIGNvbnRleHQtPnVuaWZvcm0xZihwcm9ncmFtLT5hbW91bnRMb2NhdGlv
bigpLCBzdGF0aWNfY2FzdDxjb25zdCBCYXNpY0NvbG9yTWF0cml4RmlsdGVyT3BlcmF0aW9uJj4o
b3BlcmF0aW9uKS5hbW91bnQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmlsdGVyT3Bl
cmF0aW9uOjpJTlZFUlQ6CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkJSSUdIVE5FU1M6CiAg
ICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkNPTlRSQVNUOgogICAgIGNhc2UgRmlsdGVyT3BlcmF0
aW9uOjpPUEFDSVRZOgotICAgICAgICBjb250ZXh0LT51bmlmb3JtMWYocHJvZ3JhbS0+ZmlsdGVy
QW1vdW50TG9jYXRpb24oKSwgc3RhdGljX2Nhc3Q8Y29uc3QgQmFzaWNDb21wb25lbnRUcmFuc2Zl
ckZpbHRlck9wZXJhdGlvbiY+KG9wZXJhdGlvbikuYW1vdW50KCkpOworICAgICAgICBjb250ZXh0
LT51bmlmb3JtMWYocHJvZ3JhbS0+YW1vdW50TG9jYXRpb24oKSwgc3RhdGljX2Nhc3Q8Y29uc3Qg
QmFzaWNDb21wb25lbnRUcmFuc2ZlckZpbHRlck9wZXJhdGlvbiY+KG9wZXJhdGlvbikuYW1vdW50
KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6QkxVUjogewog
ICAgICAgICBjb25zdCBCbHVyRmlsdGVyT3BlcmF0aW9uJiBibHVyID0gc3RhdGljX2Nhc3Q8Y29u
c3QgQmx1ckZpbHRlck9wZXJhdGlvbiY+KG9wZXJhdGlvbik7CkBAIC04ODEsMjAgKzg3OSwxOSBA
QCBzdGF0aWMgdm9pZCBwcmVwYXJlRmlsdGVyUHJvZ3JhbShUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbSogcHJvZ3JhbSwgY29uc3QgRmlsdAogICAgICAgICBjb250ZXh0LT51bmlmb3JtMWZ2KHBy
b2dyYW0tPmdhdXNzaWFuS2VybmVsTG9jYXRpb24oKSwgR2F1c3NpYW5LZXJuZWxIYWxmV2lkdGgs
IGdhdXNzaWFuS2VybmVsKCkpOwogICAgICAgICBzd2l0Y2ggKHBhc3MpIHsKICAgICAgICAgY2Fz
ZSAwOgotICAgICAgICAgICAgLy8gRmlyc3QgcGFzczogaG9yaXpvbnRhbCBhbHBoYSBibHVyLgot
ICAgICAgICAgICAgY29udGV4dC0+dW5pZm9ybTJmKHByb2dyYW0tPmJsdXJSYWRpdXNMb2NhdGlv
bigpLCBzaGFkb3cuc3RkRGV2aWF0aW9uKCkgLyBmbG9hdChzaXplLndpZHRoKCkpLCAwKTsKKyAg
ICAgICAgICAgIC8vIEZpcnN0IHBhc3M6IHZlcnRpY2FsIGFscGhhIGJsdXIuCiAgICAgICAgICAg
ICBjb250ZXh0LT51bmlmb3JtMmYocHJvZ3JhbS0+c2hhZG93T2Zmc2V0TG9jYXRpb24oKSwgZmxv
YXQoc2hhZG93LmxvY2F0aW9uKCkueCgpKSAvIGZsb2F0KHNpemUud2lkdGgoKSksIGZsb2F0KHNo
YWRvdy5sb2NhdGlvbigpLnkoKSkgLyBmbG9hdChzaXplLmhlaWdodCgpKSk7CisgICAgICAgICAg
ICBjb250ZXh0LT51bmlmb3JtMWYocHJvZ3JhbS0+Ymx1clJhZGl1c0xvY2F0aW9uKCksIHNoYWRv
dy5zdGREZXZpYXRpb24oKSAvIGZsb2F0KHNpemUud2lkdGgoKSkpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgIC8vIFNlY29uZCBwYXNzOiB3ZSBuZWVk
IHRoZSBzaGFkb3cgY29sb3IgYW5kIHRoZSBjb250ZW50IHRleHR1cmUgZm9yIGNvbXBvc2l0aW5n
LgotICAgICAgICAgICAgZmxvYXQgciwgZywgYiwgYTsKLSAgICAgICAgICAgIHNoYWRvdy5jb2xv
cigpLmdldFJHQkEociwgZywgYiwgYSk7Ci0gICAgICAgICAgICBjb250ZXh0LT51bmlmb3JtNGYo
cHJvZ3JhbS0+Y29sb3JMb2NhdGlvbigpLCByLCBnLCBiLCBhKTsKLSAgICAgICAgICAgIGNvbnRl
eHQtPnVuaWZvcm0yZihwcm9ncmFtLT5ibHVyUmFkaXVzTG9jYXRpb24oKSwgMCwgc2hhZG93LnN0
ZERldmlhdGlvbigpIC8gZmxvYXQoc2l6ZS5oZWlnaHQoKSkpOwotICAgICAgICAgICAgY29udGV4
dC0+dW5pZm9ybTJmKHByb2dyYW0tPnNoYWRvd09mZnNldExvY2F0aW9uKCksIDAsIDApOworICAg
ICAgICAgICAgY29udGV4dC0+dW5pZm9ybTFmKHByb2dyYW0tPmJsdXJSYWRpdXNMb2NhdGlvbigp
LCBzaGFkb3cuc3RkRGV2aWF0aW9uKCkgLyBmbG9hdChzaXplLmhlaWdodCgpKSk7CiAgICAgICAg
ICAgICBjb250ZXh0LT5hY3RpdmVUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFMSk7
CiAgICAgICAgICAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV8yRCwgY29udGVudFRleHR1cmUpOwogICAgICAgICAgICAgY29udGV4dC0+dW5pZm9ybTFp
KHByb2dyYW0tPmNvbnRlbnRUZXh0dXJlTG9jYXRpb24oKSwgMSk7CisgICAgICAgICAgICBmbG9h
dCByLCBnLCBiLCBhOworICAgICAgICAgICAgc2hhZG93LmNvbG9yKCkuZ2V0UkdCQShyLCBnLCBi
LCBhKTsKKyAgICAgICAgICAgIGNvbnRleHQtPnVuaWZvcm00Zihwcm9ncmFtLT5zaGFkb3dDb2xv
ckxvY2F0aW9uKCksIHIsIGcsIGIsIGEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgYnJlYWs7CkBAIC05NjMsMTMgKzk2MCwyNSBAQCBib29sIFRleHR1cmVNYXBwZXJH
TDo6ZHJhd1VzaW5nQ3VzdG9tRmlsdGVyKEJpdG1hcFRleHR1cmUmIHRhcmdldCwgY29uc3QgQml0
bWFwVAogdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdGaWx0ZXJlZChjb25zdCBCaXRtYXBUZXh0
dXJlJiBzYW1wbGVyLCBjb25zdCBCaXRtYXBUZXh0dXJlJiBjb250ZW50VGV4dHVyZSwgY29uc3Qg
RmlsdGVyT3BlcmF0aW9uJiBmaWx0ZXIsIGludCBwYXNzKQogewogICAgIC8vIEZvciBzdGFuZGFy
ZCBmaWx0ZXJzLCB3ZSBhbHdheXMgZHJhdyB0aGUgd2hvbGUgdGV4dHVyZSB3aXRob3V0IHRyYW5z
Zm9ybWF0aW9ucy4KLSAgICBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6T3B0aW9ucyBvcHRp
b25zID0gb3B0aW9uc0ZvckZpbHRlclR5cGUoZmlsdGVyLmdldE9wZXJhdGlvblR5cGUoKSwgcGFz
cyk7Ci0gICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBwcm9ncmFtID0gZGF0
YSgpLnNoYXJlZEdMRGF0YSgpLnRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmdldFNoYWRlclBy
b2dyYW0ob3B0aW9ucyk7CisgICAgVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktl
eSBrZXkgPSBrZXlGb3JGaWx0ZXJUeXBlKGZpbHRlci5nZXRPcGVyYXRpb25UeXBlKCksIHBhc3Mp
OworICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gcHJvZ3JhbSA9IGRhdGEo
KS5zaGFyZWRHTERhdGEoKS50ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9n
cmFtKGtleSk7CiAgICAgQVNTRVJUKHByb2dyYW0pOwogCiAgICAgcHJlcGFyZUZpbHRlclByb2dy
YW0ocHJvZ3JhbS5nZXQoKSwgZmlsdGVyLCBwYXNzLCBzYW1wbGVyLmNvbnRlbnRTaXplKCksIHN0
YXRpY19jYXN0PGNvbnN0IEJpdG1hcFRleHR1cmVHTCY+KGNvbnRlbnRUZXh0dXJlKS5pZCgpKTsK
LSAgICBGbG9hdFJlY3QgdGFyZ2V0UmVjdChJbnRQb2ludDo6emVybygpLCBzYW1wbGVyLmNvbnRl
bnRTaXplKCkpOwotICAgIGRyYXdUZXh0dXJlZFF1YWRXaXRoUHJvZ3JhbShwcm9ncmFtLmdldCgp
LCBzdGF0aWNfY2FzdDxjb25zdCBCaXRtYXBUZXh0dXJlR0wmPihzYW1wbGVyKS5pZCgpLCAwLCBJ
bnRTaXplKDEsIDEpLCB0YXJnZXRSZWN0LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAxLCAwKTsK
KworICAgIG1fY29udGV4dDNELT5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShwcm9ncmFtLT52ZXJ0
ZXhMb2NhdGlvbigpKTsKKyAgICBtX2NvbnRleHQzRC0+ZW5hYmxlVmVydGV4QXR0cmliQXJyYXko
cHJvZ3JhbS0+dGV4Q29vcmRMb2NhdGlvbigpKTsKKyAgICBtX2NvbnRleHQzRC0+YWN0aXZlVGV4
dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRTApOworICAgIG1fY29udGV4dDNELT5iaW5k
VGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgc3RhdGljX2Nhc3Q8Y29uc3Qg
Qml0bWFwVGV4dHVyZUdMJj4oc2FtcGxlcikuaWQoKSk7CisgICAgbV9jb250ZXh0M0QtPnVuaWZv
cm0xaShwcm9ncmFtLT5zYW1wbGVyTG9jYXRpb24oKSwgMCk7CisgICAgY29uc3QgR0MzRGZsb2F0
IHRhcmdldFZlcnRpY2VzW10gPSB7LTEsIC0xLCAxLCAtMSwgMSwgMSwgLTEsIDF9OworICAgIGNv
bnN0IEdDM0RmbG9hdCBzb3VyY2VWZXJ0aWNlc1tdID0gezAsIDAsIDEsIDAsIDEsIDEsIDAsIDF9
OworICAgIG1fY29udGV4dDNELT52ZXJ0ZXhBdHRyaWJQb2ludGVyKHByb2dyYW0tPnZlcnRleExv
Y2F0aW9uKCksIDIsIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVCwgZmFsc2UsIDAsIEdDM0RpbnRw
dHIodGFyZ2V0VmVydGljZXMpKTsKKyAgICBtX2NvbnRleHQzRC0+dmVydGV4QXR0cmliUG9pbnRl
cihwcm9ncmFtLT50ZXhDb29yZExvY2F0aW9uKCksIDIsIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9B
VCwgZmFsc2UsIDAsIEdDM0RpbnRwdHIoc291cmNlVmVydGljZXMpKTsKKyAgICBtX2NvbnRleHQz
RC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQpOworICAgIG1fY29udGV4dDNELT5k
cmF3QXJyYXlzKEdyYXBoaWNzQ29udGV4dDNEOjpUUklBTkdMRV9GQU4sIDAsIDQpOworICAgIG1f
Y29udGV4dDNELT5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkocHJvZ3JhbS0+dmVydGV4TG9jYXRp
b24oKSk7CisgICAgbV9jb250ZXh0M0QtPmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShwcm9ncmFt
LT50ZXhDb29yZExvY2F0aW9uKCkpOwogfQogCiBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJp
dG1hcFRleHR1cmVHTDo6YXBwbHlGaWx0ZXJzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIs
IGNvbnN0IEJpdG1hcFRleHR1cmUmIGNvbnRlbnRUZXh0dXJlLCBjb25zdCBGaWx0ZXJPcGVyYXRp
b25zJiBmaWx0ZXJzKQpAQCAtMTE2Myw3ICsxMTcyLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6
OmJlZ2luQ2xpcChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBj
b24KIAogICAgIGRhdGEoKS5pbml0aWFsaXplU3RlbmNpbCgpOwogCi0gICAgUmVmUHRyPFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBwcm9ncmFtID0gZGF0YSgpLnNoYXJlZEdMRGF0YSgpLnRl
eHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmdldFNoYWRlclByb2dyYW0oVGV4dHVyZU1hcHBlclNo
YWRlck1hbmFnZXI6OlNvbGlkQ29sb3IpOworICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbT4gcHJvZ3JhbSA9IGRhdGEoKS5zaGFyZWRHTERhdGEoKS50ZXh0dXJlTWFwcGVyU2hh
ZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpE
ZWZhdWx0KTsKIAogICAgIG1fY29udGV4dDNELT51c2VQcm9ncmFtKHByb2dyYW0tPnByb2dyYW1J
RCgpKTsKICAgICBtX2NvbnRleHQzRC0+ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkocHJvZ3JhbS0+
dmVydGV4TG9jYXRpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2Vy
LmNwcAppbmRleCBmNGRjZmZlYWRmMGZjZWU0ZGRiZjhhZDdkMmQ1NTE1OTgxNDE1ZGU2Li4yMTc1
NjIwYWUxN2Y0M2VmYzQ4MWZhNTY3MzgzN2JmN2ExNjhmYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5jcHAKQEAgLTIzLDE2ICsyMywxNiBAQAogI2luY2x1ZGUg
IlRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmgiCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKwogI2luY2x1ZGUgIkxlbmd0aEZ1bmN0
aW9ucy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0wu
aCIKIAotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLQogI2RlZmluZSBTVFJJ
TkdJRlkoLi4uKSAjX19WQV9BUkdTX18KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisKIHN0YXRp
YyBpbmxpbmUgYm9vbCBjb21wb3NpdGluZ0xvZ0VuYWJsZWQoKQogewogI2lmICFMT0dfRElTQUJM
RUQKQEAgLTEwNiwyODkgKzEwNiw0MjMgQEAgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06On5U
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSgpCiAgICAgbV9jb250ZXh0LT5kZWxldGVQcm9ncmFt
KHByb2dyYW1JRCk7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiB2ZXJ0ZXhTaGFkZXJTb3VyY2Ug
PQotICAgIFNUUklOR0lGWSgKLSAgICAgICAgdW5pZm9ybSBtYXQ0IHVfbWF0cml4OwotICAgICAg
ICB1bmlmb3JtIGZsb2F0IHVfZmxpcDsKLSAgICAgICAgdW5pZm9ybSB2ZWMyIHVfdGV4dHVyZVNp
emU7Ci0gICAgICAgIGF0dHJpYnV0ZSB2ZWM0IGFfdmVydGV4OwotICAgICAgICB2YXJ5aW5nIHZl
YzIgdl90ZXhDb29yZDsKLSAgICAgICAgdmFyeWluZyB2ZWMyIHZfbWFza1RleENvb3JkOwotCi0g
ICAgICAgIHZvaWQgbWFpbih2b2lkKQotICAgICAgICB7Ci0gICAgICAgICAgICB2ZWM0IHBvc2l0
aW9uID0gYV92ZXJ0ZXg7Ci0gICAgICAgICAgICB2X3RleENvb3JkID0gdmVjMihwb3NpdGlvbi54
LCBtaXgocG9zaXRpb24ueSwgMS4gLSBwb3NpdGlvbi55LCB1X2ZsaXApKSAqIHVfdGV4dHVyZVNp
emU7Ci0gICAgICAgICAgICB2X21hc2tUZXhDb29yZCA9IHZlYzIocG9zaXRpb24pOwotICAgICAg
ICAgICAgZ2xfUG9zaXRpb24gPSB1X21hdHJpeCAqIGFfdmVydGV4OwotICAgICAgICB9Ci0gICAg
KTsKLQotI2RlZmluZSBHTFNMX0RJUkVDVElWRSguLi4pICIjIiNfX1ZBX0FSR1NfXyJcbiIKLSNk
ZWZpbmUgREVGSU5FX0FQUExJRVIoTmFtZSkgXAotICAgICIjaWZkZWYgRU5BQkxFXyIjTmFtZSJc
biIgXAotICAgICIjZGVmaW5lIGFwcGx5IiNOYW1lIklmTmVlZGVkIGFwcGx5IiNOYW1lIlxuIlwK
LSAgICAiI2Vsc2VcbiJcCi0gICAgIiNkZWZpbmUgYXBwbHkiI05hbWUiSWZOZWVkZWQgbm9vcFxu
IlwKLSAgICAiI2VuZGlmXG4iCi0KLSNkZWZpbmUgUkVDVF9URVhUVVJFX0RJUkVDVElWRSBcCi0g
ICAgR0xTTF9ESVJFQ1RJVkUoaWZkZWYgRU5BQkxFX1JlY3QpIFwKLSAgICAgICAgR0xTTF9ESVJF
Q1RJVkUoZGVmaW5lIFNhbXBsZXJUeXBlIHNhbXBsZXIyRFJlY3QpIFwKLSAgICAgICAgR0xTTF9E
SVJFQ1RJVkUoZGVmaW5lIFNhbXBsZXJGdW5jdGlvbiB0ZXh0dXJlMkRSZWN0KSBcCi0gICAgR0xT
TF9ESVJFQ1RJVkUoZWxzZSkgXAotICAgICAgICBHTFNMX0RJUkVDVElWRShkZWZpbmUgU2FtcGxl
clR5cGUgc2FtcGxlcjJEKSBcCi0gICAgICAgIEdMU0xfRElSRUNUSVZFKGRlZmluZSBTYW1wbGVy
RnVuY3Rpb24gdGV4dHVyZTJEKSBcCi0gICAgR0xTTF9ESVJFQ1RJVkUoZW5kaWYpCi0KLSNkZWZp
bmUgRU5BQkxFX0FQUExJRVIoTmFtZSkgIiNkZWZpbmUgRU5BQkxFXyIjTmFtZSJcbiIKLSNkZWZp
bmUgQkxVUl9DT05TVEFOVFMgXAotICAgIEdMU0xfRElSRUNUSVZFKGRlZmluZSBHQVVTU0lBTl9L
RVJORUxfSEFMRl9XSURUSCAxMSkgXAotICAgIEdMU0xfRElSRUNUSVZFKGRlZmluZSBHQVVTU0lB
Tl9LRVJORUxfU1RFUCAwLjIpCi0KLQotc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50VGVtcGxh
dGUgPQotICAgIERFRklORV9BUFBMSUVSKFRleHR1cmUpCi0gICAgREVGSU5FX0FQUExJRVIoU29s
aWRDb2xvcikKLSAgICBERUZJTkVfQVBQTElFUihPcGFjaXR5KQotICAgIERFRklORV9BUFBMSUVS
KE1hc2spCi0gICAgREVGSU5FX0FQUExJRVIoQW50aWFsaWFzKQotICAgIERFRklORV9BUFBMSUVS
KEdyYXlzY2FsZUZpbHRlcikKLSAgICBERUZJTkVfQVBQTElFUihTZXBpYUZpbHRlcikKLSAgICBE
RUZJTkVfQVBQTElFUihTYXR1cmF0ZUZpbHRlcikKLSAgICBERUZJTkVfQVBQTElFUihIdWVSb3Rh
dGVGaWx0ZXIpCi0gICAgREVGSU5FX0FQUExJRVIoSW52ZXJ0RmlsdGVyKQotICAgIERFRklORV9B
UFBMSUVSKEJyaWdodG5lc3NGaWx0ZXIpCi0gICAgREVGSU5FX0FQUExJRVIoQ29udHJhc3RGaWx0
ZXIpCi0gICAgREVGSU5FX0FQUExJRVIoT3BhY2l0eUZpbHRlcikKLSAgICBERUZJTkVfQVBQTElF
UihCbHVyRmlsdGVyKQotICAgIERFRklORV9BUFBMSUVSKEFscGhhQmx1cikKLSAgICBERUZJTkVf
QVBQTElFUihDb250ZW50VGV4dHVyZSkKLSAgICBSRUNUX1RFWFRVUkVfRElSRUNUSVZFCi0gICAg
QkxVUl9DT05TVEFOVFMKLSAgICBTVFJJTkdJRlkoCi0gICAgICAgIHByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OwotICAgICAgICB1bmlmb3JtIFNhbXBsZXJUeXBlIHNfc2FtcGxlcjsKLSAgICAgICAg
dW5pZm9ybSBzYW1wbGVyMkQgc19tYXNrOwotICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCBzX2Nv
bnRlbnRUZXh0dXJlOwotICAgICAgICB1bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTsKLSAgICAgICAg
dmFyeWluZyB2ZWMyIHZfdGV4Q29vcmQ7Ci0gICAgICAgIHZhcnlpbmcgdmVjMiB2X21hc2tUZXhD
b29yZDsKLSAgICAgICAgdW5pZm9ybSB2ZWMzIHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNw
YWNlWzhdOwotICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZmlsdGVyQW1vdW50OwotICAgICAgICB1
bmlmb3JtIHZlYzIgdV9ibHVyUmFkaXVzOwotICAgICAgICB1bmlmb3JtIHZlYzIgdV9zaGFkb3dP
ZmZzZXQ7Ci0gICAgICAgIHVuaWZvcm0gdmVjNCB1X2NvbG9yOwotICAgICAgICB1bmlmb3JtIGZs
b2F0IHVfZ2F1c3NpYW5LZXJuZWxbR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwotCi0gICAg
ICAgIHZvaWQgbm9vcCh2ZWM0KSB7IH0KLQotICAgICAgICAvLyBUaGUgZGF0YSBwYXNzZWQgaW4g
dV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2UgaXMgbWVyZWx5IHRoZQotICAgICAgICAv
LyBwcmUtc2NhbGVkIGNvZWZmZWNpZW50cyBvZiB0aGUgbGluZSBlcXVhdGlvbnMgZGVzY3JpYmlu
ZyB0aGUgZm91ciBlZGdlcwotICAgICAgICAvLyBvZiB0aGUgZXhwYW5kZWQgcXVhZCBpbiBzY3Jl
ZW4gc3BhY2UgYW5kIHRoZSByZWN0YW5ndWxhciBib3VuZGluZyBib3gKLSAgICAgICAgLy8gb2Yg
dGhlIGV4cGFuZGVkIHF1YWQuCi0gICAgICAgIC8vCi0gICAgICAgIGZsb2F0IG5vcm1hbGl6ZWRE
aXN0YW5jZSh2ZWMzIGVkZ2VDb2VmZmljaWVudCkKLSAgICAgICAgewotICAgICAgICAgICAgLy8g
V2UgYXJlIGRvaW5nIGEgc2ltcGxlIGRpc3RhbmNlIGNhbGN1bGF0aW9uIGhlcmUgYWNjb3JkaW5n
IHRvIHRoZSBmb3JtdWxhOgotICAgICAgICAgICAgLy8gKEEqcC54ICsgQipwLnkgKyBDKSAvIHNx
cnQoQV4yICsgQl4yKSA9IGRpc3RhbmNlIGZyb20gbGluZSB0byBwCi0gICAgICAgICAgICAvLyBO
b3RlIHRoYXQgQSwgQiBhbmQgQyBoYXZlIGFscmVhZHkgYmVlbiBzY2FsZWQgYnkgMSAvIHNxcnQo
QV4yICsgQl4yKS4KLSAgICAgICAgICAgIHJldHVybiBjbGFtcChkb3QoZWRnZUNvZWZmaWNpZW50
LCB2ZWMzKGdsX0ZyYWdDb29yZC54eSwgMS4pKSwgMC4sIDEuKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIGZsb2F0IGFudGlhbGlhc1F1YWQodmVjMyBjb2VmZmljaWVudDEsIHZlYzMgY29lZmZpY2ll
bnQyLCB2ZWMzIGNvZWZmaWNpZW50MywgdmVjMyBjb2VmZmljaWVudDQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIC8vIE5vdyB3ZSB3YW50IHRvIHJlZHVjZSB0aGUgYWxwaGEgdmFsdWUgb2YgdGhl
IGZyYWdtZW50IGlmIGl0IGlzIGNsb3NlIHRvIHRoZQotICAgICAgICAgICAgLy8gZWRnZXMgb2Yg
dGhlIGV4cGFuZGVkIHF1YWQgKG9yIHJlY3Rhbmd1bGFyIGJvdW5kaW5nIGJveCAtLSB3aGljaCBz
ZWVtcyB0byBiZQotICAgICAgICAgICAgLy8gaW1wb3J0YW50IGZvciBiYWNrZmFjaW5nIHF1YWRz
KS4gTm90ZSB0aGF0IHdlIGFyZSBjb21iaW5pbmcgdGhlIGNvbnRyaWJ1dGlvbgotICAgICAgICAg
ICAgLy8gZnJvbSB0aGUgKHRvcCB8fCBib3R0b20pIGFuZCAobGVmdCB8fCByaWdodCkgZWRnZSBi
eSBzaW1wbHkgbXVsdGlwbHlpbmcuIFRoaXMgZm9sbG93cwotICAgICAgICAgICAgLy8gdGhlIGFw
cHJvYWNoIGRlc2NyaWJlZCBhdDogaHR0cDovL2h0dHAuZGV2ZWxvcGVyLm52aWRpYS5jb20vR1BV
R2VtczIvZ3B1Z2VtczJfY2hhcHRlcjIyLmh0bWwsCi0gICAgICAgICAgICAvLyBpbiB0aGlzIGNh
c2Ugd2l0aG91dCB1c2luZyBHYXVzc2lhbiB3ZWlnaHRzLgotICAgICAgICAgICAgcmV0dXJuIG1p
bihub3JtYWxpemVkRGlzdGFuY2UoY29lZmZpY2llbnQxKSwgbm9ybWFsaXplZERpc3RhbmNlKGNv
ZWZmaWNpZW50MikpCi0gICAgICAgICAgICAgICAgKiBtaW4obm9ybWFsaXplZERpc3RhbmNlKGNv
ZWZmaWNpZW50MyksIG5vcm1hbGl6ZWREaXN0YW5jZShjb2VmZmljaWVudDQpKTsKLSAgICAgICAg
fQotCi0gICAgICAgIGZsb2F0IGFudGlhbGlhcygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZs
b2F0IGFudGlhbGlhc1ZhbHVlRm9yUXVhZCA9IAotICAgICAgICAgICAgICAgIGFudGlhbGlhc1F1
YWQodV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbMF0sCi0gICAgICAgICAgICAgICAg
ICAgIHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlWzFdLAotICAgICAgICAgICAgICAg
ICAgICB1X2V4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVsyXSwKLSAgICAgICAgICAgICAg
ICAgICAgdV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbM10pOwotCi0gICAgICAgICAg
ICBmbG9hdCBhbnRpYWxpYXNWYWx1ZUZvckJvdW5kaW5nUmVjdCA9IAotICAgICAgICAgICAgICAg
IGFudGlhbGlhc1F1YWQodV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbNF0sCi0gICAg
ICAgICAgICAgICAgICAgIHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlWzVdLAotICAg
ICAgICAgICAgICAgICAgICB1X2V4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVs2XSwKLSAg
ICAgICAgICAgICAgICAgICAgdV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbN10pOwot
Ci0gICAgICAgICAgICByZXR1cm4gbWluKGFudGlhbGlhc1ZhbHVlRm9yUXVhZCwgYW50aWFsaWFz
VmFsdWVGb3JCb3VuZGluZ1JlY3QpOyAgICAgICAgICAgCi0gICAgICAgIH0KLQotICAgICAgICB2
b2lkIGFwcGx5VGV4dHVyZShpbm91dCB2ZWM0IGNvbG9yKSB7IGNvbG9yID0gU2FtcGxlckZ1bmN0
aW9uKHNfc2FtcGxlciwgdl90ZXhDb29yZCk7IH0KLSAgICAgICAgdm9pZCBhcHBseU9wYWNpdHko
aW5vdXQgdmVjNCBjb2xvcikgeyBjb2xvciAqPSB1X29wYWNpdHk7IH0KLSAgICAgICAgdm9pZCBh
cHBseUFudGlhbGlhcyhpbm91dCB2ZWM0IGNvbG9yKSB7IGNvbG9yICo9IGFudGlhbGlhcygpOyB9
Ci0gICAgICAgIHZvaWQgYXBwbHlNYXNrKGlub3V0IHZlYzQgY29sb3IpIHsgY29sb3IgKj0gdGV4
dHVyZTJEKHNfbWFzaywgdl9tYXNrVGV4Q29vcmQpLmE7IH0KLQotICAgICAgICB2b2lkIGFwcGx5
R3JheXNjYWxlRmlsdGVyKGlub3V0IHZlYzQgY29sb3IpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGZsb2F0IGFtb3VudCA9IDEuMCAtIHVfZmlsdGVyQW1vdW50OwotICAgICAgICAgICAgY29sb3Ig
PSB2ZWM0KCgwLjIxMjYgKyAwLjc4NzQgKiBhbW91bnQpICogY29sb3IuciArICgwLjcxNTIgLSAw
LjcxNTIgKiBhbW91bnQpICogY29sb3IuZyArICgwLjA3MjIgLSAwLjA3MjIgKiBhbW91bnQpICog
Y29sb3IuYiwKLSAgICAgICAgICAgICAgICAoMC4yMTI2IC0gMC4yMTI2ICogYW1vdW50KSAqIGNv
bG9yLnIgKyAoMC43MTUyICsgMC4yODQ4ICogYW1vdW50KSAqIGNvbG9yLmcgKyAoMC4wNzIyIC0g
MC4wNzIyICogYW1vdW50KSAqIGNvbG9yLmIsCi0gICAgICAgICAgICAgICAgKDAuMjEyNiAtIDAu
MjEyNiAqIGFtb3VudCkgKiBjb2xvci5yICsgKDAuNzE1MiAtIDAuNzE1MiAqIGFtb3VudCkgKiBj
b2xvci5nICsgKDAuMDcyMiArIDAuOTI3OCAqIGFtb3VudCkgKiBjb2xvci5iLAotICAgICAgICAg
ICAgICAgIGNvbG9yLmEpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBhcHBseVNlcGlhRmls
dGVyKGlub3V0IHZlYzQgY29sb3IpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZsb2F0IGFtb3Vu
dCA9IDEuMCAtIHVfZmlsdGVyQW1vdW50OwotICAgICAgICAgICAgY29sb3IgPSB2ZWM0KCgwLjM5
MyArIDAuNjA3ICogYW1vdW50KSAqIGNvbG9yLnIgKyAoMC43NjkgLSAwLjc2OSAqIGFtb3VudCkg
KiBjb2xvci5nICsgKDAuMTg5IC0gMC4xODkgKiBhbW91bnQpICogY29sb3IuYiwKLSAgICAgICAg
ICAgICAgICAoMC4zNDkgLSAwLjM0OSAqIGFtb3VudCkgKiBjb2xvci5yICsgKDAuNjg2ICsgMC4z
MTQgKiBhbW91bnQpICogY29sb3IuZyArICgwLjE2OCAtIDAuMTY4ICogYW1vdW50KSAqIGNvbG9y
LmIsCi0gICAgICAgICAgICAgICAgKDAuMjcyIC0gMC4yNzIgKiBhbW91bnQpICogY29sb3IuciAr
ICgwLjUzNCAtIDAuNTM0ICogYW1vdW50KSAqIGNvbG9yLmcgKyAoMC4xMzEgKyAwLjg2OSAqIGFt
b3VudCkgKiBjb2xvci5iLAotICAgICAgICAgICAgICAgIGNvbG9yLmEpOwotICAgICAgICB9Ci0K
LSAgICAgICAgdm9pZCBhcHBseVNhdHVyYXRlRmlsdGVyKGlub3V0IHZlYzQgY29sb3IpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGNvbG9yID0gdmVjNCgoMC4yMTMgKyAwLjc4NyAqIHVfZmlsdGVy
QW1vdW50KSAqIGNvbG9yLnIgKyAoMC43MTUgLSAwLjcxNSAqIHVfZmlsdGVyQW1vdW50KSAqIGNv
bG9yLmcgKyAoMC4wNzIgLSAwLjA3MiAqIHVfZmlsdGVyQW1vdW50KSAqIGNvbG9yLmIsCi0gICAg
ICAgICAgICAgICAgKDAuMjEzIC0gMC4yMTMgKiB1X2ZpbHRlckFtb3VudCkgKiBjb2xvci5yICsg
KDAuNzE1ICsgMC4yODUgKiB1X2ZpbHRlckFtb3VudCkgKiBjb2xvci5nICsgKDAuMDcyIC0gMC4w
NzIgKiB1X2ZpbHRlckFtb3VudCkgKiBjb2xvci5iLAotICAgICAgICAgICAgICAgICgwLjIxMyAt
IDAuMjEzICogdV9maWx0ZXJBbW91bnQpICogY29sb3IuciArICgwLjcxNSAtIDAuNzE1ICogdV9m
aWx0ZXJBbW91bnQpICogY29sb3IuZyArICgwLjA3MiArIDAuOTI4ICogdV9maWx0ZXJBbW91bnQp
ICogY29sb3IuYiwKLSAgICAgICAgICAgICAgICBjb2xvci5hKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHZvaWQgYXBwbHlIdWVSb3RhdGVGaWx0ZXIoaW5vdXQgdmVjNCBjb2xvcikKLSAgICAgICAg
ewotICAgICAgICAgICAgZmxvYXQgcGkgPSAzLjE0MTU5MjY1MzU4OTc5MzIzODQ2OwotICAgICAg
ICAgICAgZmxvYXQgYyA9IGNvcyh1X2ZpbHRlckFtb3VudCAqIHBpIC8gMTgwLjApOwotICAgICAg
ICAgICAgZmxvYXQgcyA9IHNpbih1X2ZpbHRlckFtb3VudCAqIHBpIC8gMTgwLjApOwotICAgICAg
ICAgICAgY29sb3IgPSB2ZWM0KGNvbG9yLnIgKiAoMC4yMTMgKyBjICogMC43ODcgLSBzICogMC4y
MTMpICsgY29sb3IuZyAqICgwLjcxNSAtIGMgKiAwLjcxNSAtIHMgKiAwLjcxNSkgKyBjb2xvci5i
ICogKDAuMDcyIC0gYyAqIDAuMDcyICsgcyAqIDAuOTI4KSwKLSAgICAgICAgICAgICAgICBjb2xv
ci5yICogKDAuMjEzIC0gYyAqIDAuMjEzICsgcyAqIDAuMTQzKSArIGNvbG9yLmcgKiAoMC43MTUg
KyBjICogMC4yODUgKyBzICogMC4xNDApICsgY29sb3IuYiAqICgwLjA3MiAtIGMgKiAwLjA3MiAt
IHMgKiAwLjI4MyksCi0gICAgICAgICAgICAgICAgY29sb3IuciAqICgwLjIxMyAtIGMgKiAwLjIx
MyAtIHMgKiAwLjc4NykgKyAgY29sb3IuZyAqICgwLjcxNSAtIGMgKiAwLjcxNSArIHMgKiAwLjcx
NSkgKyBjb2xvci5iICogKDAuMDcyICsgYyAqIDAuOTI4ICsgcyAqIDAuMDcyKSwKLSAgICAgICAg
ICAgICAgICBjb2xvci5hKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZsb2F0IGludmVydChmbG9h
dCBuKSB7IHJldHVybiAoMS4wIC0gbikgKiB1X2ZpbHRlckFtb3VudCArIG4gKiAoMS4wIC0gdV9m
aWx0ZXJBbW91bnQpOyB9Ci0gICAgICAgIHZvaWQgYXBwbHlJbnZlcnRGaWx0ZXIoaW5vdXQgdmVj
NCBjb2xvcikKLSAgICAgICAgewotICAgICAgICAgICAgY29sb3IgPSB2ZWM0KGludmVydChjb2xv
ci5yKSwgaW52ZXJ0KGNvbG9yLmcpLCBpbnZlcnQoY29sb3IuYiksIGNvbG9yLmEpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgdm9pZCBhcHBseUJyaWdodG5lc3NGaWx0ZXIoaW5vdXQgdmVjNCBjb2xv
cikKLSAgICAgICAgewotICAgICAgICAgICAgY29sb3IgPSB2ZWM0KGNvbG9yLnJnYiAqICgxLjAg
KyB1X2ZpbHRlckFtb3VudCksIGNvbG9yLmEpOwotICAgICAgICB9Ci0KLSAgICAgICAgZmxvYXQg
Y29udHJhc3QoZmxvYXQgbikgeyByZXR1cm4gKG4gLSAwLjUpICogdV9maWx0ZXJBbW91bnQgKyAw
LjU7IH0KLSAgICAgICAgdm9pZCBhcHBseUNvbnRyYXN0RmlsdGVyKGlub3V0IHZlYzQgY29sb3Ip
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGNvbG9yID0gdmVjNChjb250cmFzdChjb2xvci5yKSwg
Y29udHJhc3QoY29sb3IuZyksIGNvbnRyYXN0KGNvbG9yLmIpLCBjb2xvci5hKTsKLSAgICAgICAg
fQotCi0gICAgICAgIHZvaWQgYXBwbHlPcGFjaXR5RmlsdGVyKGlub3V0IHZlYzQgY29sb3IpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGNvbG9yID0gdmVjNChjb2xvci5yLCBjb2xvci5nLCBjb2xv
ci5iLCBjb2xvci5hICogdV9maWx0ZXJBbW91bnQpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmVj
NCBzYW1wbGVDb2xvckF0UmFkaXVzKGZsb2F0IHJhZGl1cykKLSAgICAgICAgewotICAgICAgICAg
ICAgdmVjMiBjb29yZCA9IHZfdGV4Q29vcmQgKyByYWRpdXMgKiB1X2JsdXJSYWRpdXM7Ci0gICAg
ICAgICAgICByZXR1cm4gU2FtcGxlckZ1bmN0aW9uKHNfc2FtcGxlciwgY29vcmQpICogZmxvYXQo
Y29vcmQueCA+IDAuICYmIGNvb3JkLnkgPiAwLiAmJiBjb29yZC54IDwgMS4gJiYgY29vcmQueSA8
IDEuKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZsb2F0IHNhbXBsZUFscGhhQXRSYWRpdXMoZmxv
YXQgcmFkaXVzKQotICAgICAgICB7Ci0gICAgICAgICAgICB2ZWMyIGNvb3JkID0gdl90ZXhDb29y
ZCAtIHVfc2hhZG93T2Zmc2V0ICsgcmFkaXVzICogdV9ibHVyUmFkaXVzOwotICAgICAgICAgICAg
cmV0dXJuIFNhbXBsZXJGdW5jdGlvbihzX3NhbXBsZXIsIGNvb3JkKS5hICogZmxvYXQoY29vcmQu
eCA+IDAuICYmIGNvb3JkLnkgPiAwLiAmJiBjb29yZC54IDwgMS4gJiYgY29vcmQueSA8IDEuKTsK
LSAgICAgICAgfQotCi0gICAgICAgIHZvaWQgYXBwbHlCbHVyRmlsdGVyKGlub3V0IHZlYzQgY29s
b3IpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZlYzQgdG90YWwgPSBzYW1wbGVDb2xvckF0UmFk
aXVzKDAuKSAqIHVfZ2F1c3NpYW5LZXJuZWxbMF07Ci0gICAgICAgICAgICBmb3IgKGludCBpID0g
MTsgaSA8IEdBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRIOyBpKyspIHsKLSAgICAgICAgICAgICAg
ICB0b3RhbCArPSBzYW1wbGVDb2xvckF0UmFkaXVzKGZsb2F0KGkpICogR0FVU1NJQU5fS0VSTkVM
X1NURVApICogdV9nYXVzc2lhbktlcm5lbFtpXTsKLSAgICAgICAgICAgICAgICB0b3RhbCArPSBz
YW1wbGVDb2xvckF0UmFkaXVzKGZsb2F0KC0xICogaSkgKiBHQVVTU0lBTl9LRVJORUxfU1RFUCkg
KiB1X2dhdXNzaWFuS2VybmVsW2ldOworc3RydWN0IFNoYWRlclNwZWMgeworICAgIFN0cmluZyB2
ZXJ0ZXhTaGFkZXI7CisgICAgU3RyaW5nIGZyYWdtZW50U2hhZGVyOworICAgIFNoYWRlclNwZWMo
Y29uc3QgY2hhciogdmVydGV4ID0gMCwgY29uc3QgY2hhciogZnJhZ21lbnQgPSAwKQorICAgICAg
ICA6IHZlcnRleFNoYWRlcih2ZXJ0ZXggPyBTdHJpbmcoQVNDSUlMaXRlcmFsKHZlcnRleCkpIDog
U3RyaW5nKCkpCisgICAgICAgICwgZnJhZ21lbnRTaGFkZXIoZnJhZ21lbnQgPyBTdHJpbmcoQVND
SUlMaXRlcmFsKGZyYWdtZW50KSkgOiBTdHJpbmcoKSkKKyAgICB7CisgICAgfQorfTsKKworc3Rh
dGljIHZvaWQgZ2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVy
S2V5IGtleSwgU3RyaW5nJiB2ZXJ0ZXhTb3VyY2UsIFN0cmluZyYgZnJhZ21lbnRTb3VyY2UpCit7
CisgICAgc3RhdGljIFZlY3RvcjxTaGFkZXJTcGVjPiBzcGVjcyA9IFZlY3RvcjxTaGFkZXJTcGVj
PigpOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVudE9wYWNpdHlBbmRNYXNrID0KKyAg
ICAgICAgU1RSSU5HSUZZKAorICAgICAgICAgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cisg
ICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCBzX3NhbXBsZXI7CisgICAgICAgICAgICB1bmlm
b3JtIHNhbXBsZXIyRCBzX21hc2s7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfb3BhY2l0
eTsKKyAgICAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3NvdXJjZVRleENvb3JkOworICAgICAgICAg
ICAgdmFyeWluZyB2ZWMyIHZfbWFza1RleENvb3JkOworICAgICAgICAgICAgdm9pZCBtYWluKHZv
aWQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmVjNCBjb2xvciA9IHRleHR1cmUy
RChzX3NhbXBsZXIsIHZfc291cmNlVGV4Q29vcmQpOworICAgICAgICAgICAgICAgIHZlYzQgbWFz
a0NvbG9yID0gdGV4dHVyZTJEKHNfbWFzaywgdl9tYXNrVGV4Q29vcmQpOworICAgICAgICAgICAg
ICAgIGZsb2F0IGZyYWdtZW50QWxwaGEgPSB1X29wYWNpdHkgKiBtYXNrQ29sb3IuYTsKKyAgICAg
ICAgICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLnJnYiAqIGZyYWdtZW50QWxwaGEs
IGNvbG9yLmEgKiBmcmFnbWVudEFscGhhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKwor
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVudFJlY3RPcGFjaXR5QW5kTWFzayA9CisgICAg
ICAgIFNUUklOR0lGWSgKKyAgICAgICAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworICAg
ICAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkRSZWN0IHNfc2FtcGxlcjsKKyAgICAgICAgICAgIHVu
aWZvcm0gc2FtcGxlcjJEUmVjdCBzX21hc2s7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVf
b3BhY2l0eTsKKyAgICAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3NvdXJjZVRleENvb3JkOworICAg
ICAgICAgICAgdmFyeWluZyB2ZWMyIHZfbWFza1RleENvb3JkOworICAgICAgICAgICAgdm9pZCBt
YWluKHZvaWQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmVjNCBjb2xvciA9IHRl
eHR1cmUyRFJlY3Qoc19zYW1wbGVyLCB2X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAg
ICB2ZWM0IG1hc2tDb2xvciA9IHRleHR1cmUyRFJlY3Qoc19tYXNrLCB2X21hc2tUZXhDb29yZCk7
CisgICAgICAgICAgICAgICAgZmxvYXQgZnJhZ21lbnRBbHBoYSA9IHVfb3BhY2l0eSAqIG1hc2tD
b2xvci5hOworICAgICAgICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IucmdiICog
ZnJhZ21lbnRBbHBoYSwgY29sb3IuYSAqIGZyYWdtZW50QWxwaGEpOworICAgICAgICAgICAgfQor
ICAgICAgICApOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHZlcnRleE9wYWNpdHlBbmRNYXNr
ID0KKyAgICAgICAgU1RSSU5HSUZZKAorICAgICAgICAgICAgdW5pZm9ybSBtYXQ0IHVfbWF0cml4
OworICAgICAgICAgICAgdW5pZm9ybSBmbG9hdCB1X2ZsaXA7CisgICAgICAgICAgICB1bmlmb3Jt
IHZlYzIgdV90ZXh0dXJlU2l6ZTsKKyAgICAgICAgICAgIGF0dHJpYnV0ZSB2ZWM0IGFfdmVydGV4
OworICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAg
ICB2YXJ5aW5nIHZlYzIgdl9tYXNrVGV4Q29vcmQ7CisgICAgICAgICAgICB2b2lkIG1haW4odm9p
ZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2X3NvdXJjZVRleENvb3JkID0gdmVj
MihhX3ZlcnRleC54LCBtaXgoYV92ZXJ0ZXgueSwgMS4gLSBhX3ZlcnRleC55LCB1X2ZsaXApKSAq
IHVfdGV4dHVyZVNpemU7CisgICAgICAgICAgICAgICAgdl9tYXNrVGV4Q29vcmQgPSB2ZWMyKGFf
dmVydGV4KTsKKyAgICAgICAgICAgICAgICBnbF9Qb3NpdGlvbiA9IHVfbWF0cml4ICogYV92ZXJ0
ZXg7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciog
ZnJhZ21lbnRTaW1wbGUgPQorICAgICAgICBTVFJJTkdJRlkoCisgICAgICAgICAgICBwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNfc2FtcGxl
cjsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5OworICAgICAgICAgICAgdmFy
eWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2ZWM0IGNvbG9yID0gdGV4dHVyZTJEKHNf
c2FtcGxlciwgdl9zb3VyY2VUZXhDb29yZCk7CisgICAgICAgICAgICAgICAgZ2xfRnJhZ0NvbG9y
ID0gdmVjNChjb2xvci5yZ2IgKiB1X29wYWNpdHksIGNvbG9yLmEgKiB1X29wYWNpdHkpOworICAg
ICAgICAgICAgfQorICAgICAgICApOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50
QW50aWFsaWFzaW5nTm9NYXNrID0KKyAgICAgICAgU1RSSU5HSUZZKAorICAgICAgICAgICAgcHJl
Y2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisgICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCBzX3Nh
bXBsZXI7CisgICAgICAgICAgICB2YXJ5aW5nIHZlYzIgdl9zb3VyY2VUZXhDb29yZDsKKyAgICAg
ICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5OworICAgICAgICAgICAgdW5pZm9ybSB2ZWMz
IHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlWzhdOworCisgICAgICAgICAgICAgICAg
Ly8gVGhlIGRhdGEgcGFzc2VkIGluIHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlIGlz
IG1lcmVseSB0aGUKKyAgICAgICAgICAgICAgICAvLyBwcmUtc2NhbGVkIGNvZWZmZWNpZW50cyBv
ZiB0aGUgbGluZSBlcXVhdGlvbnMgZGVzY3JpYmluZyB0aGUgZm91ciBlZGdlcworICAgICAgICAg
ICAgICAgIC8vIG9mIHRoZSBleHBhbmRlZCBxdWFkIGluIHNjcmVlbiBzcGFjZSBhbmQgdGhlIHJl
Y3Rhbmd1bGFyIGJvdW5kaW5nIGJveAorICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBleHBhbmRl
ZCBxdWFkLgorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICBmbG9hdCBub3JtYWxpemVk
RGlzdGFuY2UodmVjMyBlZGdlQ29lZmZpY2llbnQpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgLy8gV2UgYXJlIGRvaW5nIGEgc2ltcGxlIGRpc3RhbmNlIGNhbGN1bGF0aW9uIGhlcmUg
YWNjb3JkaW5nIHRvIHRoZSBmb3JtdWxhOgorICAgICAgICAgICAgICAgIC8vIChBKnAueCArIEIq
cC55ICsgQykgLyBzcXJ0KEFeMiArIEJeMikgPSBkaXN0YW5jZSBmcm9tIGxpbmUgdG8gcAorICAg
ICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBBLCBCIGFuZCBDIGhhdmUgYWxyZWFkeSBiZWVuIHNj
YWxlZCBieSAxIC8gc3FydChBXjIgKyBCXjIpLgorICAgICAgICAgICAgICAgIHJldHVybiBjbGFt
cChkb3QoZWRnZUNvZWZmaWNpZW50LCB2ZWMzKGdsX0ZyYWdDb29yZC54eSwgMS4pKSwgMC4sIDEu
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZmxvYXQgYW50aWFsaWFzUXVhZCh2ZWMz
IGNvZWZmaWNpZW50MSwgdmVjMyBjb2VmZmljaWVudDIsIHZlYzMgY29lZmZpY2llbnQzLCB2ZWMz
IGNvZWZmaWNpZW50NCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBOb3cgd2Ug
d2FudCB0byByZWR1Y2UgdGhlIGFscGhhIHZhbHVlIG9mIHRoZSBmcmFnbWVudCBpZiBpdCBpcyBj
bG9zZSB0byB0aGUKKyAgICAgICAgICAgICAgICAvLyBlZGdlcyBvZiB0aGUgZXhwYW5kZWQgcXVh
ZCAob3IgcmVjdGFuZ3VsYXIgYm91bmRpbmcgYm94IC0tIHdoaWNoIHNlZW1zIHRvIGJlCisgICAg
ICAgICAgICAgICAgLy8gaW1wb3J0YW50IGZvciBiYWNrZmFjaW5nIHF1YWRzKS4gTm90ZSB0aGF0
IHdlIGFyZSBjb21iaW5pbmcgdGhlIGNvbnRyaWJ1dGlvbgorICAgICAgICAgICAgICAgIC8vIGZy
b20gdGhlICh0b3AgfHwgYm90dG9tKSBhbmQgKGxlZnQgfHwgcmlnaHQpIGVkZ2UgYnkgc2ltcGx5
IG11bHRpcGx5aW5nLiBUaGlzIGZvbGxvd3MKKyAgICAgICAgICAgICAgICAvLyB0aGUgYXBwcm9h
Y2ggZGVzY3JpYmVkIGF0OiBodHRwOi8vaHR0cC5kZXZlbG9wZXIubnZpZGlhLmNvbS9HUFVHZW1z
Mi9ncHVnZW1zMl9jaGFwdGVyMjIuaHRtbCwKKyAgICAgICAgICAgICAgICAvLyBpbiB0aGlzIGNh
c2Ugd2l0aG91dCB1c2luZyBHYXVzc2lhbiB3ZWlnaHRzLgorICAgICAgICAgICAgICAgIHJldHVy
biBtaW4obm9ybWFsaXplZERpc3RhbmNlKGNvZWZmaWNpZW50MSksIG5vcm1hbGl6ZWREaXN0YW5j
ZShjb2VmZmljaWVudDIpKQorICAgICAgICAgICAgICAgICAgICAqIG1pbihub3JtYWxpemVkRGlz
dGFuY2UoY29lZmZpY2llbnQzKSwgbm9ybWFsaXplZERpc3RhbmNlKGNvZWZmaWNpZW50NCkpOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBjb2xvciA9IHRvdGFsOwotICAgICAgICB9Cisg
ICAgICAgICAgICBmbG9hdCBhbnRpYWxpYXMoKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGZsb2F0IGFudGlhbGlhc1ZhbHVlRm9yUXVhZCA9IAorICAgICAgICAgICAgICAgICAgICBh
bnRpYWxpYXNRdWFkKHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlWzBdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgdV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbMV0sCisg
ICAgICAgICAgICAgICAgICAgICAgICB1X2V4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVsy
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVfZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNw
YWNlWzNdKTsKKworICAgICAgICAgICAgICAgIGZsb2F0IGFudGlhbGlhc1ZhbHVlRm9yQm91bmRp
bmdSZWN0ID0gCisgICAgICAgICAgICAgICAgICAgIGFudGlhbGlhc1F1YWQodV9leHBhbmRlZFF1
YWRFZGdlc0luU2NyZWVuU3BhY2VbNF0sCisgICAgICAgICAgICAgICAgICAgICAgICB1X2V4cGFu
ZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVs1XSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVf
ZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlWzZdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgdV9leHBhbmRlZFF1YWRFZGdlc0luU2NyZWVuU3BhY2VbN10pOworCisgICAgICAgICAgICAg
ICAgcmV0dXJuIG1pbihhbnRpYWxpYXNWYWx1ZUZvclF1YWQsIGFudGlhbGlhc1ZhbHVlRm9yQm91
bmRpbmdSZWN0KTsgICAgICAgICAgIAorICAgICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgYXBw
bHlBbHBoYUJsdXIoaW5vdXQgdmVjNCBjb2xvcikKLSAgICAgICAgewotICAgICAgICAgICAgZmxv
YXQgdG90YWwgPSBzYW1wbGVBbHBoYUF0UmFkaXVzKDAuKSAqIHVfZ2F1c3NpYW5LZXJuZWxbMF07
Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IEdBVVNTSUFOX0tFUk5FTF9IQUxGX1dJ
RFRIOyBpKyspIHsKLSAgICAgICAgICAgICAgICB0b3RhbCArPSBzYW1wbGVBbHBoYUF0UmFkaXVz
KGZsb2F0KGkpICogR0FVU1NJQU5fS0VSTkVMX1NURVApICogdV9nYXVzc2lhbktlcm5lbFtpXTsK
LSAgICAgICAgICAgICAgICB0b3RhbCArPSBzYW1wbGVBbHBoYUF0UmFkaXVzKGZsb2F0KC0xICog
aSkgKiBHQVVTU0lBTl9LRVJORUxfU1RFUCkgKiB1X2dhdXNzaWFuS2VybmVsW2ldOworICAgICAg
ICAgICAgdm9pZCBtYWluKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2ZWM0IHNh
bXBsZWRDb2xvciA9IHRleHR1cmUyRChzX3NhbXBsZXIsIGNsYW1wKHZfc291cmNlVGV4Q29vcmQs
IDAuMCwgMS4wKSk7CisgICAgICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gc2FtcGxlZENvbG9y
ICogdV9vcGFjaXR5ICogYW50aWFsaWFzKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisK
KyAgICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRSZWN0U2ltcGxlID0KKyAgICAgICAgU1RS
SU5HSUZZKAorICAgICAgICAgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisgICAgICAgICAg
ICB1bmlmb3JtIHNhbXBsZXIyRFJlY3Qgc19zYW1wbGVyOworICAgICAgICAgICAgdW5pZm9ybSBm
bG9hdCB1X29wYWNpdHk7CisgICAgICAgICAgICB2YXJ5aW5nIHZlYzIgdl9zb3VyY2VUZXhDb29y
ZDsKKyAgICAgICAgICAgIHZvaWQgbWFpbih2b2lkKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkRSZWN0KHNfc2FtcGxlciwgdl9zb3VyY2VUZXhD
b29yZCk7CisgICAgICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvci5yZ2IgKiB1
X29wYWNpdHksIGNvbG9yLmEgKiB1X29wYWNpdHkpOworICAgICAgICAgICAgfQorICAgICAgICAp
OworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHZlcnRleFNpbXBsZSA9CisgICAgICAgIFNUUklO
R0lGWSgKKyAgICAgICAgICAgIHVuaWZvcm0gbWF0NCB1X21hdHJpeDsKKyAgICAgICAgICAgIHVu
aWZvcm0gZmxvYXQgdV9mbGlwOworICAgICAgICAgICAgdW5pZm9ybSB2ZWMyIHVfdGV4dHVyZVNp
emU7CisgICAgICAgICAgICBhdHRyaWJ1dGUgdmVjNCBhX3ZlcnRleDsKKyAgICAgICAgICAgIHZh
cnlpbmcgdmVjMiB2X3NvdXJjZVRleENvb3JkOworICAgICAgICAgICAgdm9pZCBtYWluKHZvaWQp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdl9zb3VyY2VUZXhDb29yZCA9IHZlYzIo
YV92ZXJ0ZXgueCwgbWl4KGFfdmVydGV4LnksIDEuIC0gYV92ZXJ0ZXgueSwgdV9mbGlwKSkgKiB1
X3RleHR1cmVTaXplOworICAgICAgICAgICAgICAgIGdsX1Bvc2l0aW9uID0gdV9tYXRyaXggKiBh
X3ZlcnRleDsKICAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKworICAgIHN0YXRpYyBjb25zdCBj
aGFyKiB2ZXJ0ZXhTb2xpZENvbG9yID0KKyAgICAgICAgU1RSSU5HSUZZKAorICAgICAgICAgICAg
dW5pZm9ybSBtYXQ0IHVfbWF0cml4OworICAgICAgICAgICAgYXR0cmlidXRlIHZlYzQgYV92ZXJ0
ZXg7CisgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBnbF9Qb3NpdGlvbiA9IHVfbWF0cml4ICogYV92ZXJ0ZXg7CisgICAgICAgICAgICB9
CisgICAgICAgICk7CiAKLSAgICAgICAgICAgIGNvbG9yICo9IHRvdGFsOwotICAgICAgICB9Ci0K
LSAgICAgICAgdmVjNCBzb3VyY2VPdmVyKHZlYzQgc3JjLCB2ZWM0IGRzdCkgeyByZXR1cm4gc3Jj
ICsgZHN0ICogKDEuIC0gZHN0LmEpOyB9Ci0KLSAgICAgICAgdm9pZCBhcHBseUNvbnRlbnRUZXh0
dXJlKGlub3V0IHZlYzQgY29sb3IpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZlYzQgY29udGVu
dENvbG9yID0gdGV4dHVyZTJEKHNfY29udGVudFRleHR1cmUsIHZfdGV4Q29vcmQpOwotICAgICAg
ICAgICAgY29sb3IgPSBzb3VyY2VPdmVyKGNvbnRlbnRDb2xvciwgY29sb3IpOwotICAgICAgICB9
Ci0KLSAgICAgICAgdm9pZCBhcHBseVNvbGlkQ29sb3IoaW5vdXQgdmVjNCBjb2xvcikKLSAgICAg
ICAgewotICAgICAgICAgICAgY29sb3IgKj0gdV9jb2xvcjsKLSAgICAgICAgfQotCi0gICAgICAg
IHZvaWQgbWFpbih2b2lkKQotICAgICAgICB7Ci0gICAgICAgICAgICB2ZWM0IGNvbG9yID0gdmVj
NCgxLiwgMS4sIDEuLCAxLik7Ci0gICAgICAgICAgICBhcHBseVRleHR1cmVJZk5lZWRlZChjb2xv
cik7Ci0gICAgICAgICAgICBhcHBseVNvbGlkQ29sb3JJZk5lZWRlZChjb2xvcik7Ci0gICAgICAg
ICAgICBhcHBseUFudGlhbGlhc0lmTmVlZGVkKGNvbG9yKTsKLSAgICAgICAgICAgIGFwcGx5TWFz
a0lmTmVlZGVkKGNvbG9yKTsKLSAgICAgICAgICAgIGFwcGx5T3BhY2l0eUlmTmVlZGVkKGNvbG9y
KTsKLSAgICAgICAgICAgIGFwcGx5R3JheXNjYWxlRmlsdGVySWZOZWVkZWQoY29sb3IpOwotICAg
ICAgICAgICAgYXBwbHlTZXBpYUZpbHRlcklmTmVlZGVkKGNvbG9yKTsKLSAgICAgICAgICAgIGFw
cGx5U2F0dXJhdGVGaWx0ZXJJZk5lZWRlZChjb2xvcik7Ci0gICAgICAgICAgICBhcHBseUh1ZVJv
dGF0ZUZpbHRlcklmTmVlZGVkKGNvbG9yKTsKLSAgICAgICAgICAgIGFwcGx5SW52ZXJ0RmlsdGVy
SWZOZWVkZWQoY29sb3IpOwotICAgICAgICAgICAgYXBwbHlCcmlnaHRuZXNzRmlsdGVySWZOZWVk
ZWQoY29sb3IpOwotICAgICAgICAgICAgYXBwbHlDb250cmFzdEZpbHRlcklmTmVlZGVkKGNvbG9y
KTsKLSAgICAgICAgICAgIGFwcGx5T3BhY2l0eUZpbHRlcklmTmVlZGVkKGNvbG9yKTsKLSAgICAg
ICAgICAgIGFwcGx5Qmx1ckZpbHRlcklmTmVlZGVkKGNvbG9yKTsKLSAgICAgICAgICAgIGFwcGx5
QWxwaGFCbHVySWZOZWVkZWQoY29sb3IpOwotICAgICAgICAgICAgYXBwbHlDb250ZW50VGV4dHVy
ZUlmTmVlZGVkKGNvbG9yKTsKLSAgICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IGNvbG9yOwotICAg
ICAgICB9Ci0gICAgKTsKLQotCi1zdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBw
ZXJTaGFkZXJNYW5hZ2VyOjpPcHRpb25zIG9wdGlvbnMsIFN0cmluZyYgdmVydGV4U291cmNlLCBT
dHJpbmcmIGZyYWdtZW50U291cmNlKQotewotICAgIFN0cmluZ0J1aWxkZXIgZnJhZ21lbnRCdWls
ZGVyOwotI2RlZmluZSBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoQXBwbGllcikgXAotICAgIGlm
IChvcHRpb25zICYgVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OkFwcGxpZXIpIFwKLSAgICAg
ICAgZnJhZ21lbnRCdWlsZGVyLmFwcGVuZChFTkFCTEVfQVBQTElFUihBcHBsaWVyKSk7Ci0KLSAg
ICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoTWF0cml4KQotICAgIFNFVF9BUFBMSUVSX0ZST01f
T1BUSU9OUyhUZXh0dXJlKQotICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhSZWN0KQotICAg
IFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhTb2xpZENvbG9yKQotICAgIFNFVF9BUFBMSUVSX0ZS
T01fT1BUSU9OUyhPcGFjaXR5KQotICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhNYXNrKQot
ICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhBbnRpYWxpYXMpCi0gICAgU0VUX0FQUExJRVJf
RlJPTV9PUFRJT05TKEdyYXlzY2FsZUZpbHRlcikKLSAgICBTRVRfQVBQTElFUl9GUk9NX09QVElP
TlMoU2VwaWFGaWx0ZXIpCi0gICAgU0VUX0FQUExJRVJfRlJPTV9PUFRJT05TKFNhdHVyYXRlRmls
dGVyKQotICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhIdWVSb3RhdGVGaWx0ZXIpCi0gICAg
U0VUX0FQUExJRVJfRlJPTV9PUFRJT05TKEJyaWdodG5lc3NGaWx0ZXIpCi0gICAgU0VUX0FQUExJ
RVJfRlJPTV9PUFRJT05TKENvbnRyYXN0RmlsdGVyKQotICAgIFNFVF9BUFBMSUVSX0ZST01fT1BU
SU9OUyhJbnZlcnRGaWx0ZXIpCi0gICAgU0VUX0FQUExJRVJfRlJPTV9PUFRJT05TKE9wYWNpdHlG
aWx0ZXIpCi0gICAgU0VUX0FQUExJRVJfRlJPTV9PUFRJT05TKEJsdXJGaWx0ZXIpCi0gICAgU0VU
X0FQUExJRVJfRlJPTV9PUFRJT05TKEFscGhhQmx1cikKLSAgICBTRVRfQVBQTElFUl9GUk9NX09Q
VElPTlMoQ29udGVudFRleHR1cmUpCi0KLSAgICBmcmFnbWVudEJ1aWxkZXIuYXBwZW5kKGZyYWdt
ZW50VGVtcGxhdGUpOwotICAgIHZlcnRleFNvdXJjZSA9IHZlcnRleFNoYWRlclNvdXJjZTsKLSAg
ICBmcmFnbWVudFNvdXJjZSA9IGZyYWdtZW50QnVpbGRlci50b1N0cmluZygpOworCisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGZyYWdtZW50U29saWRDb2xvciA9CisgICAgICAgIFNUUklOR0lGWSgK
KyAgICAgICAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworICAgICAgICAgICAgdW5pZm9y
bSB2ZWM0IHVfY29sb3I7CisgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBnbF9GcmFnQ29sb3IgPSB1X2NvbG9yOworICAgICAgICAgICAg
fQorICAgICAgICApOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHZlcnRleEZpbHRlciA9Cisg
ICAgICAgIFNUUklOR0lGWSgKKyAgICAgICAgICAgIGF0dHJpYnV0ZSB2ZWM0IGFfdmVydGV4Owor
ICAgICAgICAgICAgYXR0cmlidXRlIHZlYzQgYV90ZXhDb29yZDsKKyAgICAgICAgICAgIHZhcnlp
bmcgdmVjMiB2X3RleENvb3JkOworICAgICAgICAgICAgdm9pZCBtYWluKHZvaWQpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgdl90ZXhDb29yZCA9IHZlYzIoYV90ZXhDb29yZCk7Cisg
ICAgICAgICAgICAgICAgZ2xfUG9zaXRpb24gPSBhX3ZlcnRleDsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgKTsKKworI2RlZmluZSBTVEFOREFSRF9GSUxURVIoLi4uKSBcCisgICAgICAgICJwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDtcbiJcCisgICAgICAgICJ2YXJ5aW5nIHZlYzIgdl90ZXhDb29y
ZDtcbiJcCisgICAgICAgICJ1bmlmb3JtIGZsb2F0IHVfYW1vdW50O1xuIlwKKyAgICAgICAgInVu
aWZvcm0gc2FtcGxlcjJEIHNfc2FtcGxlcjtcbiIjX19WQV9BUkdTX18gXAorICAgICAgICAidm9p
ZCBtYWluKHZvaWQpXG4geyBnbF9GcmFnQ29sb3IgPSBzaGFkZSh0ZXh0dXJlMkQoc19zYW1wbGVy
LCB2X3RleENvb3JkKSk7IH0iCisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRHcmF5
c2NhbGVGaWx0ZXIgPQorICAgICAgICBTVEFOREFSRF9GSUxURVIoCisgICAgICAgICAgICB2ZWM0
IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBm
bG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKKyAgICAgICAgICAgICAgICByZXR1cm4gdmVj
NCgoMC4yMTI2ICsgMC43ODc0ICogYW1vdW50KSAqIGNvbG9yLnIgKyAoMC43MTUyIC0gMC43MTUy
ICogYW1vdW50KSAqIGNvbG9yLmcgKyAoMC4wNzIyIC0gMC4wNzIyICogYW1vdW50KSAqIGNvbG9y
LmIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMjEyNiAtIDAuMjEyNiAqIGFtb3Vu
dCkgKiBjb2xvci5yICsgKDAuNzE1MiArIDAuMjg0OCAqIGFtb3VudCkgKiBjb2xvci5nICsgKDAu
MDcyMiAtIDAuMDcyMiAqIGFtb3VudCkgKiBjb2xvci5iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgwLjIxMjYgLSAwLjIxMjYgKiBhbW91bnQpICogY29sb3IuciArICgwLjcxNTIgLSAw
LjcxNTIgKiBhbW91bnQpICogY29sb3IuZyArICgwLjA3MjIgKyAwLjkyNzggKiBhbW91bnQpICog
Y29sb3IuYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvci5hKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVudFNlcGlh
RmlsdGVyID0KKyAgICAgICAgU1RBTkRBUkRfRklMVEVSKAorICAgICAgICAgICAgdmVjNCBzaGFk
ZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZmxvYXQg
YW1vdW50ID0gMS4wIC0gdV9hbW91bnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZlYzQoKDAu
MzkzICsgMC42MDcgKiBhbW91bnQpICogY29sb3IuciArICgwLjc2OSAtIDAuNzY5ICogYW1vdW50
KSAqIGNvbG9yLmcgKyAoMC4xODkgLSAwLjE4OSAqIGFtb3VudCkgKiBjb2xvci5iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgwLjM0OSAtIDAuMzQ5ICogYW1vdW50KSAqIGNvbG9yLnIg
KyAoMC42ODYgKyAwLjMxNCAqIGFtb3VudCkgKiBjb2xvci5nICsgKDAuMTY4IC0gMC4xNjggKiBh
bW91bnQpICogY29sb3IuYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMC4yNzIgLSAw
LjI3MiAqIGFtb3VudCkgKiBjb2xvci5yICsgKDAuNTM0IC0gMC41MzQgKiBhbW91bnQpICogY29s
b3IuZyArICgwLjEzMSArIDAuODY5ICogYW1vdW50KSAqIGNvbG9yLmIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29sb3IuYSk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRTYXR1cmF0ZUZpbHRlciA9CisgICAgICAgIFNU
QU5EQVJEX0ZJTFRFUigKKyAgICAgICAgICAgIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNvbG9yKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiB2ZWM0KCgwLjIxMyArIDAuNzg3
ICogdV9hbW91bnQpICogY29sb3IuciArICgwLjcxNSAtIDAuNzE1ICogdV9hbW91bnQpICogY29s
b3IuZyArICgwLjA3MiAtIDAuMDcyICogdV9hbW91bnQpICogY29sb3IuYiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoMC4yMTMgLSAwLjIxMyAqIHVfYW1vdW50KSAqIGNvbG9yLnIgKyAo
MC43MTUgKyAwLjI4NSAqIHVfYW1vdW50KSAqIGNvbG9yLmcgKyAoMC4wNzIgLSAwLjA3MiAqIHVf
YW1vdW50KSAqIGNvbG9yLmIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMjEzIC0g
MC4yMTMgKiB1X2Ftb3VudCkgKiBjb2xvci5yICsgKDAuNzE1IC0gMC43MTUgKiB1X2Ftb3VudCkg
KiBjb2xvci5nICsgKDAuMDcyICsgMC45MjggKiB1X2Ftb3VudCkgKiBjb2xvci5iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLmEpOworICAgICAgICAgICAgfQorICAgICAgICAp
OworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50SHVlUm90YXRlRmlsdGVyID0KKyAg
ICAgICAgU1RBTkRBUkRfRklMVEVSKAorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQg
Y29sb3IpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZmxvYXQgcGkgPSAzLjE0MTU5
MjY1MzU4OTc5MzIzODQ2OworICAgICAgICAgICAgICAgIGZsb2F0IGMgPSBjb3ModV9hbW91bnQg
KiBwaSAvIDE4MC4wKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBzID0gc2luKHVfYW1vdW50ICog
cGkgLyAxODAuMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZlYzQoY29sb3IuciAqICgwLjIx
MyArIGMgKiAwLjc4NyAtIHMgKiAwLjIxMykgKyBjb2xvci5nICogKDAuNzE1IC0gYyAqIDAuNzE1
IC0gcyAqIDAuNzE1KSArIGNvbG9yLmIgKiAoMC4wNzIgLSBjICogMC4wNzIgKyBzICogMC45Mjgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnIgKiAoMC4yMTMgLSBjICogMC4y
MTMgKyBzICogMC4xNDMpICsgY29sb3IuZyAqICgwLjcxNSArIGMgKiAwLjI4NSArIHMgKiAwLjE0
MCkgKyBjb2xvci5iICogKDAuMDcyIC0gYyAqIDAuMDcyIC0gcyAqIDAuMjgzKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb2xvci5yICogKDAuMjEzIC0gYyAqIDAuMjEzIC0gcyAqIDAu
Nzg3KSArICBjb2xvci5nICogKDAuNzE1IC0gYyAqIDAuNzE1ICsgcyAqIDAuNzE1KSArIGNvbG9y
LmIgKiAoMC4wNzIgKyBjICogMC45MjggKyBzICogMC4wNzIpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbG9yLmEpOworICAgICAgICAgICAgfQorICAgICAgICApOworCisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGZyYWdtZW50SW52ZXJ0RmlsdGVyID0KKyAgICAgICAgU1RBTkRBUkRf
RklMVEVSKAorICAgICAgICAgICAgZmxvYXQgaW52ZXJ0KGxvd3AgZmxvYXQgbikgeyByZXR1cm4g
KDEuMCAtIG4pICogdV9hbW91bnQgKyBuICogKDEuMCAtIHVfYW1vdW50KTsgfQorICAgICAgICAg
ICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHZlYzQoaW52ZXJ0KGNvbG9yLnIpLCBpbnZlcnQoY29sb3IuZyksIGludmVy
dChjb2xvci5iKSwgY29sb3IuYSk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisKKyAgICBz
dGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRCcmlnaHRuZXNzRmlsdGVyID0KKyAgICAgICAgU1RB
TkRBUkRfRklMVEVSKAorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZlYzQoY29sb3IucmdiICogKDEu
MCArIHVfYW1vdW50KSwgY29sb3IuYSk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRDb250cmFzdEZpbHRlciA9CisgICAgICAgIFNU
QU5EQVJEX0ZJTFRFUigKKyAgICAgICAgICAgIGZsb2F0IGNvbnRyYXN0KGxvd3AgZmxvYXQgbikg
eyByZXR1cm4gKG4gLSAwLjUpICogdV9hbW91bnQgKyAwLjU7IH0KKyAgICAgICAgICAgIHZlYzQg
c2hhZGUobG93cCB2ZWM0IGNvbG9yKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJl
dHVybiB2ZWM0KGNvbnRyYXN0KGNvbG9yLnIpLCBjb250cmFzdChjb2xvci5nKSwgY29udHJhc3Qo
Y29sb3IuYiksIGNvbG9yLmEpOworICAgICAgICAgICAgfQorICAgICAgICApOworCisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGZyYWdtZW50T3BhY2l0eUZpbHRlciA9CisgICAgICAgIFNUQU5EQVJE
X0ZJTFRFUigKKyAgICAgICAgICAgIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNvbG9yKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiB2ZWM0KGNvbG9yLnIsIGNvbG9yLmcsIGNv
bG9yLmIsIGNvbG9yLmEgKiB1X2Ftb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisK
KyNkZWZpbmUgQkxVUl9DT05TVEFOVFMgIiNkZWZpbmUgR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lE
VEggMTFcbiNkZWZpbmUgR0FVU1NJQU5fS0VSTkVMX1NURVAgMC4yXG4iCisKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciogZnJhZ21lbnRCbHVyRmlsdGVyID0KKyAgICAgICAgQkxVUl9DT05TVEFOVFMK
KyAgICAgICAgU1RSSU5HSUZZKAorICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbm9ybWFsIGRpc3Ry
aWJ1dGlvbiBvZiAyMSB2YWx1ZXMgYmV0d2VlbiAtMiBhbmQgMi4KKyAgICAgICAgICAgIHByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OworICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfdGV4Q29vcmQ7
CisgICAgICAgICAgICB1bmlmb3JtIHZlYzIgdV9ibHVyUmFkaXVzOworICAgICAgICAgICAgdW5p
Zm9ybSBzYW1wbGVyMkQgc19zYW1wbGVyOworICAgICAgICAgICAgdW5pZm9ybSBmbG9hdCB1X2dh
dXNzaWFuS2VybmVsW0dBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRIXTsKKworICAgICAgICAgICAg
dmVjNCBzYW1wbGVDb2xvcihmbG9hdCByYWRpdXMpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgdmVjMiBjb29yZCA9IHZfdGV4Q29vcmQgKyByYWRpdXMgKiB1X2JsdXJSYWRpdXM7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHRleHR1cmUyRChzX3NhbXBsZXIsIGNvb3JkKSAqIGZsb2F0
KGNvb3JkLnggPiAwLiAmJiBjb29yZC55ID4gMC4gJiYgY29vcmQueCA8IDEuICYmIGNvb3JkLnkg
PCAxLik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZlYzQgYmx1cigpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgdmVjNCB0b3RhbCA9IHNhbXBsZUNvbG9yKDAuKSAqIHVf
Z2F1c3NpYW5LZXJuZWxbMF07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBH
QVVTU0lBTl9LRVJORUxfSEFMRl9XSURUSDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRv
dGFsICs9IHNhbXBsZUNvbG9yKGZsb2F0KGkpICogR0FVU1NJQU5fS0VSTkVMX1NURVApICogdV9n
YXVzc2lhbktlcm5lbFtpXTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0gc2FtcGxlQ29s
b3IoZmxvYXQoLTEgKiBpKSAqIEdBVVNTSUFOX0tFUk5FTF9TVEVQKSAqIHVfZ2F1c3NpYW5LZXJu
ZWxbaV07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFs
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBnbF9GcmFnQ29sb3IgPSBibHVyKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRTaGFkb3dG
aWx0ZXIxID0KKyAgICAgICAgQkxVUl9DT05TVEFOVFMKKyAgICAgICAgU1RSSU5HSUZZKAorICAg
ICAgICAgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisgICAgICAgICAgICB2YXJ5aW5nIHZl
YzIgdl90ZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9ibHVyUmFkaXVzOwor
ICAgICAgICAgICAgdW5pZm9ybSB2ZWMyIHVfc2hhZG93T2Zmc2V0OworICAgICAgICAgICAgdW5p
Zm9ybSBzYW1wbGVyMkQgc19zYW1wbGVyOworICAgICAgICAgICAgdW5pZm9ybSBmbG9hdCB1X2dh
dXNzaWFuS2VybmVsW0dBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRIXTsKKworICAgICAgICAgICAg
ZmxvYXQgc2FtcGxlQWxwaGEoZmxvYXQgcmFkaXVzKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIHZlYzIgY29vcmQgPSB2X3RleENvb3JkIC0gdV9zaGFkb3dPZmZzZXQgKyB2ZWMyKHJh
ZGl1cyAqIHVfYmx1clJhZGl1cywgMC4pOworICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJl
MkQoc19zYW1wbGVyLCBjb29yZCkuYSAqIGZsb2F0KGNvb3JkLnggPiAwLiAmJiBjb29yZC55ID4g
MC4gJiYgY29vcmQueCA8IDEuICYmIGNvb3JkLnkgPCAxLik7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGZsb2F0IHNoYWRvd0JsdXJIb3Jpem9udGFsKCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBmbG9hdCB0b3RhbCA9IHNhbXBsZUFscGhhKDAuKSAqIHVfZ2F1c3NpYW5L
ZXJuZWxbMF07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBHQVVTU0lBTl9L
RVJORUxfSEFMRl9XSURUSDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9IHNh
bXBsZUFscGhhKGZsb2F0KGkpICogR0FVU1NJQU5fS0VSTkVMX1NURVApICogdV9nYXVzc2lhbktl
cm5lbFtpXTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0gc2FtcGxlQWxwaGEoZmxvYXQo
LTEgKiBpKSAqIEdBVVNTSUFOX0tFUk5FTF9TVEVQKSAqIHVfZ2F1c3NpYW5LZXJuZWxbaV07Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuLCAxLiwgMS4sIDEuKSAqIHNoYWRv
d0JsdXJIb3Jpem9udGFsKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisKKyAgICAvLyBT
ZWNvbmQgcGFzczogdmVydGljYWwgYWxwaGEgYmx1ciBhbmQgY29tcG9zaXRlIHdpdGggb3JpZ2lu
LgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVudFNoYWRvd0ZpbHRlcjIgPQorICAgICAg
ICBCTFVSX0NPTlNUQU5UUworICAgICAgICBTVFJJTkdJRlkoCisgICAgICAgICAgICBwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKKyAgICAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3RleENvb3JkOwor
ICAgICAgICAgICAgdW5pZm9ybSBmbG9hdCB1X2JsdXJSYWRpdXM7CisgICAgICAgICAgICB1bmlm
b3JtIHZlYzQgdV9zaGFkb3dDb2xvcjsKKyAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNf
c2FtcGxlcjsKKyAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNfY29udGVudFRleHR1cmU7
CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZ2F1c3NpYW5LZXJuZWxbR0FVU1NJQU5fS0VS
TkVMX0hBTEZfV0lEVEhdOworCisgICAgICAgICAgICBmbG9hdCBzYW1wbGVBbHBoYShmbG9hdCBy
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZlYzIgY29vcmQgPSB2X3RleENvb3Jk
ICsgdmVjMigwLiwgciAqIHVfYmx1clJhZGl1cyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRl
eHR1cmUyRChzX3NhbXBsZXIsIGNvb3JkKS5hICogZmxvYXQoY29vcmQueCA+IDAuICYmIGNvb3Jk
LnkgPiAwLiAmJiBjb29yZC54IDwgMS4gJiYgY29vcmQueSA8IDEuKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZmxvYXQgc2hhZG93Qmx1clZlcnRpY2FsKCkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBmbG9hdCB0b3RhbCA9IHNhbXBsZUFscGhhKDAuKSAqIHVfZ2F1c3Np
YW5LZXJuZWxbMF07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBHQVVTU0lB
Tl9LRVJORUxfSEFMRl9XSURUSDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9
IHNhbXBsZUFscGhhKGZsb2F0KGkpICogR0FVU1NJQU5fS0VSTkVMX1NURVApICogdV9nYXVzc2lh
bktlcm5lbFtpXTsKKyAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0gc2FtcGxlQWxwaGEoZmxv
YXQoLTEgKiBpKSAqIEdBVVNTSUFOX0tFUk5FTF9TVEVQKSAqIHVfZ2F1c3NpYW5LZXJuZWxbaV07
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICB2ZWM0IHNvdXJjZU92ZXIobG93cCB2ZWM0IHNvdXJj
ZSwgdmVjNCBkZXN0aW5hdGlvbikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBD
b21wb3NpdGUgdGhlIHNoYWRvdyB3aXRoIHRoZSBvcmlnaW5hbCB0ZXh0dXJlLgorICAgICAgICAg
ICAgICAgIHJldHVybiBzb3VyY2UgKyBkZXN0aW5hdGlvbiAqICgxLiAtIHNvdXJjZS5hKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZCBtYWluKHZvaWQpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gc291cmNlT3Zlcih0ZXh0dXJlMkQoc19j
b250ZW50VGV4dHVyZSwgdl90ZXhDb29yZCksIHNoYWRvd0JsdXJWZXJ0aWNhbCgpICogdV9zaGFk
b3dDb2xvcik7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisKKyAgICBpZiAoc3BlY3MuaXNF
bXB0eSgpKSB7CisgICAgICAgIHNwZWNzLnJlc2l6ZShUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdl
cjo6TGFzdEZpbHRlcik7CisgICAgICAgIHNwZWNzW1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2Vy
OjpEZWZhdWx0XSA9IFNoYWRlclNwZWModmVydGV4U2ltcGxlLCBmcmFnbWVudFNpbXBsZSk7Cisg
ICAgICAgIHNwZWNzW1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTb2xpZENvbG9yXSA9IFNo
YWRlclNwZWModmVydGV4U29saWRDb2xvciwgZnJhZ21lbnRTb2xpZENvbG9yKTsKKyAgICAgICAg
c3BlY3NbVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlJlY3RdID0gU2hhZGVyU3BlYyh2ZXJ0
ZXhTaW1wbGUsIGZyYWdtZW50UmVjdFNpbXBsZSk7CisgICAgICAgIHNwZWNzW1RleHR1cmVNYXBw
ZXJTaGFkZXJNYW5hZ2VyOjpNYXNrZWRdID0gU2hhZGVyU3BlYyh2ZXJ0ZXhPcGFjaXR5QW5kTWFz
aywgZnJhZ21lbnRPcGFjaXR5QW5kTWFzayk7CisgICAgICAgIHNwZWNzW1RleHR1cmVNYXBwZXJT
aGFkZXJNYW5hZ2VyOjpNYXNrZWRSZWN0XSA9IFNoYWRlclNwZWModmVydGV4T3BhY2l0eUFuZE1h
c2ssIGZyYWdtZW50UmVjdE9wYWNpdHlBbmRNYXNrKTsKKyAgICAgICAgc3BlY3NbVGV4dHVyZU1h
cHBlclNoYWRlck1hbmFnZXI6OkFudGlhbGlhc2VkXSA9IFNoYWRlclNwZWModmVydGV4U2ltcGxl
LCBmcmFnbWVudEFudGlhbGlhc2luZ05vTWFzayk7CisgICAgICAgIHNwZWNzW1RleHR1cmVNYXBw
ZXJTaGFkZXJNYW5hZ2VyOjpHcmF5c2NhbGVGaWx0ZXJdID0gU2hhZGVyU3BlYyh2ZXJ0ZXhGaWx0
ZXIsIGZyYWdtZW50R3JheXNjYWxlRmlsdGVyKTsKKyAgICAgICAgc3BlY3NbVGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXI6OlNlcGlhRmlsdGVyXSA9IFNoYWRlclNwZWModmVydGV4RmlsdGVyLCBm
cmFnbWVudFNlcGlhRmlsdGVyKTsKKyAgICAgICAgc3BlY3NbVGV4dHVyZU1hcHBlclNoYWRlck1h
bmFnZXI6OlNhdHVyYXRlRmlsdGVyXSA9IFNoYWRlclNwZWModmVydGV4RmlsdGVyLCBmcmFnbWVu
dFNhdHVyYXRlRmlsdGVyKTsKKyAgICAgICAgc3BlY3NbVGV4dHVyZU1hcHBlclNoYWRlck1hbmFn
ZXI6Okh1ZVJvdGF0ZUZpbHRlcl0gPSBTaGFkZXJTcGVjKHZlcnRleEZpbHRlciwgZnJhZ21lbnRI
dWVSb3RhdGVGaWx0ZXIpOworICAgICAgICBzcGVjc1tUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdl
cjo6QnJpZ2h0bmVzc0ZpbHRlcl0gPSBTaGFkZXJTcGVjKHZlcnRleEZpbHRlciwgZnJhZ21lbnRC
cmlnaHRuZXNzRmlsdGVyKTsKKyAgICAgICAgc3BlY3NbVGV4dHVyZU1hcHBlclNoYWRlck1hbmFn
ZXI6OkNvbnRyYXN0RmlsdGVyXSA9IFNoYWRlclNwZWModmVydGV4RmlsdGVyLCBmcmFnbWVudENv
bnRyYXN0RmlsdGVyKTsKKyAgICAgICAgc3BlY3NbVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6
OkludmVydEZpbHRlcl0gPSBTaGFkZXJTcGVjKHZlcnRleEZpbHRlciwgZnJhZ21lbnRJbnZlcnRG
aWx0ZXIpOworICAgICAgICBzcGVjc1tUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6T3BhY2l0
eUZpbHRlcl0gPSBTaGFkZXJTcGVjKHZlcnRleEZpbHRlciwgZnJhZ21lbnRPcGFjaXR5RmlsdGVy
KTsKKyAgICAgICAgc3BlY3NbVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OkJsdXJGaWx0ZXJd
ID0gU2hhZGVyU3BlYyh2ZXJ0ZXhGaWx0ZXIsIGZyYWdtZW50Qmx1ckZpbHRlcik7CisgICAgICAg
IHNwZWNzW1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkb3dGaWx0ZXJQYXNzMV0gPSBT
aGFkZXJTcGVjKHZlcnRleEZpbHRlciwgZnJhZ21lbnRTaGFkb3dGaWx0ZXIxKTsKKyAgICAgICAg
c3BlY3NbVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRvd0ZpbHRlclBhc3MyXSA9IFNo
YWRlclNwZWModmVydGV4RmlsdGVyLCBmcmFnbWVudFNoYWRvd0ZpbHRlcjIpOworICAgIH0KKwor
ICAgIEFTU0VSVChzcGVjcy5zaXplKCkgPiBrZXkpOworICAgIFNoYWRlclNwZWMmIHNwZWMgPSBz
cGVjc1trZXldOworICAgIHZlcnRleFNvdXJjZSA9IHNwZWMudmVydGV4U2hhZGVyOworICAgIGZy
YWdtZW50U291cmNlID0gc3BlYy5mcmFnbWVudFNoYWRlcjsKIH0KIAogVGV4dHVyZU1hcHBlclNo
YWRlck1hbmFnZXI6OlRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyKEdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0KQpAQCAtNDAwLDE3ICs1MzQsMTcgQEAgVGV4dHVyZU1hcHBlclNoYWRlck1hbmFn
ZXI6On5UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcigpCiB7CiB9CiAKLVBhc3NSZWZQdHI8VGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpnZXRT
aGFkZXJQcm9ncmFtKE9wdGlvbnMgb3B0aW9ucykKK1Bhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclNo
YWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpnZXRTaGFkZXJQcm9ncmFt
KFNoYWRlcktleSBrZXkpCiB7Ci0gICAgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1NYXA6Oml0
ZXJhdG9yIGl0ID0gbV9wcm9ncmFtcy5maW5kKG9wdGlvbnMpOworICAgIFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtTWFwOjppdGVyYXRvciBpdCA9IG1fcHJvZ3JhbXMuZmluZChrZXkpOwogICAg
IGlmIChpdCAhPSBtX3Byb2dyYW1zLmVuZCgpKQogICAgICAgICByZXR1cm4gaXQtPnZhbHVlOwog
CiAgICAgU3RyaW5nIHZlcnRleFNoYWRlcjsKICAgICBTdHJpbmcgZnJhZ21lbnRTaGFkZXI7Ci0g
ICAgZ2V0U2hhZGVyU3BlYyhvcHRpb25zLCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyKTsK
KyAgICBnZXRTaGFkZXJTcGVjKGtleSwgdmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlcik7CiAg
ICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBwcm9ncmFtID0gVGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShtX2NvbnRleHQsIHZlcnRleFNoYWRlciwgZnJhZ21l
bnRTaGFkZXIpOwotICAgIG1fcHJvZ3JhbXMuYWRkKG9wdGlvbnMsIHByb2dyYW0pOworICAgIG1f
cHJvZ3JhbXMuYWRkKGtleSwgcHJvZ3JhbSk7CiAgICAgcmV0dXJuIHByb2dyYW07CiB9CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaAppbmRleCA2MDdlZDQ3YTUzMzA2
NDFkM2U5MjgyZTNkMTNmYzZhMTViYzUwOGYzLi42MDYwNWY0MmQwZTMyMzg3YzQyYTRmZGQwNTMx
NDI3ZTA0YWQ3MjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaApA
QCAtNTksOSArNTksMTAgQEAgcHVibGljOgogICAgIFRFWE1BUF9ERUNMQVJFX1NBTVBMRVIobWFz
aykKIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICBURVhNQVBfREVDTEFSRV9VTklGT1JN
KGZpbHRlckFtb3VudCkKKyAgICBURVhNQVBfREVDTEFSRV9VTklGT1JNKGFtb3VudCkKICAgICBU
RVhNQVBfREVDTEFSRV9VTklGT1JNKGdhdXNzaWFuS2VybmVsKQogICAgIFRFWE1BUF9ERUNMQVJF
X1VOSUZPUk0oYmx1clJhZGl1cykKKyAgICBURVhNQVBfREVDTEFSRV9VTklGT1JNKHNoYWRvd0Nv
bG9yKQogICAgIFRFWE1BUF9ERUNMQVJFX1VOSUZPUk0oc2hhZG93T2Zmc2V0KQogICAgIFRFWE1B
UF9ERUNMQVJFX1NBTVBMRVIoY29udGVudFRleHR1cmUpCiAjZW5kaWYKQEAgLTgxLDM3ICs4Miwz
NiBAQCBwcml2YXRlOgogCiBjbGFzcyBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlciB7CiBwdWJs
aWM6Ci0gICAgZW51bSBPcHRpb24gewotICAgICAgICBNYXRyaXggICAgICAgICAgID0gMUwgPDwg
MCwKLSAgICAgICAgVGV4dHVyZSAgICAgICAgICA9IDFMIDw8IDEsCi0gICAgICAgIFJlY3QgICAg
ICAgICAgICAgPSAxTCA8PCAyLAotICAgICAgICBTb2xpZENvbG9yICAgICAgID0gMUwgPDwgMywK
LSAgICAgICAgT3BhY2l0eSAgICAgICAgICA9IDFMIDw8IDQsCi0gICAgICAgIE1hc2sgICAgICAg
ICAgICAgPSAxTCA8PCA1LAotICAgICAgICBBbnRpYWxpYXMgICAgICAgID0gMUwgPDwgNiwKLSAg
ICAgICAgR3JheXNjYWxlRmlsdGVyICA9IDFMIDw8IDcsCi0gICAgICAgIFNlcGlhRmlsdGVyICAg
ICAgPSAxTCA8PCA4LAotICAgICAgICBTYXR1cmF0ZUZpbHRlciAgID0gMUwgPDwgOSwKLSAgICAg
ICAgSHVlUm90YXRlRmlsdGVyICA9IDFMIDw8IDEwLAotICAgICAgICBCcmlnaHRuZXNzRmlsdGVy
ID0gMUwgPDwgMTEsCi0gICAgICAgIENvbnRyYXN0RmlsdGVyICAgPSAxTCA8PCAxMiwKLSAgICAg
ICAgSW52ZXJ0RmlsdGVyICAgICA9IDFMIDw8IDEzLAotICAgICAgICBPcGFjaXR5RmlsdGVyICAg
ID0gMUwgPDwgMTQsCi0gICAgICAgIEJsdXJGaWx0ZXIgICAgICAgPSAxTCA8PCAxNSwKLSAgICAg
ICAgQWxwaGFCbHVyICAgICAgICA9IDFMIDw8IDE2LAotICAgICAgICBDb250ZW50VGV4dHVyZSAg
ID0gMUwgPDwgMTcKKyAgICBlbnVtIFNoYWRlcktleSB7CisgICAgICAgIEludmFsaWQgPSAwLAor
ICAgICAgICBEZWZhdWx0LAorICAgICAgICBSZWN0LAorICAgICAgICBNYXNrZWQsCisgICAgICAg
IE1hc2tlZFJlY3QsCisgICAgICAgIFNvbGlkQ29sb3IsCisgICAgICAgIEFudGlhbGlhc2VkLAor
ICAgICAgICBHcmF5c2NhbGVGaWx0ZXIsCisgICAgICAgIFNlcGlhRmlsdGVyLAorICAgICAgICBT
YXR1cmF0ZUZpbHRlciwKKyAgICAgICAgSHVlUm90YXRlRmlsdGVyLAorICAgICAgICBCcmlnaHRu
ZXNzRmlsdGVyLAorICAgICAgICBDb250cmFzdEZpbHRlciwKKyAgICAgICAgT3BhY2l0eUZpbHRl
ciwKKyAgICAgICAgSW52ZXJ0RmlsdGVyLAorICAgICAgICBCbHVyRmlsdGVyLAorICAgICAgICBT
aGFkb3dGaWx0ZXJQYXNzMSwKKyAgICAgICAgU2hhZG93RmlsdGVyUGFzczIsCisgICAgICAgIExh
c3RGaWx0ZXIKICAgICB9OwogCi0gICAgdHlwZWRlZiB1bnNpZ25lZCBPcHRpb25zOwotCiAgICAg
VGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIoKSB7IH0KICAgICBleHBsaWNpdCBUZXh0dXJlTWFw
cGVyU2hhZGVyTWFuYWdlcihHcmFwaGljc0NvbnRleHQzRCopOwogICAgIHZpcnR1YWwgflRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyKCk7CiAKLSAgICBQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtPiBnZXRTaGFkZXJQcm9ncmFtKE9wdGlvbnMpOworICAgIFBhc3NSZWZQdHI8
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IGdldFNoYWRlclByb2dyYW0oU2hhZGVyS2V5KTsK
IAogcHJpdmF0ZToKLSAgICB0eXBlZGVmIEhhc2hNYXA8T3B0aW9ucywgUmVmUHRyPFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtPiA+IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtTWFwOworICAg
IHR5cGVkZWYgSGFzaE1hcDxTaGFkZXJLZXksIFJlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbT4sIERlZmF1bHRIYXNoPGludD46Okhhc2gsIEhhc2hUcmFpdHM8aW50PiA+IFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtTWFwOwogICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtTWFw
IG1fcHJvZ3JhbXM7CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBtX2NvbnRleHQ7CiB9
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>