<?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>178765</bug_id>
          
          <creation_ts>2017-10-24 16:58:41 -0700</creation_ts>
          <short_desc>[Apple Pay] Implement a paymentmethodselected event for PaymentRequest</short_desc>
          <delta_ts>2017-10-24 17:53:54 -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>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</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>174796</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1364022</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-10-24 16:58:41 -0700</bug_when>
    <thetext>[Apple Pay] Implement a paymentmethodselected event for PaymentRequest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364024</commentid>
    <comment_count>1</comment_count>
      <attachid>324762</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-10-24 17:02:11 -0700</bug_when>
    <thetext>Created attachment 324762
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364025</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-24 17:03:47 -0700</bug_when>
    <thetext>Attachment 324762 did not pass style-queue:


ERROR: Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentMethodUpdateEvent.cpp:37:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 26 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>1364027</commentid>
    <comment_count>3</comment_count>
      <attachid>324763</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-10-24 17:10:42 -0700</bug_when>
    <thetext>Created attachment 324763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364030</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-24 17:12:49 -0700</bug_when>
    <thetext>Attachment 324763 did not pass style-queue:


ERROR: Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentMethodUpdateEvent.cpp:37:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 26 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>1364036</commentid>
    <comment_count>5</comment_count>
      <attachid>324767</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-10-24 17:31:45 -0700</bug_when>
    <thetext>Created attachment 324767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364043</commentid>
    <comment_count>6</comment_count>
      <attachid>324767</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-24 17:52:07 -0700</bug_when>
    <thetext>Comment on attachment 324767
Patch

Clearing flags on attachment: 324767

Committed r223945: &lt;https://trac.webkit.org/changeset/223945&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364044</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-24 17:52:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364045</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-24 17:53:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/35164055&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324762</attachid>
            <date>2017-10-24 17:02:11 -0700</date>
            <delta_ts>2017-10-24 17:10:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178765-20171024170210.patch</filename>
            <type>text/plain</type>
            <size>48181</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDllNzEwNjk3MTA5NmU5
NzhhNDdhOWE4MzBlODkyZDIxOTljMTM5Yy4uOTY3NzVjNTMwNTJkNjUyNDViMDk3ZWE3MmM0MDYw
ZWQzYzllMjMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE3LTEwLTI0ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQXBwbGUgUGF5XSBJbXBsZW1l
bnQgYSBwYXltZW50bWV0aG9kc2VsZWN0ZWQgZXZlbnQgZm9yIFBheW1lbnRSZXF1ZXN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg3NjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZSBBcHBs
ZSBQYXkgcGF5bWVudCBtZXRob2QgY2hhbmdlcywgZmlyZSBhbiBhcHBsZXBheXBheW1lbnRtZXRo
b2RjaGFuZ2VkIGV2ZW50IG9uIHRoZQorICAgICAgICBQYXltZW50UmVxdWVzdCBvYmplY3QuIFRo
ZSBldmVudCBoYXMgYSBwYXltZW50TWV0aG9kIHByb3BlcnR5IGFuZCBhbiB1cGRhdGVXaXRoKCkg
bWV0aG9kCisgICAgICAgIHdoaWNoIGlkZW50aWNhbGx5IHRvIFBheW1lbnRSZXF1ZXN0VXBkYXRl
RXZlbnQudXBkYXRlV2l0aCgpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvc3NsL2FwcGxl
cGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50Lmh0dHBzLmh0bWwKKworICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVBheW1lbnRNZXRob2QuaWRsOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5oOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRNZXRob2QuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlBheW1lbnRNZXRob2Q6OlBheW1lbnRNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UGF5bWVudE1ldGhvZDo6cGtQYXltZW50TWV0aG9kIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGV0
YWlsc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6
cGF5bWVudE1ldGhvZFVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6ZGlkU2VsZWN0UGF5bWVudE1ldGhvZCk6CisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmg6CisgICAgICAgICog
TW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGVFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0
aG9kVXBkYXRlRXZlbnQ6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50OjpldmVudEludGVy
ZmFjZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9B
cHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2
ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
SGFuZGxlci5oOgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nQWRkcmVz
c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nT3B0
aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6ZGlzcGF0Y2hF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6dXBkYXRlV2l0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6c2V0dGxlRGV0YWlsc1Byb21pc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OmRpc3BhdGNoVXBkYXRlRXZlbnQpOiBE
ZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3Qu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudDo6dXBk
YXRlV2l0aCk6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dFVwZGF0ZUV2ZW50Lmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50TmFt
ZXMuaW46CisgICAgICAgICogdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNoYW5nZVBheW1lbnRNZXRo
b2QpOgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oOgorICAgICAg
ICAqIHRlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5pZGw6CisgICAgICAgICogdGVzdGlu
Zy9Nb2NrUGF5bWVudE1ldGhvZC5oOiBBZGRlZC4KKwogMjAxNy0xMC0yNCAgQW5keSBFc3RlcyAg
PGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gU3VwcG9ydCB0aGUgRXhwb3J0
TWFjcm8gYXR0cmlidXRlIGZvciBkaWN0aW9uYXJpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IDg5YmRhNzVjNmNjYzQzZDc3ZTg4MmRiM2U2MzcxNGY3YjY4YTBkYTguLmY2MjM3
YTA1MjA1NjdiMzllOTFjYmFlMmYyOTViZDZkMDk3NjYzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtMTA4LDYgKzEwOCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKIAkkKFdl
YkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVZhbGlkYXRlTWVyY2hh
bnRFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVx
dWVzdC9BcHBsZVBheU1lcmNoYW50VmFsaWRhdGlvbkV2ZW50LmlkbCBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRy
ZXF1ZXN0L0FwcGxlUGF5UmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9iZWFj
b24vTmF2aWdhdG9yQmVhY29uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2NhY2hlL0RP
TVdpbmRvd0NhY2hlcy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2QuaWRsCmluZGV4IDgyYzRlYzIxYTgyNWFh
Yjc2NThiZjdlNzY4YjI5ZTQ5YTgwOGIzODguLmUwOTA5NDBiNGI0MWZlZGMwZTU2OWFjY2M1OWMx
ZDllMzM4MjBmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlQYXltZW50TWV0aG9kLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZC5pZGwKQEAgLTM0LDYgKzM0LDcgQEAKIAogWwog
ICAgIENvbmRpdGlvbmFsPUFQUExFX1BBWSwKKyAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9S
VCwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAogXSBkaWN0aW9uYXJ5IEFwcGxlUGF5UGF5bWVu
dE1ldGhvZCB7CiAgICAgRE9NU3RyaW5nIGRpc3BsYXlOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1l
dGhvZFNlbGVjdGVkRXZlbnQuaAppbmRleCBkNTE4MzI0MDdkOGM1YzEwZTk1NmIwMzdlYWNmMTZk
ODQzNjRmNGJjLi4zYWMxYTNjNDFmYzhkMDVmNTViNmM1ZTg2MGEyNzMzMjI3MDQ5Y2UwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1l
dGhvZFNlbGVjdGVkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQuaApAQCAtMzQsNyArMzQsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBheW1lbnRNZXRob2Q7CiAKLWNsYXNzIEFwcGxl
UGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworY2xh
c3MgQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudCA6IHB1YmxpYyBFdmVudCB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxBcHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2ZW50
PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBQYXltZW50TWV0aG9kJiBw
YXltZW50TWV0aG9kKQogICAgIHsKQEAgLTQ1LDEyICs0NSwxMyBAQCBwdWJsaWM6CiAKICAgICBj
b25zdCBBcHBsZVBheVBheW1lbnRNZXRob2QmIHBheW1lbnRNZXRob2QoKSB7IHJldHVybiBtX3Bh
eW1lbnRNZXRob2Q7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBBcHBsZVBheVBheW1l
bnRNZXRob2RTZWxlY3RlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgUGF5
bWVudE1ldGhvZCYpOwogCiAgICAgLy8gRXZlbnQuCiAgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJ
bnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAorcHJpdmF0ZToKICAgICBjb25zdCBBcHBsZVBh
eVBheW1lbnRNZXRob2QgbV9wYXltZW50TWV0aG9kOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50TWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRNZXRob2QuaAppbmRleCA2OWEzNzcwYzcyZmNlZWUz
MTNjOTJmOTkxZTYwNmU3NWNlOGRiOWQwLi45Y2U3YmFhNzk0M2FiZDJkZGZmMTMxYjQ0MzA5N2Ey
YWEwNGIxMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRNZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1l
bnRNZXRob2QuaApAQCAtMzUsMTggKzM1LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Ry
dWN0IEFwcGxlUGF5UGF5bWVudE1ldGhvZDsKIAotY2xhc3MgUGF5bWVudE1ldGhvZCB7CitjbGFz
cyBXRUJDT1JFX0VYUE9SVCBQYXltZW50TWV0aG9kIHsKIHB1YmxpYzoKLSAgICBQYXltZW50TWV0
aG9kKCkKLSAgICB7Ci0gICAgfQorICAgIFBheW1lbnRNZXRob2QoKSA9IGRlZmF1bHQ7CisgICAg
dmlydHVhbCB+UGF5bWVudE1ldGhvZCgpID0gZGVmYXVsdDsKIAogICAgIGV4cGxpY2l0IFBheW1l
bnRNZXRob2QoUEtQYXltZW50TWV0aG9kICpwa1BheW1lbnRNZXRob2QpCiAgICAgICAgIDogbV9w
a1BheW1lbnRNZXRob2QocGtQYXltZW50TWV0aG9kKQogICAgIHsKICAgICB9CiAKLSAgICBBcHBs
ZVBheVBheW1lbnRNZXRob2QgdG9BcHBsZVBheVBheW1lbnRNZXRob2QoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIEFwcGxlUGF5UGF5bWVudE1ldGhvZCB0b0FwcGxlUGF5UGF5bWVudE1ldGhvZCgpIGNv
bnN0OwogCiAgICAgUEtQYXltZW50TWV0aG9kICpwa1BheW1lbnRNZXRob2QoKSBjb25zdCB7IHJl
dHVybiBtX3BrUGF5bWVudE1ldGhvZC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9B
cHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCBlZWYyYTBjOWEyNmI3MDFiM2NhYjZlN2Zj
MmZlMzU0NmQwMGFhZDg3Li44ZWFlMzc2ZTMxNzliMDAyZjQ5NTMwODA4NDdmNTgwMjc3OWQzOTgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1
ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5oIgog
I2luY2x1ZGUgIkFwcGxlUGF5TWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJB
cHBsZVBheVBheW1lbnQuaCIKKyNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVF
dmVudC5oIgogI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC00NCw2ICs0NSw3
IEBACiAjaW5jbHVkZSAiUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaCIKICNpbmNsdWRlICJQ
YXltZW50Q29udGFjdC5oIgogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvci5oIgorI2luY2x1
ZGUgIlBheW1lbnRNZXRob2QuaCIKICNpbmNsdWRlICJQYXltZW50UmVxdWVzdFZhbGlkYXRvci5o
IgogI2luY2x1ZGUgIlBheW1lbnRSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBA
IC0yNjcsNiArMjY5LDIxIEBAIHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+IGNvbnZlcnRBbmRWCiAgICAgcmV0dXJuIEFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyB7IHRvdGFsLnJl
bGVhc2VSZXR1cm5WYWx1ZSgpLCBsaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCkgfTsKIH0K
IAorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGV0YWlsc1VwZGF0
ZWQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgZXJyb3IpCit7
CisgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2hpcHBpbmdhZGRyZXNzY2hhbmdl
RXZlbnQpCisgICAgICAgIHJldHVybiBzaGlwcGluZ0FkZHJlc3NVcGRhdGVkKGVycm9yKTsKKwor
ICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnNoaXBwaW5nb3B0aW9uY2hhbmdlRXZl
bnQpCisgICAgICAgIHJldHVybiBzaGlwcGluZ09wdGlvblVwZGF0ZWQoKTsKKworICAgIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmFwcGxlcGF5cGF5bWVudG1ldGhvZGNoYW5nZWRFdmVu
dCkKKyAgICAgICAgcmV0dXJuIHBheW1lbnRNZXRob2RVcGRhdGVkKCk7CisKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBB
cHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaGlwcGluZ0FkZHJlc3NVcGRhdGVkKGNvbnN0IFN0cmlu
ZyYgZXJyb3IpCiB7CiAgICAgU2hpcHBpbmdDb250YWN0VXBkYXRlIHVwZGF0ZTsKQEAgLTMwMCw2
ICszMTcsMTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hp
cHBpbmdPcHRpb25VcGRhdGVkKCkKICAgICByZXR1cm4geyB9OwogfQogCitFeGNlcHRpb25Pcjx2
b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpwYXltZW50TWV0aG9kVXBkYXRlZCgpCit7Cisg
ICAgUGF5bWVudE1ldGhvZFVwZGF0ZSB1cGRhdGU7CisKKyAgICBhdXRvIG5ld1RvdGFsQW5kTGlu
ZUl0ZW1zID0gY29udmVydEFuZFZhbGlkYXRlKG1fcGF5bWVudFJlcXVlc3QtPnBheW1lbnREZXRh
aWxzKCkpOworICAgIGlmIChuZXdUb3RhbEFuZExpbmVJdGVtcy5oYXNFeGNlcHRpb24oKSkKKyAg
ICAgICAgcmV0dXJuIG5ld1RvdGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAg
ICB1cGRhdGUubmV3VG90YWxBbmRMaW5lSXRlbXMgPSBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxl
YXNlUmV0dXJuVmFsdWUoKTsKKworICAgIHBheW1lbnRDb29yZGluYXRvcigpLmNvbXBsZXRlUGF5
bWVudE1ldGhvZFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpOworICAgIHJldHVybiB7IH07Cit9
CisKIHZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcGxldGUoc3RkOjpvcHRpb25hbDxQ
YXltZW50Q29tcGxldGU+JiYgcmVzdWx0KQogewogICAgIGlmICghcmVzdWx0KSB7CkBAIC0zNTMs
NiArMzgzLDEyIEBAIHZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGlkU2VsZWN0U2hpcHBp
bmdDb250YWN0KGNvbnN0IFBheW1lbnRDb250YWN0JiBzaGlwCiAgICAgbV9wYXltZW50UmVxdWVz
dC0+c2hpcHBpbmdBZGRyZXNzQ2hhbmdlZChjb252ZXJ0KHNoaXBwaW5nQ29udGFjdC50b0FwcGxl
UGF5UGF5bWVudENvbnRhY3QoKSkpOwogfQogCit2b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6
OmRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgUGF5bWVudE1ldGhvZCYgcGF5bWVudE1ldGhv
ZCkKK3sKKyAgICBhdXRvIGV2ZW50ID0gQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuYXBwbGVwYXlwYXltZW50bWV0aG9kY2hhbmdlZEV2ZW50LCBw
YXltZW50TWV0aG9kLnRvQXBwbGVQYXlQYXltZW50TWV0aG9kKCksIG1fcGF5bWVudFJlcXVlc3Qu
Z2V0KCkpOworICAgIG1fcGF5bWVudFJlcXVlc3QtPmRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0KCkp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVBQTEVf
UEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxl
UGF5UGF5bWVudEhhbmRsZXIuaAppbmRleCA5ZWFmOTI3NGUyZTI3MTRjM2U5OWRmODQ1NzE3YzUw
NGIwMGIxMGExLi5mMWI5ZWE3YjY1YjhhMjM1ODJhZmVmMTQwNTQyMzIyZTQyMjQwMzI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0Fw
cGxlUGF5UGF5bWVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuaApAQCAtNTEsMTMgKzUx
LDE2IEBAIHByaXZhdGU6CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCk7CiAgICAgUGF5bWVudENv
b3JkaW5hdG9yJiBwYXltZW50Q29vcmRpbmF0b3IoKTsKIAorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQoY29uc3QgU3RyaW5nJiBlcnJvcik7CisgICAgRXhjZXB0
aW9uT3I8dm9pZD4gc2hpcHBpbmdPcHRpb25VcGRhdGVkKCk7CisgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gcGF5bWVudE1ldGhvZFVwZGF0ZWQoKTsKKwogICAgIC8vIFBheW1lbnRIYW5kbGVyCiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gY29udmVydERhdGEoSlNDOjpKU1ZhbHVlJiYpIGZpbmFsOwogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNob3coKSBmaW5hbDsKICAgICB2b2lkIGhpZGUoKSBmaW5hbDsK
ICAgICB2b2lkIGNhbk1ha2VQYXltZW50KFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdBZGRy
ZXNzVXBkYXRlZChjb25zdCBTdHJpbmcmIGVycm9yKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2
b2lkPiBzaGlwcGluZ09wdGlvblVwZGF0ZWQoKSBmaW5hbDsKKyAgICBFeGNlcHRpb25Pcjx2b2lk
PiBkZXRhaWxzVXBkYXRlZChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3Ry
aW5nJiBlcnJvcikgZmluYWw7CiAgICAgdm9pZCBjb21wbGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1l
bnRDb21wbGV0ZT4mJikgZmluYWw7CiAKICAgICAvLyBQYXltZW50U2Vzc2lvbgpAQCAtNjUsNyAr
NjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQYXlt
ZW50JikgZmluYWw7CiAgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKSBmaW5hbDsKICAgICB2
b2lkIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBQYXltZW50Q29udGFjdCYpIGZpbmFs
OwotICAgIHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBQYXltZW50TWV0aG9kJikg
ZmluYWwgeyB9CisgICAgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFBheW1lbnRN
ZXRob2QmKSBmaW5hbDsKICAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCkgZmluYWwg
eyB9CiAKICAgICBQYXltZW50UmVxdWVzdDo6TWV0aG9kSWRlbnRpZmllciBtX2lkZW50aWZpZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1
ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4NjYwZGM0MWY1NDY0NGUxYWYyMzE1NDNhNWMxMWUy
ZGIyMDE3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcApA
QCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmgiCisKKyNpZiBFTkFCTEUoQVBQ
TEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQorCisjaW5jbHVkZSAiUGF5bWVudFJl
cXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGVFdmVudDo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBjb25zdCBBcHBsZVBheVBheW1lbnRNZXRob2QmIHBheW1lbnRNZXRob2Qs
IFBheW1lbnRSZXF1ZXN0JiBwYXltZW50UmVxdWVzdCkKKyAgICA6IFBheW1lbnRSZXF1ZXN0VXBk
YXRlRXZlbnQgeyB0eXBlLCBwYXltZW50UmVxdWVzdCB9CisgICAgLCBtX3BheW1lbnRNZXRob2Qg
eyBwYXltZW50TWV0aG9kIH0KK3sKK30KKworRXZlbnRJbnRlcmZhY2UgQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFC
TEUoUEFZTUVOVF9SRVFVRVNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBh
eVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjMDZmYWU3ZWE3ZjRiODI4
OWNlZjRiMDRhNjE0MWI0MTNhNTMwMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZUV2ZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKKworI2lu
Y2x1ZGUgIkFwcGxlUGF5UGF5bWVudE1ldGhvZC5oIgorI2luY2x1ZGUgIlBheW1lbnRSZXF1ZXN0
VXBkYXRlRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBcHBsZVBheVBh
eW1lbnRNZXRob2RVcGRhdGVFdmVudCBmaW5hbCA6IHB1YmxpYyBQYXltZW50UmVxdWVzdFVwZGF0
ZUV2ZW50IHsKK3B1YmxpYzoKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGlj
IFJlZjxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudD4gY3JlYXRlKEFyZ3MmJi4uLiBh
cmdzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlRXZlbnQoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7CisgICAgfQor
CisgICAgY29uc3QgQXBwbGVQYXlQYXltZW50TWV0aG9kJiBwYXltZW50TWV0aG9kKCkgY29uc3Qg
eyByZXR1cm4gbV9wYXltZW50TWV0aG9kOyB9CisKK3ByaXZhdGU6CisgICAgQXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBBcHBs
ZVBheVBheW1lbnRNZXRob2QmLCBQYXltZW50UmVxdWVzdCYpOworCisgICAgLy8gRXZlbnQKKyAg
ICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IGZpbmFsOworCisgICAgY29u
c3QgQXBwbGVQYXlQYXltZW50TWV0aG9kIG1fcGF5bWVudE1ldGhvZDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQ
QVlNRU5UX1JFUVVFU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQ
YXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxYWRmYzFiOTIyYTVhMTVj
Y2MyMTgxNGU3YmU5YmE2OWMxOThiYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZUV2ZW50LmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRp
dGlvbmFsPUFQUExFX1BBWSZQQVlNRU5UX1JFUVVFU1QsCisgICAgTm9JbnRlcmZhY2VPYmplY3Qs
CitdIGludGVyZmFjZSBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudCA6IFBheW1lbnRS
ZXF1ZXN0VXBkYXRlRXZlbnQgeworICAgIFtDYWNoZWRBdHRyaWJ1dGVdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBBcHBsZVBheVBheW1lbnRNZXRob2QgcGF5bWVudE1ldGhvZDsKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgK
aW5kZXggYzQ4ZmE5YjEzYjE1Y2RmZjc1MTE3OTBjZmJlZTIxYWE2OTE2ZTVmZC4uNTM5ZjFkYmM2
Yzg1ZTg0ODM4M2Y5ZjFjNjFkNThlZTBkNzg1NzBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaApAQCAtNDgsOCAr
NDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzaG93KCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5NYWtl
UGF5bWVudChXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpID0g
MDsKLSAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQo
Y29uc3QgU3RyaW5nJiBlcnJvcikgPSAwOwotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4g
c2hpcHBpbmdPcHRpb25VcGRhdGVkKCkgPSAwOworICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9p
ZD4gZGV0YWlsc1VwZGF0ZWQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0
cmluZyYgZXJyb3IpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGUoc3RkOjpvcHRpb25h
bDxQYXltZW50Q29tcGxldGU+JiYpID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggYjI1
ODgyMGJiZDE1OTAwNDhjNTg3ODY2MTM5MDE1NmI2OWJlYzM4NC4uY2Q0OTEyZjZlZWQ2MGNlMWJh
MzE3Y2ExZjM3ZDFmYTFjOTI3OGVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTUyNCwzNiArNTI0
LDMxIEBAIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nQWRkcmVzc0NoYW5nZWQoUmVmPFBh
eW1lbnRBZGRyZXNzPiYmIHNoaXBwaW5nQWRkcmVzCiB7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0g
U3RhdGU6OkludGVyYWN0aXZlKTsKICAgICBtX3NoaXBwaW5nQWRkcmVzcyA9IFdURk1vdmUoc2hp
cHBpbmdBZGRyZXNzKTsKLSAgICBkaXNwYXRjaFVwZGF0ZUV2ZW50KGV2ZW50TmFtZXMoKS5zaGlw
cGluZ2FkZHJlc3NjaGFuZ2VFdmVudCk7CisgICAgYXV0byBldmVudCA9IFBheW1lbnRSZXF1ZXN0
VXBkYXRlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2hpcHBpbmdhZGRyZXNzY2hhbmdlRXZl
bnQsICp0aGlzKTsKKyAgICBkaXNwYXRjaEV2ZW50KGV2ZW50LmdldCgpKTsKIH0KIAogdm9pZCBQ
YXltZW50UmVxdWVzdDo6c2hpcHBpbmdPcHRpb25DaGFuZ2VkKGNvbnN0IFN0cmluZyYgc2hpcHBp
bmdPcHRpb24pCiB7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OkludGVyYWN0aXZlKTsK
ICAgICBtX3NoaXBwaW5nT3B0aW9uID0gc2hpcHBpbmdPcHRpb247Ci0gICAgZGlzcGF0Y2hVcGRh
dGVFdmVudChldmVudE5hbWVzKCkuc2hpcHBpbmdvcHRpb25jaGFuZ2VFdmVudCk7CisgICAgYXV0
byBldmVudCA9IFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
c2hpcHBpbmdvcHRpb25jaGFuZ2VFdmVudCwgKnRoaXMpOworICAgIGRpc3BhdGNoRXZlbnQoZXZl
bnQuZ2V0KCkpOwogfQogCi12b2lkIFBheW1lbnRSZXF1ZXN0OjpkaXNwYXRjaFVwZGF0ZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKK2Jvb2wgUGF5bWVudFJlcXVlc3Q6OmRpc3BhdGNo
RXZlbnQoRXZlbnQmIGV2ZW50KQogewogICAgIGlmIChtX2lzVXBkYXRpbmcpCi0gICAgICAgIHJl
dHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6
OkludGVyYWN0aXZlKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGF1dG8gZXZlbnQgPSBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50OjpjcmVhdGUodHlwZSwg
KnRoaXMpOwotICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0KCkpOworICAgIHJldHVybiBFdmVu
dFRhcmdldFdpdGhJbmxpbmVEYXRhOjpkaXNwYXRjaEV2ZW50KGV2ZW50KTsKIH0KIAotRXhjZXB0
aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3Q6OnVwZGF0ZVdpdGgoUGF5bWVudFJlcXVlc3RVcGRh
dGVFdmVudCYgZXZlbnQsIFJlZjxET01Qcm9taXNlPiYmIHByb21pc2UpCitFeGNlcHRpb25Pcjx2
b2lkPiBQYXltZW50UmVxdWVzdDo6dXBkYXRlV2l0aChFdmVudCYgZXZlbnQsIFJlZjxET01Qcm9t
aXNlPiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKCFldmVudC5pc1RydXN0ZWQoKSkKLSAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07Ci0KLSAgICBpZiAoZXZlbnQu
d2FpdEZvclVwZGF0ZSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IgfTsKLQogICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpJbnRlcmFjdGl2ZSkKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKQEAgLTU2Miw3ICs1
NTcsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdDo6dXBkYXRlV2l0aChQYXlt
ZW50UmVxdWVzdFVwZGF0ZUV2ZW50JiBldmVudCwgUgogCiAgICAgZXZlbnQuc3RvcFByb3BhZ2F0
aW9uKCk7CiAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7Ci0gICAgZXZlbnQu
c2V0V2FpdEZvclVwZGF0ZSh0cnVlKTsKICAgICBtX2lzVXBkYXRpbmcgPSB0cnVlOwogCiAgICAg
bV9kZXRhaWxzUHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSk7CkBAIC01NzksNiArNTczLDkgQEAg
dm9pZCBQYXltZW50UmVxdWVzdDo6c2V0dGxlRGV0YWlsc1Byb21pc2UoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlKQogICAgICAgICBtX2lzVXBkYXRpbmcgPSBmYWxzZTsKICAgICB9KTsKIAorICAg
IGlmIChtX3N0YXRlICE9IFN0YXRlOjpJbnRlcmFjdGl2ZSkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgaWYgKG1fZGV0YWlsc1Byb21pc2UtPnN0YXR1cygpID09IERPTVByb21pc2U6OlN0YXR1czo6
UmVqZWN0ZWQpIHsKICAgICAgICAgc3RvcCgpOwogICAgICAgICByZXR1cm47CkBAIC02MTYsMTIg
KzYxMywxMSBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzZXR0bGVEZXRhaWxzUHJvbWlzZShjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUpCiAgICAgbV9kZXRhaWxzLm1vZGlmaWVycyA9IFdURk1vdmUo
cGF5bWVudERldGFpbHNVcGRhdGUubW9kaWZpZXJzKTsKICAgICBtX3NlcmlhbGl6ZWRNb2RpZmll
ckRhdGEgPSBXVEZNb3ZlKHN0ZDo6Z2V0PDE+KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZpZXJEYXRh
KSk7CiAKLSAgICBpZiAodHlwZSA9PSBldmVudE5hbWVzKCkuc2hpcHBpbmdhZGRyZXNzY2hhbmdl
RXZlbnQpCi0gICAgICAgIG1fYWN0aXZlUGF5bWVudEhhbmRsZXItPnNoaXBwaW5nQWRkcmVzc1Vw
ZGF0ZWQocGF5bWVudERldGFpbHNVcGRhdGUuZXJyb3IpOwotICAgIGVsc2UgaWYgKHR5cGUgPT0g
ZXZlbnROYW1lcygpLnNoaXBwaW5nb3B0aW9uY2hhbmdlRXZlbnQpCi0gICAgICAgIG1fYWN0aXZl
UGF5bWVudEhhbmRsZXItPnNoaXBwaW5nT3B0aW9uVXBkYXRlZCgpOwotICAgIGVsc2UKLSAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgYXV0byByZXN1bHQgPSBtX2FjdGl2ZVBheW1l
bnRIYW5kbGVyLT5kZXRhaWxzVXBkYXRlZCh0eXBlLCBwYXltZW50RGV0YWlsc1VwZGF0ZS5lcnJv
cik7CisgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICBhYm9ydFdpdGhF
eGNlcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CiB9CiAKIHZvaWQgUGF5bWVudFJlcXVlc3Q6OmFjY2VwdChjb25zdCBTdHJpbmcmIG1ldGhv
ZE5hbWUsIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiYgZGV0YWlscywgUmVmPFBheW1lbnRB
ZGRyZXNzPiYmIHNoaXBwaW5nQWRkcmVzcywgY29uc3QgU3RyaW5nJiBwYXllck5hbWUsIGNvbnN0
IFN0cmluZyYgcGF5ZXJFbWFpbCwgY29uc3QgU3RyaW5nJiBwYXllclBob25lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5o
CmluZGV4IDMwODBhYTMzNTA0MWFkNzY4NzU1NWU3ZTBmYTRiZmI3N2ZjYTgwMjYuLmZmMzE1Y2I3
YjQyMTdkYjUzNDQyZWViNTI1YmU4YzI4MzFlZmQ2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmgKQEAgLTM5LDkg
KzM5LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBF
dmVudDsKIGNsYXNzIFBheW1lbnRBZGRyZXNzOwogY2xhc3MgUGF5bWVudEhhbmRsZXI7Ci1jbGFz
cyBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50OwogY2xhc3MgUGF5bWVudFJlc3BvbnNlOwogZW51
bSBjbGFzcyBQYXltZW50Q29tcGxldGU7CiBlbnVtIGNsYXNzIFBheW1lbnRTaGlwcGluZ1R5cGU7
CkBAIC03MCwxMCArNzAsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBzaGlwcGluZ0FkZHJlc3ND
aGFuZ2VkKFJlZjxQYXltZW50QWRkcmVzcz4mJik7CiAgICAgdm9pZCBzaGlwcGluZ09wdGlvbkNo
YW5nZWQoY29uc3QgU3RyaW5nJiBzaGlwcGluZ09wdGlvbik7Ci0gICAgRXhjZXB0aW9uT3I8dm9p
ZD4gdXBkYXRlV2l0aChQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50JiwgUmVmPERPTVByb21pc2U+
JiYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHVwZGF0ZVdpdGgoRXZlbnQmLCBSZWY8RE9NUHJv
bWlzZT4mJik7CiAgICAgdm9pZCBhY2NlcHQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBKU0M6
OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiYmIGRldGFpbHMsIFJlZjxQYXltZW50QWRkcmVzcz4mJiBz
aGlwcGluZ0FkZHJlc3MsIGNvbnN0IFN0cmluZyYgcGF5ZXJOYW1lLCBjb25zdCBTdHJpbmcmIHBh
eWVyRW1haWwsIGNvbnN0IFN0cmluZyYgcGF5ZXJQaG9uZSk7CiAgICAgdm9pZCBjb21wbGV0ZShz
dGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJik7CiAKKyAgICAvLyBFdmVudFRhcmdldAor
ICAgIGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudCYpIGZpbmFsOworCiAgICAgdXNpbmcgTWV0aG9k
SWRlbnRpZmllciA9IFZhcmlhbnQ8U3RyaW5nLCBVUkw+OwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8
UGF5bWVudFJlcXVlc3Q+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxQYXltZW50UmVxdWVz
dD46OmRlcmVmOwpAQCAtOTIsNyArOTUsNiBAQCBwcml2YXRlOgogCiAgICAgUGF5bWVudFJlcXVl
c3QoRG9jdW1lbnQmLCBQYXltZW50T3B0aW9ucyYmLCBQYXltZW50RGV0YWlsc0luaXQmJiwgVmVj
dG9yPFN0cmluZz4mJiBzZXJpYWxpemVkTW9kaWZpZXJEYXRhLCBWZWN0b3I8TWV0aG9kPiYmIHNl
cmlhbGl6ZWRNZXRob2REYXRhLCBTdHJpbmcmJiBzZWxlY3RlZFNoaXBwaW5nT3B0aW9uKTsKIAot
ICAgIHZvaWQgZGlzcGF0Y2hVcGRhdGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpOwog
ICAgIHZvaWQgc2V0dGxlRGV0YWlsc1Byb21pc2UoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKTsK
ICAgICB2b2lkIGFib3J0V2l0aEV4Y2VwdGlvbihFeGNlcHRpb24mJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5p
ZGwKaW5kZXggN2ZhMzk5YTg3YWYzNzZkZmQ1Njg0NzY2ZDVjNzJlOTFiMmUzMzFlNi4uNzMyYTc0
MzI5ZGUzOTY4NDljYWVhMzZlYzk5Yjc2Yzk1NzUxMWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGwKQEAg
LTQ1LDQgKzQ1LDUgQEAKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc2hpcHBpbmdvcHRp
b25jaGFuZ2U7CiAKICAgICBbQ29uZGl0aW9uYWw9QVBQTEVfUEFZXSBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9uYXBwbGVwYXl2YWxpZGF0ZW1lcmNoYW50OworICAgIFtDb25kaXRpb25hbD1BUFBM
RV9QQVldIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hcHBsZXBheXBheW1lbnRtZXRob2RjaGFu
Z2VkOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVl
c3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQuY3BwCmluZGV4IGNlZWRi
ZDFiZjJiOWYxMGJhZDZlMWVhNWZmZDAzYzNkMzRhYzc1MGEuLjQ3NDRmZTk5NWFkNmJlNThhZTMy
NWI0YTYxZmQ2Y2Y1ZmQ4ZjJiZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50
LmNwcApAQCAtNDcsNyArNDcsMTggQEAgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudDo6flBheW1l
bnRSZXF1ZXN0VXBkYXRlRXZlbnQoKSA9IGRlZmF1bHQ7CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFBh
eW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQ6OnVwZGF0ZVdpdGgoUmVmPERPTVByb21pc2U+JiYgZGV0
YWlsc1Byb21pc2UpCiB7Ci0gICAgcmV0dXJuIG1fcGF5bWVudFJlcXVlc3QtPnVwZGF0ZVdpdGgo
KnRoaXMsIFdURk1vdmUoZGV0YWlsc1Byb21pc2UpKTsKKyAgICBpZiAoIWlzVHJ1c3RlZCgpKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlm
IChtX3dhaXRGb3JVcGRhdGUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9OworCisgICAgYXV0byBleGNlcHRpb24gPSBtX3BheW1lbnRSZXF1ZXN0LT51cGRh
dGVXaXRoKCp0aGlzLCBXVEZNb3ZlKGRldGFpbHNQcm9taXNlKSk7CisgICAgaWYgKGV4Y2VwdGlv
bi5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0
aW9uKCk7CisKKyAgICBtX3dhaXRGb3JVcGRhdGUgPSB0cnVlOworICAgIHJldHVybiB7IH07CiB9
CiAKIEV2ZW50SW50ZXJmYWNlIFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQ6OmV2ZW50SW50ZXJm
YWNlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJl
cXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50LmgKaW5kZXggNGZhZDY0
NDhiNDFmZGUzYzlhNTQyZTY2NmVhYjkwNzRkZWRlN2QzYy4uMzAwNDFhMjgzOWQzNThkNTYxMDUy
ODhjNWQyMmFiZTIwMTJkYTk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50LmgK
QEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgRE9NUHJvbWlzZTsKIGNsYXNzIFBheW1lbnRSZXF1ZXN0
Owogc3RydWN0IFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnRJbml0OwogCi1jbGFzcyBQYXltZW50
UmVxdWVzdFVwZGF0ZUV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIFBheW1lbnRS
ZXF1ZXN0VXBkYXRlRXZlbnQgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZS4uLiBBcmdzPiBzdGF0aWMgUmVmPFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQ+
IGNyZWF0ZShBcmdzJiYuLi4gYXJncykKICAgICB7CkBAIC00NSwxNSArNDUsMTQgQEAgcHVibGlj
OgogICAgIH5QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50KCk7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gdXBkYXRlV2l0aChSZWY8RE9NUHJvbWlzZT4mJik7CiAKLSAgICBib29sIHdhaXRGb3JVcGRh
dGUoKSBjb25zdCB7IHJldHVybiBtX3dhaXRGb3JVcGRhdGU7IH0KLSAgICB2b2lkIHNldFdhaXRG
b3JVcGRhdGUoYm9vbCB3YWl0Rm9yVXBkYXRlKSB7IG1fd2FpdEZvclVwZGF0ZSA9IHdhaXRGb3JV
cGRhdGU7IH0KLQotcHJpdmF0ZToKLSAgICBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudEluaXQmJik7Citw
cm90ZWN0ZWQ6CiAgICAgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIFBheW1lbnRSZXF1ZXN0Jik7CiAKICAgICAvLyBFdmVudAotICAgIEV2ZW50SW50
ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgZmluYWw7CisgICAgRXZlbnRJbnRlcmZhY2Ug
ZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBQYXltZW50
UmVxdWVzdFVwZGF0ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGF5bWVudFJlcXVl
c3RVcGRhdGVFdmVudEluaXQmJik7CiAKICAgICBSZWZQdHI8UGF5bWVudFJlcXVlc3Q+IG1fcGF5
bWVudFJlcXVlc3Q7CiAgICAgYm9vbCBtX3dhaXRGb3JVcGRhdGUgeyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBh
NmNjNGQ2ZTZjZDMxOTk3NDc1NjZiODhjOGIyZWI2YzZiYjllMzAuLmE0MzI4NmQ0NTY1ZTM2Njhm
N2VjNjg1YTJiMzRhYjUwMTlkNmNkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3MDcsNiArMzcwNywxMSBAQAogCQlBMUJG
NkI4MzFBQTk2QzdEMDBBRjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkY2QjgxMUFBOTZDN0QwMEFGNEE4
QSAvKiBNb2NrQ29udGVudEZpbHRlci5oICovOyB9OwogCQlBMUMxNTA3OTFFM0YyQjNFMDAzMkM5
OEMgLyogUHJldmlld0NvbnZlcnRlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExQzE1MDc3MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVy
dGVyLm1tICovOyB9OwogCQlBMUMxNTA3QTFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZl
cnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFD
MTUwNzgxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIuaCAqLzsgfTsKKwkJQTFD
QkVGNTMxRjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUNCRUY1
MDFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCAq
LzsgfTsKKwkJQTFDQkVGNTQxRjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExQ0JFRjUxMUY5RUVFNzUwMDI4REU3QyAvKiBBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGVFdmVudC5jcHAgKi87IH07CisJCUExQ0JFRjYxMUY5RjA5MDQwMDI4REU3QyAvKiBKU0Fw
cGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQ0JFRjVGMUY5RjA5MDIwMDI4REU3QyAvKiBKU0Fw
cGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCAqLzsgfTsKKwkJQTFDQkVGNjIxRjlG
MDkwNDAwMjhERTdDIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQ0JFRjYwMUY5RjA5
MDIwMDI4REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmggKi87IH07
CisJCUExQ0JFRjY0MUY5RjExMjkwMDI4REU3QyAvKiBNb2NrUGF5bWVudE1ldGhvZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDQkVGNjMxRjlGMTEy
OTAwMjhERTdDIC8qIE1vY2tQYXltZW50TWV0aG9kLmggKi87IH07CiAJCUExQ0MxMTY0MUU0OTNE
MDEwMEVGQTY5QyAvKiBGaWxlU3lzdGVtTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDQzExNjIxRTQ5M0QwMTAwRUZBNjlDIC8qIEZpbGVTeXN0
ZW1NYWMubW0gKi87IH07CiAJCUExQ0M1NjY3MUY0NjE0N0EwMEE0NTU1QiAvKiBKU1BheW1lbnRB
ZGRyZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MUNDNTY2NTFGNDYxNDY4MDBBNDU1NUIgLyogSlNQYXltZW50QWRkcmVzcy5oICovOyB9OwogCQlB
MUNDNTY2OTFGNDYxNDgwMDBBNDU1NUIgLyogSlNQYXltZW50Q29tcGxldGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQ0M1NjRFMUY0NjE0NTIwMEE0
NTU1QiAvKiBKU1BheW1lbnRDb21wbGV0ZS5oICovOyB9OwpAQCAtMTE4OTAsNiArMTE4OTUsMTIg
QEAKIAkJQTFDMTUwNzcxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcmV2aWV3Q29udmVydGVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUMxNTA3ODFFM0YyQjNFMDAzMkM5OEMg
LyogUHJldmlld0NvbnZlcnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
cmV2aWV3Q29udmVydGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQzdGQUEx
MTMzQTVEMzUwMEQ2NzMyRCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBMUNCRUY1MDFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQ
YXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTFD
QkVGNTExRjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTFDQkVGNTIxRjlFRUU3NTAwMjhE
RTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBh
eVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUExQ0JFRjVGMUY5RjA5MDIwMDI4REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBMUNCRUY2MDFGOUYwOTAyMDAyOERFN0MgLyogSlNBcHBsZVBheVBheW1lbnRNZXRo
b2RVcGRhdGVFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FwcGxl
UGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUExQ0JFRjYzMUY5RjExMjkwMDI4REU3QyAvKiBNb2NrUGF5bWVudE1ldGhvZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNb2NrUGF5bWVudE1ldGhvZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMUNDMTE2MjFFNDkzRDAxMDBFRkE2OUMgLyogRmlsZVN5c3RlbU1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1NYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQ0M1NjRDMUY0NjE0NTAwMEE0NTU1QiAvKiBKU1Bh
eW1lbnRNZXRob2REYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUGF5
bWVudE1ldGhvZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFDQzU2NEQx
RjQ2MTQ1MTAwQTQ1NTVCIC8qIEpTUGF5bWVudE1ldGhvZERhdGEuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQYXltZW50TWV0aG9kRGF0YS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQ5NSw2ICsxNjUwNiw4IEBACiAJCQkJMUFFOTZBN0Qx
RDFBMEE4MDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5o
ICovLAogCQkJCTFBREZERkU1MUU3MURDQTAwMDhGNUQzNCAvKiBKU0FwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZS5jcHAgKi8sCiAJCQkJMUFERkRGRTYxRTcxRENBMDAwOEY1RDM0IC8qIEpTQXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggKi8sCisJCQkJQTFDQkVGNUYxRjlGMDkwMjAwMjhE
RTdDIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuY3BwICovLAorCQkJCUEx
Q0JFRjYwMUY5RjA5MDIwMDI4REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2
ZW50LmggKi8sCiAJCQkJN0M2NTIzMEYxRTAwREJCNDAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXlt
ZW50UGFzcy5jcHAgKi8sCiAJCQkJN0M2NTIzMTAxRTAwREJCNDAwNjc3RjIyIC8qIEpTQXBwbGVQ
YXlQYXltZW50UGFzcy5oICovLAogCQkJCTdDNjU3OUVCMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0Fw
cGxlUGF5UGF5bWVudFJlcXVlc3QuY3BwICovLApAQCAtMTcyNzUsNiArMTcyODgsNyBAQAogCQkJ
CUExQUZFREU1MUY4QkZGNkQwMDg3MDEzRiAvKiBNb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcCAq
LywKIAkJCQlBMUFGRURFNDFGOEJGRjZEMDA4NzAxM0YgLyogTW9ja1BheW1lbnRDb29yZGluYXRv
ci5oICovLAogCQkJCUExNDZEMzE2MUY5OUI1M0QwMEQyOTE5NiAvKiBNb2NrUGF5bWVudENvb3Jk
aW5hdG9yLmlkbCAqLywKKwkJCQlBMUNCRUY2MzFGOUYxMTI5MDAyOERFN0MgLyogTW9ja1BheW1l
bnRNZXRob2QuaCAqLywKIAkJCQlBMTQwNjE4OTFFMkVDQTBBMDAzMkIzNEUgLyogTW9ja1ByZXZp
ZXdMb2FkZXJDbGllbnQuY3BwICovLAogCQkJCUExNDA2MThBMUUyRUNBMEEwMDMyQjM0RSAvKiBN
b2NrUHJldmlld0xvYWRlckNsaWVudC5oICovLAogCQkJCUVCMDgxQ0Q4MTY5NjA4NDQwMDU1Mzcz
MCAvKiBUeXBlQ29udmVyc2lvbnMuaCAqLywKQEAgLTIxMTE1LDYgKzIxMTI5LDkgQEAKIAkJCQlB
MUY5Mjk2ODFGOEQ5Q0RCMDA1MjNBRjMgLyogQXBwbGVQYXlNZXJjaGFudFZhbGlkYXRpb25FdmVu
dC5pZGwgKi8sCiAJCQkJQTFERjVBQTExRjdFRTExMzAwNThBNDc3IC8qIEFwcGxlUGF5UGF5bWVu
dEhhbmRsZXIuY3BwICovLAogCQkJCUExREY1QUEwMUY3RUUxMTMwMDU4QTQ3NyAvKiBBcHBsZVBh
eVBheW1lbnRIYW5kbGVyLmggKi8sCisJCQkJQTFDQkVGNTExRjlFRUU3NTAwMjhERTdDIC8qIEFw
cGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCAqLywKKwkJCQlBMUNCRUY1MDFGOUVF
RTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCAqLywKKwkJ
CQlBMUNCRUY1MjFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
RXZlbnQuaWRsICovLAogCQkJCUExREY1QTdDMUY3RUJEMEIwMDU4QTQ3NyAvKiBBcHBsZVBheVJl
cXVlc3QuaCAqLywKIAkJCQlBMURGNUE3RTFGN0VCRDBCMDA1OEE0NzcgLyogQXBwbGVQYXlSZXF1
ZXN0LmlkbCAqLywKIAkJCSk7CkBAIC0yNjU1Miw2ICsyNjU2OSw3IEBACiAJCQkJQTE0NkQzMjEx
Rjk5Q0IxQTAwRDI5MTk2IC8qIE1vY2tQYXltZW50QWRkcmVzcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTE0NkQzMjUxRjk5RDY5ODAwRDI5MTk2IC8qIE1vY2tQYXltZW50Q29udGFjdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTFBRkVERTYxRjhCRkY2RDAwODcwMTNGIC8qIE1vY2tQYXltZW50Q29v
cmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUExQ0JFRjY0MUY5RjExMjkwMDI4REU3QyAv
KiBNb2NrUGF5bWVudE1ldGhvZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0MDYxOEMxRTJFQ0Ew
QTAwMzJCMzRFIC8qIE1vY2tQcmV2aWV3TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBQTVGM0I4RDE2Q0MzM0QxMDA0NTVFQjAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1v
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCUExNzYzRjNGMUUyMDUyMzQwMDFENThERSAvKiBXZWJB
cmNoaXZlRHVtcFN1cHBvcnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY2MzAsNiArMjY2NDgsNyBA
QAogCQkJCUExREY1QUEyMUY3RUUxMTMwMDU4QTQ3NyAvKiBBcHBsZVBheVBheW1lbnRIYW5kbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzY1MjJFRjFFMDBBNEM3MDA2NzdGMjIgLyogQXBwbGVQ
YXlQYXltZW50TWV0aG9kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThBNjQ1NjFEMTlGQ0ZDMDBE
MEUwMEYgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTFDQkVGNTMxRjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzY1MjJGNTFFMDBBNTE3MDA2NzdG
MjIgLyogQXBwbGVQYXlQYXltZW50UGFzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M2NTc5RTAx
RTAwNzlGOTAwRTNBMjdBIC8qIEFwcGxlUGF5UGF5bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExREY1QTdGMUY3RUJEMEIwMDU4QTQ3NyAvKiBBcHBsZVBheVJlcXVlc3QuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjc4OTUsNiArMjc5MTQsNyBAQAogCQkJCTdDNjUyMzE2MUUwMERCQjUw
MDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5bWVudENvbnRhY3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdDNjUyMzE4MUUwMERCQjUwMDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUFFOTZBOEQxRDFBMERERDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlQ
YXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTFDQkVGNjIx
RjlGMDkwNDAwMjhERTdDIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTdDNjUyMzFBMUUwMERCQjUwMDY3N0YyMiAvKiBKU0FwcGxlUGF5
UGF5bWVudFBhc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNjU3OUYyMUUwMDg1NjYwMEUzQTI3
QSAvKiBKU0FwcGxlUGF5UGF5bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUExREY1
QThGMUY3RUMwMDIwMDU4QTQ3NyAvKiBKU0FwcGxlUGF5UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMDgxNyw2ICszMDgzNyw3IEBACiAJCQkJMUE4QTY0NTExRDE5RkNGQjAwRDBFMDBGIC8q
IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6ZWRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
MURGNUFBMzFGN0VFMTEzMDA1OEE0NzcgLyogQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQThBNjQ1NDFEMTlGQ0ZDMDBEMEUwMEYgLyogQXBwbGVQYXlQYXlt
ZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBMUNCRUY1NDFG
OUVFRTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTFERjVBQUUxRjgwNzVGMTAwNThBNDc3IC8qIEFwcGxlUGF5UmVx
dWVzdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4QTY0NTgxRDE5RkNGQzAwRDBFMDBG
IC8qIEFwcGxlUGF5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU4RTg2NzFEMTlE
ODBFMDBDMEVBNzMgLyogQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0zMTUyOCw2ICszMTU0OSw3IEBACiAJCQkJN0M2NTIzMTcxRTAwREJCNTAwNjc3
RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
RTk2QThDMUQxQTBEREQwMEI4Njc2OCAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVk
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFERkRGRUQxRTcxRTQ3NTAwOEY1RDM0IC8q
IEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUEx
Q0JFRjYxMUY5RjA5MDQwMDI4REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNjUyMzE5MUUwMERCQjUwMDY3N0YyMiAvKiBK
U0FwcGxlUGF5UGF5bWVudFBhc3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M2NTc5RjExRTAw
ODU2NjAwRTNBMjdBIC8qIEpTQXBwbGVQYXlQYXltZW50UmVxdWVzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBMURGNUE5MDFGN0VDMDAyMDA1OEE0NzcgLyogSlNBcHBsZVBheVJlcXVlc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA5ZjQ5NTcwNDgxYjE5
MWFlZTY5ZGQ5NDBkN2U4ZDgyMzEwMzgzNTc0Li45ZmIwNDVkZTE0NmVmYzFlZDk5Yzg0ODVlNDVm
OTE5MjFlNTEyMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTUzLDYgKzUzLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGFuaW1hdGlvbmVuZCkgXAogICAgIG1hY3Jv
KGFuaW1hdGlvbml0ZXJhdGlvbikgXAogICAgIG1hY3JvKGFuaW1hdGlvbnN0YXJ0KSBcCisgICAg
bWFjcm8oYXBwbGVwYXlwYXltZW50bWV0aG9kY2hhbmdlZCkgXAogICAgIG1hY3JvKGFwcGxlcGF5
dmFsaWRhdGVtZXJjaGFudCkgXAogICAgIG1hY3JvKGF1ZGlvZW5kKSBcCiAgICAgbWFjcm8oYXVk
aW9wcm9jZXNzKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5p
biBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCmluZGV4IDdjNmIzYTVhNmEzZWU4
YjlkOGZlOTNjZTdhOTM1NjFhZDE3MjU3NGEuLjFiYWFjOWVkNjgzMWQyMjMzMDY0ZjA3N2FlNWQy
ZDcyOGFiNjU0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCkBAIC00MSw2ICs0MSw3IEBA
IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudAogQXBwbGVQYXlNZXJjaGFudFZhbGlkYXRpb25F
dmVudCBjb25kaXRpb25hbD1BUFBMRV9QQVkKIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6ZWRFdmVu
dCBjb25kaXRpb25hbD1BUFBMRV9QQVkKIEFwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZl
bnQgY29uZGl0aW9uYWw9QVBQTEVfUEFZCitBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVu
dCBjb25kaXRpb25hbD1BUFBMRV9QQVkKIEFwcGxlUGF5U2hpcHBpbmdDb250YWN0U2VsZWN0ZWRF
dmVudCBjb25kaXRpb25hbD1BUFBMRV9QQVkKIEFwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3Rl
ZEV2ZW50IGNvbmRpdGlvbmFsPUFQUExFX1BBWQogQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZl
bnQgY29uZGl0aW9uYWw9QVBQTEVfUEFZCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcAppbmRleCBmOTdhMjg1YzU0NTNjYzUxMDk4ZTNhYTEy
MmQ2NWI4OTI1MTA5ZGI1Li5hZTA1ZjI0NDI1MzIzMDBhZDIwMGE1OTc2NzMxNThhM2JhYWQwN2Nm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRv
ci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRl
ICJNb2NrUGF5bWVudC5oIgogI2luY2x1ZGUgIk1vY2tQYXltZW50Q29udGFjdC5oIgorI2luY2x1
ZGUgIk1vY2tQYXltZW50TWV0aG9kLmgiCiAjaW5jbHVkZSAiUGF5bWVudENvb3JkaW5hdG9yLmgi
CiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KQEAgLTExMyw2ICsx
MTQsMTMgQEAgdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjaGFuZ2VTaGlwcGluZ09wdGlv
bihTdHJpbmcmJiBzaGlwcGluZ09wdGlvbikKICAgICB9KTsKIH0KIAordm9pZCBNb2NrUGF5bWVu
dENvb3JkaW5hdG9yOjpjaGFuZ2VQYXltZW50TWV0aG9kKEFwcGxlUGF5UGF5bWVudE1ldGhvZCYm
IHBheW1lbnRNZXRob2QpCit7CisgICAgZGlzcGF0Y2hJZlNob3dpbmcoW21haW5GcmFtZSA9IG1h
a2VSZWYobV9tYWluRnJhbWUpLCBwYXltZW50TWV0aG9kID0gV1RGTW92ZShwYXltZW50TWV0aG9k
KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgbWFpbkZyYW1lLT5wYXltZW50Q29vcmRpbmF0b3IoKS5k
aWRTZWxlY3RQYXltZW50TWV0aG9kKE1vY2tQYXltZW50TWV0aG9kIHsgV1RGTW92ZShwYXltZW50
TWV0aG9kKSB9KTsKKyAgICB9KTsKK30KKwogdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjph
Y2NlcHRQYXltZW50KCkKIHsKICAgICBkaXNwYXRjaElmU2hvd2luZyhbbWFpbkZyYW1lID0gbWFr
ZVJlZihtX21haW5GcmFtZSksIHNoaXBwaW5nQWRkcmVzcyA9IG1fc2hpcHBpbmdBZGRyZXNzXSgp
IG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVu
dENvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRp
bmF0b3IuaAppbmRleCA2ZTdiNWY3ZmM4Mzg2Y2ViYzUwODgwZTljYWQ4YTBhOThlMjIwZmQ2Li43
NTM1ZWI0NDRiNDExNGJjOTdlMGEyYzI2MDE5MDBjN2E2YWRjYzE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaApAQCAtMzEsOCArMzEsOSBA
QAogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvckNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0gICAgCisKIGNsYXNzIE1haW5GcmFtZTsKK3N0cnVjdCBBcHBsZVBheVBheW1lbnRN
ZXRob2Q7CiAKIGNsYXNzIE1vY2tQYXltZW50Q29vcmRpbmF0b3IgZmluYWwgOiBwdWJsaWMgUGF5
bWVudENvb3JkaW5hdG9yQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTQwLDYgKzQxLDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzZXRTaGlwcGluZ0FkZHJlc3MoTW9ja1BheW1lbnRBZGRyZXNzJiYgc2hp
cHBpbmdBZGRyZXNzKSB7IG1fc2hpcHBpbmdBZGRyZXNzID0gV1RGTW92ZShzaGlwcGluZ0FkZHJl
c3MpOyB9CiAgICAgdm9pZCBjaGFuZ2VTaGlwcGluZ09wdGlvbihTdHJpbmcmJiBzaGlwcGluZ09w
dGlvbik7CisgICAgdm9pZCBjaGFuZ2VQYXltZW50TWV0aG9kKEFwcGxlUGF5UGF5bWVudE1ldGhv
ZCYmKTsKICAgICB2b2lkIGFjY2VwdFBheW1lbnQoKTsKIAogICAgIHZvaWQgcmVmKCkgY29uc3Qg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRp
bmF0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9y
LmlkbAppbmRleCAxYjRkYzAxMjI4NWYxYjg3ZDFmMjdlOGUxZDYwMGZhY2M5MDcwMDgxLi42NGU5
NmNlNzhlOTY1OTg5MDA4MmJmZmNjODM2NWRiNDk4ZGJjMWFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5pZGwKQEAgLTI5LDUgKzI5LDYg
QEAKIF0gaW50ZXJmYWNlIE1vY2tQYXltZW50Q29vcmRpbmF0b3IgewogICAgIHZvaWQgc2V0U2hp
cHBpbmdBZGRyZXNzKE1vY2tQYXltZW50QWRkcmVzcyBzaGlwcGluZ0FkZHJlc3MpOwogICAgIHZv
aWQgY2hhbmdlU2hpcHBpbmdPcHRpb24oRE9NU3RyaW5nIHNoaXBwaW5nT3B0aW9uKTsKKyAgICB2
b2lkIGNoYW5nZVBheW1lbnRNZXRob2QoQXBwbGVQYXlQYXltZW50TWV0aG9kIHBheW1lbnRNZXRo
b2QpOwogICAgIHZvaWQgYWNjZXB0UGF5bWVudCgpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRNZXRob2QuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja1BheW1lbnRNZXRob2QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTRmNGQ3ZjI0MzlmNGM4MzJlNGI5
NWU5MTlhODc3ZWJlNThmZTljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrUGF5bWVudE1ldGhvZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUFBMRV9QQVkpCisKKyNpbmNsdWRlICJBcHBsZVBh
eVBheW1lbnRNZXRob2QuaCIKKyNpbmNsdWRlICJQYXltZW50TWV0aG9kLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgTW9ja1BheW1lbnRNZXRob2QgZmluYWwgOiBwdWJsaWMgUGF5
bWVudE1ldGhvZCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTW9ja1BheW1lbnRNZXRob2QoQXBw
bGVQYXlQYXltZW50TWV0aG9kJiYgYXBwbGVQYXlQYXltZW50TWV0aG9kKQorICAgICAgICA6IG1f
YXBwbGVQYXlQYXltZW50TWV0aG9kIHsgV1RGTW92ZShhcHBsZVBheVBheW1lbnRNZXRob2QpIH0K
KyAgICB7CisgICAgfQorCisgICAgQXBwbGVQYXlQYXltZW50TWV0aG9kIHRvQXBwbGVQYXlQYXlt
ZW50TWV0aG9kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hcHBsZVBheVBheW1lbnRNZXRob2Q7
IH0KKworcHJpdmF0ZToKKyAgICBBcHBsZVBheVBheW1lbnRNZXRob2QgbV9hcHBsZVBheVBheW1l
bnRNZXRob2Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRiMGEyOWQyMGFhOWFmMjg1YjM1NzExODdhNzY1YzJhOWY4
NTU5ZDcuLjZhYzJmNGI1NjdlZmVjNTJiNDc4ZWVhMzk3MmFkMmZkZjdhYmE2ZjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxNy0xMC0yNCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CisKKyAgICAgICAgW0FwcGxlIFBheV0gSW1wbGVtZW50IGEgcGF5bWVudG1ldGhvZHNlbGVjdGVk
IGV2ZW50IGZvciBQYXltZW50UmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NzbC9hcHBsZXBheS9BcHBsZVBheVBheW1l
bnRNZXRob2RVcGRhdGVFdmVudC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc3NsL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50
Lmh0dHBzLmh0bWw6IEFkZGVkLgorCiAyMDE3LTEwLTI0ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVuYWJsZSBXZWJLaXQg
bG9nZ2luZyBjb25maWd1cmF0aW9uIGFuZCBkaXNwbGF5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVu
dC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBh
eS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5odHRwcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODA3YjE4YzQ1NzgxYTNiZDM1YWJlNTM2ZTZlZDdkNzIxNDQ5ZDNmZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2FwcGxlcGF5L0FwcGxlUGF5
UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5
IEBACitUZXN0IHRoZSBhcHBsZXBheXBheW1lbnRtZXRob2RjaGFuZ2VkIGV2ZW50LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdGluZyBBcHBsZVBheU1lcmNoYW50VmFsaWRh
dGlvbkV2ZW50CisKK1BBU1MgZXZlbnQucGF5bWVudE1ldGhvZC5kaXNwbGF5TmFtZSBpcyBleHBl
Y3RlZFBheW1lbnRNZXRob2QuZGlzcGxheU5hbWUKK1BBU1MgZXZlbnQucGF5bWVudE1ldGhvZC5u
ZXR3b3JrIGlzIGV4cGVjdGVkUGF5bWVudE1ldGhvZC5uZXR3b3JrCitQQVNTIGV2ZW50LnBheW1l
bnRNZXRob2QudHlwZSBpcyBleHBlY3RlZFBheW1lbnRNZXRob2QudHlwZQorUEFTUyBldmVudC5w
YXltZW50TWV0aG9kLnBheW1lbnRQYXNzLnByaW1hcnlBY2NvdW50SWRlbnRpZmllciBpcyBleHBl
Y3RlZFBheW1lbnRNZXRob2QucGF5bWVudFBhc3MucHJpbWFyeUFjY291bnRJZGVudGlmaWVyCitQ
QVNTIGV2ZW50LnBheW1lbnRNZXRob2QucGF5bWVudFBhc3MucHJpbWFyeUFjY291bnROdW1iZXJT
dWZmaXggaXMgZXhwZWN0ZWRQYXltZW50TWV0aG9kLnBheW1lbnRQYXNzLnByaW1hcnlBY2NvdW50
TnVtYmVyU3VmZml4CitQQVNTIGV2ZW50LnBheW1lbnRNZXRob2QucGF5bWVudFBhc3MuZGV2aWNl
QWNjb3VudElkZW50aWZpZXIgaXMgZXhwZWN0ZWRQYXltZW50TWV0aG9kLnBheW1lbnRQYXNzLmRl
dmljZUFjY291bnRJZGVudGlmaWVyCitQQVNTIGV2ZW50LnBheW1lbnRNZXRob2QucGF5bWVudFBh
c3MuZGV2aWNlQWNjb3VudE51bWJlclN1ZmZpeCBpcyBleHBlY3RlZFBheW1lbnRNZXRob2QucGF5
bWVudFBhc3MuZGV2aWNlQWNjb3VudE51bWJlclN1ZmZpeAorUEFTUyBldmVudC5wYXltZW50TWV0
aG9kLnBheW1lbnRQYXNzLmFjdGl2YXRpb25TdGF0ZSBpcyBleHBlY3RlZFBheW1lbnRNZXRob2Qu
cGF5bWVudFBhc3MuYWN0aXZhdGlvblN0YXRlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zc2wvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZUV2ZW50Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q0YjBlYTZiNGUxZmU5NDEy
NTQwZDUxMDNiY2FjZDY3NmFhYjU3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc3NsL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50Lmh0
dHBzLmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCitkZXNjcmlw
dGlvbigiVGVzdCB0aGUgYXBwbGVwYXlwYXltZW50bWV0aG9kY2hhbmdlZCBldmVudC4iKTsKKwor
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiB2YWxpZFBheW1lbnRNZXRo
b2QoKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgc3VwcG9ydGVkTWV0aG9kczogJ2h0dHBzOi8v
YXBwbGUuY29tL2FwcGxlLXBheScsCisgICAgICAgIGRhdGE6IHsKKyAgICAgICAgICAgIHZlcnNp
b246IDIsCisgICAgICAgICAgICBtZXJjaGFudElkZW50aWZpZXI6ICcnLAorICAgICAgICAgICAg
Y291bnRyeUNvZGU6ICdVUycsCisgICAgICAgICAgICBzdXBwb3J0ZWROZXR3b3JrczogWyd2aXNh
JywgJ21hc3RlckNhcmQnXSwKKyAgICAgICAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbJ3N1
cHBvcnRzM0RTJ10sCisgICAgICAgIH0sCisgICAgfQorfQorCitmdW5jdGlvbiB2YWxpZFBheW1l
bnREZXRhaWxzKCkgeworICAgIHJldHVybiB7CisgICAgICAgIHRvdGFsOiB7IGxhYmVsOiAnWW91
ciBsYWJlbCcsIGFtb3VudDogeyBjdXJyZW5jeTogJ1VTRCcsIHZhbHVlOiAnMTAuMDAnIH0gfSwK
KyAgICB9Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGdvKCkgeworICAgIGRlYnVnKCJUZXN0aW5nIEFw
cGxlUGF5TWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQiKTsKKyAgICBkZWJ1ZygiIik7CisKKyAgICBl
eHBlY3RlZFBheW1lbnRNZXRob2QgPSB7CisgICAgICAgIGRpc3BsYXlOYW1lOiAndGVzdCcsCisg
ICAgICAgIG5ldHdvcms6ICd0ZXN0JywKKyAgICAgICAgdHlwZTogJ3ByZXBhaWQnLAorICAgICAg
ICBwYXltZW50UGFzczogeworICAgICAgICAgICAgcHJpbWFyeUFjY291bnRJZGVudGlmaWVyOiAn
dGVzdCcsCisgICAgICAgICAgICBwcmltYXJ5QWNjb3VudE51bWJlclN1ZmZpeDogJ3Rlc3QnLAor
ICAgICAgICAgICAgZGV2aWNlQWNjb3VudElkZW50aWZpZXI6ICd0ZXN0JywKKyAgICAgICAgICAg
IGRldmljZUFjY291bnROdW1iZXJTdWZmaXg6ICd0ZXN0JywKKyAgICAgICAgICAgIGFjdGl2YXRp
b25TdGF0ZTogJ3JlcXVpcmVzQWN0aXZhdGlvbicsCisgICAgICAgIH0sCisgICAgfTsKKworICAg
IHZhciBwYXltZW50UmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChbdmFsaWRQYXltZW50TWV0
aG9kKCldLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpOworICAgIHBheW1lbnRSZXF1ZXN0Lm9uYXBw
bGVwYXlwYXltZW50bWV0aG9kY2hhbmdlZCA9IChldmVudCkgPT4geworICAgICAgICBzaG91bGRC
ZSgiZXZlbnQucGF5bWVudE1ldGhvZC5kaXNwbGF5TmFtZSIsICJleHBlY3RlZFBheW1lbnRNZXRo
b2QuZGlzcGxheU5hbWUiKTsKKyAgICAgICAgc2hvdWxkQmUoImV2ZW50LnBheW1lbnRNZXRob2Qu
bmV0d29yayIsICJleHBlY3RlZFBheW1lbnRNZXRob2QubmV0d29yayIpOworICAgICAgICBzaG91
bGRCZSgiZXZlbnQucGF5bWVudE1ldGhvZC50eXBlIiwgImV4cGVjdGVkUGF5bWVudE1ldGhvZC50
eXBlIik7CisgICAgICAgIHNob3VsZEJlKCJldmVudC5wYXltZW50TWV0aG9kLnBheW1lbnRQYXNz
LnByaW1hcnlBY2NvdW50SWRlbnRpZmllciIsICJleHBlY3RlZFBheW1lbnRNZXRob2QucGF5bWVu
dFBhc3MucHJpbWFyeUFjY291bnRJZGVudGlmaWVyIik7CisgICAgICAgIHNob3VsZEJlKCJldmVu
dC5wYXltZW50TWV0aG9kLnBheW1lbnRQYXNzLnByaW1hcnlBY2NvdW50TnVtYmVyU3VmZml4Iiwg
ImV4cGVjdGVkUGF5bWVudE1ldGhvZC5wYXltZW50UGFzcy5wcmltYXJ5QWNjb3VudE51bWJlclN1
ZmZpeCIpOworICAgICAgICBzaG91bGRCZSgiZXZlbnQucGF5bWVudE1ldGhvZC5wYXltZW50UGFz
cy5kZXZpY2VBY2NvdW50SWRlbnRpZmllciIsICJleHBlY3RlZFBheW1lbnRNZXRob2QucGF5bWVu
dFBhc3MuZGV2aWNlQWNjb3VudElkZW50aWZpZXIiKTsKKyAgICAgICAgc2hvdWxkQmUoImV2ZW50
LnBheW1lbnRNZXRob2QucGF5bWVudFBhc3MuZGV2aWNlQWNjb3VudE51bWJlclN1ZmZpeCIsICJl
eHBlY3RlZFBheW1lbnRNZXRob2QucGF5bWVudFBhc3MuZGV2aWNlQWNjb3VudE51bWJlclN1ZmZp
eCIpOworICAgICAgICBzaG91bGRCZSgiZXZlbnQucGF5bWVudE1ldGhvZC5wYXltZW50UGFzcy5h
Y3RpdmF0aW9uU3RhdGUiLCAiZXhwZWN0ZWRQYXltZW50TWV0aG9kLnBheW1lbnRQYXNzLmFjdGl2
YXRpb25TdGF0ZSIpOworCisgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIp
LnJlbW92ZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9OworICAgIAorICAgIHBh
eW1lbnRSZXF1ZXN0LnNob3coKTsKKyAgICBpbnRlcm5hbHMubW9ja1BheW1lbnRDb29yZGluYXRv
ci5jaGFuZ2VQYXltZW50TWV0aG9kKGV4cGVjdGVkUGF5bWVudE1ldGhvZCk7Cit9CisKK3dpbmRv
dy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigiYnV0dG9uIik7CisgICAgbGV0IHggPSBidXR0b24ub2Zmc2V0TGVmdCArIDI7Cisg
ICAgbGV0IHkgPSBidXR0b24ub2Zmc2V0VG9wICsgMjsKKyAgICBVSUhlbHBlci5hY3RpdmF0ZUF0
KHgsIHkpOworfQorCis8L3NjcmlwdD4KKzxidXR0b24gb25jbGljaz0nZ28oKSc+R288L2J1dHRv
bj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324763</attachid>
            <date>2017-10-24 17:10:42 -0700</date>
            <delta_ts>2017-10-24 17:31:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178765-20171024171041.patch</filename>
            <type>text/plain</type>
            <size>48277</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDllNzEwNjk3MTA5NmU5
NzhhNDdhOWE4MzBlODkyZDIxOTljMTM5Yy4uOTY3NzVjNTMwNTJkNjUyNDViMDk3ZWE3MmM0MDYw
ZWQzYzllMjMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE3LTEwLTI0ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQXBwbGUgUGF5XSBJbXBsZW1l
bnQgYSBwYXltZW50bWV0aG9kc2VsZWN0ZWQgZXZlbnQgZm9yIFBheW1lbnRSZXF1ZXN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg3NjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZSBBcHBs
ZSBQYXkgcGF5bWVudCBtZXRob2QgY2hhbmdlcywgZmlyZSBhbiBhcHBsZXBheXBheW1lbnRtZXRo
b2RjaGFuZ2VkIGV2ZW50IG9uIHRoZQorICAgICAgICBQYXltZW50UmVxdWVzdCBvYmplY3QuIFRo
ZSBldmVudCBoYXMgYSBwYXltZW50TWV0aG9kIHByb3BlcnR5IGFuZCBhbiB1cGRhdGVXaXRoKCkg
bWV0aG9kCisgICAgICAgIHdoaWNoIGlkZW50aWNhbGx5IHRvIFBheW1lbnRSZXF1ZXN0VXBkYXRl
RXZlbnQudXBkYXRlV2l0aCgpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvc3NsL2FwcGxl
cGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50Lmh0dHBzLmh0bWwKKworICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVBheW1lbnRNZXRob2QuaWRsOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5oOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRNZXRob2QuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlBheW1lbnRNZXRob2Q6OlBheW1lbnRNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UGF5bWVudE1ldGhvZDo6cGtQYXltZW50TWV0aG9kIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGV0
YWlsc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6
cGF5bWVudE1ldGhvZFVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6ZGlkU2VsZWN0UGF5bWVudE1ldGhvZCk6CisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmg6CisgICAgICAgICog
TW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGVFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0
aG9kVXBkYXRlRXZlbnQ6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50OjpldmVudEludGVy
ZmFjZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9B
cHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2
ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
SGFuZGxlci5oOgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nQWRkcmVz
c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nT3B0
aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6ZGlzcGF0Y2hF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6dXBkYXRlV2l0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6c2V0dGxlRGV0YWlsc1Byb21pc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OmRpc3BhdGNoVXBkYXRlRXZlbnQpOiBE
ZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3Qu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudDo6dXBk
YXRlV2l0aCk6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dFVwZGF0ZUV2ZW50Lmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50TmFt
ZXMuaW46CisgICAgICAgICogdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNoYW5nZVBheW1lbnRNZXRo
b2QpOgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oOgorICAgICAg
ICAqIHRlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5pZGw6CisgICAgICAgICogdGVzdGlu
Zy9Nb2NrUGF5bWVudE1ldGhvZC5oOiBBZGRlZC4KKwogMjAxNy0xMC0yNCAgQW5keSBFc3RlcyAg
PGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gU3VwcG9ydCB0aGUgRXhwb3J0
TWFjcm8gYXR0cmlidXRlIGZvciBkaWN0aW9uYXJpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IDg5YmRhNzVjNmNjYzQzZDc3ZTg4MmRiM2U2MzcxNGY3YjY4YTBkYTguLmY2MjM3
YTA1MjA1NjdiMzllOTFjYmFlMmYyOTViZDZkMDk3NjYzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtMTA4LDYgKzEwOCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKIAkkKFdl
YkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVZhbGlkYXRlTWVyY2hh
bnRFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVx
dWVzdC9BcHBsZVBheU1lcmNoYW50VmFsaWRhdGlvbkV2ZW50LmlkbCBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRy
ZXF1ZXN0L0FwcGxlUGF5UmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9iZWFj
b24vTmF2aWdhdG9yQmVhY29uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2NhY2hlL0RP
TVdpbmRvd0NhY2hlcy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2QuaWRsCmluZGV4IDgyYzRlYzIxYTgyNWFh
Yjc2NThiZjdlNzY4YjI5ZTQ5YTgwOGIzODguLmUwOTA5NDBiNGI0MWZlZGMwZTU2OWFjY2M1OWMx
ZDllMzM4MjBmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlQYXltZW50TWV0aG9kLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZC5pZGwKQEAgLTM0LDYgKzM0LDcgQEAKIAogWwog
ICAgIENvbmRpdGlvbmFsPUFQUExFX1BBWSwKKyAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9S
VCwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAogXSBkaWN0aW9uYXJ5IEFwcGxlUGF5UGF5bWVu
dE1ldGhvZCB7CiAgICAgRE9NU3RyaW5nIGRpc3BsYXlOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1l
dGhvZFNlbGVjdGVkRXZlbnQuaAppbmRleCBkNTE4MzI0MDdkOGM1YzEwZTk1NmIwMzdlYWNmMTZk
ODQzNjRmNGJjLi4zYWMxYTNjNDFmYzhkMDVmNTViNmM1ZTg2MGEyNzMzMjI3MDQ5Y2UwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1l
dGhvZFNlbGVjdGVkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQuaApAQCAtMzQsNyArMzQsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBheW1lbnRNZXRob2Q7CiAKLWNsYXNzIEFwcGxl
UGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworY2xh
c3MgQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudCA6IHB1YmxpYyBFdmVudCB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxBcHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2ZW50
PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBQYXltZW50TWV0aG9kJiBw
YXltZW50TWV0aG9kKQogICAgIHsKQEAgLTQ1LDEyICs0NSwxMyBAQCBwdWJsaWM6CiAKICAgICBj
b25zdCBBcHBsZVBheVBheW1lbnRNZXRob2QmIHBheW1lbnRNZXRob2QoKSB7IHJldHVybiBtX3Bh
eW1lbnRNZXRob2Q7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBBcHBsZVBheVBheW1l
bnRNZXRob2RTZWxlY3RlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgUGF5
bWVudE1ldGhvZCYpOwogCiAgICAgLy8gRXZlbnQuCiAgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJ
bnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAorcHJpdmF0ZToKICAgICBjb25zdCBBcHBsZVBh
eVBheW1lbnRNZXRob2QgbV9wYXltZW50TWV0aG9kOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50TWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRNZXRob2QuaAppbmRleCA2OWEzNzcwYzcyZmNlZWUz
MTNjOTJmOTkxZTYwNmU3NWNlOGRiOWQwLi45Y2U3YmFhNzk0M2FiZDJkZGZmMTMxYjQ0MzA5N2Ey
YWEwNGIxMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRNZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1l
bnRNZXRob2QuaApAQCAtMzUsMTggKzM1LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Ry
dWN0IEFwcGxlUGF5UGF5bWVudE1ldGhvZDsKIAotY2xhc3MgUGF5bWVudE1ldGhvZCB7CitjbGFz
cyBXRUJDT1JFX0VYUE9SVCBQYXltZW50TWV0aG9kIHsKIHB1YmxpYzoKLSAgICBQYXltZW50TWV0
aG9kKCkKLSAgICB7Ci0gICAgfQorICAgIFBheW1lbnRNZXRob2QoKSA9IGRlZmF1bHQ7CisgICAg
dmlydHVhbCB+UGF5bWVudE1ldGhvZCgpID0gZGVmYXVsdDsKIAogICAgIGV4cGxpY2l0IFBheW1l
bnRNZXRob2QoUEtQYXltZW50TWV0aG9kICpwa1BheW1lbnRNZXRob2QpCiAgICAgICAgIDogbV9w
a1BheW1lbnRNZXRob2QocGtQYXltZW50TWV0aG9kKQogICAgIHsKICAgICB9CiAKLSAgICBBcHBs
ZVBheVBheW1lbnRNZXRob2QgdG9BcHBsZVBheVBheW1lbnRNZXRob2QoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIEFwcGxlUGF5UGF5bWVudE1ldGhvZCB0b0FwcGxlUGF5UGF5bWVudE1ldGhvZCgpIGNv
bnN0OwogCiAgICAgUEtQYXltZW50TWV0aG9kICpwa1BheW1lbnRNZXRob2QoKSBjb25zdCB7IHJl
dHVybiBtX3BrUGF5bWVudE1ldGhvZC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9B
cHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCBlZWYyYTBjOWEyNmI3MDFiM2NhYjZlN2Zj
MmZlMzU0NmQwMGFhZDg3Li44ZWFlMzc2ZTMxNzliMDAyZjQ5NTMwODA4NDdmNTgwMjc3OWQzOTgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1
ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5oIgog
I2luY2x1ZGUgIkFwcGxlUGF5TWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJB
cHBsZVBheVBheW1lbnQuaCIKKyNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVF
dmVudC5oIgogI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC00NCw2ICs0NSw3
IEBACiAjaW5jbHVkZSAiUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaCIKICNpbmNsdWRlICJQ
YXltZW50Q29udGFjdC5oIgogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvci5oIgorI2luY2x1
ZGUgIlBheW1lbnRNZXRob2QuaCIKICNpbmNsdWRlICJQYXltZW50UmVxdWVzdFZhbGlkYXRvci5o
IgogI2luY2x1ZGUgIlBheW1lbnRSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBA
IC0yNjcsNiArMjY5LDIxIEBAIHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+IGNvbnZlcnRBbmRWCiAgICAgcmV0dXJuIEFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyB7IHRvdGFsLnJl
bGVhc2VSZXR1cm5WYWx1ZSgpLCBsaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCkgfTsKIH0K
IAorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGV0YWlsc1VwZGF0
ZWQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgZXJyb3IpCit7
CisgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2hpcHBpbmdhZGRyZXNzY2hhbmdl
RXZlbnQpCisgICAgICAgIHJldHVybiBzaGlwcGluZ0FkZHJlc3NVcGRhdGVkKGVycm9yKTsKKwor
ICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnNoaXBwaW5nb3B0aW9uY2hhbmdlRXZl
bnQpCisgICAgICAgIHJldHVybiBzaGlwcGluZ09wdGlvblVwZGF0ZWQoKTsKKworICAgIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmFwcGxlcGF5cGF5bWVudG1ldGhvZGNoYW5nZWRFdmVu
dCkKKyAgICAgICAgcmV0dXJuIHBheW1lbnRNZXRob2RVcGRhdGVkKCk7CisKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBB
cHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaGlwcGluZ0FkZHJlc3NVcGRhdGVkKGNvbnN0IFN0cmlu
ZyYgZXJyb3IpCiB7CiAgICAgU2hpcHBpbmdDb250YWN0VXBkYXRlIHVwZGF0ZTsKQEAgLTMwMCw2
ICszMTcsMTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hp
cHBpbmdPcHRpb25VcGRhdGVkKCkKICAgICByZXR1cm4geyB9OwogfQogCitFeGNlcHRpb25Pcjx2
b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpwYXltZW50TWV0aG9kVXBkYXRlZCgpCit7Cisg
ICAgUGF5bWVudE1ldGhvZFVwZGF0ZSB1cGRhdGU7CisKKyAgICBhdXRvIG5ld1RvdGFsQW5kTGlu
ZUl0ZW1zID0gY29udmVydEFuZFZhbGlkYXRlKG1fcGF5bWVudFJlcXVlc3QtPnBheW1lbnREZXRh
aWxzKCkpOworICAgIGlmIChuZXdUb3RhbEFuZExpbmVJdGVtcy5oYXNFeGNlcHRpb24oKSkKKyAg
ICAgICAgcmV0dXJuIG5ld1RvdGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAg
ICB1cGRhdGUubmV3VG90YWxBbmRMaW5lSXRlbXMgPSBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxl
YXNlUmV0dXJuVmFsdWUoKTsKKworICAgIHBheW1lbnRDb29yZGluYXRvcigpLmNvbXBsZXRlUGF5
bWVudE1ldGhvZFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpOworICAgIHJldHVybiB7IH07Cit9
CisKIHZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcGxldGUoc3RkOjpvcHRpb25hbDxQ
YXltZW50Q29tcGxldGU+JiYgcmVzdWx0KQogewogICAgIGlmICghcmVzdWx0KSB7CkBAIC0zNTMs
NiArMzgzLDEyIEBAIHZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGlkU2VsZWN0U2hpcHBp
bmdDb250YWN0KGNvbnN0IFBheW1lbnRDb250YWN0JiBzaGlwCiAgICAgbV9wYXltZW50UmVxdWVz
dC0+c2hpcHBpbmdBZGRyZXNzQ2hhbmdlZChjb252ZXJ0KHNoaXBwaW5nQ29udGFjdC50b0FwcGxl
UGF5UGF5bWVudENvbnRhY3QoKSkpOwogfQogCit2b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6
OmRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgUGF5bWVudE1ldGhvZCYgcGF5bWVudE1ldGhv
ZCkKK3sKKyAgICBhdXRvIGV2ZW50ID0gQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuYXBwbGVwYXlwYXltZW50bWV0aG9kY2hhbmdlZEV2ZW50LCBw
YXltZW50TWV0aG9kLnRvQXBwbGVQYXlQYXltZW50TWV0aG9kKCksIG1fcGF5bWVudFJlcXVlc3Qu
Z2V0KCkpOworICAgIG1fcGF5bWVudFJlcXVlc3QtPmRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0KCkp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVBQTEVf
UEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxl
UGF5UGF5bWVudEhhbmRsZXIuaAppbmRleCA5ZWFmOTI3NGUyZTI3MTRjM2U5OWRmODQ1NzE3YzUw
NGIwMGIxMGExLi5mMWI5ZWE3YjY1YjhhMjM1ODJhZmVmMTQwNTQyMzIyZTQyMjQwMzI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0Fw
cGxlUGF5UGF5bWVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuaApAQCAtNTEsMTMgKzUx
LDE2IEBAIHByaXZhdGU6CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCk7CiAgICAgUGF5bWVudENv
b3JkaW5hdG9yJiBwYXltZW50Q29vcmRpbmF0b3IoKTsKIAorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQoY29uc3QgU3RyaW5nJiBlcnJvcik7CisgICAgRXhjZXB0
aW9uT3I8dm9pZD4gc2hpcHBpbmdPcHRpb25VcGRhdGVkKCk7CisgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gcGF5bWVudE1ldGhvZFVwZGF0ZWQoKTsKKwogICAgIC8vIFBheW1lbnRIYW5kbGVyCiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gY29udmVydERhdGEoSlNDOjpKU1ZhbHVlJiYpIGZpbmFsOwogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNob3coKSBmaW5hbDsKICAgICB2b2lkIGhpZGUoKSBmaW5hbDsK
ICAgICB2b2lkIGNhbk1ha2VQYXltZW50KFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdBZGRy
ZXNzVXBkYXRlZChjb25zdCBTdHJpbmcmIGVycm9yKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2
b2lkPiBzaGlwcGluZ09wdGlvblVwZGF0ZWQoKSBmaW5hbDsKKyAgICBFeGNlcHRpb25Pcjx2b2lk
PiBkZXRhaWxzVXBkYXRlZChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3Ry
aW5nJiBlcnJvcikgZmluYWw7CiAgICAgdm9pZCBjb21wbGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1l
bnRDb21wbGV0ZT4mJikgZmluYWw7CiAKICAgICAvLyBQYXltZW50U2Vzc2lvbgpAQCAtNjUsNyAr
NjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQYXlt
ZW50JikgZmluYWw7CiAgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKSBmaW5hbDsKICAgICB2
b2lkIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBQYXltZW50Q29udGFjdCYpIGZpbmFs
OwotICAgIHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBQYXltZW50TWV0aG9kJikg
ZmluYWwgeyB9CisgICAgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFBheW1lbnRN
ZXRob2QmKSBmaW5hbDsKICAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCkgZmluYWwg
eyB9CiAKICAgICBQYXltZW50UmVxdWVzdDo6TWV0aG9kSWRlbnRpZmllciBtX2lkZW50aWZpZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1
ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4NjYwZGM0MWY1NDY0NGUxYWYyMzE1NDNhNWMxMWUy
ZGIyMDE3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcApA
QCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmgiCisKKyNpZiBFTkFCTEUoQVBQ
TEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQorCisjaW5jbHVkZSAiUGF5bWVudFJl
cXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGVFdmVudDo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBjb25zdCBBcHBsZVBheVBheW1lbnRNZXRob2QmIHBheW1lbnRNZXRob2Qs
IFBheW1lbnRSZXF1ZXN0JiBwYXltZW50UmVxdWVzdCkKKyAgICA6IFBheW1lbnRSZXF1ZXN0VXBk
YXRlRXZlbnQgeyB0eXBlLCBwYXltZW50UmVxdWVzdCB9CisgICAgLCBtX3BheW1lbnRNZXRob2Qg
eyBwYXltZW50TWV0aG9kIH0KK3sKK30KKworRXZlbnRJbnRlcmZhY2UgQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFC
TEUoUEFZTUVOVF9SRVFVRVNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBh
eVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjMDZmYWU3ZWE3ZjRiODI4
OWNlZjRiMDRhNjE0MWI0MTNhNTMwMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZUV2ZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKKworI2lu
Y2x1ZGUgIkFwcGxlUGF5UGF5bWVudE1ldGhvZC5oIgorI2luY2x1ZGUgIlBheW1lbnRSZXF1ZXN0
VXBkYXRlRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBcHBsZVBheVBh
eW1lbnRNZXRob2RVcGRhdGVFdmVudCBmaW5hbCA6IHB1YmxpYyBQYXltZW50UmVxdWVzdFVwZGF0
ZUV2ZW50IHsKK3B1YmxpYzoKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGlj
IFJlZjxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudD4gY3JlYXRlKEFyZ3MmJi4uLiBh
cmdzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlRXZlbnQoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7CisgICAgfQor
CisgICAgY29uc3QgQXBwbGVQYXlQYXltZW50TWV0aG9kJiBwYXltZW50TWV0aG9kKCkgY29uc3Qg
eyByZXR1cm4gbV9wYXltZW50TWV0aG9kOyB9CisKK3ByaXZhdGU6CisgICAgQXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBBcHBs
ZVBheVBheW1lbnRNZXRob2QmLCBQYXltZW50UmVxdWVzdCYpOworCisgICAgLy8gRXZlbnQKKyAg
ICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IGZpbmFsOworCisgICAgY29u
c3QgQXBwbGVQYXlQYXltZW50TWV0aG9kIG1fcGF5bWVudE1ldGhvZDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQ
QVlNRU5UX1JFUVVFU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQ
YXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxYWRmYzFiOTIyYTVhMTVj
Y2MyMTgxNGU3YmU5YmE2OWMxOThiYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZUV2ZW50LmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRp
dGlvbmFsPUFQUExFX1BBWSZQQVlNRU5UX1JFUVVFU1QsCisgICAgTm9JbnRlcmZhY2VPYmplY3Qs
CitdIGludGVyZmFjZSBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudCA6IFBheW1lbnRS
ZXF1ZXN0VXBkYXRlRXZlbnQgeworICAgIFtDYWNoZWRBdHRyaWJ1dGVdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBBcHBsZVBheVBheW1lbnRNZXRob2QgcGF5bWVudE1ldGhvZDsKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgK
aW5kZXggYzQ4ZmE5YjEzYjE1Y2RmZjc1MTE3OTBjZmJlZTIxYWE2OTE2ZTVmZC4uNTM5ZjFkYmM2
Yzg1ZTg0ODM4M2Y5ZjFjNjFkNThlZTBkNzg1NzBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaApAQCAtNDgsOCAr
NDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzaG93KCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5NYWtl
UGF5bWVudChXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpID0g
MDsKLSAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQo
Y29uc3QgU3RyaW5nJiBlcnJvcikgPSAwOwotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4g
c2hpcHBpbmdPcHRpb25VcGRhdGVkKCkgPSAwOworICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9p
ZD4gZGV0YWlsc1VwZGF0ZWQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0
cmluZyYgZXJyb3IpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGUoc3RkOjpvcHRpb25h
bDxQYXltZW50Q29tcGxldGU+JiYpID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggYjI1
ODgyMGJiZDE1OTAwNDhjNTg3ODY2MTM5MDE1NmI2OWJlYzM4NC4uYTM3ZTI5MDJjNTk1YzVmZWIy
NmQyNDNiMWU5NzVhNDRlOTAwMjM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTUyNCwzNiArNTI0
LDM0IEBAIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nQWRkcmVzc0NoYW5nZWQoUmVmPFBh
eW1lbnRBZGRyZXNzPiYmIHNoaXBwaW5nQWRkcmVzCiB7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0g
U3RhdGU6OkludGVyYWN0aXZlKTsKICAgICBtX3NoaXBwaW5nQWRkcmVzcyA9IFdURk1vdmUoc2hp
cHBpbmdBZGRyZXNzKTsKLSAgICBkaXNwYXRjaFVwZGF0ZUV2ZW50KGV2ZW50TmFtZXMoKS5zaGlw
cGluZ2FkZHJlc3NjaGFuZ2VFdmVudCk7CisgICAgYXV0byBldmVudCA9IFBheW1lbnRSZXF1ZXN0
VXBkYXRlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2hpcHBpbmdhZGRyZXNzY2hhbmdlRXZl
bnQsICp0aGlzKTsKKyAgICBkaXNwYXRjaEV2ZW50KGV2ZW50LmdldCgpKTsKIH0KIAogdm9pZCBQ
YXltZW50UmVxdWVzdDo6c2hpcHBpbmdPcHRpb25DaGFuZ2VkKGNvbnN0IFN0cmluZyYgc2hpcHBp
bmdPcHRpb24pCiB7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OkludGVyYWN0aXZlKTsK
ICAgICBtX3NoaXBwaW5nT3B0aW9uID0gc2hpcHBpbmdPcHRpb247Ci0gICAgZGlzcGF0Y2hVcGRh
dGVFdmVudChldmVudE5hbWVzKCkuc2hpcHBpbmdvcHRpb25jaGFuZ2VFdmVudCk7CisgICAgYXV0
byBldmVudCA9IFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
c2hpcHBpbmdvcHRpb25jaGFuZ2VFdmVudCwgKnRoaXMpOworICAgIGRpc3BhdGNoRXZlbnQoZXZl
bnQuZ2V0KCkpOwogfQogCi12b2lkIFBheW1lbnRSZXF1ZXN0OjpkaXNwYXRjaFVwZGF0ZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKK2Jvb2wgUGF5bWVudFJlcXVlc3Q6OmRpc3BhdGNo
RXZlbnQoRXZlbnQmIGV2ZW50KQogeworICAgIGlmICghZXZlbnQuaXNUcnVzdGVkKCkpCisgICAg
ICAgIHJldHVybiBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhOjpkaXNwYXRjaEV2ZW50KGV2ZW50
KTsKKwogICAgIGlmIChtX2lzVXBkYXRpbmcpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkludGVyYWN0aXZlKQotICAg
ICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gZXZlbnQgPSBQ
YXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50OjpjcmVhdGUodHlwZSwgKnRoaXMpOwotICAgIGRpc3Bh
dGNoRXZlbnQoZXZlbnQuZ2V0KCkpOworICAgIHJldHVybiBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhOjpkaXNwYXRjaEV2ZW50KGV2ZW50KTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVu
dFJlcXVlc3Q6OnVwZGF0ZVdpdGgoUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudCYgZXZlbnQsIFJl
ZjxET01Qcm9taXNlPiYmIHByb21pc2UpCitFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVz
dDo6dXBkYXRlV2l0aChFdmVudCYgZXZlbnQsIFJlZjxET01Qcm9taXNlPiYmIHByb21pc2UpCiB7
Ci0gICAgaWYgKCFldmVudC5pc1RydXN0ZWQoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yIH07Ci0KLSAgICBpZiAoZXZlbnQud2FpdEZvclVwZGF0ZSgpKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLQogICAgIGlm
IChtX3N0YXRlICE9IFN0YXRlOjpJbnRlcmFjdGl2ZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKQEAgLTU2Miw3ICs1NjAsNiBAQCBFeGNlcHRpb25P
cjx2b2lkPiBQYXltZW50UmVxdWVzdDo6dXBkYXRlV2l0aChQYXltZW50UmVxdWVzdFVwZGF0ZUV2
ZW50JiBldmVudCwgUgogCiAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgZXZlbnQu
c3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7Ci0gICAgZXZlbnQuc2V0V2FpdEZvclVwZGF0ZSh0
cnVlKTsKICAgICBtX2lzVXBkYXRpbmcgPSB0cnVlOwogCiAgICAgbV9kZXRhaWxzUHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSk7CkBAIC01NzksNiArNTc2LDkgQEAgdm9pZCBQYXltZW50UmVxdWVz
dDo6c2V0dGxlRGV0YWlsc1Byb21pc2UoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogICAgICAg
ICBtX2lzVXBkYXRpbmcgPSBmYWxzZTsKICAgICB9KTsKIAorICAgIGlmIChtX3N0YXRlICE9IFN0
YXRlOjpJbnRlcmFjdGl2ZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKG1fZGV0YWlsc1By
b21pc2UtPnN0YXR1cygpID09IERPTVByb21pc2U6OlN0YXR1czo6UmVqZWN0ZWQpIHsKICAgICAg
ICAgc3RvcCgpOwogICAgICAgICByZXR1cm47CkBAIC02MTYsMTIgKzYxNiwxMSBAQCB2b2lkIFBh
eW1lbnRSZXF1ZXN0OjpzZXR0bGVEZXRhaWxzUHJvbWlzZShjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUpCiAgICAgbV9kZXRhaWxzLm1vZGlmaWVycyA9IFdURk1vdmUocGF5bWVudERldGFpbHNVcGRh
dGUubW9kaWZpZXJzKTsKICAgICBtX3NlcmlhbGl6ZWRNb2RpZmllckRhdGEgPSBXVEZNb3ZlKHN0
ZDo6Z2V0PDE+KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZpZXJEYXRhKSk7CiAKLSAgICBpZiAodHlw
ZSA9PSBldmVudE5hbWVzKCkuc2hpcHBpbmdhZGRyZXNzY2hhbmdlRXZlbnQpCi0gICAgICAgIG1f
YWN0aXZlUGF5bWVudEhhbmRsZXItPnNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQocGF5bWVudERldGFp
bHNVcGRhdGUuZXJyb3IpOwotICAgIGVsc2UgaWYgKHR5cGUgPT0gZXZlbnROYW1lcygpLnNoaXBw
aW5nb3B0aW9uY2hhbmdlRXZlbnQpCi0gICAgICAgIG1fYWN0aXZlUGF5bWVudEhhbmRsZXItPnNo
aXBwaW5nT3B0aW9uVXBkYXRlZCgpOwotICAgIGVsc2UKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgYXV0byByZXN1bHQgPSBtX2FjdGl2ZVBheW1lbnRIYW5kbGVyLT5kZXRhaWxz
VXBkYXRlZCh0eXBlLCBwYXltZW50RGV0YWlsc1VwZGF0ZS5lcnJvcik7CisgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICBhYm9ydFdpdGhFeGNlcHRpb24ocmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKIHZvaWQgUGF5
bWVudFJlcXVlc3Q6OmFjY2VwdChjb25zdCBTdHJpbmcmIG1ldGhvZE5hbWUsIEpTQzo6U3Ryb25n
PEpTQzo6SlNPYmplY3Q+JiYgZGV0YWlscywgUmVmPFBheW1lbnRBZGRyZXNzPiYmIHNoaXBwaW5n
QWRkcmVzcywgY29uc3QgU3RyaW5nJiBwYXllck5hbWUsIGNvbnN0IFN0cmluZyYgcGF5ZXJFbWFp
bCwgY29uc3QgU3RyaW5nJiBwYXllclBob25lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oCmluZGV4IDMwODBhYTMzNTA0
MWFkNzY4NzU1NWU3ZTBmYTRiZmI3N2ZjYTgwMjYuLmZmMzE1Y2I3YjQyMTdkYjUzNDQyZWViNTI1
YmU4YzI4MzFlZmQ2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmgKQEAgLTM5LDkgKzM5LDkgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFdmVudDsKIGNsYXNzIFBheW1l
bnRBZGRyZXNzOwogY2xhc3MgUGF5bWVudEhhbmRsZXI7Ci1jbGFzcyBQYXltZW50UmVxdWVzdFVw
ZGF0ZUV2ZW50OwogY2xhc3MgUGF5bWVudFJlc3BvbnNlOwogZW51bSBjbGFzcyBQYXltZW50Q29t
cGxldGU7CiBlbnVtIGNsYXNzIFBheW1lbnRTaGlwcGluZ1R5cGU7CkBAIC03MCwxMCArNzAsMTMg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzaGlwcGluZ0FkZHJlc3NDaGFuZ2VkKFJlZjxQYXltZW50
QWRkcmVzcz4mJik7CiAgICAgdm9pZCBzaGlwcGluZ09wdGlvbkNoYW5nZWQoY29uc3QgU3RyaW5n
JiBzaGlwcGluZ09wdGlvbik7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gdXBkYXRlV2l0aChQYXlt
ZW50UmVxdWVzdFVwZGF0ZUV2ZW50JiwgUmVmPERPTVByb21pc2U+JiYpOworICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHVwZGF0ZVdpdGgoRXZlbnQmLCBSZWY8RE9NUHJvbWlzZT4mJik7CiAgICAgdm9p
ZCBhY2NlcHQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBKU0M6OlN0cm9uZzxKU0M6OkpTT2Jq
ZWN0PiYmIGRldGFpbHMsIFJlZjxQYXltZW50QWRkcmVzcz4mJiBzaGlwcGluZ0FkZHJlc3MsIGNv
bnN0IFN0cmluZyYgcGF5ZXJOYW1lLCBjb25zdCBTdHJpbmcmIHBheWVyRW1haWwsIGNvbnN0IFN0
cmluZyYgcGF5ZXJQaG9uZSk7CiAgICAgdm9pZCBjb21wbGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1l
bnRDb21wbGV0ZT4mJik7CiAKKyAgICAvLyBFdmVudFRhcmdldAorICAgIGJvb2wgZGlzcGF0Y2hF
dmVudChFdmVudCYpIGZpbmFsOworCiAgICAgdXNpbmcgTWV0aG9kSWRlbnRpZmllciA9IFZhcmlh
bnQ8U3RyaW5nLCBVUkw+OwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGF5bWVudFJlcXVlc3Q+Ojpy
ZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxQYXltZW50UmVxdWVzdD46OmRlcmVmOwpAQCAtOTIs
NyArOTUsNiBAQCBwcml2YXRlOgogCiAgICAgUGF5bWVudFJlcXVlc3QoRG9jdW1lbnQmLCBQYXlt
ZW50T3B0aW9ucyYmLCBQYXltZW50RGV0YWlsc0luaXQmJiwgVmVjdG9yPFN0cmluZz4mJiBzZXJp
YWxpemVkTW9kaWZpZXJEYXRhLCBWZWN0b3I8TWV0aG9kPiYmIHNlcmlhbGl6ZWRNZXRob2REYXRh
LCBTdHJpbmcmJiBzZWxlY3RlZFNoaXBwaW5nT3B0aW9uKTsKIAotICAgIHZvaWQgZGlzcGF0Y2hV
cGRhdGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpOwogICAgIHZvaWQgc2V0dGxlRGV0
YWlsc1Byb21pc2UoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKTsKICAgICB2b2lkIGFib3J0V2l0
aEV4Y2VwdGlvbihFeGNlcHRpb24mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGwKaW5kZXggN2ZhMzk5YTg3
YWYzNzZkZmQ1Njg0NzY2ZDVjNzJlOTFiMmUzMzFlNi4uNzMyYTc0MzI5ZGUzOTY4NDljYWVhMzZl
Yzk5Yjc2Yzk1NzUxMWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGwKQEAgLTQ1LDQgKzQ1LDUgQEAKICAg
ICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc2hpcHBpbmdvcHRpb25jaGFuZ2U7CiAKICAgICBb
Q29uZGl0aW9uYWw9QVBQTEVfUEFZXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYXBwbGVwYXl2
YWxpZGF0ZW1lcmNoYW50OworICAgIFtDb25kaXRpb25hbD1BUFBMRV9QQVldIGF0dHJpYnV0ZSBF
dmVudEhhbmRsZXIgb25hcHBsZXBheXBheW1lbnRtZXRob2RjaGFuZ2VkOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3RV
cGRhdGVFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1Bh
eW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQuY3BwCmluZGV4IGNlZWRiZDFiZjJiOWYxMGJhZDZlMWVh
NWZmZDAzYzNkMzRhYzc1MGEuLjQ3NDRmZTk5NWFkNmJlNThhZTMyNWI0YTYxZmQ2Y2Y1ZmQ4ZjJi
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5
bWVudFJlcXVlc3RVcGRhdGVFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50LmNwcApAQCAtNDcsNyArNDcs
MTggQEAgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudDo6flBheW1lbnRSZXF1ZXN0VXBkYXRlRXZl
bnQoKSA9IGRlZmF1bHQ7CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0VXBkYXRl
RXZlbnQ6OnVwZGF0ZVdpdGgoUmVmPERPTVByb21pc2U+JiYgZGV0YWlsc1Byb21pc2UpCiB7Ci0g
ICAgcmV0dXJuIG1fcGF5bWVudFJlcXVlc3QtPnVwZGF0ZVdpdGgoKnRoaXMsIFdURk1vdmUoZGV0
YWlsc1Byb21pc2UpKTsKKyAgICBpZiAoIWlzVHJ1c3RlZCgpKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmIChtX3dhaXRGb3JVcGRhdGUp
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAg
YXV0byBleGNlcHRpb24gPSBtX3BheW1lbnRSZXF1ZXN0LT51cGRhdGVXaXRoKCp0aGlzLCBXVEZN
b3ZlKGRldGFpbHNQcm9taXNlKSk7CisgICAgaWYgKGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkK
KyAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICBtX3dh
aXRGb3JVcGRhdGUgPSB0cnVlOworICAgIHJldHVybiB7IH07CiB9CiAKIEV2ZW50SW50ZXJmYWNl
IFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVl
c3RVcGRhdGVFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50LmgKaW5kZXggNGZhZDY0NDhiNDFmZGUzYzlhNTQyZTY2
NmVhYjkwNzRkZWRlN2QzYy4uMzAwNDFhMjgzOWQzNThkNTYxMDUyODhjNWQyMmFiZTIwMTJkYTk3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXlt
ZW50UmVxdWVzdFVwZGF0ZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50LmgKQEAgLTM2LDcgKzM2LDcgQEAg
Y2xhc3MgRE9NUHJvbWlzZTsKIGNsYXNzIFBheW1lbnRSZXF1ZXN0Owogc3RydWN0IFBheW1lbnRS
ZXF1ZXN0VXBkYXRlRXZlbnRJbml0OwogCi1jbGFzcyBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50
IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQg
OiBwdWJsaWMgRXZlbnQgewogcHVibGljOgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZS4uLiBBcmdz
PiBzdGF0aWMgUmVmPFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQ+IGNyZWF0ZShBcmdzJiYuLi4g
YXJncykKICAgICB7CkBAIC00NSwxNSArNDUsMTQgQEAgcHVibGljOgogICAgIH5QYXltZW50UmVx
dWVzdFVwZGF0ZUV2ZW50KCk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gdXBkYXRlV2l0aChSZWY8
RE9NUHJvbWlzZT4mJik7CiAKLSAgICBib29sIHdhaXRGb3JVcGRhdGUoKSBjb25zdCB7IHJldHVy
biBtX3dhaXRGb3JVcGRhdGU7IH0KLSAgICB2b2lkIHNldFdhaXRGb3JVcGRhdGUoYm9vbCB3YWl0
Rm9yVXBkYXRlKSB7IG1fd2FpdEZvclVwZGF0ZSA9IHdhaXRGb3JVcGRhdGU7IH0KLQotcHJpdmF0
ZToKLSAgICBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudEluaXQmJik7Citwcm90ZWN0ZWQ6CiAgICAgUGF5
bWVudFJlcXVlc3RVcGRhdGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIFBheW1lbnRS
ZXF1ZXN0Jik7CiAKICAgICAvLyBFdmVudAotICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJm
YWNlKCkgY29uc3QgZmluYWw7CisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBj
b25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudEluaXQm
Jik7CiAKICAgICBSZWZQdHI8UGF5bWVudFJlcXVlc3Q+IG1fcGF5bWVudFJlcXVlc3Q7CiAgICAg
Ym9vbCBtX3dhaXRGb3JVcGRhdGUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBhNmNjNGQ2ZTZjZDMxOTk3NDc1
NjZiODhjOGIyZWI2YzZiYjllMzAuLmE0MzI4NmQ0NTY1ZTM2NjhmN2VjNjg1YTJiMzRhYjUwMTlk
NmNkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM3MDcsNiArMzcwNywxMSBAQAogCQlBMUJGNkI4MzFBQTk2QzdEMDBBRjRB
OEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExQkY2QjgxMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZp
bHRlci5oICovOyB9OwogCQlBMUMxNTA3OTFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZl
cnRlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
QzE1MDc3MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLm1tICovOyB9OwogCQlB
MUMxNTA3QTFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDMTUwNzgxRTNGMkIzRTAwMzJD
OThDIC8qIFByZXZpZXdDb252ZXJ0ZXIuaCAqLzsgfTsKKwkJQTFDQkVGNTMxRjlFRUU3NTAwMjhE
RTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUNCRUY1MDFGOUVFRTc1MDAyOERFN0Mg
LyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCAqLzsgfTsKKwkJQTFDQkVGNTQx
RjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQ0JFRjUxMUY5
RUVFNzUwMDI4REU3QyAvKiBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5jcHAgKi87
IH07CisJCUExQ0JFRjYxMUY5RjA5MDQwMDI4REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExQ0JFRjVGMUY5RjA5MDIwMDI4REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZUV2ZW50LmNwcCAqLzsgfTsKKwkJQTFDQkVGNjIxRjlGMDkwNDAwMjhERTdDIC8qIEpT
QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQ0JFRjYwMUY5RjA5MDIwMDI4REU3QyAvKiBKU0Fw
cGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmggKi87IH07CisJCUExQ0JFRjY0MUY5RjEx
MjkwMDI4REU3QyAvKiBNb2NrUGF5bWVudE1ldGhvZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDQkVGNjMxRjlGMTEyOTAwMjhERTdDIC8qIE1vY2tQ
YXltZW50TWV0aG9kLmggKi87IH07CiAJCUExQ0MxMTY0MUU0OTNEMDEwMEVGQTY5QyAvKiBGaWxl
U3lzdGVtTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTFDQzExNjIxRTQ5M0QwMTAwRUZBNjlDIC8qIEZpbGVTeXN0ZW1NYWMubW0gKi87IH07CiAJ
CUExQ0M1NjY3MUY0NjE0N0EwMEE0NTU1QiAvKiBKU1BheW1lbnRBZGRyZXNzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUNDNTY2NTFGNDYxNDY4MDBB
NDU1NUIgLyogSlNQYXltZW50QWRkcmVzcy5oICovOyB9OwogCQlBMUNDNTY2OTFGNDYxNDgwMDBB
NDU1NUIgLyogSlNQYXltZW50Q29tcGxldGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExQ0M1NjRFMUY0NjE0NTIwMEE0NTU1QiAvKiBKU1BheW1lbnRD
b21wbGV0ZS5oICovOyB9OwpAQCAtMTE4OTAsNiArMTE4OTUsMTIgQEAKIAkJQTFDMTUwNzcxRTNG
MkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQcmV2aWV3Q29udmVydGVyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMUMxNTA3ODFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmV2aWV3Q29udmVydGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQzdGQUExMTMzQTVEMzUwMEQ2NzMyRCAv
KiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBMUNCRUY1MDFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTFDQkVGNTExRjlFRUU3NTAwMjhE
RTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTFDQkVGNTIxRjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGVFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQ0JFRjVGMUY5RjA5
MDIwMDI4REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMUNCRUY2MDFG
OUYwOTAyMDAyOERFN0MgLyogSlNBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQ0JFRjYzMUY5RjEx
MjkwMDI4REU3QyAvKiBNb2NrUGF5bWVudE1ldGhvZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrUGF5
bWVudE1ldGhvZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUNDMTE2MjFFNDkz
RDAxMDBFRkE2OUMgLyogRmlsZVN5c3RlbU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUExQ0M1NjRDMUY0NjE0NTAwMEE0NTU1QiAvKiBKU1BheW1lbnRNZXRob2REYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUGF5bWVudE1ldGhvZERhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFDQzU2NEQxRjQ2MTQ1MTAwQTQ1NTVCIC8q
IEpTUGF5bWVudE1ldGhvZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNQYXltZW50TWV0aG9kRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNjQ5NSw2ICsxNjUwNiw4IEBACiAJCQkJMUFFOTZBN0QxRDFBMEE4MDAwQjg2NzY4IC8q
IEpTQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5oICovLAogCQkJCTFBREZERkU1
MUU3MURDQTAwMDhGNUQzNCAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5jcHAgKi8s
CiAJCQkJMUFERkRGRTYxRTcxRENBMDAwOEY1RDM0IC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlLmggKi8sCisJCQkJQTFDQkVGNUYxRjlGMDkwMjAwMjhERTdDIC8qIEpTQXBwbGVQYXlQ
YXltZW50TWV0aG9kVXBkYXRlRXZlbnQuY3BwICovLAorCQkJCUExQ0JFRjYwMUY5RjA5MDIwMDI4
REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmggKi8sCiAJCQkJN0M2
NTIzMEYxRTAwREJCNDAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50UGFzcy5jcHAgKi8sCiAJ
CQkJN0M2NTIzMTAxRTAwREJCNDAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50UGFzcy5oICov
LAogCQkJCTdDNjU3OUVCMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5UGF5bWVudFJlcXVl
c3QuY3BwICovLApAQCAtMTcyNzUsNiArMTcyODgsNyBAQAogCQkJCUExQUZFREU1MUY4QkZGNkQw
MDg3MDEzRiAvKiBNb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcCAqLywKIAkJCQlBMUFGRURFNDFG
OEJGRjZEMDA4NzAxM0YgLyogTW9ja1BheW1lbnRDb29yZGluYXRvci5oICovLAogCQkJCUExNDZE
MzE2MUY5OUI1M0QwMEQyOTE5NiAvKiBNb2NrUGF5bWVudENvb3JkaW5hdG9yLmlkbCAqLywKKwkJ
CQlBMUNCRUY2MzFGOUYxMTI5MDAyOERFN0MgLyogTW9ja1BheW1lbnRNZXRob2QuaCAqLywKIAkJ
CQlBMTQwNjE4OTFFMkVDQTBBMDAzMkIzNEUgLyogTW9ja1ByZXZpZXdMb2FkZXJDbGllbnQuY3Bw
ICovLAogCQkJCUExNDA2MThBMUUyRUNBMEEwMDMyQjM0RSAvKiBNb2NrUHJldmlld0xvYWRlckNs
aWVudC5oICovLAogCQkJCUVCMDgxQ0Q4MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBlQ29udmVyc2lv
bnMuaCAqLywKQEAgLTIxMTE1LDYgKzIxMTI5LDkgQEAKIAkJCQlBMUY5Mjk2ODFGOEQ5Q0RCMDA1
MjNBRjMgLyogQXBwbGVQYXlNZXJjaGFudFZhbGlkYXRpb25FdmVudC5pZGwgKi8sCiAJCQkJQTFE
RjVBQTExRjdFRTExMzAwNThBNDc3IC8qIEFwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwICovLAog
CQkJCUExREY1QUEwMUY3RUUxMTMwMDU4QTQ3NyAvKiBBcHBsZVBheVBheW1lbnRIYW5kbGVyLmgg
Ki8sCisJCQkJQTFDQkVGNTExRjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZUV2ZW50LmNwcCAqLywKKwkJCQlBMUNCRUY1MDFGOUVFRTc1MDAyOERFN0MgLyogQXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCAqLywKKwkJCQlBMUNCRUY1MjFGOUVFRTc1
MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaWRsICovLAogCQkJ
CUExREY1QTdDMUY3RUJEMEIwMDU4QTQ3NyAvKiBBcHBsZVBheVJlcXVlc3QuaCAqLywKIAkJCQlB
MURGNUE3RTFGN0VCRDBCMDA1OEE0NzcgLyogQXBwbGVQYXlSZXF1ZXN0LmlkbCAqLywKIAkJCSk7
CkBAIC0yNjU1Miw2ICsyNjU2OSw3IEBACiAJCQkJQTE0NkQzMjExRjk5Q0IxQTAwRDI5MTk2IC8q
IE1vY2tQYXltZW50QWRkcmVzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0NkQzMjUxRjk5RDY5
ODAwRDI5MTk2IC8qIE1vY2tQYXltZW50Q29udGFjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFB
RkVERTYxRjhCRkY2RDAwODcwMTNGIC8qIE1vY2tQYXltZW50Q29vcmRpbmF0b3IuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUExQ0JFRjY0MUY5RjExMjkwMDI4REU3QyAvKiBNb2NrUGF5bWVudE1ldGhv
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0MDYxOEMxRTJFQ0EwQTAwMzJCMzRFIC8qIE1vY2tQ
cmV2aWV3TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTVGM0I4RDE2Q0MzM0Qx
MDA0NTVFQjAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCUExNzYzRjNGMUUyMDUyMzQwMDFENThERSAvKiBXZWJBcmNoaXZlRHVtcFN1cHBvcnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjY2MzAsNiArMjY2NDgsNyBAQAogCQkJCUExREY1QUEyMUY3
RUUxMTMwMDU4QTQ3NyAvKiBBcHBsZVBheVBheW1lbnRIYW5kbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3QzY1MjJFRjFFMDBBNEM3MDA2NzdGMjIgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQThBNjQ1NjFEMTlGQ0ZDMDBEMEUwMEYgLyogQXBwbGVQYXlQ
YXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTFDQkVGNTMx
RjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QzY1MjJGNTFFMDBBNTE3MDA2NzdGMjIgLyogQXBwbGVQYXlQYXlt
ZW50UGFzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M2NTc5RTAxRTAwNzlGOTAwRTNBMjdBIC8q
IEFwcGxlUGF5UGF5bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUExREY1QTdGMUY3
RUJEMEIwMDU4QTQ3NyAvKiBBcHBsZVBheVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjc4
OTUsNiArMjc5MTQsNyBAQAogCQkJCTdDNjUyMzE2MUUwMERCQjUwMDY3N0YyMiAvKiBKU0FwcGxl
UGF5UGF5bWVudENvbnRhY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNjUyMzE4MUUwMERCQjUw
MDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFFOTZBOEQxRDFBMERERDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0
ZWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTFDQkVGNjIxRjlGMDkwNDAwMjhERTdDIC8q
IEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdDNjUyMzFBMUUwMERCQjUwMDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5bWVudFBhc3MuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdDNjU3OUYyMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5UGF5
bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUExREY1QThGMUY3RUMwMDIwMDU4QTQ3
NyAvKiBKU0FwcGxlUGF5UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDgxNyw2ICszMDgz
Nyw3IEBACiAJCQkJMUE4QTY0NTExRDE5RkNGQjAwRDBFMDBGIC8qIEFwcGxlUGF5UGF5bWVudEF1
dGhvcml6ZWRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMURGNUFBMzFGN0VFMTEzMDA1
OEE0NzcgLyogQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QThBNjQ1NDFEMTlGQ0ZDMDBEMEUwMEYgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBMUNCRUY1NDFGOUVFRTc1MDAyOERFN0MgLyog
QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTFERjVBQUUxRjgwNzVGMTAwNThBNDc3IC8qIEFwcGxlUGF5UmVxdWVzdEJhc2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUE4QTY0NTgxRDE5RkNGQzAwRDBFMDBGIC8qIEFwcGxlUGF5U2Vzc2lv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU4RTg2NzFEMTlEODBFMDBDMEVBNzMgLyogQXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTUyOCw2
ICszMTU0OSw3IEBACiAJCQkJN0M2NTIzMTcxRTAwREJCNTAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQ
YXltZW50TWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTk2QThDMUQxQTBEREQwMEI4
Njc2OCAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFERkRGRUQxRTcxRTQ3NTAwOEY1RDM0IC8qIEpTQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExQ0JFRjYxMUY5RjA5MDQwMDI4
REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDNjUyMzE5MUUwMERCQjUwMDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5bWVudFBh
c3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M2NTc5RjExRTAwODU2NjAwRTNBMjdBIC8qIEpT
QXBwbGVQYXlQYXltZW50UmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMURGNUE5MDFG
N0VDMDAyMDA1OEE0NzcgLyogSlNBcHBsZVBheVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA5ZjQ5NTcwNDgxYjE5MWFlZTY5ZGQ5NDBkN2U4ZDgy
MzEwMzgzNTc0Li45ZmIwNDVkZTE0NmVmYzFlZDk5Yzg0ODVlNDVmOTE5MjFlNTEyMTdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTUzLDYgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIG1hY3JvKGFuaW1hdGlvbmVuZCkgXAogICAgIG1hY3JvKGFuaW1hdGlvbml0ZXJhdGlv
bikgXAogICAgIG1hY3JvKGFuaW1hdGlvbnN0YXJ0KSBcCisgICAgbWFjcm8oYXBwbGVwYXlwYXlt
ZW50bWV0aG9kY2hhbmdlZCkgXAogICAgIG1hY3JvKGFwcGxlcGF5dmFsaWRhdGVtZXJjaGFudCkg
XAogICAgIG1hY3JvKGF1ZGlvZW5kKSBcCiAgICAgbWFjcm8oYXVkaW9wcm9jZXNzKSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmluCmluZGV4IDdjNmIzYTVhNmEzZWU4YjlkOGZlOTNjZTdhOTM1NjFh
ZDE3MjU3NGEuLjFiYWFjOWVkNjgzMWQyMjMzMDY0ZjA3N2FlNWQyZDcyOGFiNjU0MzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmluCkBAIC00MSw2ICs0MSw3IEBAIFhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudAogQXBwbGVQYXlNZXJjaGFudFZhbGlkYXRpb25FdmVudCBjb25kaXRpb25hbD1B
UFBMRV9QQVkKIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6ZWRFdmVudCBjb25kaXRpb25hbD1BUFBM
RV9QQVkKIEFwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQgY29uZGl0aW9uYWw9QVBQ
TEVfUEFZCitBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudCBjb25kaXRpb25hbD1BUFBM
RV9QQVkKIEFwcGxlUGF5U2hpcHBpbmdDb250YWN0U2VsZWN0ZWRFdmVudCBjb25kaXRpb25hbD1B
UFBMRV9QQVkKIEFwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50IGNvbmRpdGlvbmFs
PUFQUExFX1BBWQogQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQgY29uZGl0aW9uYWw9QVBQ
TEVfUEFZCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29v
cmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5h
dG9yLmNwcAppbmRleCBmOTdhMjg1YzU0NTNjYzUxMDk4ZTNhYTEyMmQ2NWI4OTI1MTA5ZGI1Li5h
ZTA1ZjI0NDI1MzIzMDBhZDIwMGE1OTc2NzMxNThhM2JhYWQwN2NmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJNb2NrUGF5bWVudC5oIgog
I2luY2x1ZGUgIk1vY2tQYXltZW50Q29udGFjdC5oIgorI2luY2x1ZGUgIk1vY2tQYXltZW50TWV0
aG9kLmgiCiAjaW5jbHVkZSAiUGF5bWVudENvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiVVJMLmgi
CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KQEAgLTExMyw2ICsxMTQsMTMgQEAgdm9pZCBNb2Nr
UGF5bWVudENvb3JkaW5hdG9yOjpjaGFuZ2VTaGlwcGluZ09wdGlvbihTdHJpbmcmJiBzaGlwcGlu
Z09wdGlvbikKICAgICB9KTsKIH0KIAordm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjaGFu
Z2VQYXltZW50TWV0aG9kKEFwcGxlUGF5UGF5bWVudE1ldGhvZCYmIHBheW1lbnRNZXRob2QpCit7
CisgICAgZGlzcGF0Y2hJZlNob3dpbmcoW21haW5GcmFtZSA9IG1ha2VSZWYobV9tYWluRnJhbWUp
LCBwYXltZW50TWV0aG9kID0gV1RGTW92ZShwYXltZW50TWV0aG9kKV0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgbWFpbkZyYW1lLT5wYXltZW50Q29vcmRpbmF0b3IoKS5kaWRTZWxlY3RQYXltZW50TWV0
aG9kKE1vY2tQYXltZW50TWV0aG9kIHsgV1RGTW92ZShwYXltZW50TWV0aG9kKSB9KTsKKyAgICB9
KTsKK30KKwogdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjphY2NlcHRQYXltZW50KCkKIHsK
ICAgICBkaXNwYXRjaElmU2hvd2luZyhbbWFpbkZyYW1lID0gbWFrZVJlZihtX21haW5GcmFtZSks
IHNoaXBwaW5nQWRkcmVzcyA9IG1fc2hpcHBpbmdBZGRyZXNzXSgpIG11dGFibGUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaAppbmRleCA2ZTdi
NWY3ZmM4Mzg2Y2ViYzUwODgwZTljYWQ4YTBhOThlMjIwZmQ2Li43NTM1ZWI0NDRiNDExNGJjOTdl
MGEyYzI2MDE5MDBjN2E2YWRjYzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tQYXltZW50Q29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tQYXltZW50Q29vcmRpbmF0b3IuaApAQCAtMzEsOCArMzEsOSBAQAogI2luY2x1ZGUgIlBheW1l
bnRDb29yZGluYXRvckNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCisKIGNs
YXNzIE1haW5GcmFtZTsKK3N0cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2Q7CiAKIGNsYXNzIE1v
Y2tQYXltZW50Q29vcmRpbmF0b3IgZmluYWwgOiBwdWJsaWMgUGF5bWVudENvb3JkaW5hdG9yQ2xp
ZW50IHsKIHB1YmxpYzoKQEAgLTQwLDYgKzQxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRT
aGlwcGluZ0FkZHJlc3MoTW9ja1BheW1lbnRBZGRyZXNzJiYgc2hpcHBpbmdBZGRyZXNzKSB7IG1f
c2hpcHBpbmdBZGRyZXNzID0gV1RGTW92ZShzaGlwcGluZ0FkZHJlc3MpOyB9CiAgICAgdm9pZCBj
aGFuZ2VTaGlwcGluZ09wdGlvbihTdHJpbmcmJiBzaGlwcGluZ09wdGlvbik7CisgICAgdm9pZCBj
aGFuZ2VQYXltZW50TWV0aG9kKEFwcGxlUGF5UGF5bWVudE1ldGhvZCYmKTsKICAgICB2b2lkIGFj
Y2VwdFBheW1lbnQoKTsKIAogICAgIHZvaWQgcmVmKCkgY29uc3QgeyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaWRsIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmlkbAppbmRleCAxYjRkYzAx
MjI4NWYxYjg3ZDFmMjdlOGUxZDYwMGZhY2M5MDcwMDgxLi42NGU5NmNlNzhlOTY1OTg5MDA4MmJm
ZmNjODM2NWRiNDk4ZGJjMWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tQYXltZW50Q29vcmRpbmF0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a1BheW1lbnRDb29yZGluYXRvci5pZGwKQEAgLTI5LDUgKzI5LDYgQEAKIF0gaW50ZXJmYWNlIE1v
Y2tQYXltZW50Q29vcmRpbmF0b3IgewogICAgIHZvaWQgc2V0U2hpcHBpbmdBZGRyZXNzKE1vY2tQ
YXltZW50QWRkcmVzcyBzaGlwcGluZ0FkZHJlc3MpOwogICAgIHZvaWQgY2hhbmdlU2hpcHBpbmdP
cHRpb24oRE9NU3RyaW5nIHNoaXBwaW5nT3B0aW9uKTsKKyAgICB2b2lkIGNoYW5nZVBheW1lbnRN
ZXRob2QoQXBwbGVQYXlQYXltZW50TWV0aG9kIHBheW1lbnRNZXRob2QpOwogICAgIHZvaWQgYWNj
ZXB0UGF5bWVudCgpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a1BheW1lbnRNZXRob2QuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRNZXRo
b2QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMTRmNGQ3ZjI0MzlmNGM4MzJlNGI5NWU5MTlhODc3ZWJlNThmZTlj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudE1l
dGhvZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShBUFBMRV9QQVkpCisKKyNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRNZXRob2QuaCIK
KyNpbmNsdWRlICJQYXltZW50TWV0aG9kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgTW9ja1BheW1lbnRNZXRob2QgZmluYWwgOiBwdWJsaWMgUGF5bWVudE1ldGhvZCB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgTW9ja1BheW1lbnRNZXRob2QoQXBwbGVQYXlQYXltZW50TWV0aG9k
JiYgYXBwbGVQYXlQYXltZW50TWV0aG9kKQorICAgICAgICA6IG1fYXBwbGVQYXlQYXltZW50TWV0
aG9kIHsgV1RGTW92ZShhcHBsZVBheVBheW1lbnRNZXRob2QpIH0KKyAgICB7CisgICAgfQorCisg
ICAgQXBwbGVQYXlQYXltZW50TWV0aG9kIHRvQXBwbGVQYXlQYXltZW50TWV0aG9kKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9hcHBsZVBheVBheW1lbnRNZXRob2Q7IH0KKworcHJpdmF0ZToKKyAg
ICBBcHBsZVBheVBheW1lbnRNZXRob2QgbV9hcHBsZVBheVBheW1lbnRNZXRob2Q7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDRiMGEyOWQyMGFhOWFmMjg1YjM1NzExODdhNzY1YzJhOWY4NTU5ZDcuLjZhYzJmNGI1Njdl
ZmVjNTJiNDc4ZWVhMzk3MmFkMmZkZjdhYmE2ZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Ny0xMC0yNCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW0FwcGxl
IFBheV0gSW1wbGVtZW50IGEgcGF5bWVudG1ldGhvZHNlbGVjdGVkIGV2ZW50IGZvciBQYXltZW50
UmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc4NzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NzbC9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVu
dC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3NsL2Fw
cGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50Lmh0dHBzLmh0bWw6IEFkZGVk
LgorCiAyMDE3LTEwLTI0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVuYWJsZSBXZWJLaXQgbG9nZ2luZyBjb25maWd1cmF0
aW9uIGFuZCBkaXNwbGF5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9h
cHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRN
ZXRob2RVcGRhdGVFdmVudC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODA3YjE4YzQ1
NzgxYTNiZDM1YWJlNTM2ZTZlZDdkNzIxNDQ5ZDNmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0
ZUV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0IHRoZSBhcHBs
ZXBheXBheW1lbnRtZXRob2RjaGFuZ2VkIGV2ZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworVGVzdGluZyBBcHBsZVBheU1lcmNoYW50VmFsaWRhdGlvbkV2ZW50CisKK1BBU1Mg
ZXZlbnQucGF5bWVudE1ldGhvZC5kaXNwbGF5TmFtZSBpcyBleHBlY3RlZFBheW1lbnRNZXRob2Qu
ZGlzcGxheU5hbWUKK1BBU1MgZXZlbnQucGF5bWVudE1ldGhvZC5uZXR3b3JrIGlzIGV4cGVjdGVk
UGF5bWVudE1ldGhvZC5uZXR3b3JrCitQQVNTIGV2ZW50LnBheW1lbnRNZXRob2QudHlwZSBpcyBl
eHBlY3RlZFBheW1lbnRNZXRob2QudHlwZQorUEFTUyBldmVudC5wYXltZW50TWV0aG9kLnBheW1l
bnRQYXNzLnByaW1hcnlBY2NvdW50SWRlbnRpZmllciBpcyBleHBlY3RlZFBheW1lbnRNZXRob2Qu
cGF5bWVudFBhc3MucHJpbWFyeUFjY291bnRJZGVudGlmaWVyCitQQVNTIGV2ZW50LnBheW1lbnRN
ZXRob2QucGF5bWVudFBhc3MucHJpbWFyeUFjY291bnROdW1iZXJTdWZmaXggaXMgZXhwZWN0ZWRQ
YXltZW50TWV0aG9kLnBheW1lbnRQYXNzLnByaW1hcnlBY2NvdW50TnVtYmVyU3VmZml4CitQQVNT
IGV2ZW50LnBheW1lbnRNZXRob2QucGF5bWVudFBhc3MuZGV2aWNlQWNjb3VudElkZW50aWZpZXIg
aXMgZXhwZWN0ZWRQYXltZW50TWV0aG9kLnBheW1lbnRQYXNzLmRldmljZUFjY291bnRJZGVudGlm
aWVyCitQQVNTIGV2ZW50LnBheW1lbnRNZXRob2QucGF5bWVudFBhc3MuZGV2aWNlQWNjb3VudE51
bWJlclN1ZmZpeCBpcyBleHBlY3RlZFBheW1lbnRNZXRob2QucGF5bWVudFBhc3MuZGV2aWNlQWNj
b3VudE51bWJlclN1ZmZpeAorUEFTUyBldmVudC5wYXltZW50TWV0aG9kLnBheW1lbnRQYXNzLmFj
dGl2YXRpb25TdGF0ZSBpcyBleHBlY3RlZFBheW1lbnRNZXRob2QucGF5bWVudFBhc3MuYWN0aXZh
dGlvblN0YXRlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXkvQXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc3NsL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50Lmh0
dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q0YjBlYTZiNGUxZmU5NDEyNTQwZDUxMDNiY2FjZDY3NmFh
YjU3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2FwcGxl
cGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50Lmh0dHBzLmh0bWwKQEAgLTAsMCAr
MSw4MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCB0aGUgYXBw
bGVwYXlwYXltZW50bWV0aG9kY2hhbmdlZCBldmVudC4iKTsKKword2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCitmdW5jdGlvbiB2YWxpZFBheW1lbnRNZXRob2QoKSB7CisgICAgcmV0dXJu
IHsKKyAgICAgICAgc3VwcG9ydGVkTWV0aG9kczogJ2h0dHBzOi8vYXBwbGUuY29tL2FwcGxlLXBh
eScsCisgICAgICAgIGRhdGE6IHsKKyAgICAgICAgICAgIHZlcnNpb246IDIsCisgICAgICAgICAg
ICBtZXJjaGFudElkZW50aWZpZXI6ICcnLAorICAgICAgICAgICAgY291bnRyeUNvZGU6ICdVUycs
CisgICAgICAgICAgICBzdXBwb3J0ZWROZXR3b3JrczogWyd2aXNhJywgJ21hc3RlckNhcmQnXSwK
KyAgICAgICAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbJ3N1cHBvcnRzM0RTJ10sCisgICAg
ICAgIH0sCisgICAgfQorfQorCitmdW5jdGlvbiB2YWxpZFBheW1lbnREZXRhaWxzKCkgeworICAg
IHJldHVybiB7CisgICAgICAgIHRvdGFsOiB7IGxhYmVsOiAnWW91ciBsYWJlbCcsIGFtb3VudDog
eyBjdXJyZW5jeTogJ1VTRCcsIHZhbHVlOiAnMTAuMDAnIH0gfSwKKyAgICB9Cit9CisKK2FzeW5j
IGZ1bmN0aW9uIGdvKCkgeworICAgIGRlYnVnKCJUZXN0aW5nIEFwcGxlUGF5TWVyY2hhbnRWYWxp
ZGF0aW9uRXZlbnQiKTsKKyAgICBkZWJ1ZygiIik7CisKKyAgICBleHBlY3RlZFBheW1lbnRNZXRo
b2QgPSB7CisgICAgICAgIGRpc3BsYXlOYW1lOiAndGVzdCcsCisgICAgICAgIG5ldHdvcms6ICd0
ZXN0JywKKyAgICAgICAgdHlwZTogJ3ByZXBhaWQnLAorICAgICAgICBwYXltZW50UGFzczogewor
ICAgICAgICAgICAgcHJpbWFyeUFjY291bnRJZGVudGlmaWVyOiAndGVzdCcsCisgICAgICAgICAg
ICBwcmltYXJ5QWNjb3VudE51bWJlclN1ZmZpeDogJ3Rlc3QnLAorICAgICAgICAgICAgZGV2aWNl
QWNjb3VudElkZW50aWZpZXI6ICd0ZXN0JywKKyAgICAgICAgICAgIGRldmljZUFjY291bnROdW1i
ZXJTdWZmaXg6ICd0ZXN0JywKKyAgICAgICAgICAgIGFjdGl2YXRpb25TdGF0ZTogJ3JlcXVpcmVz
QWN0aXZhdGlvbicsCisgICAgICAgIH0sCisgICAgfTsKKworICAgIHZhciBwYXltZW50UmVxdWVz
dCA9IG5ldyBQYXltZW50UmVxdWVzdChbdmFsaWRQYXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1l
bnREZXRhaWxzKCkpOworICAgIHBheW1lbnRSZXF1ZXN0Lm9uYXBwbGVwYXlwYXltZW50bWV0aG9k
Y2hhbmdlZCA9IChldmVudCkgPT4geworICAgICAgICBzaG91bGRCZSgiZXZlbnQucGF5bWVudE1l
dGhvZC5kaXNwbGF5TmFtZSIsICJleHBlY3RlZFBheW1lbnRNZXRob2QuZGlzcGxheU5hbWUiKTsK
KyAgICAgICAgc2hvdWxkQmUoImV2ZW50LnBheW1lbnRNZXRob2QubmV0d29yayIsICJleHBlY3Rl
ZFBheW1lbnRNZXRob2QubmV0d29yayIpOworICAgICAgICBzaG91bGRCZSgiZXZlbnQucGF5bWVu
dE1ldGhvZC50eXBlIiwgImV4cGVjdGVkUGF5bWVudE1ldGhvZC50eXBlIik7CisgICAgICAgIHNo
b3VsZEJlKCJldmVudC5wYXltZW50TWV0aG9kLnBheW1lbnRQYXNzLnByaW1hcnlBY2NvdW50SWRl
bnRpZmllciIsICJleHBlY3RlZFBheW1lbnRNZXRob2QucGF5bWVudFBhc3MucHJpbWFyeUFjY291
bnRJZGVudGlmaWVyIik7CisgICAgICAgIHNob3VsZEJlKCJldmVudC5wYXltZW50TWV0aG9kLnBh
eW1lbnRQYXNzLnByaW1hcnlBY2NvdW50TnVtYmVyU3VmZml4IiwgImV4cGVjdGVkUGF5bWVudE1l
dGhvZC5wYXltZW50UGFzcy5wcmltYXJ5QWNjb3VudE51bWJlclN1ZmZpeCIpOworICAgICAgICBz
aG91bGRCZSgiZXZlbnQucGF5bWVudE1ldGhvZC5wYXltZW50UGFzcy5kZXZpY2VBY2NvdW50SWRl
bnRpZmllciIsICJleHBlY3RlZFBheW1lbnRNZXRob2QucGF5bWVudFBhc3MuZGV2aWNlQWNjb3Vu
dElkZW50aWZpZXIiKTsKKyAgICAgICAgc2hvdWxkQmUoImV2ZW50LnBheW1lbnRNZXRob2QucGF5
bWVudFBhc3MuZGV2aWNlQWNjb3VudE51bWJlclN1ZmZpeCIsICJleHBlY3RlZFBheW1lbnRNZXRo
b2QucGF5bWVudFBhc3MuZGV2aWNlQWNjb3VudE51bWJlclN1ZmZpeCIpOworICAgICAgICBzaG91
bGRCZSgiZXZlbnQucGF5bWVudE1ldGhvZC5wYXltZW50UGFzcy5hY3RpdmF0aW9uU3RhdGUiLCAi
ZXhwZWN0ZWRQYXltZW50TWV0aG9kLnBheW1lbnRQYXNzLmFjdGl2YXRpb25TdGF0ZSIpOworCisg
ICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpLnJlbW92ZSgpOworICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9OworICAgIAorICAgIHBheW1lbnRSZXF1ZXN0LnNob3co
KTsKKyAgICBpbnRlcm5hbHMubW9ja1BheW1lbnRDb29yZGluYXRvci5jaGFuZ2VQYXltZW50TWV0
aG9kKGV4cGVjdGVkUGF5bWVudE1ldGhvZCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYnV0dG9uIik7
CisgICAgbGV0IHggPSBidXR0b24ub2Zmc2V0TGVmdCArIDI7CisgICAgbGV0IHkgPSBidXR0b24u
b2Zmc2V0VG9wICsgMjsKKyAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KHgsIHkpOworfQorCis8L3Nj
cmlwdD4KKzxidXR0b24gb25jbGljaz0nZ28oKSc+R288L2J1dHRvbj4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324767</attachid>
            <date>2017-10-24 17:31:45 -0700</date>
            <delta_ts>2017-10-24 17:52:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178765-20171024173144.patch</filename>
            <type>text/plain</type>
            <size>48255</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDllNzEwNjk3MTA5NmU5
NzhhNDdhOWE4MzBlODkyZDIxOTljMTM5Yy4uMGNiNzJlMjY4OTk2MmI1MzVjZTkwMDk3OWE4NDBh
ZGFhMzRjMGEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE3LTEwLTI0ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQXBwbGUgUGF5XSBJbXBsZW1l
bnQgYSBwYXltZW50bWV0aG9kc2VsZWN0ZWQgZXZlbnQgZm9yIFBheW1lbnRSZXF1ZXN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg3NjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFdoZW4gdGhlIEFwcGxlIFBh
eSBwYXltZW50IG1ldGhvZCBjaGFuZ2VzLCBmaXJlIGFuIGFwcGxlcGF5cGF5bWVudG1ldGhvZGNo
YW5nZWQgZXZlbnQgb24gdGhlCisgICAgICAgIFBheW1lbnRSZXF1ZXN0IG9iamVjdC4gVGhlIGV2
ZW50IGhhcyBhIHBheW1lbnRNZXRob2QgcHJvcGVydHkgYW5kIGFuIHVwZGF0ZVdpdGgoKSBtZXRo
b2QKKyAgICAgICAgd2hpY2ggYmVoYXZlcyBpZGVudGljYWxseSB0byBQYXltZW50UmVxdWVzdFVw
ZGF0ZUV2ZW50LnVwZGF0ZVdpdGgoKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3NzbC9h
cHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5odHRwcy5odG1sCisKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlQYXltZW50TWV0aG9kLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRNZXRob2QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRNZXRob2Q6
OlBheW1lbnRNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudE1ldGhv
ZDo6cGtQYXltZW50TWV0aG9kIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGV0YWlsc1VwZGF0ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6cGF5bWVudE1ldGhvZFVwZGF0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGlkU2VsZWN0
UGF5bWVudE1ldGhvZCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVz
dC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9w
YXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQ6OkFw
cGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxl
UGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50OjpldmVudEludGVyZmFjZSBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRNZXRo
b2RVcGRhdGVFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3BheW1l
bnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oOgorICAgICAg
ICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nQWRkcmVzc0NoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nT3B0aW9uQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6dXBkYXRlV2l0aCk6CisgICAgICAgIChXZWJDb3JlOjpQ
YXltZW50UmVxdWVzdDo6c2V0dGxlRGV0YWlsc1Byb21pc2UpOgorICAgICAgICAoV2ViQ29yZTo6
UGF5bWVudFJlcXVlc3Q6OmRpc3BhdGNoVXBkYXRlRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAq
IE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVz
L3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudDo6dXBkYXRlV2l0aCk6CisgICAgICAg
ICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50Lmg6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRv
bS9FdmVudE5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICog
dGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tQYXltZW50Q29vcmRpbmF0b3I6OmNoYW5nZVBheW1lbnRNZXRob2QpOgorICAgICAgICAqIHRl
c3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oOgorICAgICAgICAqIHRlc3RpbmcvTW9ja1Bh
eW1lbnRDb29yZGluYXRvci5pZGw6CisgICAgICAgICogdGVzdGluZy9Nb2NrUGF5bWVudE1ldGhv
ZC5oOiBBZGRlZC4KKwogMjAxNy0xMC0yNCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgW1dlYklETF0gU3VwcG9ydCB0aGUgRXhwb3J0TWFjcm8gYXR0cmlidXRlIGZv
ciBkaWN0aW9uYXJpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDg5YmRhNzVj
NmNjYzQzZDc3ZTg4MmRiM2U2MzcxNGY3YjY4YTBkYTguLmY2MjM3YTA1MjA1NjdiMzllOTFjYmFl
MmYyOTViZDZkMDk3NjYzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTA4
LDYgKzEwOCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVZhbGlkYXRlTWVyY2hhbnRFdmVudC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheU1lcmNo
YW50VmFsaWRhdGlvbkV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5
L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UmVx
dWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29u
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2NhY2hlL0RPTVdpbmRvd0NhY2hlcy5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBh
eW1lbnRNZXRob2QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVBheW1lbnRNZXRob2QuaWRsCmluZGV4IDgyYzRlYzIxYTgyNWFhYjc2NThiZjdlNzY4YjI5ZTQ5
YTgwOGIzODguLmUwOTA5NDBiNGI0MWZlZGMwZTU2OWFjY2M1OWMxZDllMzM4MjBmNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0
aG9kLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5
bWVudE1ldGhvZC5pZGwKQEAgLTM0LDYgKzM0LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPUFQ
UExFX1BBWSwKKyAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKICAgICBKU0dlbmVyYXRl
VG9KU09iamVjdAogXSBkaWN0aW9uYXJ5IEFwcGxlUGF5UGF5bWVudE1ldGhvZCB7CiAgICAgRE9N
U3RyaW5nIGRpc3BsYXlOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQu
aAppbmRleCBkNTE4MzI0MDdkOGM1YzEwZTk1NmIwMzdlYWNmMTZkODQzNjRmNGJjLi4zYWMxYTNj
NDFmYzhkMDVmNTViNmM1ZTg2MGEyNzMzMjI3MDQ5Y2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1l
dGhvZFNlbGVjdGVkRXZlbnQuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFBheW1lbnRNZXRob2Q7CiAKLWNsYXNzIEFwcGxlUGF5UGF5bWVudE1ldGhvZFNl
bGVjdGVkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworY2xhc3MgQXBwbGVQYXlQYXltZW50
TWV0aG9kU2VsZWN0ZWRFdmVudCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxBcHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2ZW50PiBjcmVhdGUoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBjb25zdCBQYXltZW50TWV0aG9kJiBwYXltZW50TWV0aG9kKQogICAg
IHsKQEAgLTQ1LDEyICs0NSwxMyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBBcHBsZVBheVBheW1l
bnRNZXRob2QmIHBheW1lbnRNZXRob2QoKSB7IHJldHVybiBtX3BheW1lbnRNZXRob2Q7IH0KIAot
cHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBBcHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgUGF5bWVudE1ldGhvZCYpOwogCiAg
ICAgLy8gRXZlbnQuCiAgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBv
dmVycmlkZTsKIAorcHJpdmF0ZToKICAgICBjb25zdCBBcHBsZVBheVBheW1lbnRNZXRob2QgbV9w
YXltZW50TWV0aG9kOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9QYXltZW50TWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L1BheW1lbnRNZXRob2QuaAppbmRleCA2OWEzNzcwYzcyZmNlZWUzMTNjOTJmOTkxZTYwNmU3NWNl
OGRiOWQwLi45Y2U3YmFhNzk0M2FiZDJkZGZmMTMxYjQ0MzA5N2EyYWEwNGIxMjE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRNZXRob2QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRNZXRob2QuaApAQCAtMzUs
MTggKzM1LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEFwcGxlUGF5UGF5bWVu
dE1ldGhvZDsKIAotY2xhc3MgUGF5bWVudE1ldGhvZCB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBQ
YXltZW50TWV0aG9kIHsKIHB1YmxpYzoKLSAgICBQYXltZW50TWV0aG9kKCkKLSAgICB7Ci0gICAg
fQorICAgIFBheW1lbnRNZXRob2QoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+UGF5bWVudE1l
dGhvZCgpID0gZGVmYXVsdDsKIAogICAgIGV4cGxpY2l0IFBheW1lbnRNZXRob2QoUEtQYXltZW50
TWV0aG9kICpwa1BheW1lbnRNZXRob2QpCiAgICAgICAgIDogbV9wa1BheW1lbnRNZXRob2QocGtQ
YXltZW50TWV0aG9kKQogICAgIHsKICAgICB9CiAKLSAgICBBcHBsZVBheVBheW1lbnRNZXRob2Qg
dG9BcHBsZVBheVBheW1lbnRNZXRob2QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFwcGxlUGF5UGF5
bWVudE1ldGhvZCB0b0FwcGxlUGF5UGF5bWVudE1ldGhvZCgpIGNvbnN0OwogCiAgICAgUEtQYXlt
ZW50TWV0aG9kICpwa1BheW1lbnRNZXRob2QoKSBjb25zdCB7IHJldHVybiBtX3BrUGF5bWVudE1l
dGhvZC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5k
bGVyLmNwcAppbmRleCBlZWYyYTBjOWEyNmI3MDFiM2NhYjZlN2ZjMmZlMzU0NmQwMGFhZDg3Li44
ZWFlMzc2ZTMxNzliMDAyZjQ5NTMwODA4NDdmNTgwMjc3OWQzOTgyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVu
dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVu
dHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJBcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5
TWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJBcHBsZVBheVBheW1lbnQuaCIK
KyNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5oIgogI2luY2x1ZGUg
IkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC00NCw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUGF5
bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaCIKICNpbmNsdWRlICJQYXltZW50Q29udGFjdC5oIgog
I2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIlBheW1lbnRNZXRob2Qu
aCIKICNpbmNsdWRlICJQYXltZW50UmVxdWVzdFZhbGlkYXRvci5oIgogI2luY2x1ZGUgIlBheW1l
bnRSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0yNjcsNiArMjY5LDIxIEBA
IHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxB
bmRMaW5lSXRlbXM+IGNvbnZlcnRBbmRWCiAgICAgcmV0dXJuIEFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyB7IHRvdGFsLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
LCBsaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCkgfTsKIH0KIAorRXhjZXB0aW9uT3I8dm9p
ZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGV0YWlsc1VwZGF0ZWQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgZXJyb3IpCit7CisgICAgaWYgKGV2ZW50VHlw
ZSA9PSBldmVudE5hbWVzKCkuc2hpcHBpbmdhZGRyZXNzY2hhbmdlRXZlbnQpCisgICAgICAgIHJl
dHVybiBzaGlwcGluZ0FkZHJlc3NVcGRhdGVkKGVycm9yKTsKKworICAgIGlmIChldmVudFR5cGUg
PT0gZXZlbnROYW1lcygpLnNoaXBwaW5nb3B0aW9uY2hhbmdlRXZlbnQpCisgICAgICAgIHJldHVy
biBzaGlwcGluZ09wdGlvblVwZGF0ZWQoKTsKKworICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnRO
YW1lcygpLmFwcGxlcGF5cGF5bWVudG1ldGhvZGNoYW5nZWRFdmVudCkKKyAgICAgICAgcmV0dXJu
IHBheW1lbnRNZXRob2RVcGRhdGVkKCk7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4geyB9OworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5k
bGVyOjpzaGlwcGluZ0FkZHJlc3NVcGRhdGVkKGNvbnN0IFN0cmluZyYgZXJyb3IpCiB7CiAgICAg
U2hpcHBpbmdDb250YWN0VXBkYXRlIHVwZGF0ZTsKQEAgLTMwMCw2ICszMTcsMTkgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hpcHBpbmdPcHRpb25VcGRhdGVk
KCkKICAgICByZXR1cm4geyB9OwogfQogCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1l
bnRIYW5kbGVyOjpwYXltZW50TWV0aG9kVXBkYXRlZCgpCit7CisgICAgUGF5bWVudE1ldGhvZFVw
ZGF0ZSB1cGRhdGU7CisKKyAgICBhdXRvIG5ld1RvdGFsQW5kTGluZUl0ZW1zID0gY29udmVydEFu
ZFZhbGlkYXRlKG1fcGF5bWVudFJlcXVlc3QtPnBheW1lbnREZXRhaWxzKCkpOworICAgIGlmIChu
ZXdUb3RhbEFuZExpbmVJdGVtcy5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIG5ld1Rv
dGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICB1cGRhdGUubmV3VG90YWxB
bmRMaW5lSXRlbXMgPSBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsK
KworICAgIHBheW1lbnRDb29yZGluYXRvcigpLmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bihXVEZNb3ZlKHVwZGF0ZSkpOworICAgIHJldHVybiB7IH07Cit9CisKIHZvaWQgQXBwbGVQYXlQ
YXltZW50SGFuZGxlcjo6Y29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYg
cmVzdWx0KQogewogICAgIGlmICghcmVzdWx0KSB7CkBAIC0zNTMsNiArMzgzLDEyIEBAIHZvaWQg
QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFBh
eW1lbnRDb250YWN0JiBzaGlwCiAgICAgbV9wYXltZW50UmVxdWVzdC0+c2hpcHBpbmdBZGRyZXNz
Q2hhbmdlZChjb252ZXJ0KHNoaXBwaW5nQ29udGFjdC50b0FwcGxlUGF5UGF5bWVudENvbnRhY3Qo
KSkpOwogfQogCit2b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmRpZFNlbGVjdFBheW1lbnRN
ZXRob2QoY29uc3QgUGF5bWVudE1ldGhvZCYgcGF5bWVudE1ldGhvZCkKK3sKKyAgICBhdXRvIGV2
ZW50ID0gQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuYXBwbGVwYXlwYXltZW50bWV0aG9kY2hhbmdlZEV2ZW50LCBwYXltZW50TWV0aG9kLnRvQXBw
bGVQYXlQYXltZW50TWV0aG9kKCksIG1fcGF5bWVudFJlcXVlc3QuZ2V0KCkpOworICAgIG1fcGF5
bWVudFJlcXVlc3QtPmRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0KCkpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZ
TUVOVF9SRVFVRVNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIu
aAppbmRleCA5ZWFmOTI3NGUyZTI3MTRjM2U5OWRmODQ1NzE3YzUwNGIwMGIxMGExLi5mMWI5ZWE3
YjY1YjhhMjM1ODJhZmVmMTQwNTQyMzIyZTQyMjQwMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0
L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuaApAQCAtNTEsMTMgKzUxLDE2IEBAIHByaXZhdGU6CiAg
ICAgRG9jdW1lbnQmIGRvY3VtZW50KCk7CiAgICAgUGF5bWVudENvb3JkaW5hdG9yJiBwYXltZW50
Q29vcmRpbmF0b3IoKTsKIAorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNoaXBwaW5nQWRkcmVzc1Vw
ZGF0ZWQoY29uc3QgU3RyaW5nJiBlcnJvcik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBp
bmdPcHRpb25VcGRhdGVkKCk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gcGF5bWVudE1ldGhvZFVw
ZGF0ZWQoKTsKKwogICAgIC8vIFBheW1lbnRIYW5kbGVyCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
Y29udmVydERhdGEoSlNDOjpKU1ZhbHVlJiYpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNob3coKSBmaW5hbDsKICAgICB2b2lkIGhpZGUoKSBmaW5hbDsKICAgICB2b2lkIGNhbk1ha2VQ
YXltZW50KFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmlu
YWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdBZGRyZXNzVXBkYXRlZChjb25zdCBT
dHJpbmcmIGVycm9yKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzaGlwcGluZ09wdGlv
blVwZGF0ZWQoKSBmaW5hbDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBkZXRhaWxzVXBkYXRlZChj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBlcnJvcikgZmluYWw7
CiAgICAgdm9pZCBjb21wbGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJikgZmlu
YWw7CiAKICAgICAvLyBQYXltZW50U2Vzc2lvbgpAQCAtNjUsNyArNjgsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQYXltZW50JikgZmluYWw7CiAgICAg
dm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKSBmaW5hbDsKICAgICB2b2lkIGRpZFNlbGVjdFNoaXBw
aW5nQ29udGFjdChjb25zdCBQYXltZW50Q29udGFjdCYpIGZpbmFsOwotICAgIHZvaWQgZGlkU2Vs
ZWN0UGF5bWVudE1ldGhvZChjb25zdCBQYXltZW50TWV0aG9kJikgZmluYWwgeyB9CisgICAgdm9p
ZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFBheW1lbnRNZXRob2QmKSBmaW5hbDsKICAg
ICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKCkgZmluYWwgeyB9CiAKICAgICBQYXltZW50
UmVxdWVzdDo6TWV0aG9kSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVu
dE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
cGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM4NjYwZGM0MWY1NDY0NGUxYWYyMzE1NDNhNWMxMWUyZGIyMDE3YjkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0
L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcApAQCAtMCwwICsxLDQ4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVu
dE1ldGhvZFVwZGF0ZUV2ZW50LmgiCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUo
UEFZTUVOVF9SRVFVRVNUKQorCisjaW5jbHVkZSAiUGF5bWVudFJlcXVlc3QuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudDo6QXBwbGVQ
YXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25z
dCBBcHBsZVBheVBheW1lbnRNZXRob2QmIHBheW1lbnRNZXRob2QsIFBheW1lbnRSZXF1ZXN0JiBw
YXltZW50UmVxdWVzdCkKKyAgICA6IFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQgeyB0eXBlLCBw
YXltZW50UmVxdWVzdCB9CisgICAgLCBtX3BheW1lbnRNZXRob2QgeyBwYXltZW50TWV0aG9kIH0K
K3sKK30KKworRXZlbnRJbnRlcmZhY2UgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQ6
OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gQXBwbGVQYXlQYXltZW50TWV0
aG9kVXBkYXRlRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNU
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVx
dWVzdC9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGVFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjMDZmYWU3ZWE3ZjRiODI4OWNlZjRiMDRhNjE0MWI0MTNh
NTMwMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmgKQEAgLTAs
MCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExF
X1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKKworI2luY2x1ZGUgIkFwcGxlUGF5UGF5
bWVudE1ldGhvZC5oIgorI2luY2x1ZGUgIlBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVF
dmVudCBmaW5hbCA6IHB1YmxpYyBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50IHsKK3B1YmxpYzoK
KyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxBcHBsZVBheVBheW1l
bnRNZXRob2RVcGRhdGVFdmVudD4gY3JlYXRlKEFyZ3MmJi4uLiBhcmdzKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQo
c3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7CisgICAgfQorCisgICAgY29uc3QgQXBwbGVQ
YXlQYXltZW50TWV0aG9kJiBwYXltZW50TWV0aG9kKCkgY29uc3QgeyByZXR1cm4gbV9wYXltZW50
TWV0aG9kOyB9CisKK3ByaXZhdGU6CisgICAgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBBcHBsZVBheVBheW1lbnRNZXRob2Qm
LCBQYXltZW50UmVxdWVzdCYpOworCisgICAgLy8gRXZlbnQKKyAgICBFdmVudEludGVyZmFjZSBl
dmVudEludGVyZmFjZSgpIGNvbnN0IGZpbmFsOworCisgICAgY29uc3QgQXBwbGVQYXlQYXltZW50
TWV0aG9kIG1fcGF5bWVudE1ldGhvZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0
L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
RXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxYWRmYzFiOTIyYTVhMTVjY2MyMTgxNGU3YmU5YmE2OWMx
OThiYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmlkbApAQCAt
MCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUFQUExFX1BBWSZQ
QVlNRU5UX1JFUVVFU1QsCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCitdIGludGVyZmFjZSBBcHBs
ZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudCA6IFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQg
eworICAgIFtDYWNoZWRBdHRyaWJ1dGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcHBsZVBheVBheW1l
bnRNZXRob2QgcGF5bWVudE1ldGhvZDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgKaW5kZXggYzQ4ZmE5YjEzYjE1
Y2RmZjc1MTE3OTBjZmJlZTIxYWE2OTE2ZTVmZC4uNTM5ZjFkYmM2Yzg1ZTg0ODM4M2Y5ZjFjNjFk
NThlZTBkNzg1NzBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50
cmVxdWVzdC9QYXltZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5
bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaApAQCAtNDgsOCArNDgsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzaG93KCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBoaWRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5NYWtlUGF5bWVudChXVEY6OkZ1bmN0
aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpID0gMDsKLSAgICB2aXJ0dWFsIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQoY29uc3QgU3RyaW5nJiBlcnJv
cikgPSAwOwotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdPcHRpb25VcGRh
dGVkKCkgPSAwOworICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gZGV0YWlsc1VwZGF0ZWQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgZXJyb3IpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+
JiYpID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggYjI1ODgyMGJiZDE1OTAwNDhjNTg3
ODY2MTM5MDE1NmI2OWJlYzM4NC4uYTM3ZTI5MDJjNTk1YzVmZWIyNmQyNDNiMWU5NzVhNDRlOTAw
MjM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTUyNCwzNiArNTI0LDM0IEBAIHZvaWQgUGF5bWVu
dFJlcXVlc3Q6OnNoaXBwaW5nQWRkcmVzc0NoYW5nZWQoUmVmPFBheW1lbnRBZGRyZXNzPiYmIHNo
aXBwaW5nQWRkcmVzCiB7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OkludGVyYWN0aXZl
KTsKICAgICBtX3NoaXBwaW5nQWRkcmVzcyA9IFdURk1vdmUoc2hpcHBpbmdBZGRyZXNzKTsKLSAg
ICBkaXNwYXRjaFVwZGF0ZUV2ZW50KGV2ZW50TmFtZXMoKS5zaGlwcGluZ2FkZHJlc3NjaGFuZ2VF
dmVudCk7CisgICAgYXV0byBldmVudCA9IFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuc2hpcHBpbmdhZGRyZXNzY2hhbmdlRXZlbnQsICp0aGlzKTsKKyAgICBk
aXNwYXRjaEV2ZW50KGV2ZW50LmdldCgpKTsKIH0KIAogdm9pZCBQYXltZW50UmVxdWVzdDo6c2hp
cHBpbmdPcHRpb25DaGFuZ2VkKGNvbnN0IFN0cmluZyYgc2hpcHBpbmdPcHRpb24pCiB7CiAgICAg
QVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OkludGVyYWN0aXZlKTsKICAgICBtX3NoaXBwaW5nT3B0
aW9uID0gc2hpcHBpbmdPcHRpb247Ci0gICAgZGlzcGF0Y2hVcGRhdGVFdmVudChldmVudE5hbWVz
KCkuc2hpcHBpbmdvcHRpb25jaGFuZ2VFdmVudCk7CisgICAgYXV0byBldmVudCA9IFBheW1lbnRS
ZXF1ZXN0VXBkYXRlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2hpcHBpbmdvcHRpb25jaGFu
Z2VFdmVudCwgKnRoaXMpOworICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0KCkpOwogfQogCi12
b2lkIFBheW1lbnRSZXF1ZXN0OjpkaXNwYXRjaFVwZGF0ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSkKK2Jvb2wgUGF5bWVudFJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoRXZlbnQmIGV2ZW50
KQogeworICAgIGlmICghZXZlbnQuaXNUcnVzdGVkKCkpCisgICAgICAgIHJldHVybiBFdmVudFRh
cmdldFdpdGhJbmxpbmVEYXRhOjpkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKwogICAgIGlmIChtX2lz
VXBkYXRpbmcpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aWYgKG1fc3RhdGUgIT0gU3RhdGU6OkludGVyYWN0aXZlKQotICAgICAgICByZXR1cm47CisgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gZXZlbnQgPSBQYXltZW50UmVxdWVzdFVwZGF0
ZUV2ZW50OjpjcmVhdGUodHlwZSwgKnRoaXMpOwotICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0
KCkpOworICAgIHJldHVybiBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhOjpkaXNwYXRjaEV2ZW50
KGV2ZW50KTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3Q6OnVwZGF0ZVdp
dGgoUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudCYgZXZlbnQsIFJlZjxET01Qcm9taXNlPiYmIHBy
b21pc2UpCitFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdDo6dXBkYXRlV2l0aChFdmVu
dCYgZXZlbnQsIFJlZjxET01Qcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKCFldmVudC5p
c1RydXN0ZWQoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
IH07Ci0KLSAgICBpZiAoZXZlbnQud2FpdEZvclVwZGF0ZSgpKQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLQogICAgIGlmIChtX3N0YXRlICE9IFN0YXRl
OjpJbnRlcmFjdGl2ZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH07CiAKQEAgLTU2Miw3ICs1NjAsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVx
dWVzdDo6dXBkYXRlV2l0aChQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50JiBldmVudCwgUgogCiAg
ICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3Bh
Z2F0aW9uKCk7Ci0gICAgZXZlbnQuc2V0V2FpdEZvclVwZGF0ZSh0cnVlKTsKICAgICBtX2lzVXBk
YXRpbmcgPSB0cnVlOwogCiAgICAgbV9kZXRhaWxzUHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSk7
CkBAIC01NzksNiArNTc2LDkgQEAgdm9pZCBQYXltZW50UmVxdWVzdDo6c2V0dGxlRGV0YWlsc1By
b21pc2UoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogICAgICAgICBtX2lzVXBkYXRpbmcgPSBm
YWxzZTsKICAgICB9KTsKIAorICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpJbnRlcmFjdGl2ZSkK
KyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKG1fZGV0YWlsc1Byb21pc2UtPnN0YXR1cygpID09
IERPTVByb21pc2U6OlN0YXR1czo6UmVqZWN0ZWQpIHsKICAgICAgICAgc3RvcCgpOwogICAgICAg
ICByZXR1cm47CkBAIC02MTYsMTIgKzYxNiwxMSBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzZXR0
bGVEZXRhaWxzUHJvbWlzZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpCiAgICAgbV9kZXRhaWxz
Lm1vZGlmaWVycyA9IFdURk1vdmUocGF5bWVudERldGFpbHNVcGRhdGUubW9kaWZpZXJzKTsKICAg
ICBtX3NlcmlhbGl6ZWRNb2RpZmllckRhdGEgPSBXVEZNb3ZlKHN0ZDo6Z2V0PDE+KHNoaXBwaW5n
T3B0aW9uQW5kTW9kaWZpZXJEYXRhKSk7CiAKLSAgICBpZiAodHlwZSA9PSBldmVudE5hbWVzKCku
c2hpcHBpbmdhZGRyZXNzY2hhbmdlRXZlbnQpCi0gICAgICAgIG1fYWN0aXZlUGF5bWVudEhhbmRs
ZXItPnNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQocGF5bWVudERldGFpbHNVcGRhdGUuZXJyb3IpOwot
ICAgIGVsc2UgaWYgKHR5cGUgPT0gZXZlbnROYW1lcygpLnNoaXBwaW5nb3B0aW9uY2hhbmdlRXZl
bnQpCi0gICAgICAgIG1fYWN0aXZlUGF5bWVudEhhbmRsZXItPnNoaXBwaW5nT3B0aW9uVXBkYXRl
ZCgpOwotICAgIGVsc2UKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgYXV0byBy
ZXN1bHQgPSBtX2FjdGl2ZVBheW1lbnRIYW5kbGVyLT5kZXRhaWxzVXBkYXRlZCh0eXBlLCBwYXlt
ZW50RGV0YWlsc1VwZGF0ZS5lcnJvcik7CisgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkg
eworICAgICAgICBhYm9ydFdpdGhFeGNlcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKIHZvaWQgUGF5bWVudFJlcXVlc3Q6OmFjY2Vw
dChjb25zdCBTdHJpbmcmIG1ldGhvZE5hbWUsIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiYg
ZGV0YWlscywgUmVmPFBheW1lbnRBZGRyZXNzPiYmIHNoaXBwaW5nQWRkcmVzcywgY29uc3QgU3Ry
aW5nJiBwYXllck5hbWUsIGNvbnN0IFN0cmluZyYgcGF5ZXJFbWFpbCwgY29uc3QgU3RyaW5nJiBw
YXllclBob25lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50UmVxdWVzdC5oCmluZGV4IDMwODBhYTMzNTA0MWFkNzY4NzU1NWU3ZTBmYTRi
ZmI3N2ZjYTgwMjYuLmZmMzE1Y2I3YjQyMTdkYjUzNDQyZWViNTI1YmU4YzI4MzFlZmQ2MWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJl
cXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1l
bnRSZXF1ZXN0LmgKQEAgLTM5LDkgKzM5LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBFdmVudDsKIGNsYXNzIFBheW1lbnRBZGRyZXNzOwogY2xhc3Mg
UGF5bWVudEhhbmRsZXI7Ci1jbGFzcyBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50OwogY2xhc3Mg
UGF5bWVudFJlc3BvbnNlOwogZW51bSBjbGFzcyBQYXltZW50Q29tcGxldGU7CiBlbnVtIGNsYXNz
IFBheW1lbnRTaGlwcGluZ1R5cGU7CkBAIC03MCwxMCArNzAsMTMgQEAgcHVibGljOgogCiAgICAg
dm9pZCBzaGlwcGluZ0FkZHJlc3NDaGFuZ2VkKFJlZjxQYXltZW50QWRkcmVzcz4mJik7CiAgICAg
dm9pZCBzaGlwcGluZ09wdGlvbkNoYW5nZWQoY29uc3QgU3RyaW5nJiBzaGlwcGluZ09wdGlvbik7
Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gdXBkYXRlV2l0aChQYXltZW50UmVxdWVzdFVwZGF0ZUV2
ZW50JiwgUmVmPERPTVByb21pc2U+JiYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHVwZGF0ZVdp
dGgoRXZlbnQmLCBSZWY8RE9NUHJvbWlzZT4mJik7CiAgICAgdm9pZCBhY2NlcHQoY29uc3QgU3Ry
aW5nJiBtZXRob2ROYW1lLCBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiYmIGRldGFpbHMsIFJl
ZjxQYXltZW50QWRkcmVzcz4mJiBzaGlwcGluZ0FkZHJlc3MsIGNvbnN0IFN0cmluZyYgcGF5ZXJO
YW1lLCBjb25zdCBTdHJpbmcmIHBheWVyRW1haWwsIGNvbnN0IFN0cmluZyYgcGF5ZXJQaG9uZSk7
CiAgICAgdm9pZCBjb21wbGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJik7CiAK
KyAgICAvLyBFdmVudFRhcmdldAorICAgIGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudCYpIGZpbmFs
OworCiAgICAgdXNpbmcgTWV0aG9kSWRlbnRpZmllciA9IFZhcmlhbnQ8U3RyaW5nLCBVUkw+Owog
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGF5bWVudFJlcXVlc3Q+OjpyZWY7CiAgICAgdXNpbmcgUmVm
Q291bnRlZDxQYXltZW50UmVxdWVzdD46OmRlcmVmOwpAQCAtOTIsNyArOTUsNiBAQCBwcml2YXRl
OgogCiAgICAgUGF5bWVudFJlcXVlc3QoRG9jdW1lbnQmLCBQYXltZW50T3B0aW9ucyYmLCBQYXlt
ZW50RGV0YWlsc0luaXQmJiwgVmVjdG9yPFN0cmluZz4mJiBzZXJpYWxpemVkTW9kaWZpZXJEYXRh
LCBWZWN0b3I8TWV0aG9kPiYmIHNlcmlhbGl6ZWRNZXRob2REYXRhLCBTdHJpbmcmJiBzZWxlY3Rl
ZFNoaXBwaW5nT3B0aW9uKTsKIAotICAgIHZvaWQgZGlzcGF0Y2hVcGRhdGVFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUpOwogICAgIHZvaWQgc2V0dGxlRGV0YWlsc1Byb21pc2UoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlKTsKICAgICB2b2lkIGFib3J0V2l0aEV4Y2VwdGlvbihFeGNlcHRp
b24mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVl
c3QvUGF5bWVudFJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50UmVxdWVzdC5pZGwKaW5kZXggN2ZhMzk5YTg3YWYzNzZkZmQ1Njg0NzY2ZDVj
NzJlOTFiMmUzMzFlNi4uNzMyYTc0MzI5ZGUzOTY4NDljYWVhMzZlYzk5Yjc2Yzk1NzUxMWM5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
UmVxdWVzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVxdWVzdC5pZGwKQEAgLTQ1LDQgKzQ1LDUgQEAKICAgICBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9uc2hpcHBpbmdvcHRpb25jaGFuZ2U7CiAKICAgICBbQ29uZGl0aW9uYWw9QVBQTEVf
UEFZXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uYXBwbGVwYXl2YWxpZGF0ZW1lcmNoYW50Owor
ICAgIFtDb25kaXRpb25hbD1BUFBMRV9QQVldIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hcHBs
ZXBheXBheW1lbnRtZXRob2RjaGFuZ2VkOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRl
RXZlbnQuY3BwCmluZGV4IGNlZWRiZDFiZjJiOWYxMGJhZDZlMWVhNWZmZDAzYzNkMzRhYzc1MGEu
LjQ3NDRmZTk5NWFkNmJlNThhZTMyNWI0YTYxZmQ2Y2Y1ZmQ4ZjJiZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVF
dmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXlt
ZW50UmVxdWVzdFVwZGF0ZUV2ZW50LmNwcApAQCAtNDcsNyArNDcsMTggQEAgUGF5bWVudFJlcXVl
c3RVcGRhdGVFdmVudDo6flBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQoKSA9IGRlZmF1bHQ7CiAK
IEV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQ6OnVwZGF0ZVdpdGgo
UmVmPERPTVByb21pc2U+JiYgZGV0YWlsc1Byb21pc2UpCiB7Ci0gICAgcmV0dXJuIG1fcGF5bWVu
dFJlcXVlc3QtPnVwZGF0ZVdpdGgoKnRoaXMsIFdURk1vdmUoZGV0YWlsc1Byb21pc2UpKTsKKyAg
ICBpZiAoIWlzVHJ1c3RlZCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IgfTsKKworICAgIGlmIChtX3dhaXRGb3JVcGRhdGUpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgYXV0byBleGNlcHRpb24gPSBt
X3BheW1lbnRSZXF1ZXN0LT51cGRhdGVXaXRoKCp0aGlzLCBXVEZNb3ZlKGRldGFpbHNQcm9taXNl
KSk7CisgICAgaWYgKGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGV4
Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICBtX3dhaXRGb3JVcGRhdGUgPSB0cnVl
OworICAgIHJldHVybiB7IH07CiB9CiAKIEV2ZW50SW50ZXJmYWNlIFBheW1lbnRSZXF1ZXN0VXBk
YXRlRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0
ZUV2ZW50LmgKaW5kZXggNGZhZDY0NDhiNDFmZGUzYzlhNTQyZTY2NmVhYjkwNzRkZWRlN2QzYy4u
MzAwNDFhMjgzOWQzNThkNTYxMDUyODhjNWQyMmFiZTIwMTJkYTk3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
UmVxdWVzdFVwZGF0ZUV2ZW50LmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgRE9NUHJvbWlzZTsK
IGNsYXNzIFBheW1lbnRSZXF1ZXN0Owogc3RydWN0IFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnRJ
bml0OwogCi1jbGFzcyBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50IGZpbmFsIDogcHVibGljIEV2
ZW50IHsKK2NsYXNzIFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQgOiBwdWJsaWMgRXZlbnQgewog
cHVibGljOgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZS4uLiBBcmdzPiBzdGF0aWMgUmVmPFBheW1l
bnRSZXF1ZXN0VXBkYXRlRXZlbnQ+IGNyZWF0ZShBcmdzJiYuLi4gYXJncykKICAgICB7CkBAIC00
NSwxNSArNDUsMTQgQEAgcHVibGljOgogICAgIH5QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50KCk7
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gdXBkYXRlV2l0aChSZWY8RE9NUHJvbWlzZT4mJik7CiAK
LSAgICBib29sIHdhaXRGb3JVcGRhdGUoKSBjb25zdCB7IHJldHVybiBtX3dhaXRGb3JVcGRhdGU7
IH0KLSAgICB2b2lkIHNldFdhaXRGb3JVcGRhdGUoYm9vbCB3YWl0Rm9yVXBkYXRlKSB7IG1fd2Fp
dEZvclVwZGF0ZSA9IHdhaXRGb3JVcGRhdGU7IH0KLQotcHJpdmF0ZToKLSAgICBQYXltZW50UmVx
dWVzdFVwZGF0ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGF5bWVudFJlcXVlc3RV
cGRhdGVFdmVudEluaXQmJik7Citwcm90ZWN0ZWQ6CiAgICAgUGF5bWVudFJlcXVlc3RVcGRhdGVF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIFBheW1lbnRSZXF1ZXN0Jik7CiAKICAgICAv
LyBFdmVudAotICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgZmluYWw7
CisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKKwor
cHJpdmF0ZToKKyAgICBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudEluaXQmJik7CiAKICAgICBSZWZQdHI8
UGF5bWVudFJlcXVlc3Q+IG1fcGF5bWVudFJlcXVlc3Q7CiAgICAgYm9vbCBtX3dhaXRGb3JVcGRh
dGUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDBhNmNjNGQ2ZTZjZDMxOTk3NDc1NjZiODhjOGIyZWI2YzZiYjll
MzAuLmE0MzI4NmQ0NTY1ZTM2NjhmN2VjNjg1YTJiMzRhYjUwMTlkNmNkMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3MDcs
NiArMzcwNywxMSBAQAogCQlBMUJGNkI4MzFBQTk2QzdEMDBBRjRBOEEgLyogTW9ja0NvbnRlbnRG
aWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
QkY2QjgxMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5oICovOyB9OwogCQlB
MUMxNTA3OTFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQzE1MDc3MUUzRjJCM0UwMDMy
Qzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLm1tICovOyB9OwogCQlBMUMxNTA3QTFFM0YyQjNFMDAz
MkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTFDMTUwNzgxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252
ZXJ0ZXIuaCAqLzsgfTsKKwkJQTFDQkVGNTMxRjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMUNCRUY1MDFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlRXZlbnQuaCAqLzsgfTsKKwkJQTFDQkVGNTQxRjlFRUU3NTAwMjhERTdDIC8q
IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQ0JFRjUxMUY5RUVFNzUwMDI4REU3QyAvKiBB
cHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5jcHAgKi87IH07CisJCUExQ0JFRjYxMUY5
RjA5MDQwMDI4REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQ0JFRjVGMUY5
RjA5MDIwMDI4REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCAq
LzsgfTsKKwkJQTFDQkVGNjIxRjlGMDkwNDAwMjhERTdDIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0
aG9kVXBkYXRlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExQ0JFRjYwMUY5RjA5MDIwMDI4REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZUV2ZW50LmggKi87IH07CisJCUExQ0JFRjY0MUY5RjExMjkwMDI4REU3QyAvKiBNb2Nr
UGF5bWVudE1ldGhvZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTFDQkVGNjMxRjlGMTEyOTAwMjhERTdDIC8qIE1vY2tQYXltZW50TWV0aG9kLmggKi87
IH07CiAJCUExQ0MxMTY0MUU0OTNEMDEwMEVGQTY5QyAvKiBGaWxlU3lzdGVtTWFjLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDQzExNjIxRTQ5M0Qw
MTAwRUZBNjlDIC8qIEZpbGVTeXN0ZW1NYWMubW0gKi87IH07CiAJCUExQ0M1NjY3MUY0NjE0N0Ew
MEE0NTU1QiAvKiBKU1BheW1lbnRBZGRyZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMUNDNTY2NTFGNDYxNDY4MDBBNDU1NUIgLyogSlNQYXltZW50
QWRkcmVzcy5oICovOyB9OwogCQlBMUNDNTY2OTFGNDYxNDgwMDBBNDU1NUIgLyogSlNQYXltZW50
Q29tcGxldGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExQ0M1NjRFMUY0NjE0NTIwMEE0NTU1QiAvKiBKU1BheW1lbnRDb21wbGV0ZS5oICovOyB9OwpA
QCAtMTE4OTAsNiArMTE4OTUsMTIgQEAKIAkJQTFDMTUwNzcxRTNGMkIzRTAwMzJDOThDIC8qIFBy
ZXZpZXdDb252ZXJ0ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBQcmV2aWV3Q29udmVydGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUMx
NTA3ODFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQcmV2aWV3Q29udmVydGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExQzdGQUExMTMzQTVEMzUwMEQ2NzMyRCAvKiBKU1hQYXRoUmVzdWx0Q3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWFBhdGhSZXN1
bHRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMUNCRUY1MDFGOUVF
RTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTFDQkVGNTExRjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTFDQkVGNTIxRjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQ0JFRjVGMUY5RjA5MDIwMDI4REU3QyAvKiBKU0Fw
cGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMUNCRUY2MDFGOUYwOTAyMDAyOERFN0MgLyog
SlNBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQ0JFRjYzMUY5RjExMjkwMDI4REU3QyAvKiBNb2Nr
UGF5bWVudE1ldGhvZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrUGF5bWVudE1ldGhvZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUNDMTE2MjFFNDkzRDAxMDBFRkE2OUMgLyogRmls
ZVN5c3RlbU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZp
bGVTeXN0ZW1NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQ0M1NjRDMUY0
NjE0NTAwMEE0NTU1QiAvKiBKU1BheW1lbnRNZXRob2REYXRhLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTUGF5bWVudE1ldGhvZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTFDQzU2NEQxRjQ2MTQ1MTAwQTQ1NTVCIC8qIEpTUGF5bWVudE1ldGhvZERh
dGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQYXltZW50TWV0
aG9kRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQ5NSw2ICsxNjUw
Niw4IEBACiAJCQkJMUFFOTZBN0QxRDFBMEE4MDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlQYXltZW50
TWV0aG9kU2VsZWN0ZWRFdmVudC5oICovLAogCQkJCTFBREZERkU1MUU3MURDQTAwMDhGNUQzNCAv
KiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5jcHAgKi8sCiAJCQkJMUFERkRGRTYxRTcx
RENBMDAwOEY1RDM0IC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggKi8sCisJCQkJ
QTFDQkVGNUYxRjlGMDkwMjAwMjhERTdDIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
RXZlbnQuY3BwICovLAorCQkJCUExQ0JFRjYwMUY5RjA5MDIwMDI4REU3QyAvKiBKU0FwcGxlUGF5
UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmggKi8sCiAJCQkJN0M2NTIzMEYxRTAwREJCNDAwNjc3
RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50UGFzcy5jcHAgKi8sCiAJCQkJN0M2NTIzMTAxRTAwREJC
NDAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50UGFzcy5oICovLAogCQkJCTdDNjU3OUVCMUUw
MDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5UGF5bWVudFJlcXVlc3QuY3BwICovLApAQCAtMTcy
NzUsNiArMTcyODgsNyBAQAogCQkJCUExQUZFREU1MUY4QkZGNkQwMDg3MDEzRiAvKiBNb2NrUGF5
bWVudENvb3JkaW5hdG9yLmNwcCAqLywKIAkJCQlBMUFGRURFNDFGOEJGRjZEMDA4NzAxM0YgLyog
TW9ja1BheW1lbnRDb29yZGluYXRvci5oICovLAogCQkJCUExNDZEMzE2MUY5OUI1M0QwMEQyOTE5
NiAvKiBNb2NrUGF5bWVudENvb3JkaW5hdG9yLmlkbCAqLywKKwkJCQlBMUNCRUY2MzFGOUYxMTI5
MDAyOERFN0MgLyogTW9ja1BheW1lbnRNZXRob2QuaCAqLywKIAkJCQlBMTQwNjE4OTFFMkVDQTBB
MDAzMkIzNEUgLyogTW9ja1ByZXZpZXdMb2FkZXJDbGllbnQuY3BwICovLAogCQkJCUExNDA2MThB
MUUyRUNBMEEwMDMyQjM0RSAvKiBNb2NrUHJldmlld0xvYWRlckNsaWVudC5oICovLAogCQkJCUVC
MDgxQ0Q4MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBlQ29udmVyc2lvbnMuaCAqLywKQEAgLTIxMTE1
LDYgKzIxMTI5LDkgQEAKIAkJCQlBMUY5Mjk2ODFGOEQ5Q0RCMDA1MjNBRjMgLyogQXBwbGVQYXlN
ZXJjaGFudFZhbGlkYXRpb25FdmVudC5pZGwgKi8sCiAJCQkJQTFERjVBQTExRjdFRTExMzAwNThB
NDc3IC8qIEFwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwICovLAogCQkJCUExREY1QUEwMUY3RUUx
MTMwMDU4QTQ3NyAvKiBBcHBsZVBheVBheW1lbnRIYW5kbGVyLmggKi8sCisJCQkJQTFDQkVGNTEx
RjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCAq
LywKKwkJCQlBMUNCRUY1MDFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlRXZlbnQuaCAqLywKKwkJCQlBMUNCRUY1MjFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQ
YXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaWRsICovLAogCQkJCUExREY1QTdDMUY3RUJEMEIw
MDU4QTQ3NyAvKiBBcHBsZVBheVJlcXVlc3QuaCAqLywKIAkJCQlBMURGNUE3RTFGN0VCRDBCMDA1
OEE0NzcgLyogQXBwbGVQYXlSZXF1ZXN0LmlkbCAqLywKIAkJCSk7CkBAIC0yNjU1Miw2ICsyNjU2
OSw3IEBACiAJCQkJQTE0NkQzMjExRjk5Q0IxQTAwRDI5MTk2IC8qIE1vY2tQYXltZW50QWRkcmVz
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0NkQzMjUxRjk5RDY5ODAwRDI5MTk2IC8qIE1vY2tQ
YXltZW50Q29udGFjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFBRkVERTYxRjhCRkY2RDAwODcw
MTNGIC8qIE1vY2tQYXltZW50Q29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUExQ0JF
RjY0MUY5RjExMjkwMDI4REU3QyAvKiBNb2NrUGF5bWVudE1ldGhvZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTE0MDYxOEMxRTJFQ0EwQTAwMzJCMzRFIC8qIE1vY2tQcmV2aWV3TG9hZGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTVGM0I4RDE2Q0MzM0QxMDA0NTVFQjAgLyogUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUExNzYzRjNGMUUy
MDUyMzQwMDFENThERSAvKiBXZWJBcmNoaXZlRHVtcFN1cHBvcnQuaCBpbiBIZWFkZXJzICovLApA
QCAtMjY2MzAsNiArMjY2NDgsNyBAQAogCQkJCUExREY1QUEyMUY3RUUxMTMwMDU4QTQ3NyAvKiBB
cHBsZVBheVBheW1lbnRIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzY1MjJFRjFFMDBB
NEM3MDA2NzdGMjIgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQThBNjQ1NjFEMTlGQ0ZDMDBEMEUwMEYgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0
ZWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTFDQkVGNTMxRjlFRUU3NTAwMjhERTdDIC8q
IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QzY1MjJGNTFFMDBBNTE3MDA2NzdGMjIgLyogQXBwbGVQYXlQYXltZW50UGFzcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0M2NTc5RTAxRTAwNzlGOTAwRTNBMjdBIC8qIEFwcGxlUGF5UGF5bWVudFJl
cXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUExREY1QTdGMUY3RUJEMEIwMDU4QTQ3NyAvKiBB
cHBsZVBheVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjc4OTUsNiArMjc5MTQsNyBAQAog
CQkJCTdDNjUyMzE2MUUwMERCQjUwMDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5bWVudENvbnRhY3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdDNjUyMzE4MUUwMERCQjUwMDY3N0YyMiAvKiBKU0FwcGxl
UGF5UGF5bWVudE1ldGhvZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFOTZBOEQxRDFBMERERDAw
Qjg2NzY4IC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTFDQkVGNjIxRjlGMDkwNDAwMjhERTdDIC8qIEpTQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNjUyMzFBMUUwMERCQjUw
MDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5bWVudFBhc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTdD
NjU3OUYyMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5UGF5bWVudFJlcXVlc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExREY1QThGMUY3RUMwMDIwMDU4QTQ3NyAvKiBKU0FwcGxlUGF5UmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDgxNyw2ICszMDgzNyw3IEBACiAJCQkJMUE4QTY0
NTExRDE5RkNGQjAwRDBFMDBGIC8qIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6ZWRFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBMURGNUFBMzFGN0VFMTEzMDA1OEE0NzcgLyogQXBwbGVQYXlQ
YXltZW50SGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQThBNjQ1NDFEMTlGQ0ZDMDBE
MEUwMEYgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBMUNCRUY1NDFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0
aG9kVXBkYXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFERjVBQUUxRjgwNzVGMTAw
NThBNDc3IC8qIEFwcGxlUGF5UmVxdWVzdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4
QTY0NTgxRDE5RkNGQzAwRDBFMDBGIC8qIEFwcGxlUGF5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTU4RTg2NzFEMTlEODBFMDBDMEVBNzMgLyogQXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTUyOCw2ICszMTU0OSw3IEBACiAJCQkJ
N0M2NTIzMTcxRTAwREJCNTAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBRTk2QThDMUQxQTBEREQwMEI4Njc2OCAvKiBKU0FwcGxlUGF5
UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFERkRG
RUQxRTcxRTQ3NTAwOEY1RDM0IC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUExQ0JFRjYxMUY5RjA5MDQwMDI4REU3QyAvKiBKU0FwcGxlUGF5
UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNjUyMzE5
MUUwMERCQjUwMDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5bWVudFBhc3MuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0M2NTc5RjExRTAwODU2NjAwRTNBMjdBIC8qIEpTQXBwbGVQYXlQYXltZW50UmVx
dWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMURGNUE5MDFGN0VDMDAyMDA1OEE0NzcgLyog
SlNBcHBsZVBheVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aAppbmRleCA5ZjQ5NTcwNDgxYjE5MWFlZTY5ZGQ5NDBkN2U4ZDgyMzEwMzgzNTc0Li45ZmIwNDVk
ZTE0NmVmYzFlZDk5Yzg0ODVlNDVmOTE5MjFlNTEyMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmgKQEAgLTUzLDYgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGFuaW1h
dGlvbmVuZCkgXAogICAgIG1hY3JvKGFuaW1hdGlvbml0ZXJhdGlvbikgXAogICAgIG1hY3JvKGFu
aW1hdGlvbnN0YXJ0KSBcCisgICAgbWFjcm8oYXBwbGVwYXlwYXltZW50bWV0aG9kY2hhbmdlZCkg
XAogICAgIG1hY3JvKGFwcGxlcGF5dmFsaWRhdGVtZXJjaGFudCkgXAogICAgIG1hY3JvKGF1ZGlv
ZW5kKSBcCiAgICAgbWFjcm8oYXVkaW9wcm9jZXNzKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmlu
CmluZGV4IDdjNmIzYTVhNmEzZWU4YjlkOGZlOTNjZTdhOTM1NjFhZDE3MjU3NGEuLjFiYWFjOWVk
NjgzMWQyMjMzMDY0ZjA3N2FlNWQyZDcyOGFiNjU0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmluCkBAIC00MSw2ICs0MSw3IEBAIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudAogQXBwbGVQ
YXlNZXJjaGFudFZhbGlkYXRpb25FdmVudCBjb25kaXRpb25hbD1BUFBMRV9QQVkKIEFwcGxlUGF5
UGF5bWVudEF1dGhvcml6ZWRFdmVudCBjb25kaXRpb25hbD1BUFBMRV9QQVkKIEFwcGxlUGF5UGF5
bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQgY29uZGl0aW9uYWw9QVBQTEVfUEFZCitBcHBsZVBheVBh
eW1lbnRNZXRob2RVcGRhdGVFdmVudCBjb25kaXRpb25hbD1BUFBMRV9QQVkKIEFwcGxlUGF5U2hp
cHBpbmdDb250YWN0U2VsZWN0ZWRFdmVudCBjb25kaXRpb25hbD1BUFBMRV9QQVkKIEFwcGxlUGF5
U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50IGNvbmRpdGlvbmFsPUFQUExFX1BBWQogQXBwbGVQ
YXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQgY29uZGl0aW9uYWw9QVBQTEVfUEFZCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcAppbmRleCBmOTdh
Mjg1YzU0NTNjYzUxMDk4ZTNhYTEyMmQ2NWI4OTI1MTA5ZGI1Li5hZTA1ZjI0NDI1MzIzMDBhZDIw
MGE1OTc2NzMxNThhM2JhYWQwN2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJN
YWluRnJhbWUuaCIKICNpbmNsdWRlICJNb2NrUGF5bWVudC5oIgogI2luY2x1ZGUgIk1vY2tQYXlt
ZW50Q29udGFjdC5oIgorI2luY2x1ZGUgIk1vY2tQYXltZW50TWV0aG9kLmgiCiAjaW5jbHVkZSAi
UGF5bWVudENvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KQEAgLTExMyw2ICsxMTQsMTMgQEAgdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9y
OjpjaGFuZ2VTaGlwcGluZ09wdGlvbihTdHJpbmcmJiBzaGlwcGluZ09wdGlvbikKICAgICB9KTsK
IH0KIAordm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjaGFuZ2VQYXltZW50TWV0aG9kKEFw
cGxlUGF5UGF5bWVudE1ldGhvZCYmIHBheW1lbnRNZXRob2QpCit7CisgICAgZGlzcGF0Y2hJZlNo
b3dpbmcoW21haW5GcmFtZSA9IG1ha2VSZWYobV9tYWluRnJhbWUpLCBwYXltZW50TWV0aG9kID0g
V1RGTW92ZShwYXltZW50TWV0aG9kKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgbWFpbkZyYW1lLT5w
YXltZW50Q29vcmRpbmF0b3IoKS5kaWRTZWxlY3RQYXltZW50TWV0aG9kKE1vY2tQYXltZW50TWV0
aG9kIHsgV1RGTW92ZShwYXltZW50TWV0aG9kKSB9KTsKKyAgICB9KTsKK30KKwogdm9pZCBNb2Nr
UGF5bWVudENvb3JkaW5hdG9yOjphY2NlcHRQYXltZW50KCkKIHsKICAgICBkaXNwYXRjaElmU2hv
d2luZyhbbWFpbkZyYW1lID0gbWFrZVJlZihtX21haW5GcmFtZSksIHNoaXBwaW5nQWRkcmVzcyA9
IG1fc2hpcHBpbmdBZGRyZXNzXSgpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaAppbmRleCA2ZTdiNWY3ZmM4Mzg2Y2ViYzUwODgw
ZTljYWQ4YTBhOThlMjIwZmQ2Li43NTM1ZWI0NDRiNDExNGJjOTdlMGEyYzI2MDE5MDBjN2E2YWRj
YzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRp
bmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0
b3IuaApAQCAtMzEsOCArMzEsOSBAQAogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvckNsaWVu
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCisKIGNsYXNzIE1haW5GcmFtZTsKK3N0
cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2Q7CiAKIGNsYXNzIE1vY2tQYXltZW50Q29vcmRpbmF0
b3IgZmluYWwgOiBwdWJsaWMgUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50IHsKIHB1YmxpYzoKQEAg
LTQwLDYgKzQxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRTaGlwcGluZ0FkZHJlc3MoTW9j
a1BheW1lbnRBZGRyZXNzJiYgc2hpcHBpbmdBZGRyZXNzKSB7IG1fc2hpcHBpbmdBZGRyZXNzID0g
V1RGTW92ZShzaGlwcGluZ0FkZHJlc3MpOyB9CiAgICAgdm9pZCBjaGFuZ2VTaGlwcGluZ09wdGlv
bihTdHJpbmcmJiBzaGlwcGluZ09wdGlvbik7CisgICAgdm9pZCBjaGFuZ2VQYXltZW50TWV0aG9k
KEFwcGxlUGF5UGF5bWVudE1ldGhvZCYmKTsKICAgICB2b2lkIGFjY2VwdFBheW1lbnQoKTsKIAog
ICAgIHZvaWQgcmVmKCkgY29uc3QgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrUGF5bWVudENvb3JkaW5hdG9yLmlkbAppbmRleCAxYjRkYzAxMjI4NWYxYjg3ZDFmMjdlOGUx
ZDYwMGZhY2M5MDcwMDgxLi42NGU5NmNlNzhlOTY1OTg5MDA4MmJmZmNjODM2NWRiNDk4ZGJjMWFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0
b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRv
ci5pZGwKQEAgLTI5LDUgKzI5LDYgQEAKIF0gaW50ZXJmYWNlIE1vY2tQYXltZW50Q29vcmRpbmF0
b3IgewogICAgIHZvaWQgc2V0U2hpcHBpbmdBZGRyZXNzKE1vY2tQYXltZW50QWRkcmVzcyBzaGlw
cGluZ0FkZHJlc3MpOwogICAgIHZvaWQgY2hhbmdlU2hpcHBpbmdPcHRpb24oRE9NU3RyaW5nIHNo
aXBwaW5nT3B0aW9uKTsKKyAgICB2b2lkIGNoYW5nZVBheW1lbnRNZXRob2QoQXBwbGVQYXlQYXlt
ZW50TWV0aG9kIHBheW1lbnRNZXRob2QpOwogICAgIHZvaWQgYWNjZXB0UGF5bWVudCgpOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRNZXRob2QuaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRNZXRob2QuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
MTRmNGQ3ZjI0MzlmNGM4MzJlNGI5NWU5MTlhODc3ZWJlNThmZTljCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudE1ldGhvZC5oCkBAIC0wLDAgKzEs
NTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUFBMRV9QQVkp
CisKKyNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRNZXRob2QuaCIKKyNpbmNsdWRlICJQYXltZW50
TWV0aG9kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9ja1BheW1lbnRNZXRo
b2QgZmluYWwgOiBwdWJsaWMgUGF5bWVudE1ldGhvZCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
TW9ja1BheW1lbnRNZXRob2QoQXBwbGVQYXlQYXltZW50TWV0aG9kJiYgYXBwbGVQYXlQYXltZW50
TWV0aG9kKQorICAgICAgICA6IG1fYXBwbGVQYXlQYXltZW50TWV0aG9kIHsgV1RGTW92ZShhcHBs
ZVBheVBheW1lbnRNZXRob2QpIH0KKyAgICB7CisgICAgfQorCisgICAgQXBwbGVQYXlQYXltZW50
TWV0aG9kIHRvQXBwbGVQYXlQYXltZW50TWV0aG9kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9h
cHBsZVBheVBheW1lbnRNZXRob2Q7IH0KKworcHJpdmF0ZToKKyAgICBBcHBsZVBheVBheW1lbnRN
ZXRob2QgbV9hcHBsZVBheVBheW1lbnRNZXRob2Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRiMGEyOWQyMGFhOWFm
Mjg1YjM1NzExODdhNzY1YzJhOWY4NTU5ZDcuLjJlMTM2ZmUwMzNiMmJmN2Q4YWU5Yzg1NzQzYjYz
NjY3NWE0NzlkYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0xMC0yNCAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW0FwcGxlIFBheV0gSW1wbGVtZW50IGEg
cGF5bWVudG1ldGhvZHNlbGVjdGVkIGV2ZW50IGZvciBQYXltZW50UmVxdWVzdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NzY1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc3NsL2FwcGxl
cGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlRXZlbnQuaHR0cHMuaHRtbDogQWRkZWQuCisKIDIwMTctMTAtMjQgIEVyaWMg
Q2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogRW5hYmxlIFdlYktpdCBsb2dnaW5nIGNvbmZpZ3VyYXRpb24gYW5kIGRpc3BsYXkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVu
dE1ldGhvZFVwZGF0ZUV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3NsL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50Lmh0dHBz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDdiMThjNDU3ODFhM2JkMzVhYmU1MzZlNmVkN2Q3
MjE0NDlkM2ZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wv
YXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTkgQEAKK1Rlc3QgdGhlIGFwcGxlcGF5cGF5bWVudG1ldGhvZGNoYW5n
ZWQgZXZlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0aW5nIEFwcGxl
UGF5TWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQKKworUEFTUyBldmVudC5wYXltZW50TWV0aG9kLmRp
c3BsYXlOYW1lIGlzIGV4cGVjdGVkUGF5bWVudE1ldGhvZC5kaXNwbGF5TmFtZQorUEFTUyBldmVu
dC5wYXltZW50TWV0aG9kLm5ldHdvcmsgaXMgZXhwZWN0ZWRQYXltZW50TWV0aG9kLm5ldHdvcmsK
K1BBU1MgZXZlbnQucGF5bWVudE1ldGhvZC50eXBlIGlzIGV4cGVjdGVkUGF5bWVudE1ldGhvZC50
eXBlCitQQVNTIGV2ZW50LnBheW1lbnRNZXRob2QucGF5bWVudFBhc3MucHJpbWFyeUFjY291bnRJ
ZGVudGlmaWVyIGlzIGV4cGVjdGVkUGF5bWVudE1ldGhvZC5wYXltZW50UGFzcy5wcmltYXJ5QWNj
b3VudElkZW50aWZpZXIKK1BBU1MgZXZlbnQucGF5bWVudE1ldGhvZC5wYXltZW50UGFzcy5wcmlt
YXJ5QWNjb3VudE51bWJlclN1ZmZpeCBpcyBleHBlY3RlZFBheW1lbnRNZXRob2QucGF5bWVudFBh
c3MucHJpbWFyeUFjY291bnROdW1iZXJTdWZmaXgKK1BBU1MgZXZlbnQucGF5bWVudE1ldGhvZC5w
YXltZW50UGFzcy5kZXZpY2VBY2NvdW50SWRlbnRpZmllciBpcyBleHBlY3RlZFBheW1lbnRNZXRo
b2QucGF5bWVudFBhc3MuZGV2aWNlQWNjb3VudElkZW50aWZpZXIKK1BBU1MgZXZlbnQucGF5bWVu
dE1ldGhvZC5wYXltZW50UGFzcy5kZXZpY2VBY2NvdW50TnVtYmVyU3VmZml4IGlzIGV4cGVjdGVk
UGF5bWVudE1ldGhvZC5wYXltZW50UGFzcy5kZXZpY2VBY2NvdW50TnVtYmVyU3VmZml4CitQQVNT
IGV2ZW50LnBheW1lbnRNZXRob2QucGF5bWVudFBhc3MuYWN0aXZhdGlvblN0YXRlIGlzIGV4cGVj
dGVkUGF5bWVudE1ldGhvZC5wYXltZW50UGFzcy5hY3RpdmF0aW9uU3RhdGUKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGVFdmVudC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXkv
QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ZDRiMGVhNmI0ZTFmZTk0MTI1NDBkNTEwM2JjYWNkNjc2YWFiNTcwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0
aG9kVXBkYXRlRXZlbnQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDgxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoZSBhcHBsZXBheXBheW1lbnRtZXRob2RjaGFu
Z2VkIGV2ZW50LiIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9u
IHZhbGlkUGF5bWVudE1ldGhvZCgpIHsKKyAgICByZXR1cm4geworICAgICAgICBzdXBwb3J0ZWRN
ZXRob2RzOiAnaHR0cHM6Ly9hcHBsZS5jb20vYXBwbGUtcGF5JywKKyAgICAgICAgZGF0YTogewor
ICAgICAgICAgICAgdmVyc2lvbjogMiwKKyAgICAgICAgICAgIG1lcmNoYW50SWRlbnRpZmllcjog
JycsCisgICAgICAgICAgICBjb3VudHJ5Q29kZTogJ1VTJywKKyAgICAgICAgICAgIHN1cHBvcnRl
ZE5ldHdvcmtzOiBbJ3Zpc2EnLCAnbWFzdGVyQ2FyZCddLAorICAgICAgICAgICAgbWVyY2hhbnRD
YXBhYmlsaXRpZXM6IFsnc3VwcG9ydHMzRFMnXSwKKyAgICAgICAgfSwKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIHZhbGlkUGF5bWVudERldGFpbHMoKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgdG90
YWw6IHsgbGFiZWw6ICdZb3VyIGxhYmVsJywgYW1vdW50OiB7IGN1cnJlbmN5OiAnVVNEJywgdmFs
dWU6ICcxMC4wMCcgfSB9LAorICAgIH0KK30KKworYXN5bmMgZnVuY3Rpb24gZ28oKSB7CisgICAg
ZGVidWcoIlRlc3RpbmcgQXBwbGVQYXlNZXJjaGFudFZhbGlkYXRpb25FdmVudCIpOworICAgIGRl
YnVnKCIiKTsKKworICAgIGV4cGVjdGVkUGF5bWVudE1ldGhvZCA9IHsKKyAgICAgICAgZGlzcGxh
eU5hbWU6ICd0ZXN0JywKKyAgICAgICAgbmV0d29yazogJ3Rlc3QnLAorICAgICAgICB0eXBlOiAn
cHJlcGFpZCcsCisgICAgICAgIHBheW1lbnRQYXNzOiB7CisgICAgICAgICAgICBwcmltYXJ5QWNj
b3VudElkZW50aWZpZXI6ICd0ZXN0JywKKyAgICAgICAgICAgIHByaW1hcnlBY2NvdW50TnVtYmVy
U3VmZml4OiAndGVzdCcsCisgICAgICAgICAgICBkZXZpY2VBY2NvdW50SWRlbnRpZmllcjogJ3Rl
c3QnLAorICAgICAgICAgICAgZGV2aWNlQWNjb3VudE51bWJlclN1ZmZpeDogJ3Rlc3QnLAorICAg
ICAgICAgICAgYWN0aXZhdGlvblN0YXRlOiAncmVxdWlyZXNBY3RpdmF0aW9uJywKKyAgICAgICAg
fSwKKyAgICB9OworCisgICAgdmFyIHBheW1lbnRSZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0
KFt2YWxpZFBheW1lbnRNZXRob2QoKV0sIHZhbGlkUGF5bWVudERldGFpbHMoKSk7CisgICAgcGF5
bWVudFJlcXVlc3Qub25hcHBsZXBheXBheW1lbnRtZXRob2RjaGFuZ2VkID0gKGV2ZW50KSA9PiB7
CisgICAgICAgIHNob3VsZEJlKCJldmVudC5wYXltZW50TWV0aG9kLmRpc3BsYXlOYW1lIiwgImV4
cGVjdGVkUGF5bWVudE1ldGhvZC5kaXNwbGF5TmFtZSIpOworICAgICAgICBzaG91bGRCZSgiZXZl
bnQucGF5bWVudE1ldGhvZC5uZXR3b3JrIiwgImV4cGVjdGVkUGF5bWVudE1ldGhvZC5uZXR3b3Jr
Iik7CisgICAgICAgIHNob3VsZEJlKCJldmVudC5wYXltZW50TWV0aG9kLnR5cGUiLCAiZXhwZWN0
ZWRQYXltZW50TWV0aG9kLnR5cGUiKTsKKyAgICAgICAgc2hvdWxkQmUoImV2ZW50LnBheW1lbnRN
ZXRob2QucGF5bWVudFBhc3MucHJpbWFyeUFjY291bnRJZGVudGlmaWVyIiwgImV4cGVjdGVkUGF5
bWVudE1ldGhvZC5wYXltZW50UGFzcy5wcmltYXJ5QWNjb3VudElkZW50aWZpZXIiKTsKKyAgICAg
ICAgc2hvdWxkQmUoImV2ZW50LnBheW1lbnRNZXRob2QucGF5bWVudFBhc3MucHJpbWFyeUFjY291
bnROdW1iZXJTdWZmaXgiLCAiZXhwZWN0ZWRQYXltZW50TWV0aG9kLnBheW1lbnRQYXNzLnByaW1h
cnlBY2NvdW50TnVtYmVyU3VmZml4Iik7CisgICAgICAgIHNob3VsZEJlKCJldmVudC5wYXltZW50
TWV0aG9kLnBheW1lbnRQYXNzLmRldmljZUFjY291bnRJZGVudGlmaWVyIiwgImV4cGVjdGVkUGF5
bWVudE1ldGhvZC5wYXltZW50UGFzcy5kZXZpY2VBY2NvdW50SWRlbnRpZmllciIpOworICAgICAg
ICBzaG91bGRCZSgiZXZlbnQucGF5bWVudE1ldGhvZC5wYXltZW50UGFzcy5kZXZpY2VBY2NvdW50
TnVtYmVyU3VmZml4IiwgImV4cGVjdGVkUGF5bWVudE1ldGhvZC5wYXltZW50UGFzcy5kZXZpY2VB
Y2NvdW50TnVtYmVyU3VmZml4Iik7CisgICAgICAgIHNob3VsZEJlKCJldmVudC5wYXltZW50TWV0
aG9kLnBheW1lbnRQYXNzLmFjdGl2YXRpb25TdGF0ZSIsICJleHBlY3RlZFBheW1lbnRNZXRob2Qu
cGF5bWVudFBhc3MuYWN0aXZhdGlvblN0YXRlIik7CisKKyAgICAgICAgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigiYnV0dG9uIikucmVtb3ZlKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
IH07CisgICAgCisgICAgcGF5bWVudFJlcXVlc3Quc2hvdygpOworICAgIGludGVybmFscy5tb2Nr
UGF5bWVudENvb3JkaW5hdG9yLmNoYW5nZVBheW1lbnRNZXRob2QoZXhwZWN0ZWRQYXltZW50TWV0
aG9kKTsKK30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHZhciBidXR0b24g
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJidXR0b24iKTsKKyAgICBsZXQgeCA9IGJ1dHRvbi5v
ZmZzZXRMZWZ0ICsgMjsKKyAgICBsZXQgeSA9IGJ1dHRvbi5vZmZzZXRUb3AgKyAyOworICAgIFVJ
SGVscGVyLmFjdGl2YXRlQXQoeCwgeSk7Cit9CisKKzwvc2NyaXB0PgorPGJ1dHRvbiBvbmNsaWNr
PSdnbygpJz5HbzwvYnV0dG9uPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>