<?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>121950</bug_id>
          
          <creation_ts>2013-09-26 06:02:23 -0700</creation_ts>
          <short_desc>[MediaStream API] implement VideoStreamTrack and AudioStreamTrack</short_desc>
          <delta_ts>2013-11-14 07:39:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>124288</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>dino</cc>
    
    <cc>jer.noble</cc>
    
    <cc>thiago.lacerda</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>933458</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-26 06:02:23 -0700</bug_when>
    <thetext>The spec defines AudioStreamTrack and a VideoStreamTrack interfaces:

[Constructor(optional MediaTrackConstraints videoConstraints)]
interface VideoStreamTrack : MediaStreamTrack
 {
    static sequence&lt;DOMString&gt; getSourceIds ();
};

[Constructor(optional MediaTrackConstraints videoConstraints)]
interface AudioStreamTrack : MediaStreamTrack
 {
    static sequence&lt;DOMString&gt; getSourceIds ();
};

Earlier this week the spec editors agreed to remove the getSourceIds() methods because the functionality is a subset of what can be done with MediaStreamTrack.getSources(), but having typed streams will still be useful.

&lt;rdar://problem/15022548&gt;
&lt;rdar://problem/15022541&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933638</commentid>
    <comment_count>1</comment_count>
      <attachid>212737</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-26 12:29:18 -0700</bug_when>
    <thetext>Created attachment 212737
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933642</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-26 12:37:02 -0700</bug_when>
    <thetext>Committed r156488: https://trac.webkit.org/r156488</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212737</attachid>
            <date>2013-09-26 12:29:18 -0700</date>
            <delta_ts>2013-09-26 12:37:12 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>audio_video_track_3.txt</filename>
            <type>text/plain</type>
            <size>36903</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjQ4MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA5LTI2ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbSBB
UEldIGltcGxlbWVudCBWaWRlb1N0cmVhbVRyYWNrIGFuZCBBdWRpb1N0cmVhbVRyYWNrCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE5NTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IGJsb2NrZWQgYnkgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTk2
NworCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZCBuZXcgZmlsZXMuCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZTogRGl0dG8uCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bTogRGl0dG8uCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0F1ZGlvU3RyZWFtVHJh
Y2suY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0F1ZGlvU3RyZWFt
VHJhY2suaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9BdWRpb1N0cmVh
bVRyYWNrLmlkbDogQWRkZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbSk6
IENyZWF0ZSBhbiBBdWRpb1N0cmVhbVRyYWNrIG9yIGEgVmlkZW9TdHJlYW1UcmFjay4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjphZGRSZW1vdGVTb3VyY2UpOiBEaXR0by4KKworICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUpOiBSZW1vdmVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgorCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmNwcDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmg6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vVmlkZW9TdHJlYW1UcmFjay5pZGw6IEFkZGVkLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IGZpbGVzLgor
CiAyMDEzLTA5LTI2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTU2NDUxLgpJbmRleDogU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQJKHJldmlzaW9uIDE1NjQ3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMTYsNiArMjE2LDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJ
TEVTCiAgICAgTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuaWRsCiAgICAg
TW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmlkbAogCisgICAgTW9k
dWxlcy9tZWRpYXN0cmVhbS9BdWRpb1N0cmVhbVRyYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bUV2ZW50LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwK
QEAgLTIzOSw2ICsyNDAsNyBAQCBzZXQoV2ViQ29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXNwb25zZS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRs
CisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmlkbAogCiAgICAgTW9k
dWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbAogCkBA
IC04MzcsNiArODM5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIE1vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyTGlzdC5jcHAKIAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vQXVkaW9TdHJlYW1UcmFjay5j
cHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcAogICAg
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmNwcApAQCAtODYyLDYgKzg2NSw3IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uY3BwCiAgICAgTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcAogICAgIE1vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1Zp
ZGVvU3RyZWFtVHJhY2suY3BwCiAKICAgICBNb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9O
YXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQkocmV2aXNpb24gMTU2NDU5KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTI0LDcgKzEyNCw4IEBAIEJJTkRJTkdfSURMUyA9IFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyTGlz
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlz
dC5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5p
ZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9BdWRpb1N0cmVhbVRyYWNrLmlk
bCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZl
bnQuaWRsIFwKQEAgLTE0Niw2ICsxNDcsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwgXAorCSQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE1NjQ3MykKKysrIFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTU5LDYg
KzU5LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQXVkaW9QYXJhbS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Qcm9j
ZXNzaW5nRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Qcm9jZXNz
aW5nRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvU3RyZWFtVHJhY2su
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9TdHJlYW1UcmFjay5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9UcmFjay5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNBdWRpb1RyYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRp
b1RyYWNrTGlzdC5jcHAgXApAQCAtNzU4LDYgKzc2MCw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNl
cyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5U3RhdGUuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZvaWRDYWxsYmFjay5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNWb2lkQ2FsbGJhY2suaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Zp
ZGVvU3RyZWFtVHJhY2suaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvU3RyZWFt
VHJhY2suY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9UcmFjay5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRlb1RyYWNrLmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNWaWRlb1RyYWNrTGlzdC5jcHAgXApAQCAtMTI1MCw2ICsxMjU0LDcgQEAgZG9t
X2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktp
dE1lZGlhU291cmNlLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktp
dFNvdXJjZUJ1ZmZlci5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJL
aXRTb3VyY2VCdWZmZXJMaXN0LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L0F1ZGlvU3RyZWFtVHJhY2suaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1FdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmlkbCBcCkBAIC0xMjczLDYgKzEyNzgsNyBAQCBkb21fYmluZGluZ19pZGxzICs9
IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsIFwK
IAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwgXAog
CSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZvLmlkbCBcCisJJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1ZpZGVvU3RyZWFtVHJhY2suaWRsIFwKIAkkKFdlYkNv
cmUpL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5p
ZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNh
dGlvbnMuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaWRsIFwKQEAgLTE5NjUsNiArMTk3MSw4IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZl
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1
ZmZlckxpc3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktp
dFNvdXJjZUJ1ZmZlckxpc3QuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9BdWRpb1N0cmVhbVRyYWNrLmNwcCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9BdWRpb1N0cmVhbVRyYWNrLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFDb25zdHJhaW50c0ltcGwuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmggXAogCVNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIFwKQEAgLTIwMjIsNiArMjAzMCw4IEBA
IHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCBcCisJU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmggXAogCVNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmln
YXRvckNvbnRlbnRVdGlscy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25hdmlnYXRvcmNv
bnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaCBcCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0F1ZGlvU3RyZWFtVHJhY2suY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQXVkaW9TdHJlYW1UcmFj
ay5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L0F1ZGlvU3RyZWFtVHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJBdWRpb1N0cmVhbVRyYWNrLmgiCisKKyNpbmNsdWRlICJEaWN0aW9uYXJ5Lmgi
CisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8QXVkaW9T
dHJlYW1UcmFjaz4gQXVkaW9TdHJlYW1UcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IERpY3Rpb25hcnkmIGF1ZGlvQ29uc3RyYWludHMpCit7CisgICAg
UmVmUHRyPEF1ZGlvU3RyZWFtVHJhY2s+IHRyYWNrID0gYWRvcHRSZWYobmV3IEF1ZGlvU3RyZWFt
VHJhY2soY29udGV4dCwgMCwgJmF1ZGlvQ29uc3RyYWludHMpKTsKKyAgICByZXR1cm4gdHJhY2su
cmVsZWFzZSgpOworfQorCitQYXNzUmVmUHRyPEF1ZGlvU3RyZWFtVHJhY2s+IEF1ZGlvU3RyZWFt
VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBNZWRpYVN0cmVh
bVNvdXJjZSogc291cmNlKQoreworICAgIFJlZlB0cjxBdWRpb1N0cmVhbVRyYWNrPiB0cmFjayA9
IGFkb3B0UmVmKG5ldyBBdWRpb1N0cmVhbVRyYWNrKGNvbnRleHQsIHNvdXJjZSwgMCkpOworICAg
IHJldHVybiB0cmFjay5yZWxlYXNlKCk7Cit9CisKK0F1ZGlvU3RyZWFtVHJhY2s6OkF1ZGlvU3Ry
ZWFtVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTWVkaWFTdHJlYW1Tb3Vy
Y2UqIHNvdXJjZSwgY29uc3QgRGljdGlvbmFyeSogYXVkaW9Db25zdHJhaW50cykKKyAgICA6IE1l
ZGlhU3RyZWFtVHJhY2soY29udGV4dCwgc291cmNlLCBhdWRpb0NvbnN0cmFpbnRzKQoreworfQor
Citjb25zdCBBdG9taWNTdHJpbmcmIEF1ZGlvU3RyZWFtVHJhY2s6OmtpbmQoKSBjb25zdAorewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGF1ZGlvS2luZCgiYXVkaW8i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICByZXR1cm4gYXVkaW9L
aW5kOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9BdWRp
b1N0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9BdWRpb1N0cmVhbVRyYWNrLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0F1ZGlvU3RyZWFtVHJhY2suaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEF1ZGlvU3RyZWFtVHJhY2tfaAorI2Rl
ZmluZSBBdWRpb1N0cmVhbVRyYWNrX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNp
bmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
TWVkaWFTdHJlYW1Tb3VyY2U7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFz
cyBBdWRpb1N0cmVhbVRyYWNrIDogcHVibGljIE1lZGlhU3RyZWFtVHJhY2sgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlvU3RyZWFtVHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgY29uc3QgRGljdGlvbmFyeSYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEF1ZGlvU3RyZWFtVHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTWVkaWFT
dHJlYW1Tb3VyY2UqKTsKKworICAgIHZpcnR1YWwgfkF1ZGlvU3RyZWFtVHJhY2soKSB7IH0KKwor
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBraW5kKCkgY29uc3QgT1ZFUlJJREU7CisK
K3ByaXZhdGU6CisgICAgQXVkaW9TdHJlYW1UcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
TWVkaWFTdHJlYW1Tb3VyY2UqLCBjb25zdCBEaWN0aW9uYXJ5Kik7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYg
Ly8gQXVkaW9TdHJlYW1UcmFja19oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL0F1ZGlvU3RyZWFtVHJhY2suaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vQXVkaW9TdHJlYW1UcmFjay5pZGwJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0F1ZGlvU3RyZWFtVHJhY2suaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitbCisgICAgQ29uZGl0
aW9uYWw9TUVESUFfU1RSRUFNLAorICAgIENvbnN0cnVjdG9yKG9wdGlvbmFsIERpY3Rpb25hcnkg
YXVkaW9Db25zdHJhaW50cyksCisgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LAorXSBpbnRlcmZhY2UgQXVkaW9TdHJlYW1UcmFjayA6IE1lZGlhU3RyZWFtVHJh
Y2sgeworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0uY3BwCShyZXZpc2lvbiAxNTY0NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
MTIgKzI5LDE0IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiQXVk
aW9TdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2VudGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFT
dHJlYW1SZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCiAjaW5jbHVk
ZSAiTWVkaWFTdHJlYW1UcmFja0V2ZW50LmgiCisjaW5jbHVkZSAiVmlkZW9TdHJlYW1UcmFjay5o
IgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0xMjQsMTIgKzEyNiwxMiBAQCBNZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0oU2NyaXB0RXhl
Y3V0aW9uCiAgICAgc2l6ZV90IG51bWJlck9mQXVkaW9UcmFja3MgPSBtX2Rlc2NyaXB0b3ItPm51
bWJlck9mQXVkaW9TdHJlYW1zKCk7CiAgICAgbV9hdWRpb1RyYWNrcy5yZXNlcnZlQ2FwYWNpdHko
bnVtYmVyT2ZBdWRpb1RyYWNrcyk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1iZXJP
ZkF1ZGlvVHJhY2tzOyBpKyspCi0gICAgICAgIG1fYXVkaW9UcmFja3MuYXBwZW5kKE1lZGlhU3Ry
ZWFtVHJhY2s6OmNyZWF0ZShjb250ZXh0LCBtX2Rlc2NyaXB0b3ItPmF1ZGlvU3RyZWFtcyhpKSkp
OworICAgICAgICBtX2F1ZGlvVHJhY2tzLmFwcGVuZChBdWRpb1N0cmVhbVRyYWNrOjpjcmVhdGUo
Y29udGV4dCwgbV9kZXNjcmlwdG9yLT5hdWRpb1N0cmVhbXMoaSkpKTsKIAogICAgIHNpemVfdCBu
dW1iZXJPZlZpZGVvVHJhY2tzID0gbV9kZXNjcmlwdG9yLT5udW1iZXJPZlZpZGVvU3RyZWFtcygp
OwogICAgIG1fdmlkZW9UcmFja3MucmVzZXJ2ZUNhcGFjaXR5KG51bWJlck9mVmlkZW9UcmFja3Mp
OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZWaWRlb1RyYWNrczsgaSsrKQot
ICAgICAgICBtX3ZpZGVvVHJhY2tzLmFwcGVuZChNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoY29u
dGV4dCwgbV9kZXNjcmlwdG9yLT52aWRlb1N0cmVhbXMoaSkpKTsKKyAgICAgICAgbV92aWRlb1Ry
YWNrcy5hcHBlbmQoVmlkZW9TdHJlYW1UcmFjazo6Y3JlYXRlKGNvbnRleHQsIG1fZGVzY3JpcHRv
ci0+dmlkZW9TdHJlYW1zKGkpKSk7CiB9CiAKIE1lZGlhU3RyZWFtOjp+TWVkaWFTdHJlYW0oKQpA
QCAtMjc1LDEyICsyNzcsMTQgQEAgdm9pZCBNZWRpYVN0cmVhbTo6YWRkUmVtb3RlU291cmNlKE1l
ZGlhUwogCiAgICAgc291cmNlLT5zZXRTdHJlYW0oZGVzY3JpcHRvcigpKTsKIAotICAgIFJlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrPiB0cmFjayA9IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksIHNvdXJjZSk7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJh
Y2s+IHRyYWNrOwogICAgIHN3aXRjaCAoc291cmNlLT50eXBlKCkpIHsKICAgICBjYXNlIE1lZGlh
U3RyZWFtU291cmNlOjpBdWRpbzoKKyAgICAgICAgdHJhY2sgPSBBdWRpb1N0cmVhbVRyYWNrOjpj
cmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzb3VyY2UpOwogICAgICAgICBtX2F1ZGlv
VHJhY2tzLmFwcGVuZCh0cmFjayk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFTdHJl
YW1Tb3VyY2U6OlZpZGVvOgorICAgICAgICB0cmFjayA9IFZpZGVvU3RyZWFtVHJhY2s6OmNyZWF0
ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHNvdXJjZSk7CiAgICAgICAgIG1fdmlkZW9UcmFj
a3MuYXBwZW5kKHRyYWNrKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
Y3BwCShyZXZpc2lvbiAxNTY0NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxOCArNDIsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4g
TWVkaWFTdHJlYW1UcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IERpY3Rpb25hcnkmIHZpZGVvQ29uc3RyYWludHMpCi17Ci0gICAgUmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2s+IHRyYWNrID0gYWRvcHRSZWYobmV3IE1lZGlhU3RyZWFtVHJhY2soY29udGV4
dCwgMCwgJnZpZGVvQ29uc3RyYWludHMpKTsKLSAgICByZXR1cm4gdHJhY2sucmVsZWFzZSgpOwot
fQotCi1QYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBNZWRpYVN0cmVhbVNvdXJjZSogc291
cmNlKQotewotICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiB0cmFjayA9IGFkb3B0UmVmKG5l
dyBNZWRpYVN0cmVhbVRyYWNrKGNvbnRleHQsIHNvdXJjZSwgMCkpOwotICAgIHJldHVybiB0cmFj
ay5yZWxlYXNlKCk7Ci19Ci0KIE1lZGlhU3RyZWFtVHJhY2s6Ok1lZGlhU3RyZWFtVHJhY2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTWVkaWFTdHJlYW1Tb3VyY2UqIHNvdXJjZSwg
Y29uc3QgRGljdGlvbmFyeSopCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAs
IG1fc291cmNlKHNvdXJjZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCShyZXZpc2lvbiAxNTY0NzMpCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAkod29y
a2luZyBjb3B5KQpAQCAtNDcsMTMgKzQ3LDkgQEAgY2xhc3MgTWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNDYWxsYmFjazsKIC8vIEZJWE1FOiBUaGlzIGNsYXNzIHNob3VsZCBiZSBtYXJrZWQgRklOQUwg
b25jZSA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMjE3NDc+IGlzIGZpeGVkLgogY2xhc3MgTWVkaWFT
dHJlYW1UcmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtVHJhY2s+LCBwdWJsaWMg
U2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJn
ZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIE1lZGlhU3RyZWFtU291cmNlOjpPYnNlcnZlciB7CiBw
dWJsaWM6Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IERpY3Rpb25hcnkmKTsKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIE1lZGlhU3RyZWFtU291cmNlKik7Ci0KICAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbVRyYWNr
KCk7CiAKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYga2luZCgpIGNvbnN0ID0gMDsKICAgICBjb25zdCBTdHJpbmcm
IGlkKCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiBsYWJlbCgpIGNvbnN0OwogCkBAIC04Myw5
ICs3OSwxMCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVRyYWNr
Pjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1UcmFjaz46OmRlcmVmOwog
Ci1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIE1lZGlhU3RyZWFtVHJhY2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIE1lZGlhU3RyZWFtU291cmNlKiwgY29uc3QgRGljdGlvbmFyeSopOwogCitw
cml2YXRlOgogICAgIHZvaWQgdHJhY2tEaWRFbmQoKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1ZpZGVvU3RyZWFtVHJhY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVmlk
ZW9TdHJlYW1UcmFjay5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1ZpZGVvU3RyZWFtVHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJWaWRlb1N0cmVhbVRyYWNrLmgiCisKKyNpbmNsdWRlICJE
aWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NS
ZWZQdHI8VmlkZW9TdHJlYW1UcmFjaz4gVmlkZW9TdHJlYW1UcmFjazo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IERpY3Rpb25hcnkmIHZpZGVvQ29uc3RyYWlu
dHMpCit7CisgICAgUmVmUHRyPFZpZGVvU3RyZWFtVHJhY2s+IHRyYWNrID0gYWRvcHRSZWYobmV3
IFZpZGVvU3RyZWFtVHJhY2soY29udGV4dCwgMCwgJnZpZGVvQ29uc3RyYWludHMpKTsKKyAgICBy
ZXR1cm4gdHJhY2sucmVsZWFzZSgpOworfQorCitQYXNzUmVmUHRyPFZpZGVvU3RyZWFtVHJhY2s+
IFZpZGVvU3RyZWFtVHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBNZWRpYVN0cmVhbVNvdXJjZSogc291cmNlKQoreworICAgIFJlZlB0cjxWaWRlb1N0cmVhbVRy
YWNrPiB0cmFjayA9IGFkb3B0UmVmKG5ldyBWaWRlb1N0cmVhbVRyYWNrKGNvbnRleHQsIHNvdXJj
ZSwgMCkpOworICAgIHJldHVybiB0cmFjay5yZWxlYXNlKCk7Cit9CisKK1ZpZGVvU3RyZWFtVHJh
Y2s6OlZpZGVvU3RyZWFtVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTWVk
aWFTdHJlYW1Tb3VyY2UqIHNvdXJjZSwgY29uc3QgRGljdGlvbmFyeSogdmlkZW9Db25zdHJhaW50
cykKKyAgICA6IE1lZGlhU3RyZWFtVHJhY2soY29udGV4dCwgc291cmNlLCB2aWRlb0NvbnN0cmFp
bnRzKQoreworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVvU3RyZWFtVHJhY2s6OmtpbmQo
KSBjb25zdAoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHZpZGVv
S2luZCgidmlkZW8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBy
ZXR1cm4gdmlkZW9LaW5kOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9WaWRlb1N0cmVhbVRyYWNrLmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1ZpZGVvU3RyZWFtVHJhY2suaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFZpZGVvU3RyZWFt
VHJhY2tfaAorI2RlZmluZSBWaWRlb1N0cmVhbVRyYWNrX2gKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2U7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OworCitjbGFzcyBWaWRlb1N0cmVhbVRyYWNrIDogcHVibGljIE1lZGlhU3RyZWFtVHJhY2sg
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZGVvU3RyZWFtVHJhY2s+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGljdGlvbmFyeSYpOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFZpZGVvU3RyZWFtVHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgTWVkaWFTdHJlYW1Tb3VyY2UqKTsKKworICAgIHZpcnR1YWwgflZpZGVvU3RyZWFtVHJh
Y2soKSB7IH0KKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBraW5kKCkgY29uc3Qg
T1ZFUlJJREU7CisKK3ByaXZhdGU6CisgICAgVmlkZW9TdHJlYW1UcmFjayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgTWVkaWFTdHJlYW1Tb3VyY2UqLCBjb25zdCBEaWN0aW9uYXJ5Kik7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjZW5kaWYgLy8gVmlkZW9TdHJlYW1UcmFja19oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1ZpZGVvU3RyZWFtVHJhY2suaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVmlkZW9TdHJlYW1UcmFjay5pZGwJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1ZpZGVvU3Ry
ZWFtVHJhY2suaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitb
CisgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKKyAgICBDb25zdHJ1Y3RvcihvcHRpb25hbCBEaWN0aW9u
YXJ5IHZpZGVvQ29uc3RyYWludHMpLAorXSBpbnRlcmZhY2UgVmlkZW9TdHJlYW1UcmFjayA6IE1l
ZGlhU3RyZWFtVHJhY2sgeworfTsKKwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTU2NDczKQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0yNjYsNiArMjY2LDE0IEBACiAJCTA3QjVBMkRDMTQ2NDMyMEEwMEE4MUVDRSAvKiBKU1Rl
eHRUcmFja0xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3QjVBMkRBMTQ2NDMyMEEwMEE4MUVDRSAvKiBKU1RleHRUcmFja0xpc3QuaCAqLzsgfTsK
IAkJMDdCNUEzMEQxNDY4N0Q3MTAwQTgxRUNFIC8qIEpTVGV4dFRyYWNrTGlzdEN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0I1QTMwQzE0
Njg3RDcxMDBBODFFQ0UgLyogSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcCAqLzsgfTsKIAkJMDdC
REQ2RUMxNDY5QjRDMjAwOUM5Rjg1IC8qIEpTVHJhY2tFdmVudEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0I1QTMwQTE0Njg3Qjg0MDBB
ODFFQ0UgLyogSlNUcmFja0V2ZW50Q3VzdG9tLmNwcCAqLzsgfTsKKwkJMDdDNTlCNTMxN0Y0QUMx
NTAwMEZCQ0JCIC8qIEF1ZGlvU3RyZWFtVHJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDNTlCNEQxN0Y0QUMxNTAwMEZCQ0JCIC8qIEF1ZGlv
U3RyZWFtVHJhY2suY3BwICovOyB9OworCQkwN0M1OUI1NDE3RjRBQzE1MDAwRkJDQkIgLyogQXVk
aW9TdHJlYW1UcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDdDNTlCNEUxN0Y0QUMxNTAwMEZCQ0JCIC8qIEF1ZGlvU3RyZWFtVHJhY2suaCAqLzsg
fTsKKwkJMDdDNTlCNTYxN0Y0QUMxNTAwMEZCQ0JCIC8qIFZpZGVvU3RyZWFtVHJhY2suY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDNTlCNTAxN0Y0
QUMxNTAwMEZCQ0JCIC8qIFZpZGVvU3RyZWFtVHJhY2suY3BwICovOyB9OworCQkwN0M1OUI1NzE3
RjRBQzE1MDAwRkJDQkIgLyogVmlkZW9TdHJlYW1UcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDNTlCNTExN0Y0QUMxNTAwMEZCQ0JCIC8qIFZp
ZGVvU3RyZWFtVHJhY2suaCAqLzsgfTsKKwkJMDdDNTlCNUQxN0Y0QjIwODAwMEZCQ0JCIC8qIEpT
QXVkaW9TdHJlYW1UcmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwN0M1OUI1OTE3RjRCMjA4MDAwRkJDQkIgLyogSlNBdWRpb1N0cmVhbVRyYWNr
LmNwcCAqLzsgfTsKKwkJMDdDNTlCNUUxN0Y0QjIwODAwMEZCQ0JCIC8qIEpTQXVkaW9TdHJlYW1U
cmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdD
NTlCNUExN0Y0QjIwODAwMEZCQ0JCIC8qIEpTQXVkaW9TdHJlYW1UcmFjay5oICovOyB9OworCQkw
N0M1OUI1RjE3RjRCMjA4MDAwRkJDQkIgLyogSlNWaWRlb1N0cmVhbVRyYWNrLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QzU5QjVCMTdGNEIyMDgw
MDBGQkNCQiAvKiBKU1ZpZGVvU3RyZWFtVHJhY2suY3BwICovOyB9OworCQkwN0M1OUI2MDE3RjRC
MjA4MDAwRkJDQkIgLyogSlNWaWRlb1N0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0M1OUI1QzE3RjRCMjA4MDAwRkJDQkIgLyogSlNW
aWRlb1N0cmVhbVRyYWNrLmggKi87IH07CiAJCTA3Q0U3N0Q1MTY3MTJBNkEwMEM1NUE0NyAvKiBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwN0NFNzdENDE2NzEyQTZBMDBDNTVBNDcgLyogSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTA3REM1RkQ0MTdEM0VFRTkwMDk5Rjg5MCAvKiBKU1JUQ1N0YXRzUmVz
cG9uc2VDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDdEQzVGRDMxN0QzRUVFOTAwOTlGODkwIC8qIEpTUlRDU3RhdHNSZXNwb25zZUN1c3Rv
bS5jcHAgKi87IH07CiAJCTA3RTExNkIxMTQ4OUM5QTEwMEVDNUFDRSAvKiBKU1RleHRUcmFja0N1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
N0UxMTZCMDE0ODlDOUExMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdXN0b20uY3BwICovOyB9OwpA
QCAtNjY2Nyw2ICs2Njc1LDE2IEBACiAJCTA3QjVBMzA2MTQ2ODUzNzEwMEE4MUVDRSAvKiBUZXh0
VHJhY2tMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBUZXh0VHJhY2tMaXN0LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCNUEzMEExNDY4N0I4NDAwQTgxRUNFIC8q
IEpTVHJhY2tFdmVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1RyYWNrRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwN0I1QTMwQzE0Njg3RDcxMDBBODFFQ0UgLyogSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVGV4dFRyYWNrTGlzdEN1c3Rv
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QzU5QjREMTdGNEFDMTUwMDBG
QkNCQiAvKiBBdWRpb1N0cmVhbVRyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEF1ZGlvU3RyZWFtVHJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwN0M1OUI0RTE3RjRBQzE1MDAwRkJDQkIgLyogQXVkaW9TdHJlYW1UcmFjay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1N0cmVhbVRyYWNrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QzU5QjRGMTdGNEFDMTUwMDBGQkNCQiAvKiBBdWRpb1N0
cmVhbVRyYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb1N0cmVhbVRyYWNrLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdDNTlCNTAxN0Y0QUMxNTAwMEZCQ0JC
IC8qIFZpZGVvU3RyZWFtVHJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVmlkZW9TdHJlYW1UcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3QzU5QjUxMTdGNEFDMTUwMDBGQkNCQiAvKiBWaWRlb1N0cmVhbVRyYWNrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvU3RyZWFtVHJhY2suaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDdDNTlCNTIxN0Y0QUMxNTAwMEZCQ0JCIC8qIFZpZGVvU3RyZWFt
VHJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpZGVvU3RyZWFtVHJhY2suaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0M1OUI1OTE3RjRCMjA4MDAwRkJDQkIgLyog
SlNBdWRpb1N0cmVhbVRyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEpTQXVkaW9TdHJlYW1UcmFjay5jcHA7IHBhdGggPSBKU0F1ZGlvU3RyZWFtVHJhY2suY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0M1OUI1QTE3RjRCMjA4MDAwRkJDQkIg
LyogSlNBdWRpb1N0cmVhbVRyYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEpTQXVkaW9TdHJlYW1UcmFjay5oOyBwYXRoID0gSlNBdWRpb1N0cmVhbVRyYWNrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QzU5QjVCMTdGNEIyMDgwMDBGQkNCQiAvKiBKU1Zp
ZGVvU3RyZWFtVHJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
SlNWaWRlb1N0cmVhbVRyYWNrLmNwcDsgcGF0aCA9IEpTVmlkZW9TdHJlYW1UcmFjay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QzU5QjVDMTdGNEIyMDgwMDBGQkNCQiAvKiBK
U1ZpZGVvU3RyZWFtVHJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNW
aWRlb1N0cmVhbVRyYWNrLmg7IHBhdGggPSBKU1ZpZGVvU3RyZWFtVHJhY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdDRTc3RDQxNjcxMkE2QTAwQzU1QTQ3IC8qIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwN0RDNUZEMzE3RDNFRUU5MDA5OUY4OTAgLyogSlNSVENTdGF0c1Jlc3BvbnNlQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUlRDU3RhdHNSZXNw
b25zZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RTExNkIwMTQ4
OUM5QTEwMEVDNUFDRSAvKiBKU1RleHRUcmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMzMwNyw2ICsxMzMyNSwxMiBAQAogCQkwNzIyMUI0NjE3Q0VDMzI3
MDA4NDhFNTEgLyogbWVkaWFzdHJlYW0gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTA3QzU5QjREMTdGNEFDMTUwMDBGQkNCQiAvKiBBdWRpb1N0cmVhbVRy
YWNrLmNwcCAqLywKKwkJCQkwN0M1OUI0RTE3RjRBQzE1MDAwRkJDQkIgLyogQXVkaW9TdHJlYW1U
cmFjay5oICovLAorCQkJCTA3QzU5QjRGMTdGNEFDMTUwMDBGQkNCQiAvKiBBdWRpb1N0cmVhbVRy
YWNrLmlkbCAqLywKKwkJCQkwN0M1OUI1MDE3RjRBQzE1MDAwRkJDQkIgLyogVmlkZW9TdHJlYW1U
cmFjay5jcHAgKi8sCisJCQkJMDdDNTlCNTExN0Y0QUMxNTAwMEZCQ0JCIC8qIFZpZGVvU3RyZWFt
VHJhY2suaCAqLywKKwkJCQkwN0M1OUI1MjE3RjRBQzE1MDAwRkJDQkIgLyogVmlkZW9TdHJlYW1U
cmFjay5pZGwgKi8sCiAJCQkJMDcyMjFCNEExN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhQ29uc3Ry
YWludHNJbXBsLmNwcCAqLywKIAkJCQkwNzIyMUI0QjE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFD
b25zdHJhaW50c0ltcGwuaCAqLywKIAkJCQkwNzIyMUI0QzE3Q0VDMzI3MDA4NDhFNTEgLyogTWVk
aWFTdHJlYW0uY3BwICovLApAQCAtMTM0NTAsNiArMTM0NzQsMTAgQEAKIAkJMDdDRkQ5OTMxN0Qw
MTQwNTAwMUM0RkZDIC8qIE1lZGlhU3RyZWFtICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkwN0M1OUI1OTE3RjRCMjA4MDAwRkJDQkIgLyogSlNBdWRpb1N0
cmVhbVRyYWNrLmNwcCAqLywKKwkJCQkwN0M1OUI1QTE3RjRCMjA4MDAwRkJDQkIgLyogSlNBdWRp
b1N0cmVhbVRyYWNrLmggKi8sCisJCQkJMDdDNTlCNUIxN0Y0QjIwODAwMEZCQ0JCIC8qIEpTVmlk
ZW9TdHJlYW1UcmFjay5jcHAgKi8sCisJCQkJMDdDNTlCNUMxN0Y0QjIwODAwMEZCQ0JCIC8qIEpT
VmlkZW9TdHJlYW1UcmFjay5oICovLAogCQkJCTA3Mjc3RTQwMTdEMDE4Q0MwMDE1NTM0RCAvKiBK
U01lZGlhU3RyZWFtLmNwcCAqLywKIAkJCQkwNzI3N0U0MTE3RDAxOENDMDAxNTUzNEQgLyogSlNN
ZWRpYVN0cmVhbS5oICovLAogCQkJCTA3Mjc3RTQyMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlh
U3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwICovLApAQCAtMjE1NDYsNiArMjE1NzQsNyBA
QAogCQkJCUZENTY4NkNDMTNBQzE4MTQwMEI2OUM2OCAvKiBBdWRpb0J1ZmZlckNhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNUZGQzEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA3QzEyQjAyNkY3MDBDMUEz
NTkgLyogQXVkaW9CdXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3QzU5QjVFMTdGNEIyMDgwMDBG
QkNCQiAvKiBKU0F1ZGlvU3RyZWFtVHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDdF
MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0NoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
MzE2MDA1MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEMzE2MDdGMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uLmggaW4gSGVh
ZGVycyAqLywKQEAgLTIyNzg0LDYgKzIyODEzLDcgQEAKIAkJCQk0RDI3M0NGQTE2Njk0MjA4MDAy
NTlDQTEgLyogSW5zcGVjdG9ySW5wdXRBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjBENjI5
MjcxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNzFCMUUxMjUxNjQwNDhGNzAwQjE4ODBBIC8qIEluc3BlY3RvckxheWVyVHJl
ZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwN0M1OUI2MDE3RjRCMjA4MDAwRkJDQkIgLyog
SlNWaWRlb1N0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUE1MURENjE0ODUwNkE5
MDBBRDI3NTIgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTRG
NkZERDY1MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTlGMEQ2QjJGMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFn
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIzNjA5LDYgKzIzNjM5LDcgQEAKIAkJCQkwRjEzMTYz
RTE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ5OUIzRUM1MTI4Q0NDNDcwMEU3MjZDMiAvKiBQbGF0Zm9ybUNBTGF5ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQ5M0U1RTA5MTJENjQyMDUwMDAyMDA4MSAvKiBQbGF0Zm9ybUNBTGF5ZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3QzU5QjU0MTdGNEFDMTUwMDBGQkNCQiAvKiBB
dWRpb1N0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTQyNEM4QTE2NEIzQjRFMDBG
MzJENDAgLyogUGxhdGZvcm1Db29raWVKYXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUM3NjJC
MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0FBNDg3MDE0QTA1MjUzMDA4OEZBQzQgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjQ1MDMsNiArMjQ1MzQsNyBAQAogCQkJCTkzRjE5OUYwMDgyNDVFNTkw
MDFFOUFCQyAvKiBXZWJDb3JlVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2REFERUYwQTE5
NUZERjAwRTVDRDE0IC8qIFdlYkZvbnRDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEMjBG
NkQxMDdGNDM4QjAwQTgwMzkyIC8qIFdlYkdMQWN0aXZlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMDdDNTlCNTcxN0Y0QUMxNTAwMEZCQ0JCIC8qIFZpZGVvU3RyZWFtVHJhY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQ5QzdCOUM5MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTEJ1ZmZlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0U2NkUyMzQxNkQ2RUI2QzAwRjdFN0ZGIC8qIFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFNjZFMjM0MTdFNkVCNkMwMEY3
RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCBpbiBIZWFkZXJzICovLApAQCAt
MjUyOTgsNiArMjUzMzAsNyBAQAogCQkJCUE4MEU2Q0Y3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQ
cm9wZXJ0eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3OEQwMkJDNTE1NEExOERGMDBCNjJEMDUg
LyogQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCQTc2Q0Ex
MUQyMEU1MDAwNEMyMDFDIC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMDdDNTlCNTYxN0Y0QUMxNTAwMEZCQ0JCIC8qIFZpZGVvU3RyZWFtVHJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJODJFM0Q4REUxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5U291
cmNlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzVBMTJERjBEQzA0MTQ4MDBDOUFGQUQg
LyogQ1NTUmVmbGVjdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2RDA2MEExOTg5
Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjUzODcsNiArMjU0
MjAsNyBAQAogCQkJCUIyRjM0RkU5MEU4MkY4MjcwMEY2MjdDRCAvKiBETlNDRk5ldC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGMjkzQjI3RTU2QzExMkYzNzNGRkYyN0UgLyogRE5TUmVzb2x2ZVF1
ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MTg1RjNDMDk3NjU3NjYwMDU4MjZEOSAvKiBE
b2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwN0M1OUI1RDE3RjRCMjA4MDAwRkJDQkIg
LyogSlNBdWRpb1N0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzQkI1OUYzMTQ1
N0E0MEQwMEFDNTZGRSAvKiBEb2N1bWVudEV2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTgxODVGM0YwOTc2NTc2NjAwNTgyNkQ5IC8qIERvY3VtZW50RnJhZ21lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNFMjI3RTAwQUY1ODlBRDAwRDQ4MzI0IC8qIERvY3VtZW50TG9hZGVy
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY4ODUsNiArMjY5MTksNyBAQAogCQkJCUE3MTVFNjUy
MTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUEyQTY4MjMwQjVCRURFNzAwMDJBNDgwIC8qIFByb2dyZXNzVHJhY2tlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFNEJCRUQwRTE0RjQwMjVEMDAzRjBCOTggLyogUHJvcGVydHlT
ZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3QzU5QjVGMTdG
NEIyMDgwMDBGQkNCQiAvKiBKU1ZpZGVvU3RyZWFtVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTE0Qzc2NzQwQ0U5MjNBMTAwN0VGM0NEIC8qIFByb3RlY3Rpb25TcGFjZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQUY4RTEzMzEyNTY1QTQ0MDAyMzBGRjcgLyogUHJveHlTZXJ2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUFGOEUxQzMxMjU2NzNFMDAwMjMwRkY3IC8qIFByb3h5U2Vy
dmVyQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjk4NSw2ICsyNzAyMCw3IEBACiAJCQkJ
MTQ3OUZBRjExMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1YnlSdW4uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTQ3OUZBRjMxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1YnlUZXh0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDM0JFOTkzMEU5QzFDN0MwMDgzNTU4OCAvKiBSZW5kZXJTY3Jv
bGxiYXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDdDNTlCNTMxN0Y0QUMxNTAwMEZCQ0JCIC8q
IEF1ZGlvU3RyZWFtVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzQkU5QUIwRTlDMjQy
MDAwODM1NTg4IC8qIFJlbmRlclNjcm9sbGJhclBhcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkMzQkU5QTUwRTlDMjM5NjAwODM1NTg4IC8qIFJlbmRlclNjcm9sbGJhclRoZW1lLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQ1OEZFNDA5MTU4OURGMEIwMDU2MDlFNiAvKiBSZW5kZXJTZWFyY2hG
aWVsZC5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
      

    </bug>

</bugzilla>