<?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>148240</bug_id>
          
          <creation_ts>2015-08-20 13:38:35 -0700</creation_ts>
          <short_desc>[Win] Miscellaneous Windows Cleanups</short_desc>
          <delta_ts>2015-08-20 17:57:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>148001</dependson>
          <blocked>148249</blocked>
    
    <blocked>148275</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1119328</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-20 13:38:35 -0700</bug_when>
    <thetext>After Bug 148001 (r188662), I noticed a few more places where cleanups are needed:

1. STDMETHODCALLTYPE should never appear in a method implementation (only in the declaration).
2. Release(void) -&gt; Release()
3. C++14 member initializers
4. 0 -&gt; nullptr

This patch corrects these issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119330</commentid>
    <comment_count>1</comment_count>
      <attachid>259488</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-20 13:50:43 -0700</bug_when>
    <thetext>Created attachment 259488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119331</commentid>
    <comment_count>2</comment_count>
      <attachid>259488</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-08-20 13:52:22 -0700</bug_when>
    <thetext>Comment on attachment 259488
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119332</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-20 13:52:54 -0700</bug_when>
    <thetext>Attachment 259488 did not pass style-queue:


ERROR: Source/WebKit/win/AccessibleBase.cpp:435:  AccessibleBase::get_accDescription is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit/win/AccessibleBase.cpp:454:  AccessibleBase::get_accRole is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit/win/AccessibleBase.cpp:672:  AccessibleBase::get_accSelection is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit/win/AccessibleBase.cpp:677:  AccessibleBase::get_accFocus is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit/win/AccessibleBase.cpp:703:  AccessibleBase::get_accDefaultAction is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 5 in 31 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>1119366</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-20 14:37:03 -0700</bug_when>
    <thetext>Committed r188703: &lt;http://trac.webkit.org/changeset/188703&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259488</attachid>
            <date>2015-08-20 13:50:43 -0700</date>
            <delta_ts>2015-08-20 13:52:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148240-20150820140543.patch</filename>
            <type>text/plain</type>
            <size>45738</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODY5MykKKysrIFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE1LTA4LTIw
ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dIE1p
c2NlbGxhbmVvdXMgV2luZG93cyBDbGVhbnVwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MjQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ29ycmVjdCBzb21lIEMrKyBzdHlsZSBpc3N1ZXMgaW4gdGhl
IFdpbmRvd3MgY29kZS4KKworICAgICAgICAqIEFjY2Vzc2libGVCYXNlLmNwcDoKKyAgICAgICAg
KiBBY2Nlc3NpYmxlVGV4dEltcGwuY3BwOgorICAgICAgICAqIENGRGljdGlvbmFyeVByb3BlcnR5
QmFnLmNwcDoKKyAgICAgICAgKiBET01Db3JlQ2xhc3Nlcy5jcHA6CisgICAgICAgICogRE9NRXZl
bnRzQ2xhc3Nlcy5jcHA6CisgICAgICAgICogTWVtb3J5U3RyZWFtLmNwcDoKKyAgICAgICAgKiBN
ZW1vcnlTdHJlYW0uaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZp
Y2F0aW9uc0RlbGVnYXRlLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgor
ICAgICAgICAqIFdlYkRvd25sb2FkLmNwcDoKKyAgICAgICAgKiBXZWJEb3dubG9hZEN1cmwuY3Bw
OgorICAgICAgICAqIFdlYkVycm9yLmNwcDoKKyAgICAgICAgKiBXZWJIaXN0b3J5SXRlbS5jcHA6
CisgICAgICAgICogV2ViSmF2YVNjcmlwdENvbGxlY3Rvci5jcHA6CisgICAgICAgICogV2ViTm90
aWZpY2F0aW9uQ2VudGVyLmNwcDoKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5jcHA6CisgICAg
ICAgICogV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXJDdXJsLmNwcDoKKyAgICAg
ICAgKiBXZWJVUkxDcmVkZW50aWFsLmNwcDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKwogMjAx
NS0wOC0xOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtXaW5dIEJ1aWxkIGZpeCBhZnRlciByMTg4NjYyLgpJbmRleDogU291cmNlL1dlYktp
dC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2lu
L0FjY2Vzc2libGVCYXNlLmNwcAkocmV2aXNpb24gMTg4NjcyKQorKysgU291cmNlL1dlYktpdC93
aW4vQWNjZXNzaWJsZUJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzIsNyArNDMyLDcgQEAg
SFJFU1VMVCBBY2Nlc3NpYmxlQmFzZTo6Z2V0X2FjY1ZhbHVlKFZBUgogICAgIHJldHVybiBTX0ZB
TFNFOwogfQogCi1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIEFjY2Vzc2libGVCYXNlOjpnZXRf
YWNjRGVzY3JpcHRpb24oVkFSSUFOVCB2Q2hpbGQsIF9fZGVyZWZfb3B0X291dCBCU1RSKiBkZXNj
cmlwdGlvbikKK0hSRVNVTFQgQWNjZXNzaWJsZUJhc2U6OmdldF9hY2NEZXNjcmlwdGlvbihWQVJJ
QU5UIHZDaGlsZCwgX19kZXJlZl9vcHRfb3V0IEJTVFIqIGRlc2NyaXB0aW9uKQogewogICAgIGlm
ICghZGVzY3JpcHRpb24pCiAgICAgICAgIHJldHVybiBFX1BPSU5URVI7CkBAIC00NTEsNyArNDUx
LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBBY2Nlc3NpYmxlQmFzZQogICAgIHJldHVy
biBTX0ZBTFNFOwogfQogCi1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIEFjY2Vzc2libGVCYXNl
OjpnZXRfYWNjUm9sZShWQVJJQU5UIHZDaGlsZCwgX091dF8gVkFSSUFOVCogcHZSb2xlKQorSFJF
U1VMVCBBY2Nlc3NpYmxlQmFzZTo6Z2V0X2FjY1JvbGUoVkFSSUFOVCB2Q2hpbGQsIF9PdXRfIFZB
UklBTlQqIHB2Um9sZSkKIHsKICAgICBpZiAoIXB2Um9sZSkKICAgICAgICAgcmV0dXJuIEVfUE9J
TlRFUjsKQEAgLTYxNSw3ICs2MTUsNyBAQCBIUkVTVUxUIEFjY2Vzc2libGVCYXNlOjpnZXRfYWNj
S2V5Ym9hcmRTCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgQWNjZXNzaWJsZUJhc2U6OmFjY1NlbGVjdChsb25nIHNlbGVjdGlvbkZsYWdzLCBWQVJJQU5U
IHZDaGlsZCkKK0hSRVNVTFQgQWNjZXNzaWJsZUJhc2U6OmFjY1NlbGVjdChsb25nIHNlbGVjdGlv
bkZsYWdzLCBWQVJJQU5UIHZDaGlsZCkKIHsKICAgICAvLyBBY2NvcmRpbmcgdG8gTVNETiwgdGhl
c2UgY29tYmluYXRpb25zIGFyZSBpbnZhbGlkLgogICAgIGlmICgoKHNlbGVjdGlvbkZsYWdzICYg
KFNFTEZMQUdfQUREU0VMRUNUSU9OIHwgU0VMRkxBR19SRU1PVkVTRUxFQ1RJT04pKSA9PSAoU0VM
RkxBR19BRERTRUxFQ1RJT04gfCBTRUxGTEFHX1JFTU9WRVNFTEVDVElPTikpCkBAIC02NjksMTIg
KzY2OSwxMiBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIEFjY2Vzc2libGVCYXNlCiAgICAg
cmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQWNjZXNzaWJsZUJh
c2U6OmdldF9hY2NTZWxlY3Rpb24oX091dF8gVkFSSUFOVCopCitIUkVTVUxUIEFjY2Vzc2libGVC
YXNlOjpnZXRfYWNjU2VsZWN0aW9uKF9PdXRfIFZBUklBTlQqKQogewogICAgIHJldHVybiBFX05P
VElNUEw7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQWNjZXNzaWJsZUJhc2U6Omdl
dF9hY2NGb2N1cyhfT3V0XyBWQVJJQU5UKiBwdkZvY3VzZWRDaGlsZCkKK0hSRVNVTFQgQWNjZXNz
aWJsZUJhc2U6OmdldF9hY2NGb2N1cyhfT3V0XyBWQVJJQU5UKiBwdkZvY3VzZWRDaGlsZCkKIHsK
ICAgICBpZiAoIXB2Rm9jdXNlZENoaWxkKQogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwpAQCAt
NzAwLDcgKzcwMCw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQWNjZXNzaWJsZUJhc2UK
ICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBBY2Nlc3Np
YmxlQmFzZTo6Z2V0X2FjY0RlZmF1bHRBY3Rpb24oVkFSSUFOVCB2Q2hpbGQsIF9fZGVyZWZfb3B0
X291dCBCU1RSKiBhY3Rpb24pCitIUkVTVUxUIEFjY2Vzc2libGVCYXNlOjpnZXRfYWNjRGVmYXVs
dEFjdGlvbihWQVJJQU5UIHZDaGlsZCwgX19kZXJlZl9vcHRfb3V0IEJTVFIqIGFjdGlvbikKIHsK
ICAgICBpZiAoIWFjdGlvbikKICAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcAkocmV2aXNpb24gMTg4NjcyKQorKysg
U291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzEwLDcgKzcxMCw3IEBAIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6OlF1ZXJ5SW50ZXJmYWNl
KF8KICAgICByZXR1cm4gU19PSzsKIH0KIAotVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWNjZXNz
aWJsZVRleHQ6OlJlbGVhc2Uodm9pZCkKK1VMT05HIEFjY2Vzc2libGVUZXh0OjpSZWxlYXNlKCkK
IHsKICAgICBBU1NFUlQobV9yZWZDb3VudCA+IDApOwogICAgIGlmICgtLW1fcmVmQ291bnQpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9DRkRpY3Rpb25hcnlQcm9wZXJ0eUJhZy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vQ0ZEaWN0aW9uYXJ5UHJvcGVydHlCYWcuY3BwCShy
ZXZpc2lvbiAxODg2NzIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DRkRpY3Rpb25hcnlQcm9wZXJ0
eUJhZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDEyICs3OCwxMiBAQCBIUkVTVUxUIENGRGlj
dGlvbmFyeVByb3BlcnR5QmFnOjpRdWVyeUluCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLVVMT05H
IFNURE1FVEhPRENBTExUWVBFIENGRGljdGlvbmFyeVByb3BlcnR5QmFnOjpBZGRSZWYoKQorVUxP
TkcgQ0ZEaWN0aW9uYXJ5UHJvcGVydHlCYWc6OkFkZFJlZigpCiB7CiAgICAgcmV0dXJuICsrbV9y
ZWZDb3VudDsKIH0KIAotVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQ0ZEaWN0aW9uYXJ5UHJvcGVy
dHlCYWc6OlJlbGVhc2Uodm9pZCkKK1VMT05HIENGRGljdGlvbmFyeVByb3BlcnR5QmFnOjpSZWxl
YXNlKCkKIHsKICAgICBVTE9ORyBuZXdSZWYgPSAtLW1fcmVmQ291bnQ7CiAgICAgaWYgKCFuZXdS
ZWYpCkBAIC0xNTQsNyArMTU0LDcgQEAgc3RhdGljIGJvb2wgQ29udmVydFZhcmlhbnRUb0NGVHlw
ZShWQVJJQQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBDRkRpY3Rpb25hcnlQcm9wZXJ0eUJhZzo6UmVhZChMUENPTEVTVFIgcHN6UHJvcE5hbWUsIFZB
UklBTlQgKnBWYXIsIElFcnJvckxvZyAqIC8qcEVycm9yTG9nKi8pCitIUkVTVUxUIENGRGljdGlv
bmFyeVByb3BlcnR5QmFnOjpSZWFkKExQQ09MRVNUUiBwc3pQcm9wTmFtZSwgVkFSSUFOVCAqcFZh
ciwgSUVycm9yTG9nICogLypwRXJyb3JMb2cqLykKIHsKICAgICBpZiAoIXBzelByb3BOYW1lKQog
ICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwpAQCAtMTczLDcgKzE3Myw3IEBAIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgQ0ZEaWN0aW9uYXJ5UHIKICAgICByZXR1cm4gRV9GQUlMOwogfQogICAg
ICAgICAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQ0ZEaWN0aW9uYXJ5UHJvcGVydHlCYWc6
OldyaXRlKF9Jbl8gTFBDT0xFU1RSIHBzelByb3BOYW1lLCBfSW5fIFZBUklBTlQqIHBWYXIpCitI
UkVTVUxUIENGRGljdGlvbmFyeVByb3BlcnR5QmFnOjpXcml0ZShfSW5fIExQQ09MRVNUUiBwc3pQ
cm9wTmFtZSwgX0luXyBWQVJJQU5UKiBwVmFyKQogewogICAgIGlmICghcHN6UHJvcE5hbWUgfHwg
IXBWYXIpCiAgICAgICAgIHJldHVybiBFX1BPSU5URVI7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dp
bi9ET01DU1NDbGFzc2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vRE9NQ1NT
Q2xhc3Nlcy5oCShyZXZpc2lvbiAxODg2NzIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9ET01DU1ND
bGFzc2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIC8v
IElVbmtub3duCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFF1ZXJ5SW50
ZXJmYWNlKF9Jbl8gUkVGSUlEIHJpaWQsIF9DT01fT3V0cHRyXyB2b2lkKiogcHB2T2JqZWN0KTsK
ICAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIEFkZFJlZigpIHsgcmV0dXJuIERP
TU9iamVjdDo6QWRkUmVmKCk7IH0KLSAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBF
IFJlbGVhc2Uodm9pZCkgeyByZXR1cm4gRE9NT2JqZWN0OjpSZWxlYXNlKCk7IH0KKyAgICB2aXJ0
dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2UoKSB7IHJldHVybiBET01PYmplY3Q6
OlJlbGVhc2UoKTsgfQogCiAgICAgLy8gSVdlYlNjcmlwdE9iamVjdAogICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSB0aHJvd0V4Y2VwdGlvbihfSW5fIEJTVFIgZXhjZXB0aW9u
TWVzc2FnZSwgX091dF8gQk9PTCogcmVzdWx0KQpJbmRleDogU291cmNlL1dlYktpdC93aW4vRE9N
Q29yZUNsYXNzZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0RPTUNvcmVD
bGFzc2VzLmNwcAkocmV2aXNpb24gMTg4NjcyKQorKysgU291cmNlL1dlYktpdC93aW4vRE9NQ29y
ZUNsYXNzZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDExLDcgKzEwMTEsNyBAQCBIUkVTVUxU
IERPTUVsZW1lbnQ6OmJvdW5kaW5nQm94KF9PdXRfIExQCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAK
LUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRE9NRWxlbWVudDo6bGluZUJveFJlY3RzKF9faW5v
dXRfZWNvdW50X2Z1bGwoY1JlY3RzKSBSRUNUKiAvKnJlY3RzKi8sIGludCBjUmVjdHMpCitIUkVT
VUxUIERPTUVsZW1lbnQ6OmxpbmVCb3hSZWN0cyhfX2lub3V0X2Vjb3VudF9mdWxsKGNSZWN0cykg
UkVDVCogLypyZWN0cyovLCBpbnQgY1JlY3RzKQogewogICAgIHJldHVybiBFX05PVElNUEw7CiB9
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9ET01Db3JlQ2xhc3Nlcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvd2luL0RPTUNvcmVDbGFzc2VzLmgJKHJldmlzaW9uIDE4ODY3MikKKysr
IFNvdXJjZS9XZWJLaXQvd2luL0RPTUNvcmVDbGFzc2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIC8vIElVbmtub3duCiAgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFF1ZXJ5SW50ZXJmYWNlKF9Jbl8gUkVGSUlEIHJpaWQsIF9DT01f
T3V0cHRyXyB2b2lkKiogcHB2T2JqZWN0KTsKICAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENB
TExUWVBFIEFkZFJlZigpIHsgcmV0dXJuIFdlYlNjcmlwdE9iamVjdDo6QWRkUmVmKCk7IH0KLSAg
ICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2Uodm9pZCkgeyByZXR1cm4g
V2ViU2NyaXB0T2JqZWN0OjpSZWxlYXNlKCk7IH0KKyAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhP
RENBTExUWVBFIFJlbGVhc2UoKSB7IHJldHVybiBXZWJTY3JpcHRPYmplY3Q6OlJlbGVhc2UoKTsg
fQogCiAgICAgLy8gSVdlYlNjcmlwdE9iamVjdAogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSB0aHJvd0V4Y2VwdGlvbihfSW5fIEJTVFIgZXhjZXB0aW9uTWVzc2FnZSwgX091
dF8gQk9PTCogcmVzdWx0KQpAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICAvLyBJVW5r
bm93bgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBRdWVyeUludGVyZmFj
ZShfSW5fIFJFRklJRCByaWlkLCBfQ09NX091dHB0cl8gdm9pZCoqIHBwdk9iamVjdCk7CiAgICAg
dmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYoKSB7IHJldHVybiBET01PYmpl
Y3Q6OkFkZFJlZigpOyB9Ci0gICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxl
YXNlKHZvaWQpIHsgcmV0dXJuIERPTU9iamVjdDo6UmVsZWFzZSgpOyB9CisgICAgdmlydHVhbCBV
TE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKCkgeyByZXR1cm4gRE9NT2JqZWN0OjpSZWxl
YXNlKCk7IH0KIAogICAgIC8vIElXZWJTY3JpcHRPYmplY3QKICAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgdGhyb3dFeGNlcHRpb24oX0luXyBCU1RSIGV4Y2VwdGlvbk1lc3Nh
Z2UsIF9PdXRfIEJPT0wqIHJlc3VsdCkKQEAgLTE5OCw3ICsxOTgsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gSVVua25vd24KICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJ
bnRlcmZhY2UoX0luXyBSRUZJSUQgcmlpZCwgX0NPTV9PdXRwdHJfIHZvaWQqKiBwcHZPYmplY3Qp
OwogICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKCkgeyByZXR1cm4g
RE9NT2JqZWN0OjpBZGRSZWYoKTsgfQotICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZ
UEUgUmVsZWFzZSh2b2lkKSB7IHJldHVybiBET01PYmplY3Q6OlJlbGVhc2UoKTsgfQorICAgIHZp
cnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSgpIHsgcmV0dXJuIERPTU9iamVj
dDo6UmVsZWFzZSgpOyB9CiAKICAgICAvLyBJV2ViU2NyaXB0T2JqZWN0CiAgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHRocm93RXhjZXB0aW9uKF9Jbl8gQlNUUiBleGNlcHRp
b25NZXNzYWdlLCBfT3V0XyBCT09MKiByZXN1bHQpCkBAIC0yNjEsNyArMjYxLDcgQEAgcHVibGlj
OgogICAgIC8vIElVbmtub3duCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFF1ZXJ5SW50ZXJmYWNlKF9Jbl8gUkVGSUlEIHJpaWQsIF9DT01fT3V0cHRyXyB2b2lkKiogcHB2
T2JqZWN0KTsKICAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIEFkZFJlZigpIHsg
cmV0dXJuIERPTU5vZGU6OkFkZFJlZigpOyB9Ci0gICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RD
QUxMVFlQRSBSZWxlYXNlKHZvaWQpIHsgcmV0dXJuIERPTU5vZGU6OlJlbGVhc2UoKTsgfQorICAg
IHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSgpIHsgcmV0dXJuIERPTU5v
ZGU6OlJlbGVhc2UoKTsgfQogCiAgICAgLy8gSVdlYlNjcmlwdE9iamVjdAogICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB0aHJvd0V4Y2VwdGlvbihfSW5fIEJTVFIgZXhjZXB0
aW9uTWVzc2FnZSwgX091dF8gQk9PTCogcmVzdWx0KQpAQCAtNTY1LDcgKzU2NSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBJVW5rbm93bgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBRdWVyeUludGVyZmFjZShfSW5fIFJFRklJRCByaWlkLCBfQ09NX091dHB0cl8gdm9pZCoqIHBw
dk9iamVjdCk7CiAgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYoKSB7
IHJldHVybiBET01Ob2RlOjpBZGRSZWYoKTsgfQotICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9E
Q0FMTFRZUEUgUmVsZWFzZSh2b2lkKSB7IHJldHVybiBET01Ob2RlOjpSZWxlYXNlKCk7IH0KKyAg
ICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2UoKSB7IHJldHVybiBET01O
b2RlOjpSZWxlYXNlKCk7IH0KIAogICAgIC8vIElXZWJTY3JpcHRPYmplY3QKICAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdGhyb3dFeGNlcHRpb24oX0luXyBCU1RSIGV4Y2Vw
dGlvbk1lc3NhZ2UsIF9PdXRfIEJPT0wqIHJlc3VsdCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2lu
L0RPTUV2ZW50c0NsYXNzZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0RP
TUV2ZW50c0NsYXNzZXMuY3BwCShyZXZpc2lvbiAxODg2NzIpCisrKyBTb3VyY2UvV2ViS2l0L3dp
bi9ET01FdmVudHNDbGFzc2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA3LDcgKzIwNyw3IEBA
IEhSRVNVTFQgRE9NRXZlbnQ6OnN0b3BQcm9wYWdhdGlvbigpCiAgICAgcmV0dXJuIEVfTk9USU1Q
TDsKIH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01FdmVudDo6cHJldmVudERlZmF1
bHQoKQorSFJFU1VMVCBET01FdmVudDo6cHJldmVudERlZmF1bHQoKQogewogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBFX05PVElNUEw7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L3dpbi9ET01FdmVudHNDbGFzc2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4v
RE9NRXZlbnRzQ2xhc3Nlcy5oCShyZXZpc2lvbiAxODg2NzIpCisrKyBTb3VyY2UvV2ViS2l0L3dp
bi9ET01FdmVudHNDbGFzc2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgcHVi
bGljOgogICAgIC8vIElVbmtub3duCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIFF1ZXJ5SW50ZXJmYWNlKF9Jbl8gUkVGSUlEIHJpaWQsIF9DT01fT3V0cHRyXyB2b2lkKiog
cHB2T2JqZWN0KTsKICAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIEFkZFJlZigp
IHsgcmV0dXJuIERPTU9iamVjdDo6QWRkUmVmKCk7IH0KLSAgICB2aXJ0dWFsIFVMT05HIFNURE1F
VEhPRENBTExUWVBFIFJlbGVhc2Uodm9pZCkgeyByZXR1cm4gRE9NT2JqZWN0OjpSZWxlYXNlKCk7
IH0KKyAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2UoKSB7IHJldHVy
biBET01PYmplY3Q6OlJlbGVhc2UoKTsgfQogCiAgICAgLy8gSVdlYlNjcmlwdE9iamVjdAogICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB0aHJvd0V4Y2VwdGlvbihfSW5fIEJT
VFIgZXhjZXB0aW9uTWVzc2FnZSwgX091dF8gQk9PTCogcmVzdWx0KQpAQCAtMTE4LDcgKzExOCw3
IEBAIHB1YmxpYzoKICAgICAvLyBJVW5rbm93bgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBRdWVyeUludGVyZmFjZShfSW5fIFJFRklJRCByaWlkLCBfQ09NX091dHB0cl8g
dm9pZCoqIHBwdk9iamVjdCk7CiAgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBB
ZGRSZWYoKSB7IHJldHVybiBET01PYmplY3Q6OkFkZFJlZigpOyB9Ci0gICAgdmlydHVhbCBVTE9O
RyBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKHZvaWQpIHsgcmV0dXJuIERPTU9iamVjdDo6UmVs
ZWFzZSgpOyB9CisgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKCkg
eyByZXR1cm4gRE9NT2JqZWN0OjpSZWxlYXNlKCk7IH0KIAogICAgIC8vIElXZWJTY3JpcHRPYmpl
Y3QKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdGhyb3dFeGNlcHRpb24o
X0luXyBCU1RSIGV4Y2VwdGlvbk1lc3NhZ2UsIF9PdXRfIEJPT0wqIHJlc3VsdCkKQEAgLTE4OCw3
ICsxODgsNyBAQCBwdWJsaWM6CiAgICAgLy8gSVVua25vd24KICAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoX0luXyBSRUZJSUQgcmlpZCwgX0NPTV9P
dXRwdHJfIHZvaWQqKiBwcHZPYmplY3QpOwogICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FM
TFRZUEUgQWRkUmVmKCkgeyByZXR1cm4gRE9NRXZlbnQ6OkFkZFJlZigpOyB9Ci0gICAgdmlydHVh
bCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKHZvaWQpIHsgcmV0dXJuIERPTUV2ZW50
OjpSZWxlYXNlKCk7IH0KKyAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVh
c2UoKSB7IHJldHVybiBET01FdmVudDo6UmVsZWFzZSgpOyB9CiAKICAgICAvLyBJV2ViU2NyaXB0
T2JqZWN0CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHRocm93RXhjZXB0
aW9uKF9Jbl8gQlNUUiBleGNlcHRpb25NZXNzYWdlLCBfT3V0XyBCT09MKiByZXN1bHQpCkBAIC0z
MDMsNyArMzAzLDcgQEAgcHVibGljOgogICAgIC8vIElVbmtub3duCiAgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIFF1ZXJ5SW50ZXJmYWNlKF9Jbl8gUkVGSUlEIHJpaWQsIF9D
T01fT3V0cHRyXyB2b2lkKiogcHB2T2JqZWN0KTsKICAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhP
RENBTExUWVBFIEFkZFJlZigpIHsgcmV0dXJuIERPTVVJRXZlbnQ6OkFkZFJlZigpOyB9Ci0gICAg
dmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKHZvaWQpIHsgcmV0dXJuIERP
TVVJRXZlbnQ6OlJlbGVhc2UoKTsgfQorICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZ
UEUgUmVsZWFzZSgpIHsgcmV0dXJuIERPTVVJRXZlbnQ6OlJlbGVhc2UoKTsgfQogCiAgICAgLy8g
SVdlYlNjcmlwdE9iamVjdAogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB0
aHJvd0V4Y2VwdGlvbihfSW5fIEJTVFIgZXhjZXB0aW9uTWVzc2FnZSwgX091dF8gQk9PTCogcmVz
dWx0KQpAQCAtNDY5LDcgKzQ2OSw3IEBAIHB1YmxpYzoKICAgICAvLyBJVW5rbm93bgogICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBRdWVyeUludGVyZmFjZShfSW5fIFJFRklJ
RCByaWlkLCBfQ09NX091dHB0cl8gdm9pZCoqIHBwdk9iamVjdCk7CiAgICAgdmlydHVhbCBVTE9O
RyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYoKSB7IHJldHVybiBET01VSUV2ZW50OjpBZGRSZWYo
KTsgfQotICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSh2b2lkKSB7
IHJldHVybiBET01VSUV2ZW50OjpSZWxlYXNlKCk7IH0KKyAgICB2aXJ0dWFsIFVMT05HIFNURE1F
VEhPRENBTExUWVBFIFJlbGVhc2UoKSB7IHJldHVybiBET01VSUV2ZW50OjpSZWxlYXNlKCk7IH0K
IAogICAgIC8vIElXZWJTY3JpcHRPYmplY3QKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgdGhyb3dFeGNlcHRpb24oX0luXyBCU1RSIGV4Y2VwdGlvbk1lc3NhZ2UsIF9PdXRf
IEJPT0wqIHJlc3VsdCkKQEAgLTc1Nyw3ICs3NTcsNyBAQCBwdWJsaWM6CiAgICAgLy8gSVVua25v
d24KICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZhY2Uo
X0luXyBSRUZJSUQgcmlpZCwgX0NPTV9PdXRwdHJfIHZvaWQqKiBwcHZPYmplY3QpOwogICAgIHZp
cnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKCkgeyByZXR1cm4gRE9NRXZlbnQ6
OkFkZFJlZigpOyB9Ci0gICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNl
KHZvaWQpIHsgcmV0dXJuIERPTUV2ZW50OjpSZWxlYXNlKCk7IH0KKyAgICB2aXJ0dWFsIFVMT05H
IFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2UoKSB7IHJldHVybiBET01FdmVudDo6UmVsZWFzZSgp
OyB9CiAKICAgICAvLyBJV2ViU2NyaXB0T2JqZWN0CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHRocm93RXhjZXB0aW9uKF9Jbl8gQlNUUiBleGNlcHRpb25NZXNzYWdlLCBf
T3V0XyBCT09MKiByZXN1bHQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9ET01IVE1MQ2xhc3Nl
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0RPTUhUTUxDbGFzc2VzLmgJKHJl
dmlzaW9uIDE4ODY3MikKKysrIFNvdXJjZS9XZWJLaXQvd2luL0RPTUhUTUxDbGFzc2VzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEwNiw3ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgLy8gSVVua25vd24K
ICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoX0lu
XyBSRUZJSUQgcmlpZCwgX0NPTV9PdXRwdHJfIHZvaWQqKiBwcHZPYmplY3QpOwogICAgIHZpcnR1
YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgQWRkUmVmKCkgeyByZXR1cm4gRE9NT2JqZWN0OjpB
ZGRSZWYoKTsgfQotICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSh2
b2lkKSB7IHJldHVybiBET01PYmplY3Q6OlJlbGVhc2UoKTsgfQorICAgIHZpcnR1YWwgVUxPTkcg
U1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSgpIHsgcmV0dXJuIERPTU9iamVjdDo6UmVsZWFzZSgp
OyB9CiAKICAgICAvLyBJV2ViU2NyaXB0T2JqZWN0CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHRocm93RXhjZXB0aW9uKF9Jbl8gQlNUUiBleGNlcHRpb25NZXNzYWdlLCBf
T3V0XyBCT09MKiByZXN1bHQpCkBAIC00NzgsNyArNDc4LDcgQEAgcHVibGljOgogICAgIC8vIElV
bmtub3duCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFF1ZXJ5SW50ZXJm
YWNlKF9Jbl8gUkVGSUlEIHJpaWQsIF9DT01fT3V0cHRyXyB2b2lkKiogcHB2T2JqZWN0KTsKICAg
ICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIEFkZFJlZigpIHsgcmV0dXJuIERPTUVs
ZW1lbnQ6OkFkZFJlZigpOyB9Ci0gICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBS
ZWxlYXNlKHZvaWQpIHsgcmV0dXJuIERPTUVsZW1lbnQ6OlJlbGVhc2UoKTsgfQorICAgIHZpcnR1
YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSgpIHsgcmV0dXJuIERPTUVsZW1lbnQ6
OlJlbGVhc2UoKTsgfQogCiAgICAgLy8gSVdlYlNjcmlwdE9iamVjdAogICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSB0aHJvd0V4Y2VwdGlvbihfSW5fIEJTVFIgZXhjZXB0aW9u
TWVzc2FnZSwgX091dF8gQk9PTCogcmVzdWx0KQpAQCAtNzg1LDcgKzc4NSw3IEBAIHB1YmxpYzoK
ICAgICAvLyBJVW5rbm93bgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBR
dWVyeUludGVyZmFjZShfSW5fIFJFRklJRCByaWlkLCBfQ09NX091dHB0cl8gdm9pZCoqIHBwdk9i
amVjdCk7CiAgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYoKSB7IHJl
dHVybiBET01IVE1MRWxlbWVudDo6QWRkUmVmKCk7IH0KLSAgICB2aXJ0dWFsIFVMT05HIFNURE1F
VEhPRENBTExUWVBFIFJlbGVhc2Uodm9pZCkgeyByZXR1cm4gRE9NSFRNTEVsZW1lbnQ6OlJlbGVh
c2UoKTsgfQorICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSgpIHsg
cmV0dXJuIERPTUhUTUxFbGVtZW50OjpSZWxlYXNlKCk7IH0KIAogICAgIC8vIElXZWJTY3JpcHRP
YmplY3QKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdGhyb3dFeGNlcHRp
b24oX0luXyBCU1RSIGV4Y2VwdGlvbk1lc3NhZ2UsIF9PdXRfIEJPT0wqIHJlc3VsdCkKQEAgLTEx
NjIsNyArMTE2Miw3IEBAIHB1YmxpYzoKICAgICAvLyBJVW5rbm93bgogICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBRdWVyeUludGVyZmFjZShfSW5fIFJFRklJRCByaWlkLCBf
Q09NX091dHB0cl8gdm9pZCoqIHBwdk9iamVjdCk7CiAgICAgdmlydHVhbCBVTE9ORyBTVERNRVRI
T0RDQUxMVFlQRSBBZGRSZWYoKSB7IHJldHVybiBET01IVE1MRWxlbWVudDo6QWRkUmVmKCk7IH0K
LSAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2Uodm9pZCkgeyByZXR1
cm4gRE9NSFRNTEVsZW1lbnQ6OlJlbGVhc2UoKTsgfQorICAgIHZpcnR1YWwgVUxPTkcgU1RETUVU
SE9EQ0FMTFRZUEUgUmVsZWFzZSgpIHsgcmV0dXJuIERPTUhUTUxFbGVtZW50OjpSZWxlYXNlKCk7
IH0KIAogICAgIC8vIElXZWJTY3JpcHRPYmplY3QKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgdGhyb3dFeGNlcHRpb24oX0luXyBCU1RSIGV4Y2VwdGlvbk1lc3NhZ2UsIF9P
dXRfIEJPT0wqIHJlc3VsdCkKQEAgLTE1NDksNyArMTU0OSw3IEBAIHB1YmxpYzoKICAgICAvLyBJ
VW5rbm93bgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBRdWVyeUludGVy
ZmFjZShfSW5fIFJFRklJRCByaWlkLCBfQ09NX091dHB0cl8gdm9pZCoqIHBwdk9iamVjdCk7CiAg
ICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYoKSB7IHJldHVybiBET01I
VE1MRWxlbWVudDo6QWRkUmVmKCk7IH0KLSAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExU
WVBFIFJlbGVhc2Uodm9pZCkgeyByZXR1cm4gRE9NSFRNTEVsZW1lbnQ6OlJlbGVhc2UoKTsgfQor
ICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSgpIHsgcmV0dXJuIERP
TUhUTUxFbGVtZW50OjpSZWxlYXNlKCk7IH0KIAogICAgIC8vIElXZWJTY3JpcHRPYmplY3QKICAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdGhyb3dFeGNlcHRpb24oX0luXyBC
U1RSIGV4Y2VwdGlvbk1lc3NhZ2UsIF9PdXRfIEJPT0wqIHJlc3VsdCkKQEAgLTE5MjYsNyArMTky
Niw3IEBAIHB1YmxpYzoKICAgICAvLyBJVW5rbm93bgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBRdWVyeUludGVyZmFjZShfSW5fIFJFRklJRCByaWlkLCBfQ09NX091dHB0
cl8gdm9pZCoqIHBwdk9iamVjdCk7CiAgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQ
RSBBZGRSZWYoKSB7IHJldHVybiBET01IVE1MRWxlbWVudDo6QWRkUmVmKCk7IH0KLSAgICB2aXJ0
dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2Uodm9pZCkgeyByZXR1cm4gRE9NSFRN
TEVsZW1lbnQ6OlJlbGVhc2UoKTsgfQorICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZ
UEUgUmVsZWFzZSgpIHsgcmV0dXJuIERPTUhUTUxFbGVtZW50OjpSZWxlYXNlKCk7IH0KIAogICAg
IC8vIElXZWJTY3JpcHRPYmplY3QKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgdGhyb3dFeGNlcHRpb24oX0luXyBCU1RSIGV4Y2VwdGlvbk1lc3NhZ2UsIF9PdXRfIEJPT0wq
IHJlc3VsdCkKQEAgLTIzNDUsNyArMjM0NSw3IEBAIHB1YmxpYzoKICAgICAvLyBJVW5rbm93bgog
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBRdWVyeUludGVyZmFjZShfSW5f
IFJFRklJRCByaWlkLCBfQ09NX091dHB0cl8gdm9pZCoqIHBwdk9iamVjdCk7CiAgICAgdmlydHVh
bCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYoKSB7IHJldHVybiBET01IVE1MRWxlbWVu
dDo6QWRkUmVmKCk7IH0KLSAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVh
c2Uodm9pZCkgeyByZXR1cm4gRE9NSFRNTEVsZW1lbnQ6OlJlbGVhc2UoKTsgfQorICAgIHZpcnR1
YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSgpIHsgcmV0dXJuIERPTUhUTUxFbGVt
ZW50OjpSZWxlYXNlKCk7IH0KIAogICAgIC8vIElXZWJTY3JpcHRPYmplY3QKICAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdGhyb3dFeGNlcHRpb24oX0luXyBCU1RSIGV4Y2Vw
dGlvbk1lc3NhZ2UsIF9PdXRfIEJPT0wqIHJlc3VsdCkKQEAgLTI3MzMsNyArMjczMyw3IEBAIHB1
YmxpYzoKICAgICAvLyBJVW5rbm93bgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBRdWVyeUludGVyZmFjZShfSW5fIFJFRklJRCByaWlkLCBfQ09NX091dHB0cl8gdm9pZCoq
IHBwdk9iamVjdCk7CiAgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYo
KSB7IHJldHVybiBET01IVE1MRWxlbWVudDo6QWRkUmVmKCk7IH0KLSAgICB2aXJ0dWFsIFVMT05H
IFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2Uodm9pZCkgeyByZXR1cm4gRE9NSFRNTEVsZW1lbnQ6
OlJlbGVhc2UoKTsgfQorICAgIHZpcnR1YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFz
ZSgpIHsgcmV0dXJuIERPTUhUTUxFbGVtZW50OjpSZWxlYXNlKCk7IH0KIAogICAgIC8vIElXZWJT
Y3JpcHRPYmplY3QKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdGhyb3dF
eGNlcHRpb24oX0luXyBCU1RSIGV4Y2VwdGlvbk1lc3NhZ2UsIF9PdXRfIEJPT0wqIHJlc3VsdCkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL01lbW9yeVN0cmVhbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC93aW4vTWVtb3J5U3RyZWFtLmNwcAkocmV2aXNpb24gMTg4NjcyKQorKysg
U291cmNlL1dlYktpdC93aW4vTWVtb3J5U3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDA3LCAyMDE1IEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMyLDkgKzMyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAvLyBNZW1vcnlT
dHJlYW0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKIE1lbW9yeVN0cmVhbTo6TWVtb3J5U3RyZWFtKFBhc3NSZWZQdHI8U2hh
cmVkQnVmZmVyPiBidWZmZXIpCi0gICAgOiBtX3JlZkNvdW50KDApCi0gICAgLCBtX2J1ZmZlcihi
dWZmZXIpCi0gICAgLCBtX3BvcygwKQorICAgIDogbV9idWZmZXIoYnVmZmVyKQogewogICAgIGdD
bGFzc0NvdW50Kys7CiAgICAgZ0NsYXNzTmFtZUNvdW50KCkuYWRkKCJNZW1vcnlTdHJlYW0iKTsK
QEAgLTcxLDEyICs2OSwxMiBAQCBIUkVTVUxUIE1lbW9yeVN0cmVhbTo6UXVlcnlJbnRlcmZhY2Uo
X0luCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLVVMT05HIFNURE1FVEhPRENBTExUWVBFIE1lbW9y
eVN0cmVhbTo6QWRkUmVmKCkKK1VMT05HIE1lbW9yeVN0cmVhbTo6QWRkUmVmKCkKIHsKICAgICBy
ZXR1cm4gKyttX3JlZkNvdW50OwogfQogCi1VTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBNZW1vcnlT
dHJlYW06OlJlbGVhc2Uodm9pZCkKK1VMT05HIE1lbW9yeVN0cmVhbTo6UmVsZWFzZSgpCiB7CiAg
ICAgVUxPTkcgbmV3UmVmID0gLS1tX3JlZkNvdW50OwogICAgIGlmICghbmV3UmVmKQpAQCAtODcs
MTAgKzg1LDcgQEAgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgTWVtb3J5U3RyZWFtOjpSZQogCiAv
LyBJU2VxdWVudGlhbFN0cmVhbSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTWVtb3J5
U3RyZWFtOjpSZWFkKCAKLSAgICAvKiBbbGVuZ3RoX2lzXVtzaXplX2lzXVtvdXRdICovIHZvaWQq
IHB2LAotICAgIC8qIFtpbl0gKi8gVUxPTkcgY2IsCi0gICAgLyogW291dF0gKi8gVUxPTkcqIHBj
YlJlYWQpCitIUkVTVUxUIE1lbW9yeVN0cmVhbTo6UmVhZCgvKiBbbGVuZ3RoX2lzXVtzaXplX2lz
XVtvdXRdICovIHZvaWQqIHB2LCAvKiBbaW5dICovIFVMT05HIGNiLCAvKiBbb3V0XSAqLyBVTE9O
RyogcGNiUmVhZCkKIHsKICAgICAqcGNiUmVhZCA9IDA7CiAKQEAgLTExMSwxMCArMTA2LDcgQEAg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBNZW1vcnlTdHJlYW06OgogICAgIHJldHVybiBTX09L
OwogfQogCi1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIE1lbW9yeVN0cmVhbTo6V3JpdGUoIAot
ICAgIC8qIFtzaXplX2lzXVtpbl0gKi8gY29uc3Qgdm9pZCogLypwdiovLAotICAgIC8qIFtpbl0g
Ki8gVUxPTkcgLypjYiovLAotICAgIC8qIFtvdXRdICovIFVMT05HKiAvKnBjYldyaXR0ZW4qLykK
K0hSRVNVTFQgTWVtb3J5U3RyZWFtOjpXcml0ZSgvKiBbc2l6ZV9pc11baW5dICovIGNvbnN0IHZv
aWQqIC8qcHYqLywgLyogW2luXSAqLyBVTE9ORyAvKmNiKi8sIC8qIFtvdXRdICovIFVMT05HKiAv
KnBjYldyaXR0ZW4qLykKIHsKICAgICAvLyB3ZSB1c2UgdGhpcyBmb3IgcmVhZC1vbmx5IHN0cmVh
bXMKICAgICByZXR1cm4gU1RHX0VfQUNDRVNTREVOSUVEOwpAQCAtMTIyLDEwICsxMTQsNyBAQCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIE1lbW9yeVN0cmVhbTo6CiAKIC8vIElTdHJlYW0gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBNZW1vcnlTdHJlYW06OlNlZWso
IAotICAgIC8qIFtpbl0gKi8gTEFSR0VfSU5URUdFUiBkbGliTW92ZSwKLSAgICAvKiBbaW5dICov
IERXT1JEIGR3T3JpZ2luLAotICAgIC8qIFtvdXRdICovIFVMQVJHRV9JTlRFR0VSKiBwbGliTmV3
UG9zaXRpb24pCitIUkVTVUxUIE1lbW9yeVN0cmVhbTo6U2VlaygvKiBbaW5dICovIExBUkdFX0lO
VEVHRVIgZGxpYk1vdmUsIC8qIFtpbl0gKi8gRFdPUkQgZHdPcmlnaW4sIC8qIFtvdXRdICovIFVM
QVJHRV9JTlRFR0VSKiBwbGliTmV3UG9zaXRpb24pCiB7CiAgICAgaWYgKCFtX2J1ZmZlcikKICAg
ICAgICAgcmV0dXJuIEVfRkFJTDsKQEAgLTE3NCwxNyArMTYzLDEyIEBAIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgTWVtb3J5U3RyZWFtOjoKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBNZW1vcnlTdHJlYW06OlNldFNpemUoIAotICAgIC8qIFtpbl0g
Ki8gVUxBUkdFX0lOVEVHRVIgLypsaWJOZXdTaXplKi8pCitIUkVTVUxUIE1lbW9yeVN0cmVhbTo6
U2V0U2l6ZShVTEFSR0VfSU5URUdFUiAvKmxpYk5ld1NpemUqLykKIHsKICAgICByZXR1cm4gU1RH
X0VfSU5WQUxJREZVTkNUSU9OOwogfQogCi1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIE1lbW9y
eVN0cmVhbTo6Q29weVRvKCAKLSAgICAvKiBbdW5pcXVlXVtpbl0gKi8gSVN0cmVhbSogcHN0bSwK
LSAgICAvKiBbaW5dICovIFVMQVJHRV9JTlRFR0VSIGNiLAotICAgIC8qIFtvdXRdICovIFVMQVJH
RV9JTlRFR0VSKiBwY2JSZWFkLAotICAgIC8qIFtvdXRdICovIFVMQVJHRV9JTlRFR0VSKiBwY2JX
cml0dGVuKQorSFJFU1VMVCBNZW1vcnlTdHJlYW06OkNvcHlUbygvKiBbdW5pcXVlXVtpbl0gKi8g
SVN0cmVhbSogcHN0bSwgLyogW2luXSAqLyBVTEFSR0VfSU5URUdFUiBjYiwgLyogW291dF0gKi8g
VUxBUkdFX0lOVEVHRVIqIHBjYlJlYWQsIC8qIFtvdXRdICovIFVMQVJHRV9JTlRFR0VSKiBwY2JX
cml0dGVuKQogewogICAgIGlmICghbV9idWZmZXIpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CkBA
IC0yMDgsMzYgKzE5MiwyNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIE1lbW9yeVN0cmVh
bTo6CiAgICAgcmV0dXJuIGhyOwogfQogCi1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIE1lbW9y
eVN0cmVhbTo6Q29tbWl0KCAKLSAgICAvKiBbaW5dICovIERXT1JEIC8qZ3JmQ29tbWl0RmxhZ3Mq
LykKK0hSRVNVTFQgTWVtb3J5U3RyZWFtOjpDb21taXQoRFdPUkQgLypncmZDb21taXRGbGFncyov
KQogewogICAgIHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIE1l
bW9yeVN0cmVhbTo6UmV2ZXJ0KCB2b2lkKQorSFJFU1VMVCBNZW1vcnlTdHJlYW06OlJldmVydCgp
CiB7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTWVt
b3J5U3RyZWFtOjpMb2NrUmVnaW9uKCAKLSAgICAvKiBbaW5dICovIFVMQVJHRV9JTlRFR0VSIC8q
bGliT2Zmc2V0Ki8sCi0gICAgLyogW2luXSAqLyBVTEFSR0VfSU5URUdFUiAvKmNiKi8sCi0gICAg
LyogW2luXSAqLyBEV09SRCAvKmR3TG9ja1R5cGUqLykKK0hSRVNVTFQgTWVtb3J5U3RyZWFtOjpM
b2NrUmVnaW9uKFVMQVJHRV9JTlRFR0VSIC8qbGliT2Zmc2V0Ki8sIFVMQVJHRV9JTlRFR0VSIC8q
Y2IqLywgRFdPUkQgLypkd0xvY2tUeXBlKi8pCiB7CiAgICAgcmV0dXJuIFNUR19FX0lOVkFMSURG
VU5DVElPTjsKIH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBNZW1vcnlTdHJlYW06OlVu
bG9ja1JlZ2lvbiggCi0gICAgLyogW2luXSAqLyBVTEFSR0VfSU5URUdFUiAvKmxpYk9mZnNldCov
LAotICAgIC8qIFtpbl0gKi8gVUxBUkdFX0lOVEVHRVIgLypjYiovLAotICAgIC8qIFtpbl0gKi8g
RFdPUkQgLypkd0xvY2tUeXBlKi8pCitIUkVTVUxUIE1lbW9yeVN0cmVhbTo6VW5sb2NrUmVnaW9u
KFVMQVJHRV9JTlRFR0VSIC8qbGliT2Zmc2V0Ki8sIFVMQVJHRV9JTlRFR0VSIC8qY2IqLywgRFdP
UkQgLypkd0xvY2tUeXBlKi8pCiB7CiAgICAgcmV0dXJuIFNUR19FX0lOVkFMSURGVU5DVElPTjsK
IH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBNZW1vcnlTdHJlYW06OlN0YXQoIAotICAg
IC8qIFtvdXRdICovIFNUQVRTVEcqIHBzdGF0c3RnLAotICAgIC8qIFtpbl0gKi8gRFdPUkQgLypn
cmZTdGF0RmxhZyovKQorSFJFU1VMVCBNZW1vcnlTdHJlYW06OlN0YXQoX091dF8gU1RBVFNURyog
cHN0YXRzdGcsIERXT1JEIC8qZ3JmU3RhdEZsYWcqLykKIHsKICAgICBpZiAoIXBzdGF0c3RnKQog
ICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwpAQCAtMjUxLDggKzIyNiw3IEBAIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgTWVtb3J5U3RyZWFtOjoKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBNZW1vcnlTdHJlYW06OkNsb25lKCAKLSAgICAvKiBbb3V0
XSAqLyBJU3RyZWFtKiogcHBzdG0pCitIUkVTVUxUIE1lbW9yeVN0cmVhbTo6Q2xvbmUoX0NPTV9P
dXRwdHJfIElTdHJlYW0qKiBwcHN0bSkKIHsKICAgICBNZW1vcnlTdHJlYW06OmNyZWF0ZUluc3Rh
bmNlKG1fYnVmZmVyKS5jb3B5UmVmVG8ocHBzdG0pOwogICAgIC8vIEZJWE1FOiBNU0ROIHNheXMg
d2Ugc2hvdWxkIGJlIHJldHVybmluZyBTVEdfRV9JTlNVRkZJQ0lFTlRfTUVNT1JZIGluc3RlYWQg
b2YgRV9PVVRPRk1FTU9SWSBoZXJlLgpJbmRleDogU291cmNlL1dlYktpdC93aW4vTWVtb3J5U3Ry
ZWFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vTWVtb3J5U3RyZWFtLmgJKHJl
dmlzaW9uIDE4ODY3MikKKysrIFNvdXJjZS9XZWJLaXQvd2luL01lbW9yeVN0cmVhbS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2
LTIwMDcsIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjUsOCArNjUsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8q
IFtpbl0gKi8gRFdPUkQgZHdPcmlnaW4sCiAgICAgICAgIC8qIFtvdXRdICovIFVMQVJHRV9JTlRF
R0VSKiBwbGliTmV3UG9zaXRpb24pOwogICAgIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBTZXRTaXplKCAKLSAgICAgICAgLyogW2luXSAqLyBVTEFSR0VfSU5URUdFUiBs
aWJOZXdTaXplKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgU2V0U2l6
ZShVTEFSR0VfSU5URUdFUiBsaWJOZXdTaXplKTsKICAgICAKICAgICB2aXJ0dWFsIC8qIFtsb2Nh
bF0gKi8gSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDb3B5VG8oIAogICAgICAgICAvKiBbdW5p
cXVlXVtpbl0gKi8gSVN0cmVhbSogcHN0bSwKQEAgLTc0LDMyICs3MywxNyBAQCBwdWJsaWM6CiAg
ICAgICAgIC8qIFtvdXRdICovIFVMQVJHRV9JTlRFR0VSKiBwY2JSZWFkLAogICAgICAgICAvKiBb
b3V0XSAqLyBVTEFSR0VfSU5URUdFUiogcGNiV3JpdHRlbik7CiAgICAgCi0gICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENvbW1pdCggCi0gICAgICAgIC8qIFtpbl0gKi8gRFdP
UkQgZ3JmQ29tbWl0RmxhZ3MpOwotICAgIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBSZXZlcnQoIHZvaWQpOwotICAgIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBMb2NrUmVnaW9uKCAKLSAgICAgICAgLyogW2luXSAqLyBVTEFSR0VfSU5URUdF
UiBsaWJPZmZzZXQsCi0gICAgICAgIC8qIFtpbl0gKi8gVUxBUkdFX0lOVEVHRVIgY2IsCi0gICAg
ICAgIC8qIFtpbl0gKi8gRFdPUkQgZHdMb2NrVHlwZSk7Ci0gICAgCi0gICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIFVubG9ja1JlZ2lvbiggCi0gICAgICAgIC8qIFtpbl0gKi8g
VUxBUkdFX0lOVEVHRVIgbGliT2Zmc2V0LAotICAgICAgICAvKiBbaW5dICovIFVMQVJHRV9JTlRF
R0VSIGNiLAotICAgICAgICAvKiBbaW5dICovIERXT1JEIGR3TG9ja1R5cGUpOwotICAgIAotICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBTdGF0KCAKLSAgICAgICAgLyogW291
dF0gKi8gU1RBVFNURyogcHN0YXRzdGcsCi0gICAgICAgIC8qIFtpbl0gKi8gRFdPUkQgZ3JmU3Rh
dEZsYWcpOwotICAgIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDbG9u
ZSggCi0gICAgICAgIC8qIFtvdXRdICovIElTdHJlYW0qKiBwcHN0bSk7CisgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENvbW1pdChEV09SRCBncmZDb21taXRGbGFncyk7Cisg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFJldmVydCgpOworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBMb2NrUmVnaW9uKFVMQVJHRV9JTlRFR0VSIGxp
Yk9mZnNldCwgVUxBUkdFX0lOVEVHRVIgY2IsIERXT1JEIGR3TG9ja1R5cGUpOworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBVbmxvY2tSZWdpb24oVUxBUkdFX0lOVEVHRVIg
bGliT2Zmc2V0LCBVTEFSR0VfSU5URUdFUiBjYiwgRFdPUkQgZHdMb2NrVHlwZSk7CisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFN0YXQoX091dF8gU1RBVFNURyosIERXT1JE
IGdyZlN0YXRGbGFnKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQ2xv
bmUoX0NPTV9PdXRwdHJfIElTdHJlYW0qKiBwcHN0bSk7CiAKIHByb3RlY3RlZDoKLSAgICBVTE9O
RyBtX3JlZkNvdW50OwogICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IG1fYnVmZmVy
OwotICAgIHNpemVfdCBtX3BvczsKKyAgICBzaXplX3QgbV9wb3MgeyAwIH07CisgICAgVUxPTkcg
bV9yZWZDb3VudCB7IDAgfTsKIH07CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC93aW4v
V2ViQXBwbGljYXRpb25DYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4v
V2ViQXBwbGljYXRpb25DYWNoZS5jcHAJKHJldmlzaW9uIDE4ODY3MikKKysrIFNvdXJjZS9XZWJL
aXQvd2luL1dlYkFwcGxpY2F0aW9uQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4
Niw3IEBAIFVMT05HIFdlYkFwcGxpY2F0aW9uQ2FjaGU6OkFkZFJlZigpCiAgICAgcmV0dXJuICsr
bV9yZWZDb3VudDsKIH0KIAotVUxPTkcgV2ViQXBwbGljYXRpb25DYWNoZTo6UmVsZWFzZSh2b2lk
KQorVUxPTkcgV2ViQXBwbGljYXRpb25DYWNoZTo6UmVsZWFzZSgpCiB7CiAgICAgVUxPTkcgbmV3
UmVmID0gLS1tX3JlZkNvdW50OwogICAgIGlmICghbmV3UmVmKQpJbmRleDogU291cmNlL1dlYktp
dC93aW4vV2ViRG93bmxvYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dl
YkRvd25sb2FkLmNwcAkocmV2aXNpb24gMTg4NjcyKQorKysgU291cmNlL1dlYktpdC93aW4vV2Vi
RG93bmxvYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MCw3ICs5MCw3IEBAIFdlYkRvd25sb2Fk
KiBXZWJEb3dubG9hZDo6Y3JlYXRlSW5zdGFuY2UKIAogLy8gSVVua25vd24gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
Ci1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRvd25sb2FkOjpRdWVyeUludGVyZmFjZShf
SW5fIFJFRklJRCByaWlkLCBfQ09NX091dHB0cl8gdm9pZCoqIHBwdk9iamVjdCkKK0hSRVNVTFQg
V2ViRG93bmxvYWQ6OlF1ZXJ5SW50ZXJmYWNlKF9Jbl8gUkVGSUlEIHJpaWQsIF9DT01fT3V0cHRy
XyB2b2lkKiogcHB2T2JqZWN0KQogewogICAgIGlmICghcHB2T2JqZWN0KQogICAgICAgICByZXR1
cm4gRV9QT0lOVEVSOwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViRG93bmxvYWRDdXJsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJEb3dubG9hZEN1cmwuY3BwCShy
ZXZpc2lvbiAxODg2NzIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJEb3dubG9hZEN1cmwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgV2ViRG93bmxvYWQ6OmluaXQo
Y29uc3QgVVJMJiB1cmwsIEkKIAogLy8gSVdlYkRvd25sb2FkIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZDo6aW5pdFdpdGhSZXF1ZXN0KAorSFJFU1VM
VCBXZWJEb3dubG9hZDo6aW5pdFdpdGhSZXF1ZXN0KAogICAgICAgICAvKiBbaW5dICovIElXZWJV
UkxSZXF1ZXN0KiByZXF1ZXN0LCAKICAgICAgICAgLyogW2luXSAqLyBJV2ViRG93bmxvYWREZWxl
Z2F0ZSogZGVsZWdhdGUpCiB7CkBAIC05Myw3ICs5Myw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViRG93bmxvYWQ6OmkKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZDo6aW5pdFRvUmVzdW1lV2l0aEJ1bmRsZSgKK0hSRVNV
TFQgV2ViRG93bmxvYWQ6OmluaXRUb1Jlc3VtZVdpdGhCdW5kbGUoCiAgICAgICAgIC8qIFtpbl0g
Ki8gQlNUUiBidW5kbGVQYXRoLCAKICAgICAgICAgLyogW2luXSAqLyBJV2ViRG93bmxvYWREZWxl
Z2F0ZSogZGVsZWdhdGUpCiB7CkBAIC0xMDEsNyArMTAxLDcgQEAgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBXZWJEb3dubG9hZDo6aQogICAgcmV0dXJuIEVfRkFJTDsKIH0KIAotSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZDo6c3RhcnQoKQorSFJFU1VMVCBXZWJEb3dubG9h
ZDo6c3RhcnQoKQogewogICAgIGlmICghbV9kb3dubG9hZCkKICAgICAgICAgcmV0dXJuIEVfRkFJ
TDsKQEAgLTExNSw3ICsxMTUsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRvd25s
b2FkOjpzCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
V2ViRG93bmxvYWQ6OmNhbmNlbCgpCitIUkVTVUxUIFdlYkRvd25sb2FkOjpjYW5jZWwoKQogewog
ICAgIGlmICghbV9kb3dubG9hZCkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKQEAgLTEyOSwxMyAr
MTI5LDEzIEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWQ6OmMKICAgICBy
ZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZDo6
Y2FuY2VsRm9yUmVzdW1lKCkKK0hSRVNVTFQgV2ViRG93bmxvYWQ6OmNhbmNlbEZvclJlc3VtZSgp
CiB7CiAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgcmV0dXJuIEVfRkFJTDsKIH0KIAotSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZDo6ZGVsZXRlc0ZpbGVVcG9uRmFpbHVyZSgK
K0hSRVNVTFQgV2ViRG93bmxvYWQ6OmRlbGV0ZXNGaWxlVXBvbkZhaWx1cmUoCiAgICAgICAgIC8q
IFtvdXQsIHJldHZhbF0gKi8gQk9PTCogcmVzdWx0KQogewogICAgIGlmICghbV9kb3dubG9hZCkK
QEAgLTE0NSw3ICsxNDUsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRvd25sb2Fk
OjpkCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2Vi
RG93bmxvYWQ6OnNldERlbGV0ZXNGaWxlVXBvbkZhaWx1cmUoCitIUkVTVUxUIFdlYkRvd25sb2Fk
OjpzZXREZWxldGVzRmlsZVVwb25GYWlsdXJlKAogICAgICAgICAvKiBbaW5dICovIEJPT0wgZGVs
ZXRlc0ZpbGVVcG9uRmFpbHVyZSkKIHsKICAgICBpZiAoIW1fZG93bmxvYWQpCkBAIC0xNTUsNyAr
MTU1LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9hZDo6cwogICAgIHJl
dHVybiBTX09LOwogfQogCi1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRvd25sb2FkOjpz
ZXREZXN0aW5hdGlvbigKK0hSRVNVTFQgV2ViRG93bmxvYWQ6OnNldERlc3RpbmF0aW9uKAogICAg
ICAgICAvKiBbaW5dICovIEJTVFIgcGF0aCwgCiAgICAgICAgIC8qIFtpbl0gKi8gQk9PTCBhbGxv
d092ZXJ3cml0ZSkKIHsKQEAgLTE3MCwyMSArMTcwLDIxIEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViRG93bmxvYWQ6OnMKIAogLy8gSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
U2VuZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJEb3dubG9h
ZDo6Y2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoCitIUkVTVUxUIFdlYkRvd25sb2FkOjpj
YW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgKICAgICAgICAgLyogW2luXSAqLyBJV2ViVVJM
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UqKQogewogICAgbm90SW1wbGVtZW50ZWQoKTsKICAgIHJl
dHVybiBFX0ZBSUw7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRG93bmxvYWQ6
OmNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgKK0hS
RVNVTFQgV2ViRG93bmxvYWQ6OmNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSgKICAgICAgICAgLyogW2luXSAqLyBJV2ViVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UqIGNoYWxsZW5nZSkKIHsKICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICByZXR1cm4g
RV9GQUlMOwogfQogCi1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkRvd25sb2FkOjp1c2VD
cmVkZW50aWFsKAorSFJFU1VMVCBXZWJEb3dubG9hZDo6dXNlQ3JlZGVudGlhbCgKICAgICAgICAg
LyogW2luXSAqLyBJV2ViVVJMQ3JlZGVudGlhbCogY3JlZGVudGlhbCwgCiAgICAgICAgIC8qIFtp
bl0gKi8gSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKiBjaGFsbGVuZ2UpCiB7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJFcnJvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC93aW4vV2ViRXJyb3IuY3BwCShyZXZpc2lvbiAxODg2NzIpCisrKyBTb3VyY2UvV2ViS2l0
L3dpbi9XZWJFcnJvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAgV2ViRXJy
b3IqIFdlYkVycm9yOjpjcmVhdGVJbnN0YW5jZSgpCiAKIC8vIElVbmtub3duIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJFcnJvcjo6UXVlcnlJbnRlcmZhY2UoX0lu
XyBSRUZJSUQgcmlpZCwgX0NPTV9PdXRwdHJfIHZvaWQqKiBwcHZPYmplY3QpCitIUkVTVUxUIFdl
YkVycm9yOjpRdWVyeUludGVyZmFjZShfSW5fIFJFRklJRCByaWlkLCBfQ09NX091dHB0cl8gdm9p
ZCoqIHBwdk9iamVjdCkKIHsKICAgICBpZiAoIXBwdk9iamVjdCkKICAgICAgICAgcmV0dXJuIEVf
UE9JTlRFUjsKQEAgLTE2NCw3ICsxNjQsNyBAQCBIUkVTVUxUIFdlYkVycm9yOjpsb2NhbGl6ZWRS
ZWNvdmVyeU9wdGlvCiAgICAgcmV0dXJuIEVfTk9USU1QTDsKIH0KICAgICAgICAgCi1IUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYkVycm9yOjpsb2NhbGl6ZWRSZWNvdmVyeVN1Z2dlc3Rpb24o
X19kZXJlZl9vcHRfb3V0IEJTVFIqIHJlc3VsdCkKK0hSRVNVTFQgV2ViRXJyb3I6OmxvY2FsaXpl
ZFJlY292ZXJ5U3VnZ2VzdGlvbihfX2RlcmVmX29wdF9vdXQgQlNUUiogcmVzdWx0KQogewogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIGlmICghcmVzdWx0KQpAQCAtMTczLDcgKzE3Myw3
IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRXJyb3I6OmxvY2EKICAgICByZXR1cm4g
RV9OT1RJTVBMOwogfQogICAgICAgIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJFcnJv
cjo6cmVjb3ZlckF0dGVtcHRlcihfX2RlcmVmX29wdF9vdXQgSVVua25vd24qKiByZXN1bHQpCitI
UkVTVUxUIFdlYkVycm9yOjpyZWNvdmVyQXR0ZW1wdGVyKF9fZGVyZWZfb3B0X291dCBJVW5rbm93
bioqIHJlc3VsdCkKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBpZiAoIXJlc3Vs
dCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAJKHJldmlzaW9uIDE4ODY3MikKKysrIFNvdXJj
ZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzk4LDcgKzM5OCw3
IEBAIFVMT05HIFdlYkZyYW1lOjpBZGRSZWYoKQogICAgIHJldHVybiArK21fcmVmQ291bnQ7CiB9
CiAKLVVMT05HIFdlYkZyYW1lOjpSZWxlYXNlKHZvaWQpCitVTE9ORyBXZWJGcmFtZTo6UmVsZWFz
ZSgpCiB7CiAgICAgVUxPTkcgbmV3UmVmID0gLS1tX3JlZkNvdW50OwogICAgIGlmICghbmV3UmVm
KQpAQCAtNzgzLDcgKzc4Myw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICsrbV9yZWZDb3Vu
dDsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2Uo
dm9pZCkKKyAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2UoKQogICAg
IHsKICAgICAgICAgVUxPTkcgbmV3UmVmID0gLS1tX3JlZkNvdW50OwogICAgICAgICBpZiAoIW5l
d1JlZikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVtLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5SXRlbS5jcHAJKHJldmlzaW9uIDE4
ODY3MikKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnlJdGVtLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzcxLDcgKzM3MSw3IEBAIEhSRVNVTFQgV2ViSGlzdG9yeUl0ZW06OnJlZGlyZWN0
VVJMcyhfQ08KIH0KIAogLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHJlbW92ZWQg
ZnJvbSB0aGUgSVdlYkhpc3RvcnlJdGVtIGludGVyZmFjZS4KLUhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViSGlzdG9yeUl0ZW06OnZpc2l0ZWRXaXRoVGl0bGUoX0luXyBCU1RSIHRpdGxlLCBC
T09MIGluY3JlYXNlVmlzaXRDb3VudCkKK0hSRVNVTFQgV2ViSGlzdG9yeUl0ZW06OnZpc2l0ZWRX
aXRoVGl0bGUoX0luXyBCU1RSIHRpdGxlLCBCT09MIGluY3JlYXNlVmlzaXRDb3VudCkKIHsKICAg
ICByZXR1cm4gRV9OT1RJTVBMOwogfQpAQCAtNTAxLDcgKzUwMSw3IEBAIEhSRVNVTFQgV2ViSGlz
dG9yeUl0ZW06OmFsdGVybmF0ZVRpdGxlKF8KICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBXZWJIaXN0b3J5SXRlbTo6aWNvbihfX2RlcmVmX29wdF9vdXQg
SEJJVE1BUCogaEJpdG1hcCkKK0hSRVNVTFQgV2ViSGlzdG9yeUl0ZW06Omljb24oX19kZXJlZl9v
cHRfb3V0IEhCSVRNQVAqIGhCaXRtYXApCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgaWYgKCFoQml0bWFwKQpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViSmF2YVNjcmlwdENv
bGxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViSmF2YVNjcmlw
dENvbGxlY3Rvci5jcHAJKHJldmlzaW9uIDE4ODY3MikKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dl
YkphdmFTY3JpcHRDb2xsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCwxMiArNzQsMTIg
QEAgSFJFU1VMVCBXZWJKYXZhU2NyaXB0Q29sbGVjdG9yOjpRdWVyeUludAogICAgIHJldHVybiBT
X09LOwogfQogCi1VTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBXZWJKYXZhU2NyaXB0Q29sbGVjdG9y
OjpBZGRSZWYoKQorVUxPTkcgV2ViSmF2YVNjcmlwdENvbGxlY3Rvcjo6QWRkUmVmKCkKIHsKICAg
ICByZXR1cm4gKyttX3JlZkNvdW50OwogfQogCi1VTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBXZWJK
YXZhU2NyaXB0Q29sbGVjdG9yOjpSZWxlYXNlKHZvaWQpCitVTE9ORyBXZWJKYXZhU2NyaXB0Q29s
bGVjdG9yOjpSZWxlYXNlKCkKIHsKICAgICBVTE9ORyBuZXdSZWYgPSAtLW1fcmVmQ291bnQ7CiAg
ICAgaWYgKCFuZXdSZWYpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRDbGFzc0ZhY3Rv
cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYktpdENsYXNzRmFjdG9y
eS5jcHAJKHJldmlzaW9uIDE4ODY3MikKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYktpdENsYXNz
RmFjdG9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcgQEAgVUxPTkcgV2ViS2l0
Q2xhc3NGYWN0b3J5OjpBZGRSZWYoKQogICAgIHJldHVybiArK21fcmVmQ291bnQ7CiB9CiAKLVVM
T05HIFdlYktpdENsYXNzRmFjdG9yeTo6UmVsZWFzZSh2b2lkKQorVUxPTkcgV2ViS2l0Q2xhc3NG
YWN0b3J5OjpSZWxlYXNlKCkKIHsKICAgICBVTE9ORyBuZXdSZWYgPSAtLW1fcmVmQ291bnQ7CiAg
ICAgaWYgKCFuZXdSZWYgJiYgIWdMb2NrQ291bnQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9X
ZWJOb3RpZmljYXRpb25DZW50ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2lu
L1dlYk5vdGlmaWNhdGlvbkNlbnRlci5jcHAJKHJldmlzaW9uIDE4ODY3MikKKysrIFNvdXJjZS9X
ZWJLaXQvd2luL1dlYk5vdGlmaWNhdGlvbkNlbnRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkw
LDEyICs5MCwxMiBAQCBIUkVTVUxUIFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6UXVlcnlJbnRlCiAg
ICAgcmV0dXJuIFNfT0s7CiB9CiAKLVVMT05HIFNURE1FVEhPRENBTExUWVBFIFdlYk5vdGlmaWNh
dGlvbkNlbnRlcjo6QWRkUmVmKCkKK1VMT05HIFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6QWRkUmVm
KCkKIHsKICAgICByZXR1cm4gKyttX3JlZkNvdW50OwogfQogCi1VTE9ORyBTVERNRVRIT0RDQUxM
VFlQRSBXZWJOb3RpZmljYXRpb25DZW50ZXI6OlJlbGVhc2UoKQorVUxPTkcgV2ViTm90aWZpY2F0
aW9uQ2VudGVyOjpSZWxlYXNlKCkKIHsKICAgICBVTE9ORyBuZXdSZWYgPSAtLW1fcmVmQ291bnQ7
CiAgICAgaWYgKCFuZXdSZWYpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNl
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3Bw
CShyZXZpc2lvbiAxODg2NzIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU0MSwxMiArNTQxLDEyIEBAIEhSRVNVTFQgV2ViUHJlZmVy
ZW5jZXM6OlF1ZXJ5SW50ZXJmYWNlKF8KICAgICByZXR1cm4gU19PSzsKIH0KIAotVUxPTkcgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OkFkZFJlZigpCitVTE9ORyBXZWJQcmVmZXJl
bmNlczo6QWRkUmVmKCkKIHsKICAgICByZXR1cm4gKyttX3JlZkNvdW50OwogfQogCi1VTE9ORyBT
VERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6UmVsZWFzZSh2b2lkKQorVUxPTkcgV2Vi
UHJlZmVyZW5jZXM6OlJlbGVhc2UoKQogewogICAgIFVMT05HIG5ld1JlZiA9IC0tbV9yZWZDb3Vu
dDsKICAgICBpZiAoIW5ld1JlZikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYlVSTEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyQ3VybC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC93aW4vV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXJDdXJsLmNwcAkocmV2
aXNpb24gMTg4NjcyKQorKysgU291cmNlL1dlYktpdC93aW4vV2ViVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VTZW5kZXJDdXJsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogLy8gSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlU2VuZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJVUkxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlcjo6Y2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoCitIUkVTVUxUIFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyOjpjYW5jZWxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSgKICAgICAgICAgLyogW2luXSAqLyBJV2ViVVJMQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UqIGNoYWxsZW5nZSkKIHsKICAgICBDT01QdHI8V2ViVVJMQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2U+IHdlYkNoYWxsZW5nZShRdWVyeSwgY2hhbGxlbmdlKTsKQEAgLTQ4
LDcgKzQ4LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJVUkxBdXRoZW50aQogICAg
IHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlVSTEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyOjpjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsRm9yQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoCitIUkVTVUxUIFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlU2VuZGVyOjpjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsRm9yQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoCiAgICAgICAgIC8qIFtpbl0gKi8gSVdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KiBjaGFsbGVuZ2UpCiB7CiAgICAgQ09NUHRyPFdlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
PiB3ZWJDaGFsbGVuZ2UoUXVlcnksIGNoYWxsZW5nZSk7CkBAIC01OSw3ICs1OSw3IEBAIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVVJMQXV0aGVudGkKICAgICByZXR1cm4gU19PSzsKIH0K
IAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVNlbmRlcjo6dXNlQ3JlZGVudGlhbCgKK0hSRVNVTFQgV2ViVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VTZW5kZXI6OnVzZUNyZWRlbnRpYWwoCiAgICAgICAgIC8qIFtpbl0gKi8gSVdlYlVSTENy
ZWRlbnRpYWwqIGNyZWRlbnRpYWwsIAogICAgICAgICAvKiBbaW5dICovIElXZWJVUkxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSogY2hhbGxlbmdlKQogewpJbmRleDogU291cmNlL1dlYktpdC93aW4v
V2ViVVJMQ3JlZGVudGlhbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2Vi
VVJMQ3JlZGVudGlhbC5jcHAJKHJldmlzaW9uIDE4ODY3MikKKysrIFNvdXJjZS9XZWJLaXQvd2lu
L1dlYlVSTENyZWRlbnRpYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCwxMiArODAsMTIgQEAg
SFJFU1VMVCBXZWJVUkxDcmVkZW50aWFsOjpRdWVyeUludGVyZmFjZQogICAgIHJldHVybiBTX09L
OwogfQogCi1VTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBXZWJVUkxDcmVkZW50aWFsOjpBZGRSZWYo
KQorVUxPTkcgV2ViVVJMQ3JlZGVudGlhbDo6QWRkUmVmKCkKIHsKICAgICByZXR1cm4gKyttX3Jl
ZkNvdW50OwogfQogCi1VTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBXZWJVUkxDcmVkZW50aWFsOjpS
ZWxlYXNlKHZvaWQpCitVTE9ORyBXZWJVUkxDcmVkZW50aWFsOjpSZWxlYXNlKCkKIHsKICAgICBV
TE9ORyBuZXdSZWYgPSAtLW1fcmVmQ291bnQ7CiAgICAgaWYgKCFuZXdSZWYpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJVUkxQcm90ZWN0aW9uU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvd2luL1dlYlVSTFByb3RlY3Rpb25TcGFjZS5jcHAJKHJldmlzaW9uIDE4ODY3
MikKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlVSTFByb3RlY3Rpb25TcGFjZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgVUxPTkcgV2ViVVJMUHJvdGVjdGlvblNwYWNlOjpB
ZGRSZWYoKQogICAgIHJldHVybiArK21fcmVmQ291bnQ7CiB9CiAKLVVMT05HIFdlYlVSTFByb3Rl
Y3Rpb25TcGFjZTo6UmVsZWFzZSh2b2lkKQorVUxPTkcgV2ViVVJMUHJvdGVjdGlvblNwYWNlOjpS
ZWxlYXNlKCkKIHsKICAgICBVTE9ORyBuZXdSZWYgPSAtLW1fcmVmQ291bnQ7CiAgICAgaWYgKCFu
ZXdSZWYpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJVUkxSZXNwb25zZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViVVJMUmVzcG9uc2UuY3BwCShyZXZpc2lvbiAx
ODg2NzIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJVUkxSZXNwb25zZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3Myw3ICsyNzMsNyBAQCBVTE9ORyBXZWJVUkxSZXNwb25zZTo6QWRkUmVmKCkK
ICAgICByZXR1cm4gKyttX3JlZkNvdW50OwogfQogCi1VTE9ORyBXZWJVUkxSZXNwb25zZTo6UmVs
ZWFzZSh2b2lkKQorVUxPTkcgV2ViVVJMUmVzcG9uc2U6OlJlbGVhc2UoKQogewogICAgIFVMT05H
IG5ld1JlZiA9IC0tbV9yZWZDb3VudDsKICAgICBpZiAoIW5ld1JlZikKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvd2luL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwCShyZXZpc2lvbiAxODg2NzIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgwLDcgKzI4MCw3IEBAIHByaXZhdGU6CiAKICAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoX0luXyBSRUZJ
SUQsIF9PdXRwdHJfIHZvaWQqKikgeyByZXR1cm4gRV9GQUlMOyB9CiAgICAgdmlydHVhbCBVTE9O
RyBTVERNRVRIT0RDQUxMVFlQRSBBZGRSZWYoKSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBV
TE9ORyBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKHZvaWQpIHsgcmV0dXJuIDA7IH0KKyAgICB2
aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVhc2UoKSB7IHJldHVybiAwOyB9CiAK
IHB1YmxpYzoKICAgICAvLyBJV2ViTm90aWZpY2F0aW9uT2JzZXJ2ZXIKQEAgLTI2NTQsNyArMjY1
NCw3IEBAIFVMT05HIFdlYlZpZXc6OkFkZFJlZigpCiAgICAgcmV0dXJuICsrbV9yZWZDb3VudDsK
IH0KIAotVUxPTkcgV2ViVmlldzo6UmVsZWFzZSh2b2lkKQorVUxPTkcgV2ViVmlldzo6UmVsZWFz
ZSgpCiB7CiAgICAgQVNTRVJUKCFtX2RlbGV0aW9uSGFzQmVndW4pOwogCkBAIC0zMjQzLDcgKzMy
NDMsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OnNldFRleHRTaXplTXVsdGlwbGllcihmCiAgICAgcmV0
dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6c2V0UGFn
ZVNpemVNdWx0aXBsaWVyKGZsb2F0IG11bHRpcGxpZXIpCitIUkVTVUxUIFdlYlZpZXc6OnNldFBh
Z2VTaXplTXVsdGlwbGllcihmbG9hdCBtdWx0aXBsaWVyKQogewogICAgIGlmICghbV9tYWluRnJh
bWUpCiAgICAgICAgIHJldHVybiBFX1VORVhQRUNURUQ7CkBAIC0zMjczLDcgKzMyNzMsNyBAQCBI
UkVTVUxUIFdlYlZpZXc6OnRleHRTaXplTXVsdGlwbGllcihfT3V0CiAgICAgcmV0dXJuIFNfT0s7
CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6cGFnZVNpemVNdWx0aXBs
aWVyKF9PdXRfIGZsb2F0KiBtdWx0aXBsaWVyKQorSFJFU1VMVCBXZWJWaWV3OjpwYWdlU2l6ZU11
bHRpcGxpZXIoX091dF8gZmxvYXQqIG11bHRpcGxpZXIpCiB7CiAgICAgaWYgKCFtdWx0aXBsaWVy
KQogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwpAQCAtNDA2Myw3ICs0MDYzLDcgQEAgSFJFU1VM
VCBXZWJWaWV3OjpjYW5Hb0ZvcndhcmQoX0luX29wdF8gSQogICAgIHJldHVybiBTX09LOwogfQog
ICAgIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojpnb0ZvcndhcmQoX0luX29w
dF8gSVVua25vd24qIC8qc2VuZGVyKi8pCitIUkVTVUxUIFdlYlZpZXc6OmdvRm9yd2FyZChfSW5f
b3B0XyBJVW5rbm93biogLypzZW5kZXIqLykKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICByZXR1cm4gRV9OT1RJTVBMOwpAQCAtNTQ1NSwxMCArNTQ1NSw5IEBAIERyYWdPcGVyYXRp
b24gV2ViVmlldzo6a2V5U3RhdGVUb0RyYWdPcGUKICAgICByZXR1cm4gb3BlcmF0aW9uOwogfQog
Ci1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OkRyYWdFbnRlcigKLSAgICAgICAg
SURhdGFPYmplY3QqIHBEYXRhT2JqZWN0LCBEV09SRCBncmZLZXlTdGF0ZSwgUE9JTlRMIHB0LCBE
V09SRCogcGR3RWZmZWN0KQorSFJFU1VMVCBXZWJWaWV3OjpEcmFnRW50ZXIoSURhdGFPYmplY3Qq
IHBEYXRhT2JqZWN0LCBEV09SRCBncmZLZXlTdGF0ZSwgUE9JTlRMIHB0LCBEV09SRCogcGR3RWZm
ZWN0KQogewotICAgIG1fZHJhZ0RhdGEgPSAwOworICAgIG1fZHJhZ0RhdGEgPSBudWxscHRyOwog
CiAgICAgaWYgKG1fZHJvcFRhcmdldEhlbHBlcikKICAgICAgICAgbV9kcm9wVGFyZ2V0SGVscGVy
LT5EcmFnRW50ZXIobV92aWV3V2luZG93LCBwRGF0YU9iamVjdCwgKFBPSU5UKikmcHQsICpwZHdF
ZmZlY3QpOwpAQCAtNTQ3NSw4ICs1NDc0LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBX
ZWJWaWV3OjpEcmFnRQogICAgIHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIFdlYlZpZXc6OkRyYWdPdmVyKAotICAgICAgICBEV09SRCBncmZLZXlTdGF0ZSwgUE9J
TlRMIHB0LCBEV09SRCogcGR3RWZmZWN0KQorSFJFU1VMVCBXZWJWaWV3OjpEcmFnT3ZlcihEV09S
RCBncmZLZXlTdGF0ZSwgUE9JTlRMIHB0LCBEV09SRCogcGR3RWZmZWN0KQogewogICAgIGlmICht
X2Ryb3BUYXJnZXRIZWxwZXIpCiAgICAgICAgIG1fZHJvcFRhcmdldEhlbHBlci0+RHJhZ092ZXIo
KFBPSU5UKikmcHQsICpwZHdFZmZlY3QpOwpAQCAtNTQ5NCw3ICs1NDkyLDcgQEAgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpEcmFnTwogICAgIHJldHVybiBTX09LOwogfQogCi1I
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OkRyYWdMZWF2ZSgpCitIUkVTVUxUIFdl
YlZpZXc6OkRyYWdMZWF2ZSgpCiB7CiAgICAgaWYgKG1fZHJvcFRhcmdldEhlbHBlcikKICAgICAg
ICAgbV9kcm9wVGFyZ2V0SGVscGVyLT5EcmFnTGVhdmUoKTsKQEAgLTU1MDgsOCArNTUwNiw3IEBA
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6RHJhZ0wKICAgICByZXR1cm4gU19P
SzsKIH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpEcm9wKAotICAgICAg
ICBJRGF0YU9iamVjdCogcERhdGFPYmplY3QsIERXT1JEIGdyZktleVN0YXRlLCBQT0lOVEwgcHQs
IERXT1JEKiBwZHdFZmZlY3QpCitIUkVTVUxUIFdlYlZpZXc6OkRyb3AoSURhdGFPYmplY3QqIHBE
YXRhT2JqZWN0LCBEV09SRCBncmZLZXlTdGF0ZSwgUE9JTlRMIHB0LCBEV09SRCogcGR3RWZmZWN0
KQogewogICAgIGlmIChtX2Ryb3BUYXJnZXRIZWxwZXIpCiAgICAgICAgIG1fZHJvcFRhcmdldEhl
bHBlci0+RHJvcChwRGF0YU9iamVjdCwgKFBPSU5UKikmcHQsICpwZHdFZmZlY3QpOwpAQCAtNTU2
MCw3ICs1NTU3LDcgQEAgSFJFU1VMVCBXZWJWaWV3OjpzdGFuZGFyZFVzZXJBZ2VudFdpdGhBcAog
ICAgIHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6
OmNsZWFyRm9jdXNOb2RlKCkKK0hSRVNVTFQgV2ViVmlldzo6Y2xlYXJGb2N1c05vZGUoKQogewog
ICAgIGlmIChtX3BhZ2UpCiAgICAgICAgIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9j
dXNlZEVsZW1lbnQoMCwgMCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJXb3JrZXJzUHJp
dmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViV29ya2Vyc1ByaXZh
dGUuY3BwCShyZXZpc2lvbiAxODg2NzIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJXb3JrZXJz
UHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgVUxPTkcgV2ViV29y
a2Vyc1ByaXZhdGU6OkFkZFJlZigpCiAgICAgcmV0dXJuICsrbV9yZWZDb3VudDsKIH0KIAotVUxP
TkcgV2ViV29ya2Vyc1ByaXZhdGU6OlJlbGVhc2Uodm9pZCkKK1VMT05HIFdlYldvcmtlcnNQcml2
YXRlOjpSZWxlYXNlKCkKIHsKICAgICBVTE9ORyBuZXdSZWYgPSAtLW1fcmVmQ291bnQ7CiAgICAg
aWYgKCFuZXdSZWYpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJE
ZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNw
cAkocmV2aXNpb24gMTg4NjcyKQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgx
LDEyICs4MSwxMiBAQCBIUkVTVUxUIE5vdGlmaWNhdGlvbkNPTVdyYXBwZXI6OlF1ZXJ5SW50CiAg
ICAgcmV0dXJuIFNfT0s7CiB9CiAKLVVMT05HIFNURE1FVEhPRENBTExUWVBFIE5vdGlmaWNhdGlv
bkNPTVdyYXBwZXI6OkFkZFJlZigpCitVTE9ORyBOb3RpZmljYXRpb25DT01XcmFwcGVyOjpBZGRS
ZWYoKQogeyAKICAgICByZXR1cm4gKyttX3JlZkNvdW50OyAKIH0KIAotVUxPTkcgU1RETUVUSE9E
Q0FMTFRZUEUgTm90aWZpY2F0aW9uQ09NV3JhcHBlcjo6UmVsZWFzZSgpCitVTE9ORyBOb3RpZmlj
YXRpb25DT01XcmFwcGVyOjpSZWxlYXNlKCkKIHsKICAgICBVTE9ORyBuZXdSZWYgPSAtLW1fcmVm
Q291bnQ7CiAgICAgaWYgKCFuZXdSZWYpCkBAIC05NCw0OSArOTQsNDkgQEAgVUxPTkcgU1RETUVU
SE9EQ0FMTFRZUEUgTm90aWZpY2F0aW9uQ09NVwogICAgIHJldHVybiBuZXdSZWY7CiB9CiAKLUhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTm90aWZpY2F0aW9uQ09NV3JhcHBlcjo6aXNIVE1MKEJP
T0wqIHJlc3VsdCkKK0hSRVNVTFQgTm90aWZpY2F0aW9uQ09NV3JhcHBlcjo6aXNIVE1MKEJPT0wq
IHJlc3VsdCkKIHsKICAgICAqcmVzdWx0ID0gbV9pbm5lci0+aXNIVE1MKCk7CiAgICAgcmV0dXJu
IFNfT0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgTm90aWZpY2F0aW9uQ09NV3Jh
cHBlcjo6Y29udGVudHNVUkwoQlNUUiogcmVzdWx0KQorSFJFU1VMVCBOb3RpZmljYXRpb25DT01X
cmFwcGVyOjpjb250ZW50c1VSTChCU1RSKiByZXN1bHQpCiB7CiAgICAgKnJlc3VsdCA9IEJTdHJp
bmcobV9pbm5lci0+dXJsKCkpLnJlbGVhc2UoKTsKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBOb3RpZmljYXRpb25DT01XcmFwcGVyOjppY29uVVJMKEJT
VFIqIHJlc3VsdCkKK0hSRVNVTFQgTm90aWZpY2F0aW9uQ09NV3JhcHBlcjo6aWNvblVSTChCU1RS
KiByZXN1bHQpCiB7CiAgICAgKnJlc3VsdCA9IEJTdHJpbmcobV9pbm5lci0+Y29udGVudHMoKS5p
Y29uKCkpLnJlbGVhc2UoKTsKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBOb3RpZmljYXRpb25DT01XcmFwcGVyOjp0aXRsZShCU1RSKiByZXN1bHQpCitI
UkVTVUxUIE5vdGlmaWNhdGlvbkNPTVdyYXBwZXI6OnRpdGxlKEJTVFIqIHJlc3VsdCkKIHsKICAg
ICAqcmVzdWx0ID0gQlN0cmluZyhtX2lubmVyLT5jb250ZW50cygpLnRpdGxlKCkpLnJlbGVhc2Uo
KTsKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBOb3Rp
ZmljYXRpb25DT01XcmFwcGVyOjp0ZXh0KEJTVFIqIHJlc3VsdCkKK0hSRVNVTFQgTm90aWZpY2F0
aW9uQ09NV3JhcHBlcjo6dGV4dChCU1RSKiByZXN1bHQpCiB7CiAgICAgKnJlc3VsdCA9IEJTdHJp
bmcobV9pbm5lci0+Y29udGVudHMoKS5ib2R5KCkpLnJlbGVhc2UoKTsKICAgICByZXR1cm4gU19P
SzsKIH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBOb3RpZmljYXRpb25DT01XcmFwcGVy
Ojpub3RpZnlEaXNwbGF5KCkKK0hSRVNVTFQgTm90aWZpY2F0aW9uQ09NV3JhcHBlcjo6bm90aWZ5
RGlzcGxheSgpCiB7CiAgICAgbV9pbm5lci0+ZGlzcGF0Y2hEaXNwbGF5RXZlbnQoKTsKICAgICBy
ZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBOb3RpZmljYXRpb25D
T01XcmFwcGVyOjpub3RpZnlFcnJvcigpCitIUkVTVUxUIE5vdGlmaWNhdGlvbkNPTVdyYXBwZXI6
Om5vdGlmeUVycm9yKCkKIHsKICAgICBtX2lubmVyLT5kaXNwYXRjaEVycm9yRXZlbnQoKTsKICAg
ICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBOb3RpZmljYXRp
b25DT01XcmFwcGVyOjpub3RpZnlDbG9zZShCT09MIHhwbGljaXQpCitIUkVTVUxUIE5vdGlmaWNh
dGlvbkNPTVdyYXBwZXI6Om5vdGlmeUNsb3NlKEJPT0wgeHBsaWNpdCkKIHsKICAgICBtX2lubmVy
LT5kaXNwYXRjaENsb3NlRXZlbnQoKTsKICAgICByZXR1cm4gU19PSzsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAko
cmV2aXNpb24gMTg4NjcyKQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMTEsIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDA3LCAyMDExLCAyMDE0LTIwMTUg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTAzLDEyICsxMDMsMTIgQEAgSFJFU1VMVCBXZWJFZGl0b3JVbmRvVGFyZ2V0
OjpRdWVyeUludGVyZgogICAgIHJldHVybiBTX09LOwogfQogCi1VTE9ORyBTVERNRVRIT0RDQUxM
VFlQRSBXZWJFZGl0b3JVbmRvVGFyZ2V0OjpBZGRSZWYoKQorVUxPTkcgV2ViRWRpdG9yVW5kb1Rh
cmdldDo6QWRkUmVmKCkKIHsKICAgICByZXR1cm4gKyttX3JlZkNvdW50OwogfQogCi1VTE9ORyBT
VERNRVRIT0RDQUxMVFlQRSBXZWJFZGl0b3JVbmRvVGFyZ2V0OjpSZWxlYXNlKHZvaWQpCitVTE9O
RyBXZWJFZGl0b3JVbmRvVGFyZ2V0OjpSZWxlYXNlKCkKIHsKICAgICBVTE9ORyBuZXdSZWYgPSAt
LW1fcmVmQ291bnQ7CiAgICAgaWYgKCFuZXdSZWYpCkBAIC0xMTcsOSArMTE3LDcgQEAgVUxPTkcg
U1RETUVUSE9EQ0FMTFRZUEUgV2ViRWRpdG9yVW5kb1RhcgogICAgIHJldHVybiBuZXdSZWY7CiB9
CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRWRpdG9yVW5kb1RhcmdldDo6aW52b2tl
KCAKLSAgICAvKiBbaW5dICovIEJTVFIgLyphY3Rpb25OYW1lKi8sCi0gICAgLyogW2luXSAqLyBJ
VW5rbm93biAqb2JqKQorSFJFU1VMVCBXZWJFZGl0b3JVbmRvVGFyZ2V0OjppbnZva2UoLyogW2lu
XSAqLyBCU1RSIC8qYWN0aW9uTmFtZSovLCAvKiBbaW5dICovIElVbmtub3duICpvYmopCiB7CiAg
ICAgSVdlYlVuZG9Db21tYW5kKiB1bmRvQ29tbWFuZCA9IDA7CiAgICAgaWYgKFNVQ0NFRURFRChv
YmotPlF1ZXJ5SW50ZXJmYWNlKElJRF9JV2ViVW5kb0NvbW1hbmQsICh2b2lkKiopJnVuZG9Db21t
YW5kKSkpIHsKQEAgLTU1MywxMiArNTUxLDEyIEBAIEhSRVNVTFQgV2ViRWRpdG9yVW5kb0NvbW1h
bmQ6OlF1ZXJ5SW50ZXIKICAgICByZXR1cm4gU19PSzsKIH0KIAotVUxPTkcgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViRWRpdG9yVW5kb0NvbW1hbmQ6OkFkZFJlZigpCitVTE9ORyBXZWJFZGl0b3JVbmRv
Q29tbWFuZDo6QWRkUmVmKCkKIHsKICAgICByZXR1cm4gKyttX3JlZkNvdW50OwogfQogCi1VTE9O
RyBTVERNRVRIT0RDQUxMVFlQRSBXZWJFZGl0b3JVbmRvQ29tbWFuZDo6UmVsZWFzZSh2b2lkKQor
VUxPTkcgV2ViRWRpdG9yVW5kb0NvbW1hbmQ6OlJlbGVhc2UoKQogewogICAgIFVMT05HIG5ld1Jl
ZiA9IC0tbV9yZWZDb3VudDsKICAgICBpZiAoIW5ld1JlZikKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCShyZXZpc2lvbiAx
ODg2NzIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNi0yMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
</data>
<flag name="review"
          id="284668"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>