<?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>179515</bug_id>
          
          <creation_ts>2017-11-09 17:05:22 -0800</creation_ts>
          <short_desc>REGRESSION(r224267): WebViews scheduled with custom run loop modes don&apos;t load</short_desc>
          <delta_ts>2017-11-15 09:37:36 -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>WebKit 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>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>aestes</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1370124</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-09 17:05:22 -0800</bug_when>
    <thetext>REGRESSION(r224267): WebViews scheduled with custom run loop modes don&apos;t load</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370146</commentid>
    <comment_count>1</comment_count>
      <attachid>326521</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-09 17:56:36 -0800</bug_when>
    <thetext>Created attachment 326521
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370147</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-11-09 17:58:43 -0800</bug_when>
    <thetext>Attachment 326521 did not pass style-queue:


ERROR: Source/WTF/wtf/NeverDestroyed.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370156</commentid>
    <comment_count>3</comment_count>
      <attachid>326521</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-11-09 18:24:53 -0800</bug_when>
    <thetext>Comment on attachment 326521
Patch

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

&gt; Source/WTF/ChangeLog:15
&gt; +        Unfortunately we need to go back to #ifdef guards because different copies of this header are included while building WTF.

Wat

&gt; Source/WTF/wtf/mac/MainThreadMac.mm:125
&gt; +static RetainPtr&lt;NSArray&lt;NSString *&gt;&gt; nsArrayFromVector(const Vector&lt;String&gt;&amp; strings)

The name of this function should be way more clear that it does crazy things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370167</commentid>
    <comment_count>4</comment_count>
      <attachid>326531</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-09 19:00:03 -0800</bug_when>
    <thetext>Created attachment 326531
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370186</commentid>
    <comment_count>5</comment_count>
      <attachid>326531</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-11-09 20:11:06 -0800</bug_when>
    <thetext>Comment on attachment 326531
Patch

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

&gt; Source/WebCore/platform/network/mac/ResourceHandleMac.mm:277
&gt; +    RetainPtr&lt;NSArray&lt;NSString *&gt;&gt; runLoopModes;
&gt; +    if (auto* scheduledPairs = d-&gt;m_context-&gt;scheduledRunLoopPairs()) {
&gt; +        runLoopModes = adoptNS([[NSMutableArray alloc] initWithCapacity:scheduledPairs-&gt;size()]);
&gt; +        for (auto&amp; pair : *scheduledPairs)
&gt; +            [runLoopModes addObject:(NSString *)pair-&gt;mode()];
&gt; +    }

Can we just pass though the SchedulePairHashSet instead of copying into an NSArray *?

Reasons to prefer:

(1) A full fix for this bug requires honoring not just the run loop mode but also the run loop, which need not be the main run loop.

(2) It&apos;s nice to pass C++ types to C++ code -- and faster too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370207</commentid>
    <comment_count>6</comment_count>
      <attachid>326547</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-09 20:56:52 -0800</bug_when>
    <thetext>Created attachment 326547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370213</commentid>
    <comment_count>7</comment_count>
      <attachid>326550</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-09 21:23:23 -0800</bug_when>
    <thetext>Created attachment 326550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370369</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-10 09:31:15 -0800</bug_when>
    <thetext>http://trac.webkit.org/r224687</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371918</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 09:37:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/35562089&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326521</attachid>
            <date>2017-11-09 17:56:36 -0800</date>
            <delta_ts>2017-11-09 19:00:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179515-20171109175635.patch</filename>
            <type>text/plain</type>
            <size>27721</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMjQ2NDcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE3LTExLTA5ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjI0MjY3KTog
V2ViVmlld3Mgc2NoZWR1bGVkIHdpdGggY3VzdG9tIHJ1biBsb29wIG1vZGVzIGRvbid0IGxvYWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTUxNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU0NDUyNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAg
IChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6Cisg
ICAgICAgIChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICAoV1RGOjpzY2hlZHVsZURp
c3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKToKKyAgICAgICAgKiB3dGYvTmV2ZXJEZXN0cm95
ZWQuaDoKKyAgICAgICAgVW5mb3J0dW5hdGVseSB3ZSBuZWVkIHRvIGdvIGJhY2sgdG8gI2lmZGVm
IGd1YXJkcyBiZWNhdXNlIGRpZmZlcmVudCBjb3BpZXMgb2YgdGhpcyBoZWFkZXIgYXJlIGluY2x1
ZGVkIHdoaWxlIGJ1aWxkaW5nIFdURi4KKyAgICAgICAgKiB3dGYvZ2VuZXJpYy9NYWluVGhyZWFk
R2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OnNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1h
aW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9tYWMvTWFpblRocmVhZE1hYy5tbToKKyAgICAgICAg
KFdURjo6bnNBcnJheUZyb21WZWN0b3IpOgorICAgICAgICAoV1RGOjpzY2hlZHVsZURpc3BhdGNo
RnVuY3Rpb25zT25NYWluVGhyZWFkKToKKyAgICAgICAgKiB3dGYvd2luL01haW5UaHJlYWRXaW4u
Y3BwOgorICAgICAgICAoV1RGOjpzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFk
KToKKyAgICAgICAgQWRkIGFuIG9wdGlvbmFsIHBhcmFtZXRlciB3aGljaCBpcyBhbiBhcnJheSBv
ZiBydW4gbG9vcCBtb2RlIG5hbWVzIHRvIHBhc3MgdG8gcGVyZm9ybVNlbGVjdG9yT25NYWluVGhy
ZWFkLgorCiAyMDE3LTExLTA4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgogCiAgICAgICAgIFtpb3Mtc2ltdWxhdG9yXSBBUEkgdGVzdCBXZWJLaXQuQnVuZGxlUGFyYW1l
dGVycyBpcyBhIGZsYWt5IGZhaWx1cmUKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwCShyZXZpc2lv
biAyMjQ2NDcpCisrKyBTb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVh
ZCgpCiAgICAgfQogfQogCi12b2lkIGNhbGxPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZCAoKT4m
JiBmdW5jdGlvbikKK3ZvaWQgY2FsbE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgZnVu
Y3Rpb24sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtb2RlcykKIHsKICAgICBBU1NFUlQoZnVuY3Rp
b24pOwogCkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBjYWxsT25NYWluVGhyZWFkKEZ1bmN0aW9u
PHZvaWQgKCk+JgogICAgIH0KIAogICAgIGlmIChuZWVkVG9TY2hlZHVsZSkKLSAgICAgICAgc2No
ZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpOworICAgICAgICBzY2hlZHVsZURp
c3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKG1vZGVzKTsKIH0KIAogdm9pZCBzZXRNYWluVGhy
ZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wgcGF1c2VkKQpJbmRleDogU291cmNlL1dURi93dGYvTWFp
blRocmVhZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuaAkocmV2
aXNpb24gMjI0NjQ3KQorKysgU291cmNlL1dURi93dGYvTWFpblRocmVhZC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4K
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC00Miw3ICs0NCw3IEBAIGNsYXNzIFByaW50U3RyZWFt
OwogLy8gTXVzdCBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCiBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZCgpOwogCi1XVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBjYWxsT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JiYpOworV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgY2FsbE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBtb2RlcyA9IHsgfSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRo
cmVhZCh2b2lkICheYmxvY2spKCkpOwpAQCAtODEsNyArODMsNyBAQCBXVEZfRVhQT1JUX1BSSVZB
VEUgYm9vbCBpc01haW5UaHJlYWRPckdDCiAKIC8vIE5PVEU6IHRoZXNlIGZ1bmN0aW9ucyBhcmUg
aW50ZXJuYWwgdG8gdGhlIGNhbGxPbk1haW5UaHJlYWQgaW1wbGVtZW50YXRpb24uCiB2b2lkIGlu
aXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKTsKLXZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0
aW9uc09uTWFpblRocmVhZCgpOwordm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWlu
VGhyZWFkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtb2RlcyA9IHsgfSk7CiB2b2lkIGRpc3BhdGNo
RnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKTsKIAogI2lmIE9TKERBUldJTikgJiYgIVVTRShHTElC
KQpJbmRleDogU291cmNlL1dURi93dGYvTmV2ZXJEZXN0cm95ZWQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oCShyZXZpc2lvbiAyMjQ2NDcpCisrKyBTb3Vy
Y2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw4
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI3ByYWdtYSBv
bmNlCisjaWZuZGVmIE5ldmVyRGVzdHJveWVkX2gKKyNkZWZpbmUgTmV2ZXJEZXN0cm95ZWRfaAog
CiAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVkZSA8dXRpbGl0eT4KQEAgLTE1MiwzICsx
NTMsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgTmV2ZXJEZXN0cm95CiB1c2luZyBX
VEY6OkxhenlOZXZlckRlc3Ryb3llZDsKIHVzaW5nIFdURjo6TmV2ZXJEZXN0cm95ZWQ7CiB1c2lu
ZyBXVEY6Om1ha2VOZXZlckRlc3Ryb3llZDsKKworI2VuZGlmCisKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL2dlbmVyaWMvTWFpblRocmVhZEdlbmVyaWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL2dlbmVyaWMvTWFpblRocmVhZEdlbmVyaWMuY3BwCShyZXZpc2lvbiAyMjQ2NDcpCisr
KyBTb3VyY2UvV1RGL3d0Zi9nZW5lcmljL01haW5UaHJlYWRHZW5lcmljLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjcsNyArNjcsNyBAQCB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0o
KQogewogfQogCi12b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKQor
dm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JikKIHsKICAgICAvLyBVc2UgYSBSdW5Mb29wOjpUaW1lciBpbnN0ZWFkIG9mIFJ1bkxv
b3A6OmRpc3BhdGNoKCkgdG8gYmUgYWJsZSB0byB1c2UgYSBkaWZmZXJlbnQgcHJpb3JpdHkgYW5k
CiAgICAgLy8gYXZvaWQgdGhlIGRvdWJsZSBxdWV1ZSBiZWNhdXNlIGRpc3BhdGNoT25NYWluVGhy
ZWFkIGFsc28gcXVldWVzIHRoZSBmdW5jdGlvbnMuCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9tYWMv
TWFpblRocmVhZE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9tYWMvTWFpblRo
cmVhZE1hYy5tbQkocmV2aXNpb24gMjI0NjQ3KQorKysgU291cmNlL1dURi93dGYvbWFjL01haW5U
aHJlYWRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDkgQEAKICNpbXBvcnQgPHN0
ZGlvLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0hhc2hTZXQu
aD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4K
KyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKFdFQl9USFJFQUQpCiAj
aW5jbHVkZSA8d3RmL2lvcy9XZWJDb3JlVGhyZWFkLmg+CkBAIC0xMjAsNyArMTIyLDI2IEBAIHN0
YXRpYyB2b2lkIHBvc3RUaW1lcigpCiAgICAgQ0ZSdW5Mb29wQWRkVGltZXIoQ0ZSdW5Mb29wR2V0
Q3VycmVudCgpLCBDRlJ1bkxvb3BUaW1lckNyZWF0ZSgwLCAwLCAwLCAwLCAwLCB0aW1lckZpcmVk
LCAwKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKIH0KIAotdm9pZCBzY2hlZHVsZURpc3BhdGNo
RnVuY3Rpb25zT25NYWluVGhyZWFkKCkKK3N0YXRpYyBSZXRhaW5QdHI8TlNBcnJheTxOU1N0cmlu
ZyAqPj4gbnNBcnJheUZyb21WZWN0b3IoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCit7
CisgICAgLy8gUmVkdWNlIGFsbG9jYXRpb25zIGZvciBjb21tb24gY2FzZXMuCisgICAgaWYgKHN0
cmluZ3MuaXNFbXB0eSgpIHx8IChzdHJpbmdzLnNpemUoKSA9PSAxICYmIHN0cmluZ3NbMF0gPT0g
U3RyaW5nKGtDRlJ1bkxvb3BDb21tb25Nb2RlcykpKQorICAgICAgICByZXR1cm4gQFsoTlNTdHJp
bmcgKilrQ0ZSdW5Mb29wQ29tbW9uTW9kZXNdOworCisgICAgYXV0byBuc0FycmF5ID0gYWRvcHRO
UyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OnN0cmluZ3Muc2l6ZSgp
XSk7CisgICAgZm9yIChhdXRvJiBzdHJpbmcgOiBzdHJpbmdzKSB7CisgICAgICAgIC8vIFBvaW50
ZXIgZXF1YWxpdHkgaXMgdXNlZCBmb3IgdGhlc2UgdmFsdWVzLCBzbyBhIG5ldyBOU1N0cmluZyB0
aGF0IGNvbnRhaW5zIHRoZSBzYW1lIHZhbHVlcyB3b24ndCB3b3JrLgorICAgICAgICBpZiAoc3Ry
aW5nID09IFN0cmluZyhrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpKQorICAgICAgICAgICAgW25zQXJy
YXkgYWRkT2JqZWN0OihOU1N0cmluZyAqKWtDRlJ1bkxvb3BEZWZhdWx0TW9kZV07CisgICAgICAg
IGVsc2UgaWYgKHN0cmluZyA9PSBTdHJpbmcoa0NGUnVuTG9vcENvbW1vbk1vZGVzKSkKKyAgICAg
ICAgICAgIFtuc0FycmF5IGFkZE9iamVjdDooTlNTdHJpbmcgKilrQ0ZSdW5Mb29wQ29tbW9uTW9k
ZXNdOworICAgICAgICBlbHNlCisgICAgICAgICAgICBbbnNBcnJheSBhZGRPYmplY3Q6c3RyaW5n
XTsKKyAgICB9CisgICAgcmV0dXJuIG5zQXJyYXk7Cit9CisKK3ZvaWQgc2NoZWR1bGVEaXNwYXRj
aEZ1bmN0aW9uc09uTWFpblRocmVhZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbW9kZXMpCiB7CiAg
ICAgQVNTRVJUKHN0YXRpY01haW5UaHJlYWRDYWxsZXIpOwogCkBAIC0xMzEsMTIgKzE1MiwxMiBA
QCB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlCiAKICAgICBpZiAobWFp
blRocmVhZEVzdGFibGlzaGVkQXNQdGhyZWFkTWFpbikgewogICAgICAgICBBU1NFUlQoIW1haW5U
aHJlYWROU1RocmVhZCk7Ci0gICAgICAgIFtzdGF0aWNNYWluVGhyZWFkQ2FsbGVyIHBlcmZvcm1T
ZWxlY3Rvck9uTWFpblRocmVhZDpAc2VsZWN0b3IoY2FsbCkgd2l0aE9iamVjdDpuaWwgd2FpdFVu
dGlsRG9uZTpOT107CisgICAgICAgIFtzdGF0aWNNYWluVGhyZWFkQ2FsbGVyIHBlcmZvcm1TZWxl
Y3Rvck9uTWFpblRocmVhZDpAc2VsZWN0b3IoY2FsbCkgd2l0aE9iamVjdDpuaWwgd2FpdFVudGls
RG9uZTpOTyBtb2Rlczpuc0FycmF5RnJvbVZlY3Rvcihtb2RlcykuZ2V0KCldOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUKG1haW5UaHJlYWROU1RocmVhZCk7Ci0gICAgW3N0
YXRpY01haW5UaHJlYWRDYWxsZXIgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihjYWxsKSBvblRo
cmVhZDptYWluVGhyZWFkTlNUaHJlYWQgd2l0aE9iamVjdDpuaWwgd2FpdFVudGlsRG9uZTpOT107
CisgICAgW3N0YXRpY01haW5UaHJlYWRDYWxsZXIgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3Rvcihj
YWxsKSBvblRocmVhZDptYWluVGhyZWFkTlNUaHJlYWQgd2l0aE9iamVjdDpuaWwgd2FpdFVudGls
RG9uZTpOTyBtb2Rlczpuc0FycmF5RnJvbVZlY3Rvcihtb2RlcykuZ2V0KCldOwogfQogCiB2b2lk
IGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZCh2b2lkICheYmxvY2sp
KCkpCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi93dGYvd2luL01haW5UaHJlYWRXaW4uY3BwCShyZXZpc2lvbiAyMjQ2
NDcpCisrKyBTb3VyY2UvV1RGL3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKCkK
ICAgICBUaHJlYWQ6OmluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoIk1haW4gVGhyZWFk
Iik7CiB9CiAKLXZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCit2
b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoY29uc3QgVmVjdG9yPFN0
cmluZz4mKQogewogICAgIEFTU0VSVCh0aHJlYWRpbmdXaW5kb3dIYW5kbGUpOwogICAgIFBvc3RN
ZXNzYWdlKHRocmVhZGluZ1dpbmRvd0hhbmRsZSwgdGhyZWFkaW5nRmlyZWRNZXNzYWdlLCAwLCAw
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE3LTExLTA5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVT
U0lPTihyMjI0MjY3KTogV2ViVmlld3Mgc2NoZWR1bGVkIHdpdGggY3VzdG9tIHJ1biBsb29wIG1v
ZGVzIGRvbid0IGxvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3OTUxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU0NDUyNDU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBhIG5l
dyBBUEkgdGVzdCB3aGljaCB3b3VsZCBoYXZlIHRpbWVkIG91dCB3aXRob3V0IHRoaXMgY2hhbmdl
LgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgQ29sbGVjdCBydW4gbG9v
cCBtb2RlcyBmcm9tIHRoZSBOZXR3b3JraW5nQ29udGV4dCBzaW1pbGFybHkgdG8gaG93IHdlIGRp
ZCBiZWZvcmUgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIyNDI2Ny93ZWJraXQj
ZmlsZTQwCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bWFrZURlbGVnYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWxlZ2F0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KToKKyAgICAgICAgU3luY2hyb25vdXMgbG9hZHMgZG9uJ3QgbmVlZCBhIHJ1biBsb29wIG1vZGUg
YmVjYXVzZSB0aGV5IGFyZSBydW4gd2l0aCBhIG1lc3NhZ2UgcXVldWUgYW5kIHdoaWxlIGxvb3Au
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNP
cGVyYXRpb25RdWV1ZURlbGVnYXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAgICAg
ICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVj
dGlvbjp3aWxsU2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpdKToKKyAgICAgICAgKC1bV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpjYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVz
cG9uc2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVl
dWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhOmxlbmd0aFJlY2VpdmVkOl0pOgor
ICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUg
Y29ubmVjdGlvbjpkaWRTZW5kQm9keURhdGE6dG90YWxCeXRlc1dyaXR0ZW46dG90YWxCeXRlc0V4
cGVjdGVkVG9Xcml0ZTpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVy
YXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb25EaWRGaW5pc2hMb2FkaW5nOl0pOgorICAgICAg
ICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVj
dGlvbjpkaWRGYWlsV2l0aEVycm9yOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjp3aWxsQ2FjaGVSZXNwb25zZTpd
KToKKyAgICAgICAgVXNlIHRoZSBydW4gbG9vcCBtb2Rlcy4KKwogMjAxNy0xMS0wOSAgWmFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMYXlvdXRTdGF0ZSBjbGVhbnVw
XSBSZW1vdmUgcmVkdW5kYW50IExheW91dFN0YXRlIGMndG9yCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCShyZXZpc2lvbiAyMjQ2
NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNyBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9S
TShDT0NPQSkgJiYgIVVTRShDRlVSTENPTk5FQ1RJT04pCiAgICAgV0VCQ09SRV9FWFBPUlQgTlNV
UkxDb25uZWN0aW9uICpjb25uZWN0aW9uKCkgY29uc3Q7Ci0gICAgaWQgbWFrZURlbGVnYXRlKGJv
b2wsIFdURjo6TWVzc2FnZVF1ZXVlPFdURjo6RnVuY3Rpb248dm9pZCgpPj4qKTsKKyAgICBpZCBt
YWtlRGVsZWdhdGUoYm9vbCwgV1RGOjpNZXNzYWdlUXVldWU8V1RGOjpGdW5jdGlvbjx2b2lkKCk+
PiosIFZlY3RvcjxTdHJpbmc+JiYgcnVuTG9vcE1vZGVzKTsKICAgICBpZCBkZWxlZ2F0ZSgpOwog
ICAgIHZvaWQgcmVsZWFzZURlbGVnYXRlKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1t
CShyZXZpc2lvbiAyMjQ2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjY5LDE2ICsyNjksMjEg
QEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogCiAgICAgU2NoZWR1bGluZ0JlaGF2aW9y
IHNjaGVkdWxpbmdCZWhhdmlvciA9IGNsaWVudCgpICYmIGNsaWVudCgpLT5sb2FkaW5nU3luY2hy
b25vdXNYSFIoKSA/IFNjaGVkdWxpbmdCZWhhdmlvcjo6U3luY2hyb25vdXMgOiBTY2hlZHVsaW5n
QmVoYXZpb3I6OkFzeW5jaHJvbm91czsKIAorICAgIFZlY3RvcjxTdHJpbmc+IHJ1bkxvb3BNb2Rl
czsKKyAgICBpZiAoYXV0byogc2NoZWR1bGVkUGFpcnMgPSBkLT5tX2NvbnRleHQtPnNjaGVkdWxl
ZFJ1bkxvb3BQYWlycygpKSB7CisgICAgICAgIGZvciAoYXV0byYgcGFpciA6ICpzY2hlZHVsZWRQ
YWlycykKKyAgICAgICAgICAgIHJ1bkxvb3BNb2Rlcy5hcHBlbmQocGFpci0+bW9kZSgpKTsKKyAg
ICB9CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBjcmVhdGVOU1VSTENvbm5lY3Rpb24oCi0gICAg
ICAgIFJlc291cmNlSGFuZGxlOjptYWtlRGVsZWdhdGUoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UsIG51bGxwdHIpLAorICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bWFrZURlbGVnYXRlKHNob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBudWxscHRyLCBXVEZNb3ZlKHJ1bkxvb3BNb2RlcykpLAog
ICAgICAgICBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwKICAgICAgICAgZC0+bV9zaG91bGRD
b250ZW50U25pZmYgfHwgZC0+bV9jb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFi
bGVkKCksCiAgICAgICAgIGQtPm1fc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsCiAgICAgICAg
IHNjaGVkdWxpbmdCZWhhdmlvcik7CiAjZWxzZQogICAgIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbigK
LSAgICAgICAgUmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxlZ2F0ZShzaG91bGRVc2VDcmVkZW50aWFs
U3RvcmFnZSwgbnVsbHB0ciksCisgICAgICAgIFJlc291cmNlSGFuZGxlOjptYWtlRGVsZWdhdGUo
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIG51bGxwdHIsIFdURk1vdmUocnVuTG9vcE1vZGVz
KSksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAogICAgICAgICBkLT5tX3No
b3VsZENvbnRlbnRTbmlmZiB8fCBkLT5tX2NvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmlu
Z0VuYWJsZWQoKSwKICAgICAgICAgZC0+bV9zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwKQEAg
LTMzOCwxNSArMzQzLDE1IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnVuc2NoZWR1bGUoU2NoZWR1
bGUKIAogI2VuZGlmCiAKLWlkIFJlc291cmNlSGFuZGxlOjptYWtlRGVsZWdhdGUoYm9vbCBzaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgTWVzc2FnZVF1ZXVlPEZ1bmN0aW9uPHZvaWQoKT4+KiBx
dWV1ZSkKK2lkIFJlc291cmNlSGFuZGxlOjptYWtlRGVsZWdhdGUoYm9vbCBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSwgTWVzc2FnZVF1ZXVlPEZ1bmN0aW9uPHZvaWQoKT4+KiBxdWV1ZSwgVmVj
dG9yPFN0cmluZz4mJiBydW5Mb29wTW9kZXMpCiB7CiAgICAgQVNTRVJUKCFkLT5tX2RlbGVnYXRl
KTsKIAogICAgIGlkIDxOU1VSTENvbm5lY3Rpb25EZWxlZ2F0ZT4gZGVsZWdhdGU7CiAgICAgaWYg
KHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKQotICAgICAgICBkZWxlZ2F0ZSA9IFtbV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEhh
bmRsZTp0aGlzIG1lc3NhZ2VRdWV1ZTpxdWV1ZV07CisgICAgICAgIGRlbGVnYXRlID0gW1tXZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRo
SGFuZGxlOnRoaXMgbWVzc2FnZVF1ZXVlOnF1ZXVlIHJ1bkxvb3BNb2RlczpXVEZNb3ZlKHJ1bkxv
b3BNb2RlcyldOwogICAgIGVsc2UKLSAgICAgICAgZGVsZWdhdGUgPSBbW1dlYkNvcmVSZXNvdXJj
ZUhhbmRsZVdpdGhDcmVkZW50aWFsU3RvcmFnZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBhbGxv
Y10gaW5pdFdpdGhIYW5kbGU6dGhpcyBtZXNzYWdlUXVldWU6cXVldWVdOworICAgICAgICBkZWxl
Z2F0ZSA9IFtbV2ViQ29yZVJlc291cmNlSGFuZGxlV2l0aENyZWRlbnRpYWxTdG9yYWdlQXNPcGVy
YXRpb25RdWV1ZURlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEhhbmRsZTp0aGlzIG1lc3NhZ2VRdWV1
ZTpxdWV1ZSBydW5Mb29wTW9kZXM6V1RGTW92ZShydW5Mb29wTW9kZXMpXTsKIAogICAgIGQtPm1f
ZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKICAgICBbZGVsZWdhdGUgcmVsZWFzZV07CkBAIC0zNTcsNyAr
MzYyLDcgQEAgaWQgUmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxlZ2F0ZShib29sIHNobwogaWQgUmVz
b3VyY2VIYW5kbGU6OmRlbGVnYXRlKCkKIHsKICAgICBpZiAoIWQtPm1fZGVsZWdhdGUpCi0gICAg
ICAgIHJldHVybiBtYWtlRGVsZWdhdGUoZmFsc2UsIG51bGxwdHIpOworICAgICAgICByZXR1cm4g
bWFrZURlbGVnYXRlKGZhbHNlLCBudWxscHRyLCB7IH0pOwogICAgIHJldHVybiBkLT5tX2RlbGVn
YXRlLmdldCgpOwogfQogCkBAIC00MDMsMTQgKzQwOCwxNCBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpwbGF0Zm9ybUxvYWRSZXNvdXJjCiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpV
c2U7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBoYW5kbGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlv
bigKLSAgICAgICAgaGFuZGxlLT5tYWtlRGVsZWdhdGUoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UsICZjbGllbnQubWVzc2FnZVF1ZXVlKCkpLAorICAgICAgICBoYW5kbGUtPm1ha2VEZWxlZ2F0
ZShzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgJmNsaWVudC5tZXNzYWdlUXVldWUoKSwgeyB9
KSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCiAgICAgICAgIGhhbmRsZS0+
c2hvdWxkQ29udGVudFNuaWZmKCkgfHwgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5n
RW5hYmxlZCgpLAogICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKCks
CiAgICAgICAgIFNjaGVkdWxpbmdCZWhhdmlvcjo6U3luY2hyb25vdXMpOwogI2Vsc2UKICAgICBo
YW5kbGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKLSAgICAgICAgaGFuZGxlLT5tYWtlRGVsZWdh
dGUoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsICZjbGllbnQubWVzc2FnZVF1ZXVlKCkpLCAv
LyBBIHN5bmNocm9ub3VzIHJlcXVlc3QgY2Fubm90IHR1cm4gaW50byBhIGRvd25sb2FkLCBzbyB0
aGVyZSBpcyBubyBuZWVkIHRvIHByb3h5IHRoZSBkZWxlZ2F0ZS4KKyAgICAgICAgaGFuZGxlLT5t
YWtlRGVsZWdhdGUoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsICZjbGllbnQubWVzc2FnZVF1
ZXVlKCksIHsgfSksIC8vIEEgc3luY2hyb25vdXMgcmVxdWVzdCBjYW5ub3QgdHVybiBpbnRvIGEg
ZG93bmxvYWQsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJveHkgdGhlIGRlbGVnYXRlLgogICAg
ICAgICBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwKICAgICAgICAgaGFuZGxlLT5zaG91bGRD
b250ZW50U25pZmYoKSB8fCAoY29udGV4dCAmJiBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkKCkpLAogICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmKCksCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVB
c09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaAkocmV2aXNpb24gMjI0NjQ3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDExICs0NCwxMiBAQCBAaW50
ZXJmYWNlIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0CiAgICAgTWVzc2FnZVF1ZXVlPEZ1
bmN0aW9uPHZvaWQoKT4+KiBtX21lc3NhZ2VRdWV1ZTsKICAgICBSZXRhaW5QdHI8TlNVUkxSZXF1
ZXN0PiBtX3JlcXVlc3RSZXN1bHQ7CiAgICAgUmV0YWluUHRyPE5TQ2FjaGVkVVJMUmVzcG9uc2U+
IG1fY2FjaGVkUmVzcG9uc2VSZXN1bHQ7CisgICAgVmVjdG9yPFN0cmluZz4gbV9ydW5Mb29wTW9k
ZXM7CiAgICAgQk9PTCBtX2Jvb2xSZXN1bHQ7CiB9CiAKIC0gKHZvaWQpZGV0YWNoSGFuZGxlOwot
LSAoaWQpaW5pdFdpdGhIYW5kbGU6KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiloYW5kbGUgbWVz
c2FnZVF1ZXVlOihNZXNzYWdlUXVldWU8RnVuY3Rpb248dm9pZCgpPj4qKW1lc3NhZ2VRdWV1ZTsK
Ky0gKGlkKWluaXRXaXRoSGFuZGxlOihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSopaGFuZGxlIG1l
c3NhZ2VRdWV1ZTooTWVzc2FnZVF1ZXVlPEZ1bmN0aW9uPHZvaWQoKT4+KiltZXNzYWdlUXVldWUg
cnVuTG9vcE1vZGVzOihWZWN0b3I8U3RyaW5nPiYmKXJ1bkxvb3BNb2RlczsKIC0gKHZvaWQpY29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2U7CiAtICh2b2lkKWNvbnRpbnVlQ2FuQXV0aGVudGljYXRl
QWdhaW5zdFByb3RlY3Rpb25TcGFjZTooQk9PTCljYW5BdXRoZW50aWNhdGU7CiAtICh2b2lkKWNv
bnRpbnVlV2lsbENhY2hlUmVzcG9uc2U6KE5TQ2FjaGVkVVJMUmVzcG9uc2UgKilyZXNwb25zZTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUubW0JKHJldmlzaW9uIDIyNDY0NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVl
dWVEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogQGltcGxlbWVudGF0aW9uIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZQogCi0tIChpZClpbml0V2l0aEhhbmRsZTooUmVzb3VyY2VI
YW5kbGUqKWhhbmRsZSBtZXNzYWdlUXVldWU6KE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbjx2b2lkKCk+
PiopbWVzc2FnZVF1ZXVlCistIChpZClpbml0V2l0aEhhbmRsZTooUmVzb3VyY2VIYW5kbGUqKWhh
bmRsZSBtZXNzYWdlUXVldWU6KE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbjx2b2lkKCk+PiopbWVzc2Fn
ZVF1ZXVlIHJ1bkxvb3BNb2RlczooVmVjdG9yPFN0cmluZz4mJilydW5Mb29wTW9kZXMKIHsKICAg
ICBzZWxmID0gW3NlbGYgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpAQCAtNTQsNiArNTQsNyBAQCAt
IChpZClpbml0V2l0aEhhbmRsZTooUmVzb3VyY2VIYW5kbGUqKWhhCiAgICAgbV9oYW5kbGUgPSBo
YW5kbGU7CiAgICAgbV9zZW1hcGhvcmUgPSBkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApOwog
ICAgIG1fbWVzc2FnZVF1ZXVlID0gbWVzc2FnZVF1ZXVlOworICAgIG1fcnVuTG9vcE1vZGVzID0g
V1RGTW92ZShydW5Mb29wTW9kZXMpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0xMjUsNyAr
MTI2LDcgQEAgLSAoTlNVUkxSZXF1ZXN0ICopY29ubmVjdGlvbjooTlNVUkxDb25uZQogICAgIGlm
IChtX21lc3NhZ2VRdWV1ZSkKICAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1h
a2VfdW5pcXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCi0g
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSk7CisgICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoV1RGTW92ZSh3b3JrKSwgbV9ydW5Mb29wTW9kZXMpOwogCiAgICAgZGlzcGF0Y2hf
c2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiAgICAg
cmV0dXJuIG1fcmVxdWVzdFJlc3VsdC5nZXQoKTsKQEAgLTE0OSw3ICsxNTAsNyBAQCAtICh2b2lk
KWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVl
KQogICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rp
b248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwogICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFp
blRocmVhZChXVEZNb3ZlKHdvcmspKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3Zl
KHdvcmspLCBtX3J1bkxvb3BNb2Rlcyk7CiB9CiAKIC0gKEJPT0wpY29ubmVjdGlvbjooTlNVUkxD
b25uZWN0aW9uICopY29ubmVjdGlvbiBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlOihOU1VSTFByb3RlY3Rpb25TcGFjZSAqKXByb3RlY3Rpb25TcGFjZQpAQCAtMTcxLDcgKzE3
Miw3IEBAIC0gKEJPT0wpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY28KICAgICBpZiAo
bV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3RkOjptYWtl
X3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7CiAgICAgZWxzZQotICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yaykpOworICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFdURk1vdmUod29yayksIG1fcnVuTG9vcE1vZGVzKTsKIAogICAgIGRpc3BhdGNoX3Nl
bWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwogICAgIHJl
dHVybiBtX2Jvb2xSZXN1bHQ7CkBAIC0yMTAsNyArMjExLDcgQEAgLSAodm9pZCljb25uZWN0aW9u
OihOU1VSTENvbm5lY3Rpb24gKiljbwogICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkKICAgICAgICAg
bV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZvaWQoKT4+
KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RG
TW92ZSh3b3JrKSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSwgbV9y
dW5Mb29wTW9kZXMpOwogCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUs
IERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiB9CkBAIC0yMzksNyArMjQwLDcgQEAgLSAodm9pZClj
b25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkK
ICAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9u
PHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCi0gICAgICAgIGNhbGxPbk1haW5U
aHJlYWQoV1RGTW92ZSh3b3JrKSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3
b3JrKSwgbV9ydW5Mb29wTW9kZXMpOwogfQogCiAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29u
bmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkU2VuZEJvZHlEYXRhOihOU0ludGVnZXIpYnl0ZXNXcml0
dGVuIHRvdGFsQnl0ZXNXcml0dGVuOihOU0ludGVnZXIpdG90YWxCeXRlc1dyaXR0ZW4gdG90YWxC
eXRlc0V4cGVjdGVkVG9Xcml0ZTooTlNJbnRlZ2VyKXRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGUK
QEAgLTI1OSw3ICsyNjAsNyBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAq
KWNvCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBw
ZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwog
ICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspKTsKKyAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspLCBtX3J1bkxvb3BNb2Rlcyk7CiB9CiAK
IC0gKHZvaWQpY29ubmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6KE5TVVJMQ29ubmVjdGlvbiAqKWNv
bm5lY3Rpb24KQEAgLTI4Myw3ICsyODQsNyBAQCAtICh2b2lkKWNvbm5lY3Rpb25EaWRGaW5pc2hM
b2FkaW5nOihOU1VSCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAgICAgICBtX21lc3NhZ2VR
dWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3
b3JrKSkpOwogICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmsp
KTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspLCBtX3J1bkxvb3BNb2Rl
cyk7CiB9CiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlv
biBkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKQEAgLTMwNyw3ICszMDgsNyBAQCAt
ICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAgICAgaWYgKG1fbWVzc2Fn
ZVF1ZXVlKQogICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8
RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwogICAgIGVsc2UKLSAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChX
VEZNb3ZlKHdvcmspLCBtX3J1bkxvb3BNb2Rlcyk7CiB9CiAKIApAQCAtMzMxLDcgKzMzMiw3IEBA
IC0gKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKiljb25uZWN0aW9uOihOU1UKICAgICBpZiAobV9tZXNz
YWdlUXVldWUpCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3RkOjptYWtlX3VuaXF1
ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7CiAgICAgZWxzZQotICAgICAgICBj
YWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yaykpOworICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFdURk1vdmUod29yayksIG1fcnVuTG9vcE1vZGVzKTsKIAogICAgIGRpc3BhdGNoX3NlbWFwaG9y
ZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwogICAgIHJldHVybiBt
X2NhY2hlZFJlc3BvbnNlUmVzdWx0LmdldCgpOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjI0NjU3KQorKysgVG9vbHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMTEtMDkgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSRUdSRVNT
SU9OKHIyMjQyNjcpOiBXZWJWaWV3cyBzY2hlZHVsZWQgd2l0aCBjdXN0b20gcnVuIGxvb3AgbW9k
ZXMgZG9uJ3QgbG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc5NTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3U2NoZWR1bGVJ
blJ1bkxvb3AubW06IEFkZGVkLgorICAgICAgICAoLVtTY2hlZHVsZUluUnVuTG9vcERlbGVnYXRl
IHdlYlZpZXc6ZGlkRmluaXNoTG9hZEZvckZyYW1lOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisKIDIwMTctMTEtMDkgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUu
Y29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBVbmlmeSB2ZXJzaW9uIHBhcnNpbmcgY29kZQpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIyNDY0NykKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzUsNiArMjM1LDcgQEAKIAkJNUM2RTY1NDQxRDVDRUZENDAwRjc4NjJFIC8q
IFVSTFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzZFNjU0MTFENUNFRjg1MDBGNzg2MkUgLyogVVJMUGFyc2VyLmNwcCAqLzsgfTsKIAkJ
NUM3MjZENkYxRDNFRTA2RTAwQzVFMUExIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzcyNkQ2RTFEM0VF
MDY4MDBDNUUxQTEgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLzsgfTsKIAkJNUM3OTY0
MTAxRUIwMjc4RDAwNzVENzRDIC8qIEV2ZW50TW9kaWZpZXJzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzk2NDBGMUVCMDI2OUIwMDc1RDc0QyAv
KiBFdmVudE1vZGlmaWVycy5jcHAgKi87IH07CisJCTVDN0M3NENCMUZCNTI5QkEwMDJGOUFCRSAv
KiBXZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1QzdDNzRDQTFGQjUyOEQ0MDAyRjlBQkUgLyogV2ViVmlld1Nj
aGVkdWxlSW5SdW5Mb29wLm1tICovOyB9OwogCQk1QzgzOEY3RjFEQjA0RjkwMDA4Mjg1OEYgLyog
TG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTc5MDFGQUUxQ0FGMTM3MTAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJM
UmVxdWVzdC5tbSAqLzsgfTsKIAkJNUM5NzNGNUMxRjU4RUY4QjAwMzU5QzI3IC8qIFdlYkdMUG9s
aWN5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5
NzNGNUIxRjU4RUYwQTAwMzU5QzI3IC8qIFdlYkdMUG9saWN5Lm1tICovOyB9OwogCQk1QzlFNTY4
NTFERjkxNDU0MDBDOUVFMzMgLyogV2Vic2l0ZVBvbGljaWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5RTU2ODQxREY5MTQzRDAwQzlFRTMzIC8q
IFdlYnNpdGVQb2xpY2llcy5tbSAqLzsgfTsKQEAgLTEzNjksNiArMTM3MCw3IEBACiAJCTVDNzI2
RDZEMUQzRUUwNjgwMEM1RTFBMSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9
IGNvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUM3MjZENkUxRDNFRTA2ODAwQzVFMUExIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBJbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyLm1tOyBwYXRoID0gY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3OTY0MEYxRUIwMjY5QjAwNzVENzRDIC8qIEV2
ZW50TW9kaWZpZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2
ZW50TW9kaWZpZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM3Qzc0Q0Ex
RkI1MjhENDAwMkY5QUJFIC8qIFdlYlZpZXdTY2hlZHVsZUluUnVuTG9vcC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlZpZXdTY2hlZHVsZUluUnVuTG9vcC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM5NzNGNUIxRjU4RUYwQTAwMzU5QzI3
IC8qIFdlYkdMUG9saWN5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViR0xQb2xpY3kubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDOUU1Njg0
MURGOTE0M0QwMEM5RUUzMyAvKiBXZWJzaXRlUG9saWNpZXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJzaXRlUG9saWNpZXMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDOUU1Njg2MURGOTE0OEUwMEM5RUUzMyAvKiBjb250ZW50QmxvY2tl
ckNoZWNrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBjb250ZW50QmxvY2tlckNo
ZWNrLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODE3LDYgKzI4MTksNyBA
QAogCQkJCUMyRUIyREQxMTZDQUM3QUMwMDlCNTJFRSAvKiBXZWJWaWV3RGlkQ3JlYXRlSmF2YVNj
cmlwdENvbnRleHQubW0gKi8sCiAJCQkJMzdFMzhDMzMxNjlCN0QwMTAwODRDMjhDIC8qIFdlYlZp
ZXdEaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkubW0gKi8sCiAJCQkJNTFEQjE2Q0QxRjA4NTA0
NzAwMUZBNEM1IC8qIFdlYlZpZXdJY29uTG9hZGluZy5tbSAqLywKKwkJCQk1QzdDNzRDQTFGQjUy
OEQ0MDAyRjlBQkUgLyogV2ViVmlld1NjaGVkdWxlSW5SdW5Mb29wLm1tICovLAogCQkJCUNFMzJD
N0M3MTgxODRDNDkwMENEOEMyOCAvKiBXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFz
aC5tbSAqLywKIAkJCQkxQTdCRkMwQTE3MUEwQkRCMDBCQzVGNjQgLyogV2lsbFNlbmRTdWJtaXRF
dmVudC5tbSAqLywKIAkJCQlBNUUyMDI3MjE1QjIxODE5MDBDMTNFMTQgLyogV2luZG93bGVzc1dl
YlZpZXdXaXRoTWVkaWEubW0gKi8sCkBAIC0zNTIzLDYgKzM1MjYsNyBAQAogCQkJCTdDQ0U3RUQ1
MUE0MTFBN0UwMDQ0N0M0QyAvKiBXZWJWaWV3RGlkQ3JlYXRlSmF2YVNjcmlwdENvbnRleHQubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VENjFBNDExQTdFMDA0NDdDNEMgLyogV2ViVmlld0Rp
ZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxREIxNkNF
MUYwODUxMzcwMDFGQTRDNSAvKiBXZWJWaWV3SWNvbkxvYWRpbmcubW0gaW4gU291cmNlcyAqLywK
KwkJCQk1QzdDNzRDQjFGQjUyOUJBMDAyRjlBQkUgLyogV2ViVmlld1NjaGVkdWxlSW5SdW5Mb29w
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMUIxQTQxMUFFNjAwNDQ3QzRDIC8qIFdpbGxM
b2FkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUQ3MUE0MTFBN0UwMDQ0N0M0QyAvKiBX
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0U3RjFDMUE0MTFBRTYwMDQ0N0M0QyAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcCBpbiBT
b3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld1Nj
aGVkdWxlSW5SdW5Mb29wLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL1dlYlZpZXdTY2hlZHVsZUluUnVuTG9vcC5tbQkobm9uZXhpc3RlbnQpCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0JKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XZWJG
cmFtZUxvYWREZWxlZ2F0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYlZpZXdQcml2YXRlLmg+Cisj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0BpbnRlcmZhY2UgU2NoZWR1bGVJblJ1bkxvb3BE
ZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXZWJGcmFtZUxvYWREZWxlZ2F0ZT4geworfQorQGVuZAorCitz
dGF0aWMgYm9vbCBkaWRGaW5pc2hMb2FkOworCitAaW1wbGVtZW50YXRpb24gU2NoZWR1bGVJblJ1
bkxvb3BEZWxlZ2F0ZQorCistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZGlkRmlu
aXNoTG9hZEZvckZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCit7CisgICAgZGlkRmluaXNoTG9hZCA9
IHRydWU7Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdl
YktpdExlZ2FjeSwgU2NoZWR1bGVJblJ1bkxvb3ApCit7CisgICAgTlNTdHJpbmcgKmN1c3RvbVJ1
bkxvb3BNb2RlID0gQCJUZXN0UnVuTG9vcE1vZGUiOworICAgIAorICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tXZWJWaWV3IGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tTY2hlZHVsZUluUnVuTG9vcERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dl
YlZpZXcgc2V0RnJhbWVMb2FkRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3
IHVuc2NoZWR1bGVGcm9tUnVuTG9vcDpbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXSBmb3JNb2Rl
OihOU1N0cmluZyAqKWtDRlJ1bkxvb3BDb21tb25Nb2Rlc107CisgICAgW3dlYlZpZXcgc2NoZWR1
bGVJblJ1bkxvb3A6W05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gZm9yTW9kZTpjdXN0b21SdW5M
b29wTW9kZV07CisgICAgW1t3ZWJWaWV3IG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXV1dOworCisgICAgd2hpbGUgKCFkaWRGaW5pc2hMb2FkKQorICAgICAg
ICBDRlJ1bkxvb3BSdW5Jbk1vZGUoKENGUnVuTG9vcE1vZGUpY3VzdG9tUnVuTG9vcE1vZGUsIHN0
ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCksIHRydWUpOworfQorCit9IC8vIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326531</attachid>
            <date>2017-11-09 19:00:03 -0800</date>
            <delta_ts>2017-11-09 20:56:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179515-20171109190002.patch</filename>
            <type>text/plain</type>
            <size>26360</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMjQ2NDcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE3LTExLTA5ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjI0MjY3KTog
V2ViVmlld3Mgc2NoZWR1bGVkIHdpdGggY3VzdG9tIHJ1biBsb29wIG1vZGVzIGRvbid0IGxvYWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTUxNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU0NDUyNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAg
IChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6Cisg
ICAgICAgIChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICAoV1RGOjpzY2hlZHVsZURp
c3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKToKKyAgICAgICAgKiB3dGYvZ2VuZXJpYy9NYWlu
VGhyZWFkR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OnNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlv
bnNPbk1haW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9tYWMvTWFpblRocmVhZE1hYy5tbToKKyAg
ICAgICAgKFdURjo6c2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCk6CisgICAg
ICAgICogd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgKFdURjo6c2NoZWR1bGVE
aXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCk6CisgICAgICAgIEFkZCBhbiBvcHRpb25hbCBw
YXJhbWV0ZXIgd2hpY2ggaXMgYW4gYXJyYXkgb2YgcnVuIGxvb3AgbW9kZSBuYW1lcyB0byBwYXNz
IHRvIHBlcmZvcm1TZWxlY3Rvck9uTWFpblRocmVhZC4KKwogMjAxNy0xMS0wOCAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBbaW9zLXNpbXVsYXRvcl0g
QVBJIHRlc3QgV2ViS2l0LkJ1bmRsZVBhcmFtZXRlcnMgaXMgYSBmbGFreSBmYWlsdXJlCkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9NYWluVGhyZWFkLmNwcAkocmV2aXNpb24gMjI0NjQ3KQorKysgU291cmNlL1dURi93dGYv
TWFpblRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw3ICsxNDIsNyBAQCB2b2lkIGRp
c3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKQogICAgIH0KIH0KIAotdm9pZCBjYWxsT25N
YWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCit2b2lkIGNhbGxPbk1haW5U
aHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uLCBOU0FycmF5ICptb2RlcykKIHsKICAg
ICBBU1NFUlQoZnVuY3Rpb24pOwogCkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBjYWxsT25NYWlu
VGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JgogICAgIH0KIAogICAgIGlmIChuZWVkVG9TY2hlZHVs
ZSkKLSAgICAgICAgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpOworICAg
ICAgICBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKG1vZGVzKTsKIH0KIAog
dm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wgcGF1c2VkKQpJbmRleDogU291
cmNlL1dURi93dGYvTWFpblRocmVhZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL01h
aW5UaHJlYWQuaAkocmV2aXNpb24gMjI0NjQ3KQorKysgU291cmNlL1dURi93dGYvTWFpblRocmVh
ZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KIAorT0JKQ19DTEFT
UyBOU0FycmF5OworCiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgUHJpbnRTdHJlYW07CkBAIC00
Miw3ICs0NCw3IEBAIGNsYXNzIFByaW50U3RyZWFtOwogLy8gTXVzdCBiZSBjYWxsZWQgZnJvbSB0
aGUgbWFpbiB0aHJlYWQuCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBpbml0aWFsaXplTWFpblRo
cmVhZCgpOwogCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBjYWxsT25NYWluVGhyZWFkKEZ1bmN0
aW9uPHZvaWQgKCk+JiYpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgY2FsbE9uTWFpblRocmVh
ZChGdW5jdGlvbjx2b2lkKCk+JiYsIE5TQXJyYXkgKm1vZGVzID0gbnVsbHB0cik7CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGNhbGxPbldlYlRocmVhZE9y
RGlzcGF0Y2hBc3luY09uTWFpblRocmVhZCh2b2lkICheYmxvY2spKCkpOwpAQCAtODEsNyArODMs
NyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc01haW5UaHJlYWRPckdDCiAKIC8vIE5PVEU6
IHRoZXNlIGZ1bmN0aW9ucyBhcmUgaW50ZXJuYWwgdG8gdGhlIGNhbGxPbk1haW5UaHJlYWQgaW1w
bGVtZW50YXRpb24uCiB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKTsKLXZvaWQg
c2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpOwordm9pZCBzY2hlZHVsZURp
c3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKE5TQXJyYXkgKm1vZGVzID0gbnVsbHB0cik7CiB2
b2lkIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKTsKIAogI2lmIE9TKERBUldJTikg
JiYgIVVTRShHTElCKQpJbmRleDogU291cmNlL1dURi93dGYvZ2VuZXJpYy9NYWluVGhyZWFkR2Vu
ZXJpYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvZ2VuZXJpYy9NYWluVGhyZWFk
R2VuZXJpYy5jcHAJKHJldmlzaW9uIDIyNDY0NykKKysrIFNvdXJjZS9XVEYvd3RmL2dlbmVyaWMv
TWFpblRocmVhZEdlbmVyaWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIHZv
aWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgpCiB7CiB9CiAKLXZvaWQgc2NoZWR1bGVE
aXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCit2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5j
dGlvbnNPbk1haW5UaHJlYWQoTlNBcnJheSAqKQogewogICAgIC8vIFVzZSBhIFJ1bkxvb3A6OlRp
bWVyIGluc3RlYWQgb2YgUnVuTG9vcDo6ZGlzcGF0Y2goKSB0byBiZSBhYmxlIHRvIHVzZSBhIGRp
ZmZlcmVudCBwcmlvcml0eSBhbmQKICAgICAvLyBhdm9pZCB0aGUgZG91YmxlIHF1ZXVlIGJlY2F1
c2UgZGlzcGF0Y2hPbk1haW5UaHJlYWQgYWxzbyBxdWV1ZXMgdGhlIGZ1bmN0aW9ucy4KSW5kZXg6
IFNvdXJjZS9XVEYvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tCShyZXZpc2lvbiAyMjQ2NDcpCisrKyBTb3Vy
Y2UvV1RGL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzUsNyAr
MzUsOSBAQAogI2ltcG9ydCA8c3RkaW8uaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAj
aW1wb3J0IDx3dGYvSGFzaFNldC5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9y
dCA8d3RmL1RocmVhZGluZy5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNp
ZiBVU0UoV0VCX1RIUkVBRCkKICNpbmNsdWRlIDx3dGYvaW9zL1dlYkNvcmVUaHJlYWQuaD4KQEAg
LTEyMCw3ICsxMjIsNyBAQCBzdGF0aWMgdm9pZCBwb3N0VGltZXIoKQogICAgIENGUnVuTG9vcEFk
ZFRpbWVyKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgQ0ZSdW5Mb29wVGltZXJDcmVhdGUoMCwgMCwg
MCwgMCwgMCwgdGltZXJGaXJlZCwgMCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CiB9CiAKLXZv
aWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCit2b2lkIHNjaGVkdWxl
RGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoTlNBcnJheSAqbW9kZXMpCiB7CiAgICAgQVNT
RVJUKHN0YXRpY01haW5UaHJlYWRDYWxsZXIpOwogCkBAIC0xMjksMTQgKzEzMSwxNyBAQCB2b2lk
IHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKKyAgICBpZiAoIW1vZGVzKQorICAgICAgICBtb2RlcyA9IEBbKE5TU3RyaW5nICopa0NG
UnVuTG9vcENvbW1vbk1vZGVzXTsKKyAgICAKICAgICBpZiAobWFpblRocmVhZEVzdGFibGlzaGVk
QXNQdGhyZWFkTWFpbikgewogICAgICAgICBBU1NFUlQoIW1haW5UaHJlYWROU1RocmVhZCk7Ci0g
ICAgICAgIFtzdGF0aWNNYWluVGhyZWFkQ2FsbGVyIHBlcmZvcm1TZWxlY3Rvck9uTWFpblRocmVh
ZDpAc2VsZWN0b3IoY2FsbCkgd2l0aE9iamVjdDpuaWwgd2FpdFVudGlsRG9uZTpOT107CisgICAg
ICAgIFtzdGF0aWNNYWluVGhyZWFkQ2FsbGVyIHBlcmZvcm1TZWxlY3Rvck9uTWFpblRocmVhZDpA
c2VsZWN0b3IoY2FsbCkgd2l0aE9iamVjdDpuaWwgd2FpdFVudGlsRG9uZTpOTyBtb2Rlczptb2Rl
c107CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlQobWFpblRocmVhZE5TVGhy
ZWFkKTsKLSAgICBbc3RhdGljTWFpblRocmVhZENhbGxlciBwZXJmb3JtU2VsZWN0b3I6QHNlbGVj
dG9yKGNhbGwpIG9uVGhyZWFkOm1haW5UaHJlYWROU1RocmVhZCB3aXRoT2JqZWN0Om5pbCB3YWl0
VW50aWxEb25lOk5PXTsKKyAgICBbc3RhdGljTWFpblRocmVhZENhbGxlciBwZXJmb3JtU2VsZWN0
b3I6QHNlbGVjdG9yKGNhbGwpIG9uVGhyZWFkOm1haW5UaHJlYWROU1RocmVhZCB3aXRoT2JqZWN0
Om5pbCB3YWl0VW50aWxEb25lOk5PIG1vZGVzOm1vZGVzXTsKIH0KIAogdm9pZCBjYWxsT25XZWJU
aHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5UaHJlYWQodm9pZCAoXmJsb2NrKSgpKQpJbmRleDog
U291cmNlL1dURi93dGYvd2luL01haW5UaHJlYWRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcAkocmV2aXNpb24gMjI0NjQ3KQorKysgU291
cmNlL1dURi93dGYvd2luL01haW5UaHJlYWRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3
ICs2Nyw3IEBAIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgpCiAgICAgVGhyZWFk
Ojppbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKCJNYWluIFRocmVhZCIpOwogfQogCi12
b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKQordm9pZCBzY2hlZHVs
ZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKE5TQXJyYXkgKikKIHsKICAgICBBU1NFUlQo
dGhyZWFkaW5nV2luZG93SGFuZGxlKTsKICAgICBQb3N0TWVzc2FnZSh0aHJlYWRpbmdXaW5kb3dI
YW5kbGUsIHRocmVhZGluZ0ZpcmVkTWVzc2FnZSwgMCwgMCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyMjQ2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwzNCBAQAorMjAxNy0xMS0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjIyNDI2Nyk6IFdlYlZpZXdz
IHNjaGVkdWxlZCB3aXRoIGN1c3RvbSBydW4gbG9vcCBtb2RlcyBkb24ndCBsb2FkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk1MTUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzM1NDQ1MjQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgYSBuZXcgQVBJIHRlc3Qgd2hpY2ggd291bGQg
aGF2ZSB0aW1lZCBvdXQgd2l0aG91dCB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpzdGFydCk6CisgICAgICAgIENvbGxlY3QgcnVuIGxvb3AgbW9kZXMgZnJvbSB0aGUgTmV0d29y
a2luZ0NvbnRleHQgc2ltaWxhcmx5IHRvIGhvdyB3ZSBkaWQgYmVmb3JlIGh0dHBzOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC8yMjQyNjcvd2Via2l0I2ZpbGU0MAorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6ZGVsZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgIFN5bmNocm9ub3Vz
IGxvYWRzIGRvbid0IG5lZWQgYSBydW4gbG9vcCBtb2RlIGJlY2F1c2UgdGhleSBhcmUgcnVuIHdp
dGggYSBtZXNzYWdlIHF1ZXVlIGFuZCB3aGlsZSBsb29wLgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246d2lsbFNlbmRSZXF1ZXN0OnJl
ZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZTpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAoLVtX
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpk
aWRSZWNlaXZlRGF0YTpsZW5ndGhSZWNlaXZlZDpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291
cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkU2VuZEJvZHlE
YXRhOnRvdGFsQnl0ZXNXcml0dGVuOnRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGU6XSk6CisgICAg
ICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25u
ZWN0aW9uRGlkRmluaXNoTG9hZGluZzpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkRmFpbFdpdGhFcnJvcjpd
KToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlIGNvbm5lY3Rpb246d2lsbENhY2hlUmVzcG9uc2U6XSk6CisgICAgICAgIFVzZSB0aGUgcnVu
IGxvb3AgbW9kZXMuCisKIDIwMTctMTEtMDkgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTGF5b3V0U3RhdGUgY2xlYW51cF0gUmVtb3ZlIHJlZHVuZGFudCBMYXlv
dXRTdGF0ZSBjJ3RvcgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuaAkocmV2aXNpb24gMjI0NjQ3KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcs
NyArMTI3LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0ZVUkxD
T05ORUNUSU9OKQogICAgIFdFQkNPUkVfRVhQT1JUIE5TVVJMQ29ubmVjdGlvbiAqY29ubmVjdGlv
bigpIGNvbnN0OwotICAgIGlkIG1ha2VEZWxlZ2F0ZShib29sLCBXVEY6Ok1lc3NhZ2VRdWV1ZTxX
VEY6OkZ1bmN0aW9uPHZvaWQoKT4+Kik7CisgICAgaWQgbWFrZURlbGVnYXRlKGJvb2wsIFdURjo6
TWVzc2FnZVF1ZXVlPFdURjo6RnVuY3Rpb248dm9pZCgpPj4qLCBSZXRhaW5QdHI8TlNBcnJheTxO
U1N0cmluZyAqPj4mJiBydW5Mb29wTW9kZXMpOwogICAgIGlkIGRlbGVnYXRlKCk7CiAgICAgdm9p
ZCByZWxlYXNlRGVsZWdhdGUoKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlz
aW9uIDIyNDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlSGFuZGxlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNjksMTYgKzI2OSwyMiBAQCBib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiAKICAgICBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1
bGluZ0JlaGF2aW9yID0gY2xpZW50KCkgJiYgY2xpZW50KCktPmxvYWRpbmdTeW5jaHJvbm91c1hI
UigpID8gU2NoZWR1bGluZ0JlaGF2aW9yOjpTeW5jaHJvbm91cyA6IFNjaGVkdWxpbmdCZWhhdmlv
cjo6QXN5bmNocm9ub3VzOwogCisgICAgUmV0YWluUHRyPE5TQXJyYXk8TlNTdHJpbmcgKj4+IHJ1
bkxvb3BNb2RlczsKKyAgICBpZiAoYXV0byogc2NoZWR1bGVkUGFpcnMgPSBkLT5tX2NvbnRleHQt
PnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CisgICAgICAgIHJ1bkxvb3BNb2RlcyA9IGFkb3B0
TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpzY2hlZHVsZWRQYWly
cy0+c2l6ZSgpXSk7CisgICAgICAgIGZvciAoYXV0byYgcGFpciA6ICpzY2hlZHVsZWRQYWlycykK
KyAgICAgICAgICAgIFtydW5Mb29wTW9kZXMgYWRkT2JqZWN0OihOU1N0cmluZyAqKXBhaXItPm1v
ZGUoKV07CisgICAgfQogI2lmICFQTEFURk9STShJT1MpCiAgICAgY3JlYXRlTlNVUkxDb25uZWN0
aW9uKAotICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bWFrZURlbGVnYXRlKHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlLCBudWxscHRyKSwKKyAgICAgICAgUmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxl
Z2F0ZShzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgbnVsbHB0ciwgV1RGTW92ZShydW5Mb29w
TW9kZXMpKSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCiAgICAgICAgIGQt
Pm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGQtPm1fY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCgpLAogICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZm
LAogICAgICAgICBzY2hlZHVsaW5nQmVoYXZpb3IpOwogI2Vsc2UKICAgICBjcmVhdGVOU1VSTENv
bm5lY3Rpb24oCi0gICAgICAgIFJlc291cmNlSGFuZGxlOjptYWtlRGVsZWdhdGUoc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UsIG51bGxwdHIpLAorICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bWFr
ZURlbGVnYXRlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBudWxscHRyLCBXVEZNb3ZlKHJ1
bkxvb3BNb2RlcykpLAogICAgICAgICBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwKICAgICAg
ICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwgZC0+bV9jb250ZXh0LT5sb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkKCksCiAgICAgICAgIGQtPm1fc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYsCkBAIC0zMzgsMTUgKzM0NCwxNSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjp1bnNjaGVk
dWxlKFNjaGVkdWxlCiAKICNlbmRpZgogCi1pZCBSZXNvdXJjZUhhbmRsZTo6bWFrZURlbGVnYXRl
KGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbjx2
b2lkKCk+PiogcXVldWUpCitpZCBSZXNvdXJjZUhhbmRsZTo6bWFrZURlbGVnYXRlKGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbjx2b2lkKCk+Piog
cXVldWUsIFJldGFpblB0cjxOU0FycmF5PE5TU3RyaW5nICo+PiYmIHJ1bkxvb3BNb2RlcykKIHsK
ICAgICBBU1NFUlQoIWQtPm1fZGVsZWdhdGUpOwogCiAgICAgaWQgPE5TVVJMQ29ubmVjdGlvbkRl
bGVnYXRlPiBkZWxlZ2F0ZTsKICAgICBpZiAoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpCi0g
ICAgICAgIGRlbGVnYXRlID0gW1tXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVl
RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoSGFuZGxlOnRoaXMgbWVzc2FnZVF1ZXVlOnF1ZXVlXTsK
KyAgICAgICAgZGVsZWdhdGUgPSBbW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVl
dWVEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhIYW5kbGU6dGhpcyBtZXNzYWdlUXVldWU6cXVldWUg
cnVuTG9vcE1vZGVzOldURk1vdmUocnVuTG9vcE1vZGVzKV07CiAgICAgZWxzZQotICAgICAgICBk
ZWxlZ2F0ZSA9IFtbV2ViQ29yZVJlc291cmNlSGFuZGxlV2l0aENyZWRlbnRpYWxTdG9yYWdlQXNP
cGVyYXRpb25RdWV1ZURlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEhhbmRsZTp0aGlzIG1lc3NhZ2VR
dWV1ZTpxdWV1ZV07CisgICAgICAgIGRlbGVnYXRlID0gW1tXZWJDb3JlUmVzb3VyY2VIYW5kbGVX
aXRoQ3JlZGVudGlhbFN0b3JhZ2VBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgYWxsb2NdIGluaXRX
aXRoSGFuZGxlOnRoaXMgbWVzc2FnZVF1ZXVlOnF1ZXVlIHJ1bkxvb3BNb2RlczpXVEZNb3ZlKHJ1
bkxvb3BNb2RlcyldOwogCiAgICAgZC0+bV9kZWxlZ2F0ZSA9IGRlbGVnYXRlOwogICAgIFtkZWxl
Z2F0ZSByZWxlYXNlXTsKQEAgLTM1Nyw3ICszNjMsNyBAQCBpZCBSZXNvdXJjZUhhbmRsZTo6bWFr
ZURlbGVnYXRlKGJvb2wgc2hvCiBpZCBSZXNvdXJjZUhhbmRsZTo6ZGVsZWdhdGUoKQogewogICAg
IGlmICghZC0+bV9kZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJuIG1ha2VEZWxlZ2F0ZShmYWxzZSwg
bnVsbHB0cik7CisgICAgICAgIHJldHVybiBtYWtlRGVsZWdhdGUoZmFsc2UsIG51bGxwdHIsIG51
bGxwdHIpOwogICAgIHJldHVybiBkLT5tX2RlbGVnYXRlLmdldCgpOwogfQogCkBAIC00MDMsMTQg
KzQwOSwxNCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjCiAgICAg
Ym9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
ID09IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7CiAjaWYgIVBMQVRGT1JNKElPUykKICAg
ICBoYW5kbGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKLSAgICAgICAgaGFuZGxlLT5tYWtlRGVs
ZWdhdGUoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsICZjbGllbnQubWVzc2FnZVF1ZXVlKCkp
LAorICAgICAgICBoYW5kbGUtPm1ha2VEZWxlZ2F0ZShzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSwgJmNsaWVudC5tZXNzYWdlUXVldWUoKSwgbnVsbHB0ciksCiAgICAgICAgIHNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlLAogICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8
IGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSwKICAgICAgICAgaGFu
ZGxlLT5zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZigpLAogICAgICAgICBTY2hlZHVsaW5nQmVo
YXZpb3I6OlN5bmNocm9ub3VzKTsKICNlbHNlCiAgICAgaGFuZGxlLT5jcmVhdGVOU1VSTENvbm5l
Y3Rpb24oCi0gICAgICAgIGhhbmRsZS0+bWFrZURlbGVnYXRlKHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlLCAmY2xpZW50Lm1lc3NhZ2VRdWV1ZSgpKSwgLy8gQSBzeW5jaHJvbm91cyByZXF1ZXN0
IGNhbm5vdCB0dXJuIGludG8gYSBkb3dubG9hZCwgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm94
eSB0aGUgZGVsZWdhdGUuCisgICAgICAgIGhhbmRsZS0+bWFrZURlbGVnYXRlKHNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlLCAmY2xpZW50Lm1lc3NhZ2VRdWV1ZSgpLCBudWxscHRyKSwgLy8gQSBz
eW5jaHJvbm91cyByZXF1ZXN0IGNhbm5vdCB0dXJuIGludG8gYSBkb3dubG9hZCwgc28gdGhlcmUg
aXMgbm8gbmVlZCB0byBwcm94eSB0aGUgZGVsZWdhdGUuCiAgICAgICAgIHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlLAogICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IChj
b250ZXh0ICYmIGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSksCiAg
ICAgICAgIGhhbmRsZS0+c2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoKSwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxl
Z2F0ZS5oCShyZXZpc2lvbiAyMjQ2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaAko
d29ya2luZyBjb3B5KQpAQCAtNDQsMTEgKzQ0LDEyIEBAIEBpbnRlcmZhY2UgV2ViQ29yZVJlc291
cmNlSGFuZGxlQXNPcGVyYXQKICAgICBNZXNzYWdlUXVldWU8RnVuY3Rpb248dm9pZCgpPj4qIG1f
bWVzc2FnZVF1ZXVlOwogICAgIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IG1fcmVxdWVzdFJlc3Vs
dDsKICAgICBSZXRhaW5QdHI8TlNDYWNoZWRVUkxSZXNwb25zZT4gbV9jYWNoZWRSZXNwb25zZVJl
c3VsdDsKKyAgICBSZXRhaW5QdHI8TlNBcnJheTxOU1N0cmluZyAqPj4gbV9ydW5Mb29wTW9kZXM7
CiAgICAgQk9PTCBtX2Jvb2xSZXN1bHQ7CiB9CiAKIC0gKHZvaWQpZGV0YWNoSGFuZGxlOwotLSAo
aWQpaW5pdFdpdGhIYW5kbGU6KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiloYW5kbGUgbWVzc2Fn
ZVF1ZXVlOihNZXNzYWdlUXVldWU8RnVuY3Rpb248dm9pZCgpPj4qKW1lc3NhZ2VRdWV1ZTsKKy0g
KGlkKWluaXRXaXRoSGFuZGxlOihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSopaGFuZGxlIG1lc3Nh
Z2VRdWV1ZTooTWVzc2FnZVF1ZXVlPEZ1bmN0aW9uPHZvaWQoKT4+KiltZXNzYWdlUXVldWUgcnVu
TG9vcE1vZGVzOihSZXRhaW5QdHI8TlNBcnJheTxOU1N0cmluZyAqPj4mJilydW5Mb29wTW9kZXM7
CiAtICh2b2lkKWNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlOwogLSAodm9pZCljb250aW51ZUNh
bkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6KEJPT0wpY2FuQXV0aGVudGljYXRl
OwogLSAodm9pZCljb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlOihOU0NhY2hlZFVSTFJlc3BvbnNl
ICopcmVzcG9uc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9X
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCShyZXZpc2lvbiAyMjQ2NDcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVB
c09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUKIAotLSAoaWQpaW5pdFdpdGhIYW5k
bGU6KFJlc291cmNlSGFuZGxlKiloYW5kbGUgbWVzc2FnZVF1ZXVlOihNZXNzYWdlUXVldWU8RnVu
Y3Rpb248dm9pZCgpPj4qKW1lc3NhZ2VRdWV1ZQorLSAoaWQpaW5pdFdpdGhIYW5kbGU6KFJlc291
cmNlSGFuZGxlKiloYW5kbGUgbWVzc2FnZVF1ZXVlOihNZXNzYWdlUXVldWU8RnVuY3Rpb248dm9p
ZCgpPj4qKW1lc3NhZ2VRdWV1ZSBydW5Mb29wTW9kZXM6KFJldGFpblB0cjxOU0FycmF5PE5TU3Ry
aW5nICo+PiYmKXJ1bkxvb3BNb2RlcwogewogICAgIHNlbGYgPSBbc2VsZiBpbml0XTsKICAgICBp
ZiAoIXNlbGYpCkBAIC01NCw2ICs1NCw3IEBAIC0gKGlkKWluaXRXaXRoSGFuZGxlOihSZXNvdXJj
ZUhhbmRsZSopaGEKICAgICBtX2hhbmRsZSA9IGhhbmRsZTsKICAgICBtX3NlbWFwaG9yZSA9IGRp
c3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCk7CiAgICAgbV9tZXNzYWdlUXVldWUgPSBtZXNzYWdl
UXVldWU7CisgICAgbV9ydW5Mb29wTW9kZXMgPSBXVEZNb3ZlKHJ1bkxvb3BNb2Rlcyk7CiAKICAg
ICByZXR1cm4gc2VsZjsKIH0KQEAgLTEyNSw3ICsxMjYsNyBAQCAtIChOU1VSTFJlcXVlc3QgKilj
b25uZWN0aW9uOihOU1VSTENvbm5lCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAgICAgICBt
X21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4o
V1RGTW92ZSh3b3JrKSkpOwogICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZN
b3ZlKHdvcmspKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspLCBtX3J1
bkxvb3BNb2Rlcy5nZXQoKSk7CiAKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3NlbWFw
aG9yZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKICAgICByZXR1cm4gbV9yZXF1ZXN0UmVzdWx0
LmdldCgpOwpAQCAtMTQ5LDcgKzE1MCw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25u
ZWN0aW9uICopY28KICAgICBpZiAobV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1fbWVzc2FnZVF1
ZXVlLT5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdv
cmspKSk7CiAgICAgZWxzZQotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yaykp
OworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yayksIG1fcnVuTG9vcE1vZGVz
LmdldCgpKTsKIH0KIAogLSAoQk9PTCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25u
ZWN0aW9uIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6KE5TVVJMUHJvdGVj
dGlvblNwYWNlICopcHJvdGVjdGlvblNwYWNlCkBAIC0xNzEsNyArMTcyLDcgQEAgLSAoQk9PTClj
b25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkK
ICAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9u
PHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCi0gICAgICAgIGNhbGxPbk1haW5U
aHJlYWQoV1RGTW92ZSh3b3JrKSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3
b3JrKSwgbV9ydW5Mb29wTW9kZXMuZ2V0KCkpOwogCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dh
aXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiAgICAgcmV0dXJuIG1fYm9v
bFJlc3VsdDsKQEAgLTIxMCw3ICsyMTEsNyBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29u
bmVjdGlvbiAqKWNvCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAgICAgICBtX21lc3NhZ2VR
dWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3
b3JrKSkpOwogICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmsp
KTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspLCBtX3J1bkxvb3BNb2Rl
cy5nZXQoKSk7CiAKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9yZSwgRElT
UEFUQ0hfVElNRV9GT1JFVkVSKTsKIH0KQEAgLTIzOSw3ICsyNDAsNyBAQCAtICh2b2lkKWNvbm5l
Y3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAg
ICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9p
ZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwogICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChXVEZNb3ZlKHdvcmspKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmsp
LCBtX3J1bkxvb3BNb2Rlcy5nZXQoKSk7CiB9CiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxD
b25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRTZW5kQm9keURhdGE6KE5TSW50ZWdlcilieXRlc1dy
aXR0ZW4gdG90YWxCeXRlc1dyaXR0ZW46KE5TSW50ZWdlcil0b3RhbEJ5dGVzV3JpdHRlbiB0b3Rh
bEJ5dGVzRXhwZWN0ZWRUb1dyaXRlOihOU0ludGVnZXIpdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0
ZQpAQCAtMjU5LDcgKzI2MCw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9u
ICopY28KICAgICBpZiAobV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5h
cHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7
CiAgICAgZWxzZQotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yaykpOworICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yayksIG1fcnVuTG9vcE1vZGVzLmdldCgp
KTsKIH0KIAogLSAodm9pZCljb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzooTlNVUkxDb25uZWN0
aW9uICopY29ubmVjdGlvbgpAQCAtMjgzLDcgKzI4NCw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbkRp
ZEZpbmlzaExvYWRpbmc6KE5TVVIKICAgICBpZiAobV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1f
bWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihX
VEZNb3ZlKHdvcmspKSk7CiAgICAgZWxzZQotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1v
dmUod29yaykpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yayksIG1fcnVu
TG9vcE1vZGVzLmdldCgpKTsKIH0KIAogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rp
b24gKiljb25uZWN0aW9uIGRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgpAQCAtMzA3
LDcgKzMwOCw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY28KICAg
ICBpZiAobV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3Rk
OjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7CiAgICAgZWxz
ZQotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yaykpOworICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFdURk1vdmUod29yayksIG1fcnVuTG9vcE1vZGVzLmdldCgpKTsKIH0KIAog
CkBAIC0zMzEsNyArMzMyLDcgQEAgLSAoTlNDYWNoZWRVUkxSZXNwb25zZSAqKWNvbm5lY3Rpb246
KE5TVQogICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkKICAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFw
cGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsK
ICAgICBlbHNlCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSk7CisgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSwgbV9ydW5Mb29wTW9kZXMuZ2V0KCkp
OwogCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJ
TUVfRk9SRVZFUik7CiAgICAgcmV0dXJuIG1fY2FjaGVkUmVzcG9uc2VSZXN1bHQuZ2V0KCk7Cklu
ZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyMjQ2NTcpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNSBAQAorMjAxNy0xMS0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjIyNDI2Nyk6IFdlYlZpZXdzIHNjaGVkdWxl
ZCB3aXRoIGN1c3RvbSBydW4gbG9vcCBtb2RlcyBkb24ndCBsb2FkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk1MTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dlYlZpZXdTY2hlZHVsZUluUnVuTG9vcC5tbTogQWRkZWQuCisgICAgICAgICgt
W1NjaGVkdWxlSW5SdW5Mb29wRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hMb2FkRm9yRnJhbWU6
XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0xMS0wOSAgSm9uYXRo
YW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgd2Via2l0cHk6IFVuaWZ5
IHZlcnNpb24gcGFyc2luZyBjb2RlCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMjI0NjQ3KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsNyBAQAogCQk1
QzZFNjU0NDFENUNFRkQ0MDBGNzg2MkUgLyogVVJMUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNkU2NTQxMUQ1Q0VGODUwMEY3ODYyRSAv
KiBVUkxQYXJzZXIuY3BwICovOyB9OwogCQk1QzcyNkQ2RjFEM0VFMDZFMDBDNUUxQTEgLyogSW5z
dGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDNzI2RDZFMUQzRUUwNjgwMEM1RTFBMSAvKiBJbnN0YW5jZU1ldGhvZFN3
aXp6bGVyLm1tICovOyB9OwogCQk1Qzc5NjQxMDFFQjAyNzhEMDA3NUQ3NEMgLyogRXZlbnRNb2Rp
ZmllcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUM3OTY0MEYxRUIwMjY5QjAwNzVENzRDIC8qIEV2ZW50TW9kaWZpZXJzLmNwcCAqLzsgfTsKKwkJ
NUM3Qzc0Q0IxRkI1MjlCQTAwMkY5QUJFIC8qIFdlYlZpZXdTY2hlZHVsZUluUnVuTG9vcC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDN0M3NENBMUZC
NTI4RDQwMDJGOUFCRSAvKiBXZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0gKi87IH07CiAJCTVD
ODM4RjdGMURCMDRGOTAwMDgyODU4RiAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzkwMUZBRTFDQUYxMzcx
MDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovOyB9OwogCQk1Qzk3M0Y1QzFG
NThFRjhCMDAzNTlDMjcgLyogV2ViR0xQb2xpY3kubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzk3M0Y1QjFGNThFRjBBMDAzNTlDMjcgLyogV2ViR0xQ
b2xpY3kubW0gKi87IH07CiAJCTVDOUU1Njg1MURGOTE0NTQwMEM5RUUzMyAvKiBXZWJzaXRlUG9s
aWNpZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
QzlFNTY4NDFERjkxNDNEMDBDOUVFMzMgLyogV2Vic2l0ZVBvbGljaWVzLm1tICovOyB9OwpAQCAt
MTM2OSw2ICsxMzcwLDcgQEAKIAkJNUM3MjZENkQxRDNFRTA2ODAwQzVFMUExIC8qIEluc3RhbmNl
TWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5oOyBwYXRoID0gY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzcyNkQ2RTFEM0VFMDY4MDBDNUUxQTEg
LyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW07IHBhdGggPSBjb2NvYS9JbnN0
YW5jZU1ldGhvZFN3aXp6bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Qzc5
NjQwRjFFQjAyNjlCMDA3NUQ3NEMgLyogRXZlbnRNb2RpZmllcnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRNb2RpZmllcnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1QzdDNzRDQTFGQjUyOEQ0MDAyRjlBQkUgLyogV2ViVmlld1NjaGVk
dWxlSW5SdW5Mb29wLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViVmlld1NjaGVkdWxlSW5SdW5Mb29wLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1Qzk3M0Y1QjFGNThFRjBBMDAzNTlDMjcgLyogV2ViR0xQb2xpY3kubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJHTFBvbGljeS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNUM5RTU2ODQxREY5MTQzRDAwQzlFRTMzIC8qIFdlYnNpdGVQb2xp
Y2llcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYnNpdGVQ
b2xpY2llcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM5RTU2ODYxREY5MTQ4
RTAwQzlFRTMzIC8qIGNvbnRlbnRCbG9ja2VyQ2hlY2suaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9IGNvbnRlbnRCbG9ja2VyQ2hlY2suaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI4MTcsNiArMjgxOSw3IEBACiAJCQkJQzJFQjJERDExNkNBQzdBQzAwOUI1MkVF
IC8qIFdlYlZpZXdEaWRDcmVhdGVKYXZhU2NyaXB0Q29udGV4dC5tbSAqLywKIAkJCQkzN0UzOEMz
MzE2OUI3RDAxMDA4NEMyOEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5t
bSAqLywKIAkJCQk1MURCMTZDRDFGMDg1MDQ3MDAxRkE0QzUgLyogV2ViVmlld0ljb25Mb2FkaW5n
Lm1tICovLAorCQkJCTVDN0M3NENBMUZCNTI4RDQwMDJGOUFCRSAvKiBXZWJWaWV3U2NoZWR1bGVJ
blJ1bkxvb3AubW0gKi8sCiAJCQkJQ0UzMkM3QzcxODE4NEM0OTAwQ0Q4QzI4IC8qIFdpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tICovLAogCQkJCTFBN0JGQzBBMTcxQTBCREIw
MEJDNUY2NCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50Lm1tICovLAogCQkJCUE1RTIwMjcyMTVCMjE4
MTkwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5tbSAqLywKQEAgLTM1MjMs
NiArMzUyNiw3IEBACiAJCQkJN0NDRTdFRDUxQTQxMUE3RTAwNDQ3QzRDIC8qIFdlYlZpZXdEaWRD
cmVhdGVKYXZhU2NyaXB0Q29udGV4dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUQ2MUE0
MTFBN0UwMDQ0N0M0QyAvKiBXZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTFEQjE2Q0UxRjA4NTEzNzAwMUZBNEM1IC8qIFdlYlZpZXdJY29u
TG9hZGluZy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTVDN0M3NENCMUZCNTI5QkEwMDJGOUFCRSAv
KiBXZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0Yx
QjFBNDExQUU2MDA0NDdDNEMgLyogV2lsbExvYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdFRDcxQTQxMUE3RTAwNDQ3QzRDIC8qIFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENy
YXNoLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMUMxQTQxMUFFNjAwNDQ3QzRDIC8qIFdp
bGxTZW5kU3VibWl0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld1NjaGVkdWxlSW5SdW5Mb29w
Lm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZp
ZXdTY2hlZHVsZUluUnVuTG9vcC5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGll
cy5oIgorI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ0ZSdW5Mb29wLmg+CisjaW1wb3J0IDxXZWJL
aXQvV2ViRnJhbWVMb2FkRGVsZWdhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0
ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAaW50ZXJmYWNlIFNjaGVkdWxlSW5S
dW5Mb29wRGVsZWdhdGUgOiBOU09iamVjdCA8V2ViRnJhbWVMb2FkRGVsZWdhdGU+IHsKK30KK0Bl
bmQKKworc3RhdGljIGJvb2wgZGlkRmluaXNoTG9hZDsKKworQGltcGxlbWVudGF0aW9uIFNjaGVk
dWxlSW5SdW5Mb29wRGVsZWdhdGUKKworLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopc2VuZGVy
IGRpZEZpbmlzaExvYWRGb3JGcmFtZTooV2ViRnJhbWUgKilmcmFtZQoreworICAgIGRpZEZpbmlz
aExvYWQgPSB0cnVlOworfQorCitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwor
VEVTVChXZWJLaXRMZWdhY3ksIFNjaGVkdWxlSW5SdW5Mb29wKQoreworICAgIE5TU3RyaW5nICpj
dXN0b21SdW5Mb29wTW9kZSA9IEAiVGVzdFJ1bkxvb3BNb2RlIjsKKyAgICAKKyAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbV2ViVmlldyBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbU2NoZWR1bGVJblJ1bkxvb3BEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwor
ICAgIFt3ZWJWaWV3IHNldEZyYW1lTG9hZERlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBb
d2ViVmlldyB1bnNjaGVkdWxlRnJvbVJ1bkxvb3A6W05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0g
Zm9yTW9kZTooTlNTdHJpbmcgKilrQ0ZSdW5Mb29wQ29tbW9uTW9kZXNdOworICAgIFt3ZWJWaWV3
IHNjaGVkdWxlSW5SdW5Mb29wOltOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIGZvck1vZGU6Y3Vz
dG9tUnVuTG9vcE1vZGVdOworICAgIFtbd2ViVmlldyBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKKworICAgIHdoaWxlICghZGlkRmluaXNoTG9hZCkK
KyAgICAgICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKChDRlJ1bkxvb3BNb2RlKWN1c3RvbVJ1bkxvb3BN
b2RlLCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Om1heCgpLCB0cnVlKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326547</attachid>
            <date>2017-11-09 20:56:52 -0800</date>
            <delta_ts>2017-11-09 21:23:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179515-20171109205652.patch</filename>
            <type>text/plain</type>
            <size>20225</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMjQ2NDcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE3LTExLTA5ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjI0MjY3KTog
V2ViVmlld3Mgc2NoZWR1bGVkIHdpdGggY3VzdG9tIHJ1biBsb29wIG1vZGVzIGRvbid0IGxvYWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTUxNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU0NDUyNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAg
IChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6Cisg
ICAgICAgIChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICAoV1RGOjpzY2hlZHVsZURp
c3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKToKKyAgICAgICAgKiB3dGYvZ2VuZXJpYy9NYWlu
VGhyZWFkR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OnNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlv
bnNPbk1haW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9tYWMvTWFpblRocmVhZE1hYy5tbToKKyAg
ICAgICAgKFdURjo6c2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCk6CisgICAg
ICAgICogd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgKFdURjo6c2NoZWR1bGVE
aXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCk6CisgICAgICAgIEFkZCBhbiBvcHRpb25hbCBw
YXJhbWV0ZXIgd2hpY2ggaXMgYW4gYXJyYXkgb2YgcnVuIGxvb3AgbW9kZSBuYW1lcyB0byBwYXNz
IHRvIHBlcmZvcm1TZWxlY3Rvck9uTWFpblRocmVhZC4KKwogMjAxNy0xMS0wOCAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBbaW9zLXNpbXVsYXRvcl0g
QVBJIHRlc3QgV2ViS2l0LkJ1bmRsZVBhcmFtZXRlcnMgaXMgYSBmbGFreSBmYWlsdXJlCkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9NYWluVGhyZWFkLmNwcAkocmV2aXNpb24gMjI0NjQ3KQorKysgU291cmNlL1dURi93dGYv
TWFpblRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw3ICsxNDIsNyBAQCB2b2lkIGRp
c3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKQogICAgIH0KIH0KIAotdm9pZCBjYWxsT25N
YWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCit2b2lkIGNhbGxPbk1haW5U
aHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uLCBTY2hlZHVsZVBhaXJIYXNoU2V0KiBw
YWlycykKIHsKICAgICBBU1NFUlQoZnVuY3Rpb24pOwogCkBAIC0xNTUsNyArMTU1LDcgQEAgdm9p
ZCBjYWxsT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JgogICAgIH0KIAogICAgIGlmIChu
ZWVkVG9TY2hlZHVsZSkKLSAgICAgICAgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRo
cmVhZCgpOworICAgICAgICBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKHBh
aXJzKTsKIH0KIAogdm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wgcGF1c2Vk
KQpJbmRleDogU291cmNlL1dURi93dGYvTWFpblRocmVhZC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL01haW5UaHJlYWQuaAkocmV2aXNpb24gMjI0NjQ3KQorKysgU291cmNlL1dURi93
dGYvTWFpblRocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjZGVmaW5l
IE1haW5UaHJlYWRfaAogCiAjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgpAQCAtMzgsMTEgKzM5LDE0
IEBACiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgUHJpbnRTdHJlYW07CitjbGFzcyBTY2hlZHVs
ZVBhaXI7CitzdHJ1Y3QgU2NoZWR1bGVQYWlySGFzaDsKK3R5cGVkZWYgSGFzaFNldDxSZWZQdHI8
U2NoZWR1bGVQYWlyPiwgU2NoZWR1bGVQYWlySGFzaD4gU2NoZWR1bGVQYWlySGFzaFNldDsKIAog
Ly8gTXVzdCBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCiBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZCgpOwogCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBjYWxsT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JiYpOworV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgY2FsbE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYsIFNjaGVkdWxlUGFp
ckhhc2hTZXQqID0gbnVsbHB0cik7CiAKICNpZiBQTEFURk9STShDT0NPQSkKIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZCh2
b2lkICheYmxvY2spKCkpOwpAQCAtODEsNyArODUsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgYm9v
bCBpc01haW5UaHJlYWRPckdDCiAKIC8vIE5PVEU6IHRoZXNlIGZ1bmN0aW9ucyBhcmUgaW50ZXJu
YWwgdG8gdGhlIGNhbGxPbk1haW5UaHJlYWQgaW1wbGVtZW50YXRpb24uCiB2b2lkIGluaXRpYWxp
emVNYWluVGhyZWFkUGxhdGZvcm0oKTsKLXZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09u
TWFpblRocmVhZCgpOwordm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFk
KFNjaGVkdWxlUGFpckhhc2hTZXQqID0gbnVsbHB0cik7CiB2b2lkIGRpc3BhdGNoRnVuY3Rpb25z
RnJvbU1haW5UaHJlYWQoKTsKIAogI2lmIE9TKERBUldJTikgJiYgIVVTRShHTElCKQpJbmRleDog
U291cmNlL1dURi93dGYvZ2VuZXJpYy9NYWluVGhyZWFkR2VuZXJpYy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvZ2VuZXJpYy9NYWluVGhyZWFkR2VuZXJpYy5jcHAJKHJldmlzaW9u
IDIyNDY0NykKKysrIFNvdXJjZS9XVEYvd3RmL2dlbmVyaWMvTWFpblRocmVhZEdlbmVyaWMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJl
YWRQbGF0Zm9ybSgpCiB7CiB9CiAKLXZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFp
blRocmVhZCgpCit2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoU2No
ZWR1bGVQYWlySGFzaFNldCopCiB7CiAgICAgLy8gVXNlIGEgUnVuTG9vcDo6VGltZXIgaW5zdGVh
ZCBvZiBSdW5Mb29wOjpkaXNwYXRjaCgpIHRvIGJlIGFibGUgdG8gdXNlIGEgZGlmZmVyZW50IHBy
aW9yaXR5IGFuZAogICAgIC8vIGF2b2lkIHRoZSBkb3VibGUgcXVldWUgYmVjYXVzZSBkaXNwYXRj
aE9uTWFpblRocmVhZCBhbHNvIHF1ZXVlcyB0aGUgZnVuY3Rpb25zLgpJbmRleDogU291cmNlL1dU
Ri93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
bWFjL01haW5UaHJlYWRNYWMubW0JKHJldmlzaW9uIDIyNDY0NykKKysrIFNvdXJjZS9XVEYvd3Rm
L21hYy9NYWluVGhyZWFkTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw4IEBACiAj
aW1wb3J0IDxzdGRpby5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0
Zi9IYXNoU2V0Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvU2No
ZWR1bGVQYWlyLmg+CiAjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBVU0UoV0VCX1RI
UkVBRCkKQEAgLTEyMCw3ICsxMjIsNyBAQCBzdGF0aWMgdm9pZCBwb3N0VGltZXIoKQogICAgIENG
UnVuTG9vcEFkZFRpbWVyKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgQ0ZSdW5Mb29wVGltZXJDcmVh
dGUoMCwgMCwgMCwgMCwgMCwgdGltZXJGaXJlZCwgMCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7
CiB9CiAKLXZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCit2b2lk
IHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoU2NoZWR1bGVQYWlySGFzaFNl
dCogcGFpcnMpCiB7CiAgICAgQVNTRVJUKHN0YXRpY01haW5UaHJlYWRDYWxsZXIpOwogCkBAIC0x
MjksMTQgKzEzMSwyMiBAQCB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJl
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBSZXRhaW5QdHI8TlNBcnJheTxOU1N0cmlu
ZyAqPj4gbW9kZXM7CisgICAgaWYgKHBhaXJzKSB7CisgICAgICAgIG1vZGVzID0gYWRvcHROUyhb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OnBhaXJzLT5zaXplKCldKTsK
KyAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogKnBhaXJzKQorICAgICAgICAgICAgWyhOU011dGFi
bGVBcnJheSopbW9kZXMuZ2V0KCkgYWRkT2JqZWN0OihOU1N0cmluZyAqKXBhaXItPm1vZGUoKV07
CisgICAgfSBlbHNlCisgICAgICAgIG1vZGVzID0gQFsoTlNTdHJpbmcgKilrQ0ZSdW5Mb29wQ29t
bW9uTW9kZXNdOworICAgIAogICAgIGlmIChtYWluVGhyZWFkRXN0YWJsaXNoZWRBc1B0aHJlYWRN
YWluKSB7CiAgICAgICAgIEFTU0VSVCghbWFpblRocmVhZE5TVGhyZWFkKTsKLSAgICAgICAgW3N0
YXRpY01haW5UaHJlYWRDYWxsZXIgcGVyZm9ybVNlbGVjdG9yT25NYWluVGhyZWFkOkBzZWxlY3Rv
cihjYWxsKSB3aXRoT2JqZWN0Om5pbCB3YWl0VW50aWxEb25lOk5PXTsKKyAgICAgICAgW3N0YXRp
Y01haW5UaHJlYWRDYWxsZXIgcGVyZm9ybVNlbGVjdG9yT25NYWluVGhyZWFkOkBzZWxlY3Rvcihj
YWxsKSB3aXRoT2JqZWN0Om5pbCB3YWl0VW50aWxEb25lOk5PIG1vZGVzOm1vZGVzLmdldCgpXTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVChtYWluVGhyZWFkTlNUaHJlYWQp
OwotICAgIFtzdGF0aWNNYWluVGhyZWFkQ2FsbGVyIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3Io
Y2FsbCkgb25UaHJlYWQ6bWFpblRocmVhZE5TVGhyZWFkIHdpdGhPYmplY3Q6bmlsIHdhaXRVbnRp
bERvbmU6Tk9dOworICAgIFtzdGF0aWNNYWluVGhyZWFkQ2FsbGVyIHBlcmZvcm1TZWxlY3RvcjpA
c2VsZWN0b3IoY2FsbCkgb25UaHJlYWQ6bWFpblRocmVhZE5TVGhyZWFkIHdpdGhPYmplY3Q6bmls
IHdhaXRVbnRpbERvbmU6Tk8gbW9kZXM6bW9kZXMuZ2V0KCldOwogfQogCiB2b2lkIGNhbGxPbldl
YlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZCh2b2lkICheYmxvY2spKCkpCkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi93dGYvd2luL01haW5UaHJlYWRXaW4uY3BwCShyZXZpc2lvbiAyMjQ2NDcpCisrKyBT
b3VyY2UvV1RGL3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3
LDcgKzY3LDcgQEAgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKCkKICAgICBUaHJl
YWQ6OmluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoIk1haW4gVGhyZWFkIik7CiB9CiAK
LXZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCit2b2lkIHNjaGVk
dWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoU2NoZWR1bGVQYWlySGFzaFNldCopCiB7
CiAgICAgQVNTRVJUKHRocmVhZGluZ1dpbmRvd0hhbmRsZSk7CiAgICAgUG9zdE1lc3NhZ2UodGhy
ZWFkaW5nV2luZG93SGFuZGxlLCB0aHJlYWRpbmdGaXJlZE1lc3NhZ2UsIDAsIDApOwpJbmRleDog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMjI0NjYxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTctMTEtMDkgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjQy
NjcpOiBXZWJWaWV3cyBzY2hlZHVsZWQgd2l0aCBjdXN0b20gcnVuIGxvb3AgbW9kZXMgZG9uJ3Qg
bG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5
NTE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTQ0NTI0NT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGEgbmV3IEFQSSB0ZXN0
IHdoaWNoIHdvdWxkIGhhdmUgdGltZWQgb3V0IHdpdGhvdXQgdGhpcyBjaGFuZ2UuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlv
blF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgIChzY2hlZHVsZVBhaXJIYXNoU2V0KToKKyAgICAg
ICAgQ29sbGVjdCBydW4gbG9vcCBtb2RlcyBmcm9tIHRoZSBOZXR3b3JraW5nQ29udGV4dCBzaW1p
bGFybHkgdG8gaG93IHdlIGRpZCBiZWZvcmUgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzIyNDI2Ny93ZWJraXQjZmlsZTQwCisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRs
ZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOndpbGxTZW5kUmVxdWVzdDpyZWRp
cmVjdFJlc3BvbnNlOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVl
dWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3Bh
Y2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVE
ZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVSZXNwb25zZTpdKToKKyAgICAgICAgKC1bV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlk
UmVjZWl2ZURhdGE6bGVuZ3RoUmVjZWl2ZWQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFNlbmRCb2R5RGF0
YTp0b3RhbEJ5dGVzV3JpdHRlbjp0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlOl0pOgorICAgICAg
ICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVj
dGlvbkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRs
ZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZEZhaWxXaXRoRXJyb3I6XSk6
CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0
ZSBjb25uZWN0aW9uOndpbGxDYWNoZVJlc3BvbnNlOl0pOgorCiAyMDE3LTExLTA5ICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIElnbm9yZSBIU1RTIGZvciBw
YXJ0aXRpb25lZCwgY3Jvc3Mtb3JpZ2luIHN1YnJlc291cmNlIHJlcXVlc3RzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09w
ZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURl
bGVnYXRlLm1tCShyZXZpc2lvbiAyMjQ2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDE1IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCitzdGF0aWMgU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVQYWlySGFzaFNl
dChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQoreworICAgIGlmICghaGFuZGxlKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoIWhhbmRsZS0+Y29udGV4dCgpKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gaGFuZGxlLT5jb250ZXh0KCktPnNjaGVkdWxlZFJ1bkxv
b3BQYWlycygpOworfQorCiBAaW1wbGVtZW50YXRpb24gV2ViQ29yZVJlc291cmNlSGFuZGxlQXNP
cGVyYXRpb25RdWV1ZURlbGVnYXRlCiAKIC0gKGlkKWluaXRXaXRoSGFuZGxlOihSZXNvdXJjZUhh
bmRsZSopaGFuZGxlIG1lc3NhZ2VRdWV1ZTooTWVzc2FnZVF1ZXVlPEZ1bmN0aW9uPHZvaWQoKT4+
KiltZXNzYWdlUXVldWUKQEAgLTEyNSw3ICsxMzQsNyBAQCAtIChOU1VSTFJlcXVlc3QgKiljb25u
ZWN0aW9uOihOU1VSTENvbm5lCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAgICAgICBtX21l
c3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RG
TW92ZSh3b3JrKSkpOwogICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3Zl
KHdvcmspKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspLCBzY2hlZHVs
ZVBhaXJIYXNoU2V0KG1faGFuZGxlKSk7CiAKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdCht
X3NlbWFwaG9yZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKICAgICByZXR1cm4gbV9yZXF1ZXN0
UmVzdWx0LmdldCgpOwpAQCAtMTQ5LDcgKzE1OCw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNV
UkxDb25uZWN0aW9uICopY28KICAgICBpZiAobV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1fbWVz
c2FnZVF1ZXVlLT5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZN
b3ZlKHdvcmspKSk7CiAgICAgZWxzZQotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUo
d29yaykpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yayksIHNjaGVkdWxl
UGFpckhhc2hTZXQobV9oYW5kbGUpKTsKIH0KIAogLSAoQk9PTCljb25uZWN0aW9uOihOU1VSTENv
bm5lY3Rpb24gKiljb25uZWN0aW9uIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3Bh
Y2U6KE5TVVJMUHJvdGVjdGlvblNwYWNlICopcHJvdGVjdGlvblNwYWNlCkBAIC0xNzEsNyArMTgw
LDcgQEAgLSAoQk9PTCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogICAgIGlmICht
X21lc3NhZ2VRdWV1ZSkKICAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2Vf
dW5pcXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCi0gICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSk7CisgICAgICAgIGNhbGxPbk1haW5U
aHJlYWQoV1RGTW92ZSh3b3JrKSwgc2NoZWR1bGVQYWlySGFzaFNldChtX2hhbmRsZSkpOwogCiAg
ICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9S
RVZFUik7CiAgICAgcmV0dXJuIG1fYm9vbFJlc3VsdDsKQEAgLTIxMCw3ICsyMTksNyBAQCAtICh2
b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAgICAgaWYgKG1fbWVzc2FnZVF1
ZXVlKQogICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVu
Y3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwogICAgIGVsc2UKLSAgICAgICAgY2FsbE9u
TWFpblRocmVhZChXVEZNb3ZlKHdvcmspKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZN
b3ZlKHdvcmspLCBzY2hlZHVsZVBhaXJIYXNoU2V0KG1faGFuZGxlKSk7CiAKICAgICBkaXNwYXRj
aF9zZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9yZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKIH0K
QEAgLTIzOSw3ICsyNDgsNyBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAq
KWNvCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBw
ZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwog
ICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspKTsKKyAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspLCBzY2hlZHVsZVBhaXJIYXNoU2V0KG1f
aGFuZGxlKSk7CiB9CiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29u
bmVjdGlvbiBkaWRTZW5kQm9keURhdGE6KE5TSW50ZWdlcilieXRlc1dyaXR0ZW4gdG90YWxCeXRl
c1dyaXR0ZW46KE5TSW50ZWdlcil0b3RhbEJ5dGVzV3JpdHRlbiB0b3RhbEJ5dGVzRXhwZWN0ZWRU
b1dyaXRlOihOU0ludGVnZXIpdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZQpAQCAtMjU5LDcgKzI2
OCw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY28KICAgICBpZiAo
bV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3RkOjptYWtl
X3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7CiAgICAgZWxzZQotICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yaykpOworICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFdURk1vdmUod29yayksIHNjaGVkdWxlUGFpckhhc2hTZXQobV9oYW5kbGUpKTsKIH0K
IAogLSAodm9pZCljb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzooTlNVUkxDb25uZWN0aW9uICop
Y29ubmVjdGlvbgpAQCAtMjgzLDcgKzI5Miw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbkRpZEZpbmlz
aExvYWRpbmc6KE5TVVIKICAgICBpZiAobV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1fbWVzc2Fn
ZVF1ZXVlLT5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3Zl
KHdvcmspKSk7CiAgICAgZWxzZQotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29y
aykpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yayksIHNjaGVkdWxlUGFp
ckhhc2hTZXQobV9oYW5kbGUpKTsKIH0KIAogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5l
Y3Rpb24gKiljb25uZWN0aW9uIGRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgpAQCAt
MzA3LDcgKzMxNiw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY28K
ICAgICBpZiAobV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQo
c3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7CiAgICAg
ZWxzZQotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yaykpOworICAgICAgICBj
YWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yayksIHNjaGVkdWxlUGFpckhhc2hTZXQobV9oYW5k
bGUpKTsKIH0KIAogCkBAIC0zMzEsNyArMzQwLDcgQEAgLSAoTlNDYWNoZWRVUkxSZXNwb25zZSAq
KWNvbm5lY3Rpb246KE5TVQogICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkKICAgICAgICAgbV9tZXNz
YWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1v
dmUod29yaykpKTsKICAgICBlbHNlCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3
b3JrKSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSwgc2NoZWR1bGVQ
YWlySGFzaFNldChtX2hhbmRsZSkpOwogCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9z
ZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiAgICAgcmV0dXJuIG1fY2FjaGVkUmVz
cG9uc2VSZXN1bHQuZ2V0KCk7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjQ2NTcpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0xMS0wOSAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjIyNDI2
Nyk6IFdlYlZpZXdzIHNjaGVkdWxlZCB3aXRoIGN1c3RvbSBydW4gbG9vcCBtb2RlcyBkb24ndCBs
b2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk1
MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdTY2hlZHVsZUluUnVuTG9vcC5t
bTogQWRkZWQuCisgICAgICAgICgtW1NjaGVkdWxlSW5SdW5Mb29wRGVsZWdhdGUgd2ViVmlldzpk
aWRGaW5pc2hMb2FkRm9yRnJhbWU6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KwogMjAxNy0xMS0wOSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgd2Via2l0cHk6IFVuaWZ5IHZlcnNpb24gcGFyc2luZyBjb2RlCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMjI0NjQ3KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTIzNSw2ICsyMzUsNyBAQAogCQk1QzZFNjU0NDFENUNFRkQ0MDBGNzg2MkUgLyogVVJMUGFyc2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNkU2
NTQxMUQ1Q0VGODUwMEY3ODYyRSAvKiBVUkxQYXJzZXIuY3BwICovOyB9OwogCQk1QzcyNkQ2RjFE
M0VFMDZFMDBDNUUxQTEgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzI2RDZFMUQzRUUwNjgwMEM1RTFB
MSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovOyB9OwogCQk1Qzc5NjQxMDFFQjAyNzhE
MDA3NUQ3NEMgLyogRXZlbnRNb2RpZmllcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3OTY0MEYxRUIwMjY5QjAwNzVENzRDIC8qIEV2ZW50TW9k
aWZpZXJzLmNwcCAqLzsgfTsKKwkJNUM3Qzc0Q0IxRkI1MjlCQTAwMkY5QUJFIC8qIFdlYlZpZXdT
Y2hlZHVsZUluUnVuTG9vcC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDN0M3NENBMUZCNTI4RDQwMDJGOUFCRSAvKiBXZWJWaWV3U2NoZWR1bGVJblJ1
bkxvb3AubW0gKi87IH07CiAJCTVDODM4RjdGMURCMDRGOTAwMDgyODU4RiAvKiBMb2FkSW52YWxp
ZFVSTFJlcXVlc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzkwMUZBRTFDQUYxMzcxMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1t
ICovOyB9OwogCQk1Qzk3M0Y1QzFGNThFRjhCMDAzNTlDMjcgLyogV2ViR0xQb2xpY3kubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzk3M0Y1QjFGNThF
RjBBMDAzNTlDMjcgLyogV2ViR0xQb2xpY3kubW0gKi87IH07CiAJCTVDOUU1Njg1MURGOTE0NTQw
MEM5RUUzMyAvKiBXZWJzaXRlUG9saWNpZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1QzlFNTY4NDFERjkxNDNEMDBDOUVFMzMgLyogV2Vic2l0ZVBv
bGljaWVzLm1tICovOyB9OwpAQCAtMTM2OSw2ICsxMzcwLDcgQEAKIAkJNUM3MjZENkQxRDNFRTA2
ODAwQzVFMUExIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBwYXRoID0gY29jb2EvSW5z
dGFuY2VNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Qzcy
NkQ2RTFEM0VFMDY4MDBDNUUxQTEgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenpsZXIu
bW07IHBhdGggPSBjb2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1Qzc5NjQwRjFFQjAyNjlCMDA3NUQ3NEMgLyogRXZlbnRNb2RpZmll
cnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRNb2RpZmll
cnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzdDNzRDQTFGQjUyOEQ0MDAy
RjlBQkUgLyogV2ViVmlld1NjaGVkdWxlSW5SdW5Mb29wLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlld1NjaGVkdWxlSW5SdW5Mb29wLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1Qzk3M0Y1QjFGNThFRjBBMDAzNTlDMjcgLyogV2ViR0xQ
b2xpY3kubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJHTFBv
bGljeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM5RTU2ODQxREY5MTQzRDAw
QzlFRTMzIC8qIFdlYnNpdGVQb2xpY2llcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYnNpdGVQb2xpY2llcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUM5RTU2ODYxREY5MTQ4RTAwQzlFRTMzIC8qIGNvbnRlbnRCbG9ja2VyQ2hlY2suaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGNvbnRlbnRCbG9ja2VyQ2hlY2suaHRtbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MTcsNiArMjgxOSw3IEBACiAJCQkJQzJF
QjJERDExNkNBQzdBQzAwOUI1MkVFIC8qIFdlYlZpZXdEaWRDcmVhdGVKYXZhU2NyaXB0Q29udGV4
dC5tbSAqLywKIAkJCQkzN0UzOEMzMzE2OUI3RDAxMDA4NEMyOEMgLyogV2ViVmlld0RpZFJlbW92
ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbSAqLywKIAkJCQk1MURCMTZDRDFGMDg1MDQ3MDAxRkE0QzUg
LyogV2ViVmlld0ljb25Mb2FkaW5nLm1tICovLAorCQkJCTVDN0M3NENBMUZCNTI4RDQwMDJGOUFC
RSAvKiBXZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0gKi8sCiAJCQkJQ0UzMkM3QzcxODE4NEM0
OTAwQ0Q4QzI4IC8qIFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tICovLAog
CQkJCTFBN0JGQzBBMTcxQTBCREIwMEJDNUY2NCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50Lm1tICov
LAogCQkJCUE1RTIwMjcyMTVCMjE4MTkwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhN
ZWRpYS5tbSAqLywKQEAgLTM1MjMsNiArMzUyNiw3IEBACiAJCQkJN0NDRTdFRDUxQTQxMUE3RTAw
NDQ3QzRDIC8qIFdlYlZpZXdEaWRDcmVhdGVKYXZhU2NyaXB0Q29udGV4dC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0U3RUQ2MUE0MTFBN0UwMDQ0N0M0QyAvKiBXZWJWaWV3RGlkUmVtb3ZlRnJh
bWVGcm9tSGllcmFyY2h5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEQjE2Q0UxRjA4NTEzNzAw
MUZBNEM1IC8qIFdlYlZpZXdJY29uTG9hZGluZy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTVDN0M3
NENCMUZCNTI5QkEwMDJGOUFCRSAvKiBXZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3Q0NFN0YxQjFBNDExQUU2MDA0NDdDNEMgLyogV2lsbExvYWQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRDcxQTQxMUE3RTAwNDQ3QzRDIC8qIFdpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMUMx
QTQxMUFFNjAwNDQ3QzRDIC8qIFdpbGxTZW5kU3VibWl0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3U2NoZWR1bGVJblJ1
bkxvb3AubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2Vi
Vmlld1NjaGVkdWxlSW5SdW5Mb29wLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdTY2hlZHVsZUluUnVuTG9vcC5tbQkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ0ZSdW5M
b29wLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVMb2FkRGVsZWdhdGUuaD4KKyNpbXBvcnQg
PFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitA
aW50ZXJmYWNlIFNjaGVkdWxlSW5SdW5Mb29wRGVsZWdhdGUgOiBOU09iamVjdCA8V2ViRnJhbWVM
b2FkRGVsZWdhdGU+IHsKK30KK0BlbmQKKworc3RhdGljIGJvb2wgZGlkRmluaXNoTG9hZDsKKwor
QGltcGxlbWVudGF0aW9uIFNjaGVkdWxlSW5SdW5Mb29wRGVsZWdhdGUKKworLSAodm9pZCl3ZWJW
aWV3OihXZWJWaWV3ICopc2VuZGVyIGRpZEZpbmlzaExvYWRGb3JGcmFtZTooV2ViRnJhbWUgKilm
cmFtZQoreworICAgIGRpZEZpbmlzaExvYWQgPSB0cnVlOworfQorCitAZW5kCisKK25hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChXZWJLaXRMZWdhY3ksIFNjaGVkdWxlSW5SdW5Mb29w
KQoreworICAgIE5TU3RyaW5nICpjdXN0b21SdW5Mb29wTW9kZSA9IEAiVGVzdFJ1bkxvb3BNb2Rl
IjsKKyAgICAKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV2ViVmlldyBhbGxvY10gaW5p
dF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbU2NoZWR1bGVJblJ1bkxvb3BEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldEZyYW1lTG9hZERlbGVnYXRlOmRl
bGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyB1bnNjaGVkdWxlRnJvbVJ1bkxvb3A6W05TUnVu
TG9vcCBjdXJyZW50UnVuTG9vcF0gZm9yTW9kZTooTlNTdHJpbmcgKilrQ0ZSdW5Mb29wQ29tbW9u
TW9kZXNdOworICAgIFt3ZWJWaWV3IHNjaGVkdWxlSW5SdW5Mb29wOltOU1J1bkxvb3AgY3VycmVu
dFJ1bkxvb3BdIGZvck1vZGU6Y3VzdG9tUnVuTG9vcE1vZGVdOworICAgIFtbd2ViVmlldyBtYWlu
RnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKKworICAgIHdo
aWxlICghZGlkRmluaXNoTG9hZCkKKyAgICAgICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKChDRlJ1bkxv
b3BNb2RlKWN1c3RvbVJ1bkxvb3BNb2RlLCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Om1h
eCgpLCB0cnVlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326550</attachid>
            <date>2017-11-09 21:23:23 -0800</date>
            <delta_ts>2017-11-10 09:27:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179515-20171109212322.patch</filename>
            <type>text/plain</type>
            <size>20178</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMjQ2NDcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE3LTExLTA5ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjI0MjY3KTog
V2ViVmlld3Mgc2NoZWR1bGVkIHdpdGggY3VzdG9tIHJ1biBsb29wIG1vZGVzIGRvbid0IGxvYWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTUxNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU0NDUyNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5jcHA6CisgICAgICAg
IChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6Cisg
ICAgICAgIChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICAoV1RGOjpzY2hlZHVsZURp
c3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKToKKyAgICAgICAgKiB3dGYvZ2VuZXJpYy9NYWlu
VGhyZWFkR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OnNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlv
bnNPbk1haW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9tYWMvTWFpblRocmVhZE1hYy5tbToKKyAg
ICAgICAgKFdURjo6c2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCk6CisgICAg
ICAgICogd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgKFdURjo6c2NoZWR1bGVE
aXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCk6CisgICAgICAgIEFkZCBhbiBvcHRpb25hbCBw
YXJhbWV0ZXIgd2hpY2ggaXMgYW4gYXJyYXkgb2YgcnVuIGxvb3AgbW9kZSBuYW1lcyB0byBwYXNz
IHRvIHBlcmZvcm1TZWxlY3Rvck9uTWFpblRocmVhZC4KKwogMjAxNy0xMS0wOCAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBbaW9zLXNpbXVsYXRvcl0g
QVBJIHRlc3QgV2ViS2l0LkJ1bmRsZVBhcmFtZXRlcnMgaXMgYSBmbGFreSBmYWlsdXJlCkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9NYWluVGhyZWFkLmNwcAkocmV2aXNpb24gMjI0NjQ3KQorKysgU291cmNlL1dURi93dGYv
TWFpblRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw3ICsxNDIsNyBAQCB2b2lkIGRp
c3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKQogICAgIH0KIH0KIAotdm9pZCBjYWxsT25N
YWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCit2b2lkIGNhbGxPbk1haW5U
aHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uLCBTY2hlZHVsZVBhaXJIYXNoU2V0KiBw
YWlycykKIHsKICAgICBBU1NFUlQoZnVuY3Rpb24pOwogCkBAIC0xNTUsNyArMTU1LDcgQEAgdm9p
ZCBjYWxsT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JgogICAgIH0KIAogICAgIGlmIChu
ZWVkVG9TY2hlZHVsZSkKLSAgICAgICAgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRo
cmVhZCgpOworICAgICAgICBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKHBh
aXJzKTsKIH0KIAogdm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wgcGF1c2Vk
KQpJbmRleDogU291cmNlL1dURi93dGYvTWFpblRocmVhZC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL01haW5UaHJlYWQuaAkocmV2aXNpb24gMjI0NjQ3KQorKysgU291cmNlL1dURi93
dGYvTWFpblRocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjZGVmaW5l
IE1haW5UaHJlYWRfaAogCiAjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgpAQCAtMzgsMTEgKzM5LDE0
IEBACiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgUHJpbnRTdHJlYW07CitjbGFzcyBTY2hlZHVs
ZVBhaXI7CitzdHJ1Y3QgU2NoZWR1bGVQYWlySGFzaDsKK3R5cGVkZWYgSGFzaFNldDxSZWZQdHI8
U2NoZWR1bGVQYWlyPiwgU2NoZWR1bGVQYWlySGFzaD4gU2NoZWR1bGVQYWlySGFzaFNldDsKIAog
Ly8gTXVzdCBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCiBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZCgpOwogCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBjYWxsT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JiYpOworV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgY2FsbE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYsIFNjaGVkdWxlUGFp
ckhhc2hTZXQqID0gbnVsbHB0cik7CiAKICNpZiBQTEFURk9STShDT0NPQSkKIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZCh2
b2lkICheYmxvY2spKCkpOwpAQCAtODEsNyArODUsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgYm9v
bCBpc01haW5UaHJlYWRPckdDCiAKIC8vIE5PVEU6IHRoZXNlIGZ1bmN0aW9ucyBhcmUgaW50ZXJu
YWwgdG8gdGhlIGNhbGxPbk1haW5UaHJlYWQgaW1wbGVtZW50YXRpb24uCiB2b2lkIGluaXRpYWxp
emVNYWluVGhyZWFkUGxhdGZvcm0oKTsKLXZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09u
TWFpblRocmVhZCgpOwordm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFk
KFNjaGVkdWxlUGFpckhhc2hTZXQqID0gbnVsbHB0cik7CiB2b2lkIGRpc3BhdGNoRnVuY3Rpb25z
RnJvbU1haW5UaHJlYWQoKTsKIAogI2lmIE9TKERBUldJTikgJiYgIVVTRShHTElCKQpJbmRleDog
U291cmNlL1dURi93dGYvZ2VuZXJpYy9NYWluVGhyZWFkR2VuZXJpYy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvZ2VuZXJpYy9NYWluVGhyZWFkR2VuZXJpYy5jcHAJKHJldmlzaW9u
IDIyNDY0NykKKysrIFNvdXJjZS9XVEYvd3RmL2dlbmVyaWMvTWFpblRocmVhZEdlbmVyaWMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJl
YWRQbGF0Zm9ybSgpCiB7CiB9CiAKLXZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFp
blRocmVhZCgpCit2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoU2No
ZWR1bGVQYWlySGFzaFNldCopCiB7CiAgICAgLy8gVXNlIGEgUnVuTG9vcDo6VGltZXIgaW5zdGVh
ZCBvZiBSdW5Mb29wOjpkaXNwYXRjaCgpIHRvIGJlIGFibGUgdG8gdXNlIGEgZGlmZmVyZW50IHBy
aW9yaXR5IGFuZAogICAgIC8vIGF2b2lkIHRoZSBkb3VibGUgcXVldWUgYmVjYXVzZSBkaXNwYXRj
aE9uTWFpblRocmVhZCBhbHNvIHF1ZXVlcyB0aGUgZnVuY3Rpb25zLgpJbmRleDogU291cmNlL1dU
Ri93dGYvbWFjL01haW5UaHJlYWRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
bWFjL01haW5UaHJlYWRNYWMubW0JKHJldmlzaW9uIDIyNDY0NykKKysrIFNvdXJjZS9XVEYvd3Rm
L21hYy9NYWluVGhyZWFkTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw4IEBACiAj
aW1wb3J0IDxzdGRpby5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0
Zi9IYXNoU2V0Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvU2No
ZWR1bGVQYWlyLmg+CiAjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBVU0UoV0VCX1RI
UkVBRCkKQEAgLTEyMCw3ICsxMjIsNyBAQCBzdGF0aWMgdm9pZCBwb3N0VGltZXIoKQogICAgIENG
UnVuTG9vcEFkZFRpbWVyKENGUnVuTG9vcEdldEN1cnJlbnQoKSwgQ0ZSdW5Mb29wVGltZXJDcmVh
dGUoMCwgMCwgMCwgMCwgMCwgdGltZXJGaXJlZCwgMCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7
CiB9CiAKLXZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCit2b2lk
IHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoU2NoZWR1bGVQYWlySGFzaFNl
dCogcGFpcnMpCiB7CiAgICAgQVNTRVJUKHN0YXRpY01haW5UaHJlYWRDYWxsZXIpOwogCkBAIC0x
MjksMTQgKzEzMSwyMiBAQCB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJl
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBSZXRhaW5QdHI8TlNBcnJheTxOU1N0cmlu
ZyAqPj4gbW9kZXM7CisgICAgaWYgKHBhaXJzKSB7CisgICAgICAgIG1vZGVzID0gYWRvcHROUyhb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OnBhaXJzLT5zaXplKCldKTsK
KyAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogKnBhaXJzKQorICAgICAgICAgICAgWyhOU011dGFi
bGVBcnJheSAqKW1vZGVzLmdldCgpIGFkZE9iamVjdDooTlNTdHJpbmcgKilwYWlyLT5tb2RlKCld
OworICAgIH0gZWxzZQorICAgICAgICBtb2RlcyA9IEBbKE5TU3RyaW5nICopa0NGUnVuTG9vcENv
bW1vbk1vZGVzXTsKKyAgICAKICAgICBpZiAobWFpblRocmVhZEVzdGFibGlzaGVkQXNQdGhyZWFk
TWFpbikgewogICAgICAgICBBU1NFUlQoIW1haW5UaHJlYWROU1RocmVhZCk7Ci0gICAgICAgIFtz
dGF0aWNNYWluVGhyZWFkQ2FsbGVyIHBlcmZvcm1TZWxlY3Rvck9uTWFpblRocmVhZDpAc2VsZWN0
b3IoY2FsbCkgd2l0aE9iamVjdDpuaWwgd2FpdFVudGlsRG9uZTpOT107CisgICAgICAgIFtzdGF0
aWNNYWluVGhyZWFkQ2FsbGVyIHBlcmZvcm1TZWxlY3Rvck9uTWFpblRocmVhZDpAc2VsZWN0b3Io
Y2FsbCkgd2l0aE9iamVjdDpuaWwgd2FpdFVudGlsRG9uZTpOTyBtb2Rlczptb2Rlcy5nZXQoKV07
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlQobWFpblRocmVhZE5TVGhyZWFk
KTsKLSAgICBbc3RhdGljTWFpblRocmVhZENhbGxlciBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9y
KGNhbGwpIG9uVGhyZWFkOm1haW5UaHJlYWROU1RocmVhZCB3aXRoT2JqZWN0Om5pbCB3YWl0VW50
aWxEb25lOk5PXTsKKyAgICBbc3RhdGljTWFpblRocmVhZENhbGxlciBwZXJmb3JtU2VsZWN0b3I6
QHNlbGVjdG9yKGNhbGwpIG9uVGhyZWFkOm1haW5UaHJlYWROU1RocmVhZCB3aXRoT2JqZWN0Om5p
bCB3YWl0VW50aWxEb25lOk5PIG1vZGVzOm1vZGVzLmdldCgpXTsKIH0KIAogdm9pZCBjYWxsT25X
ZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5UaHJlYWQodm9pZCAoXmJsb2NrKSgpKQpJbmRl
eDogU291cmNlL1dURi93dGYvd2luL01haW5UaHJlYWRXaW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcAkocmV2aXNpb24gMjI0NjQ3KQorKysg
U291cmNlL1dURi93dGYvd2luL01haW5UaHJlYWRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
Nyw3ICs2Nyw3IEBAIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgpCiAgICAgVGhy
ZWFkOjppbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKCJNYWluIFRocmVhZCIpOwogfQog
Ci12b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKQordm9pZCBzY2hl
ZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKFNjaGVkdWxlUGFpckhhc2hTZXQqKQog
ewogICAgIEFTU0VSVCh0aHJlYWRpbmdXaW5kb3dIYW5kbGUpOwogICAgIFBvc3RNZXNzYWdlKHRo
cmVhZGluZ1dpbmRvd0hhbmRsZSwgdGhyZWFkaW5nRmlyZWRNZXNzYWdlLCAwLCAwKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIyNDY2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE3LTExLTA5ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjI0
MjY3KTogV2ViVmlld3Mgc2NoZWR1bGVkIHdpdGggY3VzdG9tIHJ1biBsb29wIG1vZGVzIGRvbid0
IGxvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
OTUxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU0NDUyNDU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBhIG5ldyBBUEkgdGVz
dCB3aGljaCB3b3VsZCBoYXZlIHRpbWVkIG91dCB3aXRob3V0IHRoaXMgY2hhbmdlLgorCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoc2NoZWR1bGVQYWlySGFzaFNldCk6CisgICAg
ICAgIENvbGxlY3QgcnVuIGxvb3AgbW9kZXMgZnJvbSB0aGUgTmV0d29ya2luZ0NvbnRleHQgc2lt
aWxhcmx5IHRvIGhvdyB3ZSBkaWQgYmVmb3JlIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5n
ZXNldC8yMjQyNjcvd2Via2l0I2ZpbGU0MAorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjp3aWxsU2VuZFJlcXVlc3Q6cmVk
aXJlY3RSZXNwb25zZTpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVy
YXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1
ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVl
RGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6CisgICAgICAgICgtW1dl
YkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRp
ZFJlY2VpdmVEYXRhOmxlbmd0aFJlY2VpdmVkOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRTZW5kQm9keURh
dGE6dG90YWxCeXRlc1dyaXR0ZW46dG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZTpdKToKKyAgICAg
ICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5l
Y3Rpb25EaWRGaW5pc2hMb2FkaW5nOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRGYWlsV2l0aEVycm9yOl0p
OgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdh
dGUgY29ubmVjdGlvbjp3aWxsQ2FjaGVSZXNwb25zZTpdKToKKwogMjAxNy0xMS0wOSAgSm9obiBX
aWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBJZ25vcmUgSFNUUyBmb3Ig
cGFydGl0aW9uZWQsIGNyb3NzLW9yaWdpbiBzdWJyZXNvdXJjZSByZXF1ZXN0cwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNP
cGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVE
ZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjI0NjQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRl
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0MywxNSBAQAogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAorc3RhdGljIFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFJ1bkxvb3BQ
YWlycyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQoreworICAgIGlmICghaGFuZGxlKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoIWhhbmRsZS0+Y29udGV4dCgpKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gaGFuZGxlLT5jb250ZXh0KCktPnNjaGVkdWxlZFJ1
bkxvb3BQYWlycygpOworfQorCiBAaW1wbGVtZW50YXRpb24gV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlCiAKIC0gKGlkKWluaXRXaXRoSGFuZGxlOihSZXNvdXJj
ZUhhbmRsZSopaGFuZGxlIG1lc3NhZ2VRdWV1ZTooTWVzc2FnZVF1ZXVlPEZ1bmN0aW9uPHZvaWQo
KT4+KiltZXNzYWdlUXVldWUKQEAgLTEyNSw3ICsxMzQsNyBAQCAtIChOU1VSTFJlcXVlc3QgKilj
b25uZWN0aW9uOihOU1VSTENvbm5lCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAgICAgICBt
X21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4o
V1RGTW92ZSh3b3JrKSkpOwogICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZN
b3ZlKHdvcmspKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspLCBzY2hl
ZHVsZWRSdW5Mb29wUGFpcnMobV9oYW5kbGUpKTsKIAogICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93
YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwogICAgIHJldHVybiBtX3Jl
cXVlc3RSZXN1bHQuZ2V0KCk7CkBAIC0xNDksNyArMTU4LDcgQEAgLSAodm9pZCljb25uZWN0aW9u
OihOU1VSTENvbm5lY3Rpb24gKiljbwogICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkKICAgICAgICAg
bV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZvaWQoKT4+
KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RG
TW92ZSh3b3JrKSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSwgc2No
ZWR1bGVkUnVuTG9vcFBhaXJzKG1faGFuZGxlKSk7CiB9CiAKIC0gKEJPT0wpY29ubmVjdGlvbjoo
TlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlOihOU1VSTFByb3RlY3Rpb25TcGFjZSAqKXByb3RlY3Rpb25TcGFjZQpAQCAtMTcx
LDcgKzE4MCw3IEBAIC0gKEJPT0wpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY28KICAg
ICBpZiAobV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3Rk
OjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7CiAgICAgZWxz
ZQotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yaykpOworICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFdURk1vdmUod29yayksIHNjaGVkdWxlZFJ1bkxvb3BQYWlycyhtX2hhbmRs
ZSkpOwogCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENI
X1RJTUVfRk9SRVZFUik7CiAgICAgcmV0dXJuIG1fYm9vbFJlc3VsdDsKQEAgLTIxMCw3ICsyMTks
NyBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAgICAgaWYgKG1f
bWVzc2FnZVF1ZXVlKQogICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91
bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwogICAgIGVsc2UKLSAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspKTsKKyAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChXVEZNb3ZlKHdvcmspLCBzY2hlZHVsZWRSdW5Mb29wUGFpcnMobV9oYW5kbGUpKTsKIAog
ICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZP
UkVWRVIpOwogfQpAQCAtMjM5LDcgKzI0OCw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxD
b25uZWN0aW9uICopY28KICAgICBpZiAobV9tZXNzYWdlUXVldWUpCiAgICAgICAgIG1fbWVzc2Fn
ZVF1ZXVlLT5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3Zl
KHdvcmspKSk7CiAgICAgZWxzZQotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29y
aykpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yayksIHNjaGVkdWxlZFJ1
bkxvb3BQYWlycyhtX2hhbmRsZSkpOwogfQogCiAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29u
bmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkU2VuZEJvZHlEYXRhOihOU0ludGVnZXIpYnl0ZXNXcml0
dGVuIHRvdGFsQnl0ZXNXcml0dGVuOihOU0ludGVnZXIpdG90YWxCeXRlc1dyaXR0ZW4gdG90YWxC
eXRlc0V4cGVjdGVkVG9Xcml0ZTooTlNJbnRlZ2VyKXRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGUK
QEAgLTI1OSw3ICsyNjgsNyBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAq
KWNvCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBw
ZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwog
ICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspKTsKKyAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspLCBzY2hlZHVsZWRSdW5Mb29wUGFpcnMo
bV9oYW5kbGUpKTsKIH0KIAogLSAodm9pZCljb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzooTlNV
UkxDb25uZWN0aW9uICopY29ubmVjdGlvbgpAQCAtMjgzLDcgKzI5Miw3IEBAIC0gKHZvaWQpY29u
bmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6KE5TVVIKICAgICBpZiAobV9tZXNzYWdlUXVldWUpCiAg
ICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2
b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7CiAgICAgZWxzZQotICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFdURk1vdmUod29yaykpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29y
ayksIHNjaGVkdWxlZFJ1bkxvb3BQYWlycyhtX2hhbmRsZSkpOwogfQogCiAtICh2b2lkKWNvbm5l
Y3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkRmFpbFdpdGhFcnJvcjooTlNF
cnJvciAqKWVycm9yCkBAIC0zMDcsNyArMzE2LDcgQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VS
TENvbm5lY3Rpb24gKiljbwogICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkKICAgICAgICAgbV9tZXNz
YWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1v
dmUod29yaykpKTsKICAgICBlbHNlCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3
b3JrKSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSwgc2NoZWR1bGVk
UnVuTG9vcFBhaXJzKG1faGFuZGxlKSk7CiB9CiAKIApAQCAtMzMxLDcgKzM0MCw3IEBAIC0gKE5T
Q2FjaGVkVVJMUmVzcG9uc2UgKiljb25uZWN0aW9uOihOU1UKICAgICBpZiAobV9tZXNzYWdlUXVl
dWUpCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5j
dGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7CiAgICAgZWxzZQotICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFdURk1vdmUod29yaykpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1v
dmUod29yayksIHNjaGVkdWxlZFJ1bkxvb3BQYWlycyhtX2hhbmRsZSkpOwogCiAgICAgZGlzcGF0
Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiAg
ICAgcmV0dXJuIG1fY2FjaGVkUmVzcG9uc2VSZXN1bHQuZ2V0KCk7CkluZGV4OiBUb29scy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjQ2NTcpCisr
KyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0x
MS0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAg
ICAgIFJFR1JFU1NJT04ocjIyNDI2Nyk6IFdlYlZpZXdzIHNjaGVkdWxlZCB3aXRoIGN1c3RvbSBy
dW4gbG9vcCBtb2RlcyBkb24ndCBsb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzk1MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZp
ZXdTY2hlZHVsZUluUnVuTG9vcC5tbTogQWRkZWQuCisgICAgICAgICgtW1NjaGVkdWxlSW5SdW5M
b29wRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hMb2FkRm9yRnJhbWU6XSk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0xMS0wOSAgSm9uYXRoYW4gQmVkYXJkICA8amJl
ZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgd2Via2l0cHk6IFVuaWZ5IHZlcnNpb24gcGFyc2lu
ZyBjb2RlCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjI0NjQ3KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsNyBAQAogCQk1QzZFNjU0NDFENUNFRkQ0
MDBGNzg2MkUgLyogVVJMUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDNkU2NTQxMUQ1Q0VGODUwMEY3ODYyRSAvKiBVUkxQYXJzZXIuY3Bw
ICovOyB9OwogCQk1QzcyNkQ2RjFEM0VFMDZFMDBDNUUxQTEgLyogSW5zdGFuY2VNZXRob2RTd2l6
emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
NzI2RDZFMUQzRUUwNjgwMEM1RTFBMSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovOyB9
OwogCQk1Qzc5NjQxMDFFQjAyNzhEMDA3NUQ3NEMgLyogRXZlbnRNb2RpZmllcnMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3OTY0MEYxRUIwMjY5
QjAwNzVENzRDIC8qIEV2ZW50TW9kaWZpZXJzLmNwcCAqLzsgfTsKKwkJNUM3Qzc0Q0IxRkI1MjlC
QTAwMkY5QUJFIC8qIFdlYlZpZXdTY2hlZHVsZUluUnVuTG9vcC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDN0M3NENBMUZCNTI4RDQwMDJGOUFCRSAv
KiBXZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0gKi87IH07CiAJCTVDODM4RjdGMURCMDRGOTAw
MDgyODU4RiAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzkwMUZBRTFDQUYxMzcxMDBFRDY0RjkgLyogTG9h
ZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovOyB9OwogCQk1Qzk3M0Y1QzFGNThFRjhCMDAzNTlDMjcg
LyogV2ViR0xQb2xpY3kubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1Qzk3M0Y1QjFGNThFRjBBMDAzNTlDMjcgLyogV2ViR0xQb2xpY3kubW0gKi87IH07
CiAJCTVDOUU1Njg1MURGOTE0NTQwMEM5RUUzMyAvKiBXZWJzaXRlUG9saWNpZXMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzlFNTY4NDFERjkxNDNE
MDBDOUVFMzMgLyogV2Vic2l0ZVBvbGljaWVzLm1tICovOyB9OwpAQCAtMTM2OSw2ICsxMzcwLDcg
QEAKIAkJNUM3MjZENkQxRDNFRTA2ODAwQzVFMUExIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSW5zdGFuY2VNZXRob2RTd2l6emxl
ci5oOyBwYXRoID0gY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1QzcyNkQ2RTFEM0VFMDY4MDBDNUUxQTEgLyogSW5zdGFuY2VNZXRo
b2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IElu
c3RhbmNlTWV0aG9kU3dpenpsZXIubW07IHBhdGggPSBjb2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6
bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Qzc5NjQwRjFFQjAyNjlCMDA3
NUQ3NEMgLyogRXZlbnRNb2RpZmllcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRXZlbnRNb2RpZmllcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1QzdDNzRDQTFGQjUyOEQ0MDAyRjlBQkUgLyogV2ViVmlld1NjaGVkdWxlSW5SdW5Mb29wLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlld1NjaGVkdWxl
SW5SdW5Mb29wLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Qzk3M0Y1QjFGNThF
RjBBMDAzNTlDMjcgLyogV2ViR0xQb2xpY3kubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJHTFBvbGljeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUM5RTU2ODQxREY5MTQzRDAwQzlFRTMzIC8qIFdlYnNpdGVQb2xpY2llcy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYnNpdGVQb2xpY2llcy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM5RTU2ODYxREY5MTQ4RTAwQzlFRTMzIC8qIGNv
bnRlbnRCbG9ja2VyQ2hlY2suaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGNvbnRl
bnRCbG9ja2VyQ2hlY2suaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MTcs
NiArMjgxOSw3IEBACiAJCQkJQzJFQjJERDExNkNBQzdBQzAwOUI1MkVFIC8qIFdlYlZpZXdEaWRD
cmVhdGVKYXZhU2NyaXB0Q29udGV4dC5tbSAqLywKIAkJCQkzN0UzOEMzMzE2OUI3RDAxMDA4NEMy
OEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbSAqLywKIAkJCQk1MURC
MTZDRDFGMDg1MDQ3MDAxRkE0QzUgLyogV2ViVmlld0ljb25Mb2FkaW5nLm1tICovLAorCQkJCTVD
N0M3NENBMUZCNTI4RDQwMDJGOUFCRSAvKiBXZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0gKi8s
CiAJCQkJQ0UzMkM3QzcxODE4NEM0OTAwQ0Q4QzI4IC8qIFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RUb1VSTENyYXNoLm1tICovLAogCQkJCTFBN0JGQzBBMTcxQTBCREIwMEJDNUY2NCAvKiBXaWxs
U2VuZFN1Ym1pdEV2ZW50Lm1tICovLAogCQkJCUE1RTIwMjcyMTVCMjE4MTkwMEMxM0UxNCAvKiBX
aW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5tbSAqLywKQEAgLTM1MjMsNiArMzUyNiw3IEBACiAJ
CQkJN0NDRTdFRDUxQTQxMUE3RTAwNDQ3QzRDIC8qIFdlYlZpZXdEaWRDcmVhdGVKYXZhU2NyaXB0
Q29udGV4dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUQ2MUE0MTFBN0UwMDQ0N0M0QyAv
KiBXZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTFEQjE2Q0UxRjA4NTEzNzAwMUZBNEM1IC8qIFdlYlZpZXdJY29uTG9hZGluZy5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTVDN0M3NENCMUZCNTI5QkEwMDJGOUFCRSAvKiBXZWJWaWV3U2NoZWR1
bGVJblJ1bkxvb3AubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YxQjFBNDExQUU2MDA0NDdD
NEMgLyogV2lsbExvYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRDcxQTQxMUE3RTAw
NDQ3QzRDIC8qIFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0NDRTdGMUMxQTQxMUFFNjAwNDQ3QzRDIC8qIFdpbGxTZW5kU3VibWl0RXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9XZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld1NjaGVkdWxlSW5SdW5Mb29wLm1tCShub25leGlzdGVu
dCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdTY2hlZHVsZUluUnVu
TG9vcC5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCA8
Q29yZUZvdW5kYXRpb24vQ0ZSdW5Mb29wLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVMb2Fk
RGVsZWdhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgorCitAaW50ZXJmYWNlIFNjaGVkdWxlSW5SdW5Mb29wRGVsZWdhdGUg
OiBOU09iamVjdCA8V2ViRnJhbWVMb2FkRGVsZWdhdGU+IHsKK30KK0BlbmQKKworc3RhdGljIGJv
b2wgZGlkRmluaXNoTG9hZDsKKworQGltcGxlbWVudGF0aW9uIFNjaGVkdWxlSW5SdW5Mb29wRGVs
ZWdhdGUKKworLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopc2VuZGVyIGRpZEZpbmlzaExvYWRG
b3JGcmFtZTooV2ViRnJhbWUgKilmcmFtZQoreworICAgIGRpZEZpbmlzaExvYWQgPSB0cnVlOwor
fQorCitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChXZWJLaXRMZWdh
Y3ksIFNjaGVkdWxlSW5SdW5Mb29wKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tX
ZWJWaWV3IGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTY2hl
ZHVsZUluUnVuTG9vcERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0RnJh
bWVMb2FkRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IHVuc2NoZWR1bGVG
cm9tUnVuTG9vcDpbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXSBmb3JNb2RlOihOU1N0cmluZyAq
KWtDRlJ1bkxvb3BDb21tb25Nb2Rlc107CisgICAgW3dlYlZpZXcgc2NoZWR1bGVJblJ1bkxvb3A6
W05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gZm9yTW9kZTpAIlRlc3RSdW5Mb29wTW9kZSJdOwor
ICAgIFtbd2ViVmlldyBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl1dXTsKKworICAgIHdoaWxlICghZGlkRmluaXNoTG9hZCkKKyAgICAgICAgQ0ZSdW5Mb29w
UnVuSW5Nb2RlKENGU1RSKCJUZXN0UnVuTG9vcE1vZGUiKSwgc3RkOjpudW1lcmljX2xpbWl0czxk
b3VibGU+OjptYXgoKSwgdHJ1ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>
<flag name="review"
          id="345850"
          type_id="1"
          status="+"
          setter="aestes"
    />
          </attachment>
      

    </bug>

</bugzilla>