<?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>160715</bug_id>
          
          <creation_ts>2016-08-09 16:05:11 -0700</creation_ts>
          <short_desc>Instantiate WebKit plug-ins at layout time, instead of at style resolution time</short_desc>
          <delta_ts>2016-08-09 18:32:49 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1218882</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-09 16:05:11 -0700</bug_when>
    <thetext>Instantiate WebKit plug-ins at layout time, instead of at style resolution time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218884</commentid>
    <comment_count>1</comment_count>
      <attachid>285684</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-09 16:07:46 -0700</bug_when>
    <thetext>Created attachment 285684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218887</commentid>
    <comment_count>2</comment_count>
      <attachid>285686</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-09 16:18:26 -0700</bug_when>
    <thetext>Created attachment 285686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218926</commentid>
    <comment_count>3</comment_count>
      <attachid>285686</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-08-09 17:36:35 -0700</bug_when>
    <thetext>Comment on attachment 285686
Patch

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

&gt; Source/WebCore/html/HTMLEmbedElement.h:48
&gt; +    void updateWidget(CreatePlugins) final;

You&apos;re changing the capitalization above but not here? :)

&gt; Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp:1073
&gt; +        return ObjectContentType::Frame; // Go ahead and hope that we can display the content.

Maybe remove the silly comment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218938</commentid>
    <comment_count>4</comment_count>
      <attachid>285686</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-09 18:32:45 -0700</bug_when>
    <thetext>Comment on attachment 285686
Patch

Clearing flags on attachment: 285686

Committed r204320: &lt;http://trac.webkit.org/changeset/204320&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218939</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-09 18:32:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285684</attachid>
            <date>2016-08-09 16:07:46 -0700</date>
            <delta_ts>2016-08-09 16:18:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160715-20160809160612.patch</filename>
            <type>text/plain</type>
            <size>23491</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM5MjM2MjUyOTk5ZmZl
N2IwMzAxMTkyNGFjMjUzZjk0NTA4Yjc5YS4uODQ3ZDBkMTU4MTg4ZDc3NDQ5NGJkNmUyMTA5OGI0
ZjY2MWJhYjQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE2LTA4LTA5ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgSW5zdGFudGlhdGUg
V2ViS2l0IHBsdWctaW5zIGF0IGxheW91dCB0aW1lLCBpbnN0ZWFkIG9mIGF0IHN0eWxlIHJlc29s
dXRpb24gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYwNzE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBnZXRzIHJpZCBvZiB0aGUgZGlmZmVyZW50aWF0aW9uIG9mIFdlYktpdCBwbHVnLWlu
cyBhbmQgTmV0c2NhcGUgcGx1Zy1pbnMsIGFuZAorICAgICAgICBhbHdheXMgaW5zdGFudGlhdGVz
IHBsdWctaW5zIGF0IGxheW91dCB0aW1lLgorICAgICAgICAKKyAgICAgICAgSW5pdGlhbGx5LCBw
bHVnLWlucyB3ZXJlIGFsd2F5cyBpbnN0YW50aWF0ZWQgYWZ0ZXIgc3R5bGUgcmVjYWxjLCBidXQg
dGhhdCBsZWFkIHRvIGJ1Z3MKKyAgICAgICAgd2hlcmUgcGx1Zy1pbnMgd291bGRuJ3QgYmUgaW5z
dGFudGlhdGVkIHdpdGggdGhlaXIgY29ycmVjdCBzaXplLiBGaXhpbmcgdGhhdCBidWcgbGVhZAor
ICAgICAgICB0byBhIHJlZ3Jlc3Npb24gaW4gdGhlIFdlYiBDbGlwIHdpZGdldCB3aGljaCBpcyB3
aHkgdGhlIHNwZWNpYWwgY2FzaW5nIHdhcyBpbnRyb2R1Y2VkLgorICAgICAgICAKKyAgICAgICAg
VGhlIFdlYiBDbGlwIHdpZGdldCBoYXMgbm93IGJlZW4gZml4ZWQsIHNvIHdlIGNhbiBnZXQgcmlk
IG9mIHRoZSBzcGVjaWFsIGNhc2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBcHBsZXRFbGVtZW50Ojp1cGRhdGVXaWRnZXQp
OgorICAgICAgICAqIGh0bWwvSFRNTEFwcGxldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxFbWJlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudDo6
dXBkYXRlV2lkZ2V0KToKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxP
YmplY3RFbGVtZW50Ojp1cGRhdGVXaWRnZXQpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6aXNJbWFnZVR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6d291bGRMb2FkQXNQbHVnSW4p
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0
SWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
d291bGRMb2FkQXNOZXRzY2FwZVBsdWdpbik6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgor
ICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5cGVzLmg6CisgICAgICAgICogbG9hZGVyL1N1
YmZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpzaG91
bGRVc2VQbHVnaW4pOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlRW1iZWRkZWRPYmplY3QpOgorCiAyMDE2LTA4LTA5ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSXQgc2hvdWxkIGJlIHBv
c3NpYmxlIHRvIHJlLWluaXRpYWxpemUgYSBDdXN0b21FdmVudCBhZnRlciBpdCdzIGJlZW4gZGlz
cGF0Y2hlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDM4M2ExODMwZDZlYTNkZDFhMmQyYWIxMWY4MjVk
MzJkMDcyYWEyMjYuLmNjMWE5MThiMmEzOTE1ZGY3MTU4M2ZmNGM2OGJlMmY4ZDZkYjZlYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxNi0wOC0wOSAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIEluc3RhbnRpYXRlIFdlYktpdCBw
bHVnLWlucyBhdCBsYXlvdXQgdGltZSwgaW5zdGVhZCBvZiBhdCBzdHlsZSByZXNvbHV0aW9uIHRp
bWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDcx
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxv
YWRlckNsaWVudDo6b2JqZWN0Q29udGVudFR5cGUpOgorCisyMDE2LTA4LTA5ICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAgICAgR2V0IHJpZCBvZiBQbHVnaW5T
dHJhdGVneQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYwNjk2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAwMjQ4MDk0YTQ0Y2ZhZDY5Njg4MGJlMGQxZjRi
Y2E4NmM5MjAwOTdmLi4zYjk2NTMyMzkxZTI4MjA5ZGU4ZGI2NWEwNzgzYmIwY2ViZDdlMTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTYtMDgtMDkgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAorICAgICAgICBJbnN0YW50aWF0ZSBXZWJLaXQg
cGx1Zy1pbnMgYXQgbGF5b3V0IHRpbWUsIGluc3RlYWQgb2YgYXQgc3R5bGUgcmVzb2x1dGlvbiB0
aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA3
MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZSk6CisKKzIwMTYtMDgtMDkgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBGaXggYnVpbGQuCiAKICAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCAzNjlhMDhmYzYyZTY0NWIxMGM1NGNiNDZhM2YwMWY2NTQ3MDY2ZjJkLi41MjNkMmI0M2Yy
ZWMzNWJkYmY4ZmRhMTYwNDE2OWNiNzI2MGI2Zjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUg
QEAKIDIwMTYtMDgtMDkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAor
ICAgICAgICBJbnN0YW50aWF0ZSBXZWJLaXQgcGx1Zy1pbnMgYXQgbGF5b3V0IHRpbWUsIGluc3Rl
YWQgb2YgYXQgc3R5bGUgcmVzb2x1dGlvbiB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA3MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6b2JqZWN0Q29udGVudFR5cGUpOgorCisyMDE2LTA4LTA5ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAgICAgR2V0IHJpZCBvZiBQbHVnaW5TdHJhdGVneQog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjk2CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKaW5kZXggMDNhODIyOWU3
YmM5MGIzN2FiN2U2YTBjYjc4NGRkZjdhOGYxYzMxZS4uYjAzOWMwMjFhY2Y0OWYzYTY4N2U2N2Y4
NWQ1ZWYwYmI4NjAzZWUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBw
bGV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVu
dC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgUmVuZGVyV2lkZ2V0KiBIVE1MQXBwbGV0RWxlbWVudDo6
cmVuZGVyV2lkZ2V0TG9hZGluZ1BsdWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIHJlbmRlcldpZGdl
dCgpOwogfQogCi12b2lkIEhUTUxBcHBsZXRFbGVtZW50Ojp1cGRhdGVXaWRnZXQoUGx1Z2luQ3Jl
YXRpb25PcHRpb24gcGx1Z2luQ3JlYXRpb25PcHRpb24pCit2b2lkIEhUTUxBcHBsZXRFbGVtZW50
Ojp1cGRhdGVXaWRnZXQoQ3JlYXRlUGx1Z2lucyBjcmVhdGVQbHVnaW5zKQogewogICAgIHNldE5l
ZWRzV2lkZ2V0VXBkYXRlKGZhbHNlKTsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgQVNTRVJU
IGlzRmluaXNoZWRQYXJzaW5nQ2hpbGRyZW4oKSBpbnN0ZWFkLgpAQCAtMTA4LDggKzEwOCw4IEBA
IHZvaWQgSFRNTEFwcGxldEVsZW1lbnQ6OnVwZGF0ZVdpZGdldChQbHVnaW5DcmVhdGlvbk9wdGlv
biBwbHVnaW5DcmVhdGlvbk9wdGlvbikKICAgICAvLyBGSVhNRTogSXQncyBzYWRuZXNzIHRoYXQg
d2UgaGF2ZSB0aGlzIHNwZWNpYWwgY2FzZSBoZXJlLgogICAgIC8vICAgICAgICBTZWUgaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjUxMjggYW5kCiAgICAgLy8gICAgICAgIHBsdWdp
bnMvbmV0c2NhcGUtcGx1Z2luLXNldHdpbmRvdy1zaXplLmh0bWwKLSAgICBpZiAocGx1Z2luQ3Jl
YXRpb25PcHRpb24gPT0gQ3JlYXRlT25seU5vbk5ldHNjYXBlUGx1Z2lucykgewotICAgICAgICAv
LyBFbnN1cmUgdXBkYXRlV2lkZ2V0KCkgaXMgY2FsbGVkIGFnYWluIGR1cmluZyBsYXlvdXQgdG8g
Y3JlYXRlIHRoZSBOZXRzY2FwZSBwbHVnLWluLgorICAgIGlmIChjcmVhdGVQbHVnaW5zID09IENy
ZWF0ZVBsdWdpbnM6Ok5vKSB7CisgICAgICAgIC8vIEVuc3VyZSB1cGRhdGVXaWRnZXQoKSBpcyBj
YWxsZWQgYWdhaW4gZHVyaW5nIGxheW91dCB0byBjcmVhdGUgdGhlIHBsdWctaW4uCiAgICAgICAg
IHNldE5lZWRzV2lkZ2V0VXBkYXRlKHRydWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5oCmluZGV4IDkyOTliYTQ3OWNhZGQzMTU4
OGVmYzA0ODZmNGU2ZDI2OWY0N2MwNWEuLjk3ZmQ0OGY4NDlmYjI5ZjM0NTRhZDc3MWMyNmE1ODNk
ODgwN2NlNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmgKQEAgLTQw
LDcgKzQwLDcgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IGZpbmFsOwogCiAgICAgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXRMb2FkaW5nUGx1Z2luKCkg
Y29uc3QgZmluYWw7Ci0gICAgdm9pZCB1cGRhdGVXaWRnZXQoUGx1Z2luQ3JlYXRpb25PcHRpb24p
IGZpbmFsOworICAgIHZvaWQgdXBkYXRlV2lkZ2V0KENyZWF0ZVBsdWdpbnMpIGZpbmFsOwogCiAg
ICAgYm9vbCBjYW5FbWJlZEphdmEoKSBjb25zdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmNwcAppbmRleCBiOTZlZTJiMWUxMjM5NWQyZGRhYzE1Y2FlZWQ3OWU0MjU4
ZmM4ZmNkLi5hYTM1MmE0NTQ2YTQwYTgwZDdmYmU2YjIwZTE3Nzk4NTcyNzU0NzU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2
b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OnBhcmFtZXRlcnNGb3JQbHVnaW4oVmVjdG9yPFN0cmluZz4m
IHBhcmFtTmFtZXMsIFZlY3RvcjxTdAogCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgdW5pZmll
ZCB3aXRoIEhUTUxPYmplY3RFbGVtZW50Ojp1cGRhdGVXaWRnZXQgYW5kCiAvLyBtb3ZlZCBkb3du
IGludG8gSFRNTFBsdWdpbkltYWdlRWxlbWVudC5jcHAKLXZvaWQgSFRNTEVtYmVkRWxlbWVudDo6
dXBkYXRlV2lkZ2V0KFBsdWdpbkNyZWF0aW9uT3B0aW9uIHBsdWdpbkNyZWF0aW9uT3B0aW9uKQor
dm9pZCBIVE1MRW1iZWRFbGVtZW50Ojp1cGRhdGVXaWRnZXQoQ3JlYXRlUGx1Z2lucyBjcmVhdGVQ
bHVnaW5zKQogewogICAgIEFTU0VSVCghcmVuZGVyRW1iZWRkZWRPYmplY3QoKS0+aXNQbHVnaW5V
bmF2YWlsYWJsZSgpKTsKICAgICBBU1NFUlQobmVlZHNXaWRnZXRVcGRhdGUoKSk7CkBAIC0xNTIs
NyArMTUyLDcgQEAgdm9pZCBIVE1MRW1iZWRFbGVtZW50Ojp1cGRhdGVXaWRnZXQoUGx1Z2luQ3Jl
YXRpb25PcHRpb24gcGx1Z2luQ3JlYXRpb25PcHRpb24pCiAgICAgLy8gRklYTUU6IEl0J3Mgc2Fk
bmVzcyB0aGF0IHdlIGhhdmUgdGhpcyBzcGVjaWFsIGNhc2UgaGVyZS4KICAgICAvLyAgICAgICAg
U2VlIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI1MTI4IGFuZAogICAgIC8vICAg
ICAgICBwbHVnaW5zL25ldHNjYXBlLXBsdWdpbi1zZXR3aW5kb3ctc2l6ZS5odG1sCi0gICAgaWYg
KHBsdWdpbkNyZWF0aW9uT3B0aW9uID09IENyZWF0ZU9ubHlOb25OZXRzY2FwZVBsdWdpbnMgJiYg
d291bGRMb2FkQXNOZXRzY2FwZVBsdWdpbihtX3VybCwgbV9zZXJ2aWNlVHlwZSkpIHsKKyAgICBp
ZiAoY3JlYXRlUGx1Z2lucyA9PSBDcmVhdGVQbHVnaW5zOjpObyAmJiB3b3VsZExvYWRBc1BsdWdJ
bihtX3VybCwgbV9zZXJ2aWNlVHlwZSkpIHsKICAgICAgICAgLy8gRW5zdXJlIHVwZGF0ZVdpZGdl
dCgpIGlzIGNhbGxlZCBhZ2FpbiBkdXJpbmcgbGF5b3V0IHRvIGNyZWF0ZSB0aGUgTmV0c2NhcGUg
cGx1Zy1pbi4KICAgICAgICAgc2V0TmVlZHNXaWRnZXRVcGRhdGUodHJ1ZSk7CiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKaW5kZXggNzMyMDljZTYx
ZGIyMDQzNzdhZTU1YTE1M2M3NzkwM2UzZDdkNzBkOS4uNTQzZWI1ZWU1NjA4OGJiYmQwYTAwYWUw
MzgyNjc0ODM4ODU5MzEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1i
ZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlbmRlcldpZGdldCogcmVuZGVyV2lk
Z2V0TG9hZGluZ1BsdWdpbigpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCB1cGRhdGVXaWRnZXQo
UGx1Z2luQ3JlYXRpb25PcHRpb24pIGZpbmFsOworICAgIHZvaWQgdXBkYXRlV2lkZ2V0KENyZWF0
ZVBsdWdpbnMpIGZpbmFsOwogCiAgICAgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMo
TGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IDFmNDk3OWExZDkxMmIxZTNlOGJlNzFmMmYxOGQzN2M5
MWUyZTJmYzMuLjAyNTBhZDIzYzU1YTAwMDZkOWViNDM4NWUwNDczMGVlNTJlZTE1NTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC0yODQsNyArMjg0LDcg
QEAgYm9vbCBIVE1MT2JqZWN0RWxlbWVudDo6aGFzVmFsaWRDbGFzc0lkKCkKIAogLy8gRklYTUU6
IFRoaXMgc2hvdWxkIGJlIHVuaWZpZWQgd2l0aCBIVE1MRW1iZWRFbGVtZW50Ojp1cGRhdGVXaWRn
ZXQgYW5kCiAvLyBtb3ZlZCBkb3duIGludG8gSFRNTFBsdWdpbkltYWdlRWxlbWVudC5jcHAKLXZv
aWQgSFRNTE9iamVjdEVsZW1lbnQ6OnVwZGF0ZVdpZGdldChQbHVnaW5DcmVhdGlvbk9wdGlvbiBw
bHVnaW5DcmVhdGlvbk9wdGlvbikKK3ZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnVwZGF0ZVdpZGdl
dChDcmVhdGVQbHVnaW5zIGNyZWF0ZVBsdWdpbnMpCiB7CiAgICAgQVNTRVJUKCFyZW5kZXJFbWJl
ZGRlZE9iamVjdCgpLT5pc1BsdWdpblVuYXZhaWxhYmxlKCkpOwogICAgIEFTU0VSVChuZWVkc1dp
ZGdldFVwZGF0ZSgpKTsKQEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50
Ojp1cGRhdGVXaWRnZXQoUGx1Z2luQ3JlYXRpb25PcHRpb24gcGx1Z2luQ3JlYXRpb25PcHRpb24p
CiAgICAgLy8gRklYTUU6IEl0J3Mgc2FkbmVzcyB0aGF0IHdlIGhhdmUgdGhpcyBzcGVjaWFsIGNh
c2UgaGVyZS4KICAgICAvLyAgICAgICAgU2VlIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzI1MTI4IGFuZAogICAgIC8vICAgICAgICBwbHVnaW5zL25ldHNjYXBlLXBsdWdpbi1zZXR3
aW5kb3ctc2l6ZS5odG1sCi0gICAgaWYgKHBsdWdpbkNyZWF0aW9uT3B0aW9uID09IENyZWF0ZU9u
bHlOb25OZXRzY2FwZVBsdWdpbnMgJiYgd291bGRMb2FkQXNOZXRzY2FwZVBsdWdpbih1cmwsIHNl
cnZpY2VUeXBlKSkgeworICAgIGlmIChjcmVhdGVQbHVnaW5zID09IENyZWF0ZVBsdWdpbnM6Ok5v
ICYmIHdvdWxkTG9hZEFzUGx1Z0luKHVybCwgc2VydmljZVR5cGUpKSB7CiAgICAgICAgIC8vIEVu
c3VyZSB1cGRhdGVXaWRnZXQoKSBpcyBjYWxsZWQgYWdhaW4gZHVyaW5nIGxheW91dCB0byBjcmVh
dGUgdGhlIE5ldHNjYXBlIHBsdWctaW4uCiAgICAgICAgIHNldE5lZWRzV2lkZ2V0VXBkYXRlKHRy
dWUpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPYmplY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50
LmgKaW5kZXggMTEzNmQyMDY4ZjhiZThmZmRiNmM2NGUzMzY2NDQ3ZjIxZmZlMjczNS4uOWZjMmJk
MDgxNTQyYWU0MDM0NTIwNDAwYTRkODA2M2Q1YTc4YmQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuaApAQCAtNzcsNyArNzcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IGZp
bmFsOwogCi0gICAgdm9pZCB1cGRhdGVXaWRnZXQoUGx1Z2luQ3JlYXRpb25PcHRpb24pIGZpbmFs
OworICAgIHZvaWQgdXBkYXRlV2lkZ2V0KENyZWF0ZVBsdWdpbnMpIGZpbmFsOwogICAgIHZvaWQg
dXBkYXRlRG9jTmFtZWRJdGVtKCk7CiAKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91
bGQgbm90IGRlYWwgd2l0aCB1cmwgb3Igc2VydmljZVR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4IDhiNDQ0ZGJhNjAyMGYxNWI1ODZm
Y2UzZTJlZGUxZjg1NTk5OGYwN2QuLjI2YzdmNzE0ZjUzNTE1MTdjNjg3YmM3N2MwOGE5YTZkZjlh
NzUwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmNwcApAQCAtMTYyLDcgKzE2Miw3IEBAIGJvb2wgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6aXNJ
bWFnZVR5cGUoKQogCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkg
ewogICAgICAgICBVUkwgY29tcGxldGVkVVJMID0gZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChtX3Vy
bCk7Ci0gICAgICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkub2JqZWN0Q29udGVu
dFR5cGUoY29tcGxldGVkVVJMLCBtX3NlcnZpY2VUeXBlKSA9PSBPYmplY3RDb250ZW50SW1hZ2U7
CisgICAgICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkub2JqZWN0Q29udGVudFR5
cGUoY29tcGxldGVkVVJMLCBtX3NlcnZpY2VUeXBlKSA9PSBPYmplY3RDb250ZW50VHlwZTo6SW1h
Z2U7CiAgICAgfQogCiAgICAgcmV0dXJuIEltYWdlOjpzdXBwb3J0c1R5cGUobV9zZXJ2aWNlVHlw
ZSk7CkBAIC0xODMsNyArMTgzLDcgQEAgYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjphbGxv
d2VkVG9Mb2FkRnJhbWVVUkwoY29uc3QgU3RyaW5nJiB1cmwpCiAKIC8vIFdlIGRvbid0IHVzZSBt
X3VybCwgb3IgbV9zZXJ2aWNlVHlwZSBhcyB0aGV5IG1heSBub3QgYmUgdGhlIGZpbmFsIHZhbHVl
cwogLy8gdGhhdCA8b2JqZWN0PiB1c2VzIGRlcGVuZGluZyBvbiA8cGFyYW0+IHZhbHVlcy4KLWJv
b2wgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6d291bGRMb2FkQXNOZXRzY2FwZVBsdWdpbihjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZXJ2aWNlVHlwZSkKK2Jvb2wgSFRNTFBsdWdJ
bkltYWdlRWxlbWVudDo6d291bGRMb2FkQXNQbHVnSW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgc2VydmljZVR5cGUpCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50KCkuZnJhbWUoKSk7
CiAgICAgVVJMIGNvbXBsZXRlZFVSTDsKQEAgLTE5MSw3ICsxOTEsNyBAQCBib29sIEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6OndvdWxkTG9hZEFzTmV0c2NhcGVQbHVnaW4oY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0CiAgICAgICAgIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwo
dXJsKTsKIAogICAgIEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciA9IGRvY3VtZW50KCkuZnJhbWUo
KS0+bG9hZGVyKCk7Ci0gICAgaWYgKGZyYW1lTG9hZGVyLmNsaWVudCgpLm9iamVjdENvbnRlbnRU
eXBlKGNvbXBsZXRlZFVSTCwgc2VydmljZVR5cGUpID09IE9iamVjdENvbnRlbnROZXRzY2FwZVBs
dWdpbikKKyAgICBpZiAoZnJhbWVMb2FkZXIuY2xpZW50KCkub2JqZWN0Q29udGVudFR5cGUoY29t
cGxldGVkVVJMLCBzZXJ2aWNlVHlwZSkgPT0gT2JqZWN0Q29udGVudFR5cGU6OlBsdWdJbikKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMjk1LDcgKzI5NSw3
IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0SWZOZWNlc3Nhcnko
KQogICAgIGlmICghcmVuZGVyRW1iZWRkZWRPYmplY3QoKSB8fCByZW5kZXJFbWJlZGRlZE9iamVj
dCgpLT5pc1BsdWdpblVuYXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0
ZVdpZGdldChDcmVhdGVPbmx5Tm9uTmV0c2NhcGVQbHVnaW5zKTsKKyAgICB1cGRhdGVXaWRnZXQo
Q3JlYXRlUGx1Z2luczo6Tm8pOwogfQogCiB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmZp
bmlzaFBhcnNpbmdDaGlsZHJlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5oCmluZGV4IGQzM2VlZWJjNTk2YmU5MGU4YmY5MDNiOWI0YTMwYzVjZmZiNmYy
MDYuLjk4OGQ5ZTY4Mjc0MzFmZDhhMGIzMGZiMjYzNGFmMzU5YmYwMjRkYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCkBAIC0zMiw5ICszMiw5IEBA
IGNsYXNzIE1vdXNlRXZlbnQ7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFdpZGdldDsKIAot
ZW51bSBQbHVnaW5DcmVhdGlvbk9wdGlvbiB7Ci0gICAgQ3JlYXRlQW55V2lkZ2V0VHlwZSwKLSAg
ICBDcmVhdGVPbmx5Tm9uTmV0c2NhcGVQbHVnaW5zLAorZW51bSBjbGFzcyBDcmVhdGVQbHVnaW5z
IHsKKyAgICBObywKKyAgICBZZXMsCiB9OwogCiAvLyBCYXNlIGNsYXNzIGZvciBIVE1MQXBwbGV0
RWxlbWVudCwgSFRNTEVtYmVkRWxlbWVudCwgYW5kIEhUTUxPYmplY3RFbGVtZW50LgpAQCAtNDcs
NyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3Rh
dGUpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVdpZGdldChQbHVnaW5DcmVh
dGlvbk9wdGlvbikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVXaWRnZXQoQ3JlYXRlUGx1
Z2lucykgPSAwOwogCiAgICAgY29uc3QgU3RyaW5nJiBzZXJ2aWNlVHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2VydmljZVR5cGU7IH0KICAgICBjb25zdCBTdHJpbmcmIHVybCgpIGNvbnN0IHsgcmV0
dXJuIG1fdXJsOyB9CkBAIC0xMDAsNyArMTAwLDcgQEAgcHJvdGVjdGVkOgogICAgIEhUTUxJbWFn
ZUxvYWRlciogaW1hZ2VMb2FkZXIoKSB7IHJldHVybiBtX2ltYWdlTG9hZGVyLmdldCgpOyB9CiAK
ICAgICBib29sIGFsbG93ZWRUb0xvYWRGcmFtZVVSTChjb25zdCBTdHJpbmcmIHVybCk7Ci0gICAg
Ym9vbCB3b3VsZExvYWRBc05ldHNjYXBlUGx1Z2luKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIHNlcnZpY2VUeXBlKTsKKyAgICBib29sIHdvdWxkTG9hZEFzUGx1Z0luKGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlcnZpY2VUeXBlKTsKIAogICAgIFN0cmluZyBtX3Nl
cnZpY2VUeXBlOwogICAgIFN0cmluZyBtX3VybDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaAppbmRleCA4Yzg5NjIxN2Q0OGIxYTM4OGZjNTU1MTBiODlmYmFmMGU4YWViN2E1Li45MzZh
YzQ4NWE0N2NkODIxYTJkNzg2OGUyZTcxNDFjNDgwNTMxNjM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCkBAIC0zOTAsNyArMzkwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVj
cmVhdGVQbHVnaW4oV2lkZ2V0Kikgb3ZlcnJpZGU7CiAgICAgUGFzc1JlZlB0cjxXaWRnZXQ+IGNy
ZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYsIEhUTUxBcHBsZXRFbGVtZW50Kiwg
Y29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYp
IG92ZXJyaWRlOwogCi0gICAgT2JqZWN0Q29udGVudFR5cGUgb2JqZWN0Q29udGVudFR5cGUoY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyByZXR1cm4gT2JqZWN0Q29udGVudFR5
cGUoKTsgfQorICAgIE9iamVjdENvbnRlbnRUeXBlIG9iamVjdENvbnRlbnRUeXBlKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgcmV0dXJuIE9iamVjdENvbnRlbnRUeXBlOjpO
b25lOyB9CiAgICAgU3RyaW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gU3RyaW5nKCk7IH0KIAogICAgIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0
Kikgb3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApp
bmRleCA1MzhiMmIwY2E2MjFlNjkxOTBmZDA2M2U1ZGZiNzk0NjYxYzczZjVhLi4xYmJlZDk3MDYx
YTA4YjNiY2I5NzRjNGY0NzM0NWRkZGU4MzI4OGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlclR5cGVzLmgKQEAgLTgxLDEyICs4MSwxMSBAQCBlbnVtIENsZWFyUHJvdmlzaW9u
YWxJdGVtUG9saWN5IHsKICAgICBTaG91bGROb3RDbGVhclByb3Zpc2lvbmFsSXRlbQogfTsKIAot
ZW51bSBPYmplY3RDb250ZW50VHlwZSB7Ci0gICAgT2JqZWN0Q29udGVudE5vbmUsCi0gICAgT2Jq
ZWN0Q29udGVudEltYWdlLAotICAgIE9iamVjdENvbnRlbnRGcmFtZSwKLSAgICBPYmplY3RDb250
ZW50TmV0c2NhcGVQbHVnaW4sCi0gICAgT2JqZWN0Q29udGVudE90aGVyUGx1Z2luCitlbnVtIGNs
YXNzIE9iamVjdENvbnRlbnRUeXBlIHsKKyAgICBOb25lLAorICAgIEltYWdlLAorICAgIEZyYW1l
LAorICAgIFBsdWdJbiwKIH07CiAKIGVudW0gVW5sb2FkRXZlbnRQb2xpY3kgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKaW5kZXggMDhhODRhNDc1MjkxYWEzZGM4MzU5
NzkzM2I4YTA5NzY4ZWQ4MDQ3ZS4uNGE3ZTU1ODk3NWExZjI4NTRiNmVjYjUzZTlhYmJiMmE2NTFm
OTkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0zNzUs
OSArMzc1LDkgQEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6c2hvdWxkVXNlUGx1Z2luKGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib28KICAgICBPYmplY3RDb250ZW50VHlw
ZSBvYmplY3RUeXBlID0gbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5vYmplY3RDb250ZW50VHlw
ZSh1cmwsIG1pbWVUeXBlKTsKICAgICAvLyBJZiBhbiBvYmplY3QncyBjb250ZW50IGNhbid0IGJl
IGhhbmRsZWQgYW5kIGl0IGhhcyBubyBmYWxsYmFjaywgbGV0CiAgICAgLy8gaXQgYmUgaGFuZGxl
ZCBhcyBhIHBsdWdpbiB0byBzaG93IHRoZSBicm9rZW4gcGx1Z2luIGljb24uCi0gICAgdXNlRmFs
bGJhY2sgPSBvYmplY3RUeXBlID09IE9iamVjdENvbnRlbnROb25lICYmIGhhc0ZhbGxiYWNrOwor
ICAgIHVzZUZhbGxiYWNrID0gb2JqZWN0VHlwZSA9PSBPYmplY3RDb250ZW50VHlwZTo6Tm9uZSAm
JiBoYXNGYWxsYmFjazsKIAotICAgIHJldHVybiBvYmplY3RUeXBlID09IE9iamVjdENvbnRlbnRO
b25lIHx8IG9iamVjdFR5cGUgPT0gT2JqZWN0Q29udGVudE5ldHNjYXBlUGx1Z2luIHx8IG9iamVj
dFR5cGUgPT0gT2JqZWN0Q29udGVudE90aGVyUGx1Z2luOworICAgIHJldHVybiBvYmplY3RUeXBl
ID09IE9iamVjdENvbnRlbnRUeXBlOjpOb25lIHx8IG9iamVjdFR5cGUgPT0gT2JqZWN0Q29udGVu
dFR5cGU6OlBsdWdJbjsKIH0KIAogRG9jdW1lbnQqIFN1YmZyYW1lTG9hZGVyOjpkb2N1bWVudCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZDdhNWNmZmRlNTJhMDA2Yjky
ZTVmYjVjZTcwZTJjMmIwMWNlNjY0YS4uZTE1MDU5YTA2MGE1YjVhMGE2ZTU3OGRmNDU4YTZhOTgz
ZmU2OThiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzEyNiw3ICszMTI2LDcg
QEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUVtYmVkZGVkT2JqZWN0KFJlbmRlckVtYmVkZGVkT2Jq
ZWN0JiBlbWJlZGRlZE9iamVjdCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
ICAgICBpZiAocGx1Z2luRWxlbWVudC5uZWVkc1dpZGdldFVwZGF0ZSgpKQotICAgICAgICAgICAg
cGx1Z2luRWxlbWVudC51cGRhdGVXaWRnZXQoQ3JlYXRlQW55V2lkZ2V0VHlwZSk7CisgICAgICAg
ICAgICBwbHVnaW5FbGVtZW50LnVwZGF0ZVdpZGdldChDcmVhdGVQbHVnaW5zOjpZZXMpOwogICAg
IH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpp
bmRleCA5YzQ4ZWQ3NGIzMDc0NTBkZjUyMmQwMGJjZjMwODA3ZjIyM2Y3MzU2Li5lY2YyZjUwMTU2
YWQyZGZlMTViNGY0YWQyMWRmYzk3ZjAzYWYyNmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMTY2
Miw1MSArMTY2MiwzMyBAQCBPYmplY3RDb250ZW50VHlwZSBXZWJGcmFtZUxvYWRlckNsaWVudDo6
b2JqZWN0Q29udGVudFR5cGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0CiAgICAgICAgICAgICB0eXBl
ID0gW1tOU1VSTEZpbGVUeXBlTWFwcGluZ3Mgc2hhcmVkTWFwcGluZ3NdIE1JTUVUeXBlRm9yRXh0
ZW5zaW9uOmV4dGVuc2lvbl07CiAgICAgICAgICAgICBpZiAodHlwZS5pc0VtcHR5KCkpIHsKICAg
ICAgICAgICAgICAgICAvLyBJZiBubyBNSU1FIHR5cGUgaXMgc3BlY2lmaWVkLCB1c2UgYSBwbHVn
LWluIGlmIHdlIGhhdmUgb25lIHRoYXQgY2FuIGhhbmRsZSB0aGUgZXh0ZW5zaW9uLgotICAgICAg
ICAgICAgICAgIGlmIChXZWJCYXNlUGx1Z2luUGFja2FnZSAqcGFja2FnZSA9IFtnZXRXZWJWaWV3
KG1fd2ViRnJhbWUuZ2V0KCkpIF9wbHVnaW5Gb3JFeHRlbnNpb246ZXh0ZW5zaW9uXSkgewotICAg
ICAgICAgICAgICAgICAgICBpZiAoW3BhY2thZ2UgaXNLaW5kT2ZDbGFzczpbV2ViUGx1Z2luUGFj
a2FnZSBjbGFzc11dKSAKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3RDb250
ZW50T3RoZXJQbHVnaW47Ci0jaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgICAg
ICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKFtwYWNr
YWdlIGlzS2luZE9mQ2xhc3M6W1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZSBjbGFzc11dKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3RDb250ZW50TmV0c2NhcGVQbHVnaW47
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSNlbmRpZgotICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBpZiAoW2dldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSkgX3BsdWdpbkZvckV4
dGVuc2lvbjpleHRlbnNpb25dKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0Q29u
dGVudFR5cGU6OlBsdWdJbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAogICAg
IGlmICh0eXBlLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnRGcmFtZTsg
Ly8gR28gYWhlYWQgYW5kIGhvcGUgdGhhdCB3ZSBjYW4gZGlzcGxheSB0aGUgY29udGVudC4KKyAg
ICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnRUeXBlOjpGcmFtZTsgLy8gR28gYWhlYWQgYW5kIGhv
cGUgdGhhdCB3ZSBjYW4gZGlzcGxheSB0aGUgY29udGVudC4KKworICAgIE9iamVjdENvbnRlbnRU
eXBlIHBsdWdJblR5cGUgPSBPYmplY3RDb250ZW50VHlwZTo6Tm9uZTsKKyAgICBpZiAoW2dldFdl
YlZpZXcobV93ZWJGcmFtZS5nZXQoKSkgX3BsdWdpbkZvck1JTUVUeXBlOnR5cGVdKQorICAgICAg
ICBwbHVnSW5UeXBlID0gT2JqZWN0Q29udGVudFR5cGU6OlBsdWdJbjsKIAotICAgIFdlYkJhc2VQ
bHVnaW5QYWNrYWdlICpwYWNrYWdlID0gW2dldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSkgX3Bs
dWdpbkZvck1JTUVUeXBlOnR5cGVdOwotICAgIE9iamVjdENvbnRlbnRUeXBlIHBsdWdJblR5cGUg
PSBPYmplY3RDb250ZW50Tm9uZTsKLSAgICBpZiAocGFja2FnZSkgewotI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQotICAgICAgICBpZiAoW3BhY2thZ2UgaXNLaW5kT2ZDbGFzczpbV2Vi
TmV0c2NhcGVQbHVnaW5QYWNrYWdlIGNsYXNzXV0pCi0gICAgICAgICAgICBwbHVnSW5UeXBlID0g
T2JqZWN0Q29udGVudE5ldHNjYXBlUGx1Z2luOwotICAgICAgICBlbHNlCi0jZW5kaWYKLSAgICAg
ICAgewotICAgICAgICAgICAgQVNTRVJUKFtwYWNrYWdlIGlzS2luZE9mQ2xhc3M6W1dlYlBsdWdp
blBhY2thZ2UgY2xhc3NdXSk7Ci0gICAgICAgICAgICBwbHVnSW5UeXBlID0gT2JqZWN0Q29udGVu
dE90aGVyUGx1Z2luOwotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIGlmIChNSU1FVHlwZVJl
Z2lzdHJ5Ojppc1N1cHBvcnRlZEltYWdlTUlNRVR5cGUodHlwZSkpCi0gICAgICAgIHJldHVybiBP
YmplY3RDb250ZW50SW1hZ2U7CisgICAgICAgIHJldHVybiBPYmplY3RDb250ZW50VHlwZTo6SW1h
Z2U7CiAKLSAgICBpZiAocGx1Z0luVHlwZSAhPSBPYmplY3RDb250ZW50Tm9uZSkKKyAgICBpZiAo
cGx1Z0luVHlwZSAhPSBPYmplY3RDb250ZW50VHlwZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuIHBs
dWdJblR5cGU7CiAKICAgICBpZiAoW21fd2ViRnJhbWUtPl9wcml2YXRlLT53ZWJGcmFtZVZpZXcg
X3ZpZXdDbGFzc0Zvck1JTUVUeXBlOnR5cGVdKQotICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVu
dEZyYW1lOworICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudFR5cGU6OkZyYW1lOwogICAgIAot
ICAgIHJldHVybiBPYmplY3RDb250ZW50Tm9uZTsKKyAgICByZXR1cm4gT2JqZWN0Q29udGVudFR5
cGU6Ok5vbmU7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgcmV0dXJu
IE9iamVjdENvbnRlbnROb25lOworICAgIHJldHVybiBPYmplY3RDb250ZW50VHlwZTo6Tm9uZTsK
IH0KIAogc3RhdGljIE5TTXV0YWJsZUFycmF5KiBraXQoY29uc3QgVmVjdG9yPFN0cmluZz4mIHZl
Y3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBkZjJkMTYyYzMxNzIwNjQ3MDY5YWE1MjZmNTg5
MzkxNDQ5YTY3YTVjLi5jNmUzMzQ0MDRjZmVhYTAzZTJiZmExNWY2ZTQxMGIyMTk3ZDYxZTY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xMDcwLDIwICsxMDcwLDIwIEBAIE9iamVjdENvbnRlbnRU
eXBlIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZShjb25zdCBVUkwmIHVy
bCwgY29uc3QKICAgICB9CiAKICAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm4gT2JqZWN0Q29udGVudEZyYW1lOyAvLyBHbyBhaGVhZCBhbmQgaG9wZSB0aGF0IHdlIGNh
biBkaXNwbGF5IHRoZSBjb250ZW50LgorICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudFR5cGU6
OkZyYW1lOyAvLyBHbyBhaGVhZCBhbmQgaG9wZSB0aGF0IHdlIGNhbiBkaXNwbGF5IHRoZSBjb250
ZW50LgogCiAgICAgYm9vbCBwbHVnSW5TdXBwb3J0c01JTUVUeXBlID0gUGx1Z2luRGF0YWJhc2U6
Omluc3RhbGxlZFBsdWdpbnMoKS0+aXNNSU1FVHlwZVJlZ2lzdGVyZWQobWltZVR5cGUpOwogCiAg
ICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZShtaW1lVHlw
ZSkpCi0gICAgICAgIHJldHVybiBXZWJDb3JlOjpPYmplY3RDb250ZW50SW1hZ2U7CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpPYmplY3RDb250ZW50VHlwZTo6SW1hZ2U7CiAKICAgICBpZiAocGx1
Z0luU3VwcG9ydHNNSU1FVHlwZSkKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok9iamVjdENvbnRl
bnROZXRzY2FwZVBsdWdpbjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok9iamVjdENvbnRlbnRU
eXBlOjpQbHVnSW47CiAKICAgICBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWROb25J
bWFnZU1JTUVUeXBlKG1pbWVUeXBlKSkKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok9iamVjdENv
bnRlbnRGcmFtZTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok9iamVjdENvbnRlbnRUeXBlOjpG
cmFtZTsKIAotICAgIHJldHVybiBXZWJDb3JlOjpPYmplY3RDb250ZW50Tm9uZTsKKyAgICByZXR1
cm4gV2ViQ29yZTo6T2JqZWN0Q29udGVudFR5cGU6Ok5vbmU7CiB9CiAKIHZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFRvU3RhcnRQbHVnaW4oY29uc3QgUGx1Z2luVmll
dyogcGx1Z2luVmlldykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5k
ZXggOTA4MDBhOTJjN2U5MzAxYTM1OWE0MGZhYTZkOGQ0YmI2YTI3NjA4Ny4uNWY3NmJjOWY0MTll
M2M0YTVmMzE5ZjkzODk0ZGViNmExZTQ0ZGQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKQEAgLTE1MjMsNyArMTUyMyw3IEBAIE9iamVjdENvbnRlbnRUeXBlIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZShjb25zdCBVUkwmIHVybCwgY29uc3QKICAg
ICAgICAgU3RyaW5nIHBhdGggPSB1cmwucGF0aCgpOwogICAgICAgICBhdXRvIGRvdFBvc2l0aW9u
ID0gcGF0aC5yZXZlcnNlRmluZCgnLicpOwogICAgICAgICBpZiAoZG90UG9zaXRpb24gPT0gbm90
Rm91bmQpCi0gICAgICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudEZyYW1lOworICAgICAgICAg
ICAgcmV0dXJuIE9iamVjdENvbnRlbnRUeXBlOjpGcmFtZTsKICAgICAgICAgU3RyaW5nIGV4dGVu
c2lvbiA9IHBhdGguc3Vic3RyaW5nKGRvdFBvc2l0aW9uICsgMSkuY29udmVydFRvQVNDSUlMb3dl
cmNhc2UoKTsKIAogICAgICAgICAvLyBUcnkgdG8gZ3Vlc3MgdGhlIE1JTUUgdHlwZSBmcm9tIHRo
ZSBleHRlbnNpb24uCkBAIC0xNTMyLDMyICsxNTMyLDMyIEBAIE9iamVjdENvbnRlbnRUeXBlIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZShjb25zdCBVUkwmIHVybCwgY29u
c3QKICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZXJlJ3MgYSBwbHVnLWluIGFyb3VuZCB0aGF0
IGNhbiBoYW5kbGUgdGhlIGV4dGVuc2lvbi4KICAgICAgICAgICAgIGlmIChXZWJQYWdlKiB3ZWJQ
YWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHBsdWdpblN1cHBv
cnRzRXh0ZW5zaW9uKHdlYlBhZ2UtPmNvcmVQYWdlKCktPnBsdWdpbkRhdGEoKSwgZXh0ZW5zaW9u
KSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnROZXRzY2FwZVBsdWdp
bjsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnRUeXBlOjpQbHVnSW47
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudEZyYW1lOwor
ICAgICAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnRUeXBlOjpGcmFtZTsKICAgICAgICAgfQog
ICAgIH0KIAogICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEltYWdlTUlNRVR5
cGUobWltZVR5cGUpKQotICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudEltYWdlOworICAgICAg
ICByZXR1cm4gT2JqZWN0Q29udGVudFR5cGU6OkltYWdlOwogCiAgICAgaWYgKFdlYlBhZ2UqIHdl
YlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgYXV0byBhbGxvd2VkUGx1Z2luVHlw
ZXMgPSB3ZWJGcmFtZSgpLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5h
bGxvd1BsdWdpbnMoKQogICAgICAgICAgICAgPyBQbHVnaW5EYXRhOjpBbGxQbHVnaW5zIDogUGx1
Z2luRGF0YTo6T25seUFwcGxpY2F0aW9uUGx1Z2luczsKICAgICAgICAgaWYgKHdlYlBhZ2UtPmNv
cmVQYWdlKCktPnBsdWdpbkRhdGEoKS5zdXBwb3J0c01pbWVUeXBlKG1pbWVUeXBlLCBhbGxvd2Vk
UGx1Z2luVHlwZXMpKQotICAgICAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnROZXRzY2FwZVBs
dWdpbjsKKyAgICAgICAgICAgIHJldHVybiBPYmplY3RDb250ZW50VHlwZTo6UGx1Z0luOwogICAg
IH0KIAogICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE5vbkltYWdlTUlNRVR5
cGUobWltZVR5cGUpKQotICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudEZyYW1lOworICAgICAg
ICByZXR1cm4gT2JqZWN0Q29udGVudFR5cGU6OkZyYW1lOwogCiAjaWYgUExBVEZPUk0oSU9TKQog
ICAgIC8vIGlPUyBjYW4gcmVuZGVyIFBERiBpbiA8b2JqZWN0Pi88ZW1iZWQ+IHZpYSBQREZEb2N1
bWVudEltYWdlLgogICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1BERk9yUG9zdFNjcmlwdE1J
TUVUeXBlKG1pbWVUeXBlKSkKLSAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnRJbWFnZTsKKyAg
ICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnRUeXBlOjpJbWFnZTsKICNlbmRpZgogCi0gICAgcmV0
dXJuIE9iamVjdENvbnRlbnROb25lOworICAgIHJldHVybiBPYmplY3RDb250ZW50VHlwZTo6Tm9u
ZTsKIH0KIAogU3RyaW5nIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpvdmVycmlkZU1lZGlhVHlwZSgp
IGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285686</attachid>
            <date>2016-08-09 16:18:26 -0700</date>
            <delta_ts>2016-08-09 18:32:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160715-20160809161652.patch</filename>
            <type>text/plain</type>
            <size>23613</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM5MjM2MjUyOTk5ZmZl
N2IwMzAxMTkyNGFjMjUzZjk0NTA4Yjc5YS4uODQ3ZDBkMTU4MTg4ZDc3NDQ5NGJkNmUyMTA5OGI0
ZjY2MWJhYjQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE2LTA4LTA5ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgSW5zdGFudGlhdGUg
V2ViS2l0IHBsdWctaW5zIGF0IGxheW91dCB0aW1lLCBpbnN0ZWFkIG9mIGF0IHN0eWxlIHJlc29s
dXRpb24gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYwNzE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBnZXRzIHJpZCBvZiB0aGUgZGlmZmVyZW50aWF0aW9uIG9mIFdlYktpdCBwbHVnLWlu
cyBhbmQgTmV0c2NhcGUgcGx1Zy1pbnMsIGFuZAorICAgICAgICBhbHdheXMgaW5zdGFudGlhdGVz
IHBsdWctaW5zIGF0IGxheW91dCB0aW1lLgorICAgICAgICAKKyAgICAgICAgSW5pdGlhbGx5LCBw
bHVnLWlucyB3ZXJlIGFsd2F5cyBpbnN0YW50aWF0ZWQgYWZ0ZXIgc3R5bGUgcmVjYWxjLCBidXQg
dGhhdCBsZWFkIHRvIGJ1Z3MKKyAgICAgICAgd2hlcmUgcGx1Zy1pbnMgd291bGRuJ3QgYmUgaW5z
dGFudGlhdGVkIHdpdGggdGhlaXIgY29ycmVjdCBzaXplLiBGaXhpbmcgdGhhdCBidWcgbGVhZAor
ICAgICAgICB0byBhIHJlZ3Jlc3Npb24gaW4gdGhlIFdlYiBDbGlwIHdpZGdldCB3aGljaCBpcyB3
aHkgdGhlIHNwZWNpYWwgY2FzaW5nIHdhcyBpbnRyb2R1Y2VkLgorICAgICAgICAKKyAgICAgICAg
VGhlIFdlYiBDbGlwIHdpZGdldCBoYXMgbm93IGJlZW4gZml4ZWQsIHNvIHdlIGNhbiBnZXQgcmlk
IG9mIHRoZSBzcGVjaWFsIGNhc2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBcHBsZXRFbGVtZW50Ojp1cGRhdGVXaWRnZXQp
OgorICAgICAgICAqIGh0bWwvSFRNTEFwcGxldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxFbWJlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudDo6
dXBkYXRlV2lkZ2V0KToKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxP
YmplY3RFbGVtZW50Ojp1cGRhdGVXaWRnZXQpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6aXNJbWFnZVR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6d291bGRMb2FkQXNQbHVnSW4p
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0
SWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
d291bGRMb2FkQXNOZXRzY2FwZVBsdWdpbik6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgor
ICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5cGVzLmg6CisgICAgICAgICogbG9hZGVyL1N1
YmZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpzaG91
bGRVc2VQbHVnaW4pOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlRW1iZWRkZWRPYmplY3QpOgorCiAyMDE2LTA4LTA5ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSXQgc2hvdWxkIGJlIHBv
c3NpYmxlIHRvIHJlLWluaXRpYWxpemUgYSBDdXN0b21FdmVudCBhZnRlciBpdCdzIGJlZW4gZGlz
cGF0Y2hlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDM4M2ExODMwZDZlYTNkZDFhMmQyYWIxMWY4MjVk
MzJkMDcyYWEyMjYuLmNjMWE5MThiMmEzOTE1ZGY3MTU4M2ZmNGM2OGJlMmY4ZDZkYjZlYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxNi0wOC0wOSAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIEluc3RhbnRpYXRlIFdlYktpdCBw
bHVnLWlucyBhdCBsYXlvdXQgdGltZSwgaW5zdGVhZCBvZiBhdCBzdHlsZSByZXNvbHV0aW9uIHRp
bWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDcx
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxv
YWRlckNsaWVudDo6b2JqZWN0Q29udGVudFR5cGUpOgorCisyMDE2LTA4LTA5ICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAgICAgR2V0IHJpZCBvZiBQbHVnaW5T
dHJhdGVneQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYwNjk2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAwMjQ4MDk0YTQ0Y2ZhZDY5Njg4MGJlMGQxZjRi
Y2E4NmM5MjAwOTdmLi4zYjk2NTMyMzkxZTI4MjA5ZGU4ZGI2NWEwNzgzYmIwY2ViZDdlMTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTYtMDgtMDkgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAorICAgICAgICBJbnN0YW50aWF0ZSBXZWJLaXQg
cGx1Zy1pbnMgYXQgbGF5b3V0IHRpbWUsIGluc3RlYWQgb2YgYXQgc3R5bGUgcmVzb2x1dGlvbiB0
aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA3
MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZSk6CisKKzIwMTYtMDgtMDkgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBGaXggYnVpbGQuCiAKICAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCAzNjlhMDhmYzYyZTY0NWIxMGM1NGNiNDZhM2YwMWY2NTQ3MDY2ZjJkLi41MjNkMmI0M2Yy
ZWMzNWJkYmY4ZmRhMTYwNDE2OWNiNzI2MGI2Zjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUg
QEAKIDIwMTYtMDgtMDkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAor
ICAgICAgICBJbnN0YW50aWF0ZSBXZWJLaXQgcGx1Zy1pbnMgYXQgbGF5b3V0IHRpbWUsIGluc3Rl
YWQgb2YgYXQgc3R5bGUgcmVzb2x1dGlvbiB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA3MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6b2JqZWN0Q29udGVudFR5cGUpOgorCisyMDE2LTA4LTA5ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAgICAgR2V0IHJpZCBvZiBQbHVnaW5TdHJhdGVneQog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjk2CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKaW5kZXggMDNhODIyOWU3
YmM5MGIzN2FiN2U2YTBjYjc4NGRkZjdhOGYxYzMxZS4uYjg4OTU2ZTdmYmZiMGNmNjk3MmQ3YzE0
MDBkYjU2OThkMGExNjI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBw
bGV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVu
dC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgUmVuZGVyV2lkZ2V0KiBIVE1MQXBwbGV0RWxlbWVudDo6
cmVuZGVyV2lkZ2V0TG9hZGluZ1BsdWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIHJlbmRlcldpZGdl
dCgpOwogfQogCi12b2lkIEhUTUxBcHBsZXRFbGVtZW50Ojp1cGRhdGVXaWRnZXQoUGx1Z2luQ3Jl
YXRpb25PcHRpb24gcGx1Z2luQ3JlYXRpb25PcHRpb24pCit2b2lkIEhUTUxBcHBsZXRFbGVtZW50
Ojp1cGRhdGVXaWRnZXQoQ3JlYXRlUGx1Z2lucyBjcmVhdGVQbHVnaW5zKQogewogICAgIHNldE5l
ZWRzV2lkZ2V0VXBkYXRlKGZhbHNlKTsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgQVNTRVJU
IGlzRmluaXNoZWRQYXJzaW5nQ2hpbGRyZW4oKSBpbnN0ZWFkLgpAQCAtMTAzLDEzICsxMDMsMTMg
QEAgdm9pZCBIVE1MQXBwbGV0RWxlbWVudDo6dXBkYXRlV2lkZ2V0KFBsdWdpbkNyZWF0aW9uT3B0
aW9uIHBsdWdpbkNyZWF0aW9uT3B0aW9uKQogICAgICAgICByZXR1cm47CiAKICNpZiBQTEFURk9S
TShJT1MpCi0gICAgVU5VU0VEX1BBUkFNKHBsdWdpbkNyZWF0aW9uT3B0aW9uKTsKKyAgICBVTlVT
RURfUEFSQU0oY3JlYXRlUGx1Z2lucyk7CiAjZWxzZQogICAgIC8vIEZJWE1FOiBJdCdzIHNhZG5l
c3MgdGhhdCB3ZSBoYXZlIHRoaXMgc3BlY2lhbCBjYXNlIGhlcmUuCiAgICAgLy8gICAgICAgIFNl
ZSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNTEyOCBhbmQKICAgICAvLyAgICAg
ICAgcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tc2V0d2luZG93LXNpemUuaHRtbAotICAgIGlmIChw
bHVnaW5DcmVhdGlvbk9wdGlvbiA9PSBDcmVhdGVPbmx5Tm9uTmV0c2NhcGVQbHVnaW5zKSB7Ci0g
ICAgICAgIC8vIEVuc3VyZSB1cGRhdGVXaWRnZXQoKSBpcyBjYWxsZWQgYWdhaW4gZHVyaW5nIGxh
eW91dCB0byBjcmVhdGUgdGhlIE5ldHNjYXBlIHBsdWctaW4uCisgICAgaWYgKGNyZWF0ZVBsdWdp
bnMgPT0gQ3JlYXRlUGx1Z2luczo6Tm8pIHsKKyAgICAgICAgLy8gRW5zdXJlIHVwZGF0ZVdpZGdl
dCgpIGlzIGNhbGxlZCBhZ2FpbiBkdXJpbmcgbGF5b3V0IHRvIGNyZWF0ZSB0aGUgcGx1Zy1pbi4K
ICAgICAgICAgc2V0TmVlZHNXaWRnZXRVcGRhdGUodHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmgKaW5kZXggOTI5OWJhNDc5
Y2FkZDMxNTg4ZWZjMDQ4NmY0ZTZkMjY5ZjQ3YzA1YS4uOTdmZDQ4Zjg0OWZiMjlmMzQ1NGFkNzcx
YzI2YTU4M2Q4ODA3Y2U2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBw
bGV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQu
aApAQCAtNDAsNyArNDAsNyBAQCBwcml2YXRlOgogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgZmluYWw7CiAKICAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldExvYWRpbmdQ
bHVnaW4oKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHVwZGF0ZVdpZGdldChQbHVnaW5DcmVhdGlv
bk9wdGlvbikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVXaWRnZXQoQ3JlYXRlUGx1Z2lucykgZmlu
YWw7CiAKICAgICBib29sIGNhbkVtYmVkSmF2YSgpIGNvbnN0OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCmluZGV4IGI5NmVlMmIxZTEyMzk1ZDJkZGFjMTVjYWVl
ZDc5ZTQyNThmYzhmY2QuLmFhMzUyYTQ1NDZhNDBhODBkN2ZiZTZiMjBlMTc3OTg1NzI3NTQ3NTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcApAQCAtMTM1LDcgKzEz
NSw3IEBAIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFyYW1ldGVyc0ZvclBsdWdpbihWZWN0b3I8
U3RyaW5nPiYgcGFyYW1OYW1lcywgVmVjdG9yPFN0CiAKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBi
ZSB1bmlmaWVkIHdpdGggSFRNTE9iamVjdEVsZW1lbnQ6OnVwZGF0ZVdpZGdldCBhbmQKIC8vIG1v
dmVkIGRvd24gaW50byBIVE1MUGx1Z2luSW1hZ2VFbGVtZW50LmNwcAotdm9pZCBIVE1MRW1iZWRF
bGVtZW50Ojp1cGRhdGVXaWRnZXQoUGx1Z2luQ3JlYXRpb25PcHRpb24gcGx1Z2luQ3JlYXRpb25P
cHRpb24pCit2b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OnVwZGF0ZVdpZGdldChDcmVhdGVQbHVnaW5z
IGNyZWF0ZVBsdWdpbnMpCiB7CiAgICAgQVNTRVJUKCFyZW5kZXJFbWJlZGRlZE9iamVjdCgpLT5p
c1BsdWdpblVuYXZhaWxhYmxlKCkpOwogICAgIEFTU0VSVChuZWVkc1dpZGdldFVwZGF0ZSgpKTsK
QEAgLTE1Miw3ICsxNTIsNyBAQCB2b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OnVwZGF0ZVdpZGdldChQ
bHVnaW5DcmVhdGlvbk9wdGlvbiBwbHVnaW5DcmVhdGlvbk9wdGlvbikKICAgICAvLyBGSVhNRTog
SXQncyBzYWRuZXNzIHRoYXQgd2UgaGF2ZSB0aGlzIHNwZWNpYWwgY2FzZSBoZXJlLgogICAgIC8v
ICAgICAgICBTZWUgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjUxMjggYW5kCiAg
ICAgLy8gICAgICAgIHBsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXNldHdpbmRvdy1zaXplLmh0bWwK
LSAgICBpZiAocGx1Z2luQ3JlYXRpb25PcHRpb24gPT0gQ3JlYXRlT25seU5vbk5ldHNjYXBlUGx1
Z2lucyAmJiB3b3VsZExvYWRBc05ldHNjYXBlUGx1Z2luKG1fdXJsLCBtX3NlcnZpY2VUeXBlKSkg
eworICAgIGlmIChjcmVhdGVQbHVnaW5zID09IENyZWF0ZVBsdWdpbnM6Ok5vICYmIHdvdWxkTG9h
ZEFzUGx1Z0luKG1fdXJsLCBtX3NlcnZpY2VUeXBlKSkgewogICAgICAgICAvLyBFbnN1cmUgdXBk
YXRlV2lkZ2V0KCkgaXMgY2FsbGVkIGFnYWluIGR1cmluZyBsYXlvdXQgdG8gY3JlYXRlIHRoZSBO
ZXRzY2FwZSBwbHVnLWluLgogICAgICAgICBzZXROZWVkc1dpZGdldFVwZGF0ZSh0cnVlKTsKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAppbmRleCA3
MzIwOWNlNjFkYjIwNDM3N2FlNTVhMTUzYzc3OTAzZTNkN2Q3MGQ5Li41NDNlYjVlZTU2MDg4YmJi
ZDBhMDBhZTAzODI2NzQ4Mzg4NTkzMTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVs
ZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBwcml2YXRlOgogCiAgICAgUmVuZGVyV2lkZ2V0KiBy
ZW5kZXJXaWRnZXRMb2FkaW5nUGx1Z2luKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHVwZGF0
ZVdpZGdldChQbHVnaW5DcmVhdGlvbk9wdGlvbikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVXaWRn
ZXQoQ3JlYXRlUGx1Z2lucykgZmluYWw7CiAKICAgICB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmli
dXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggMWY0OTc5YTFkOTEyYjFlM2U4YmU3MWYy
ZjE4ZDM3YzkxZTJlMmZjMy4uMDI1MGFkMjNjNTVhMDAwNmQ5ZWI0Mzg1ZTA0NzMwZWU1MmVlMTU1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTI4NCw3
ICsyODQsNyBAQCBib29sIEhUTUxPYmplY3RFbGVtZW50OjpoYXNWYWxpZENsYXNzSWQoKQogCiAv
LyBGSVhNRTogVGhpcyBzaG91bGQgYmUgdW5pZmllZCB3aXRoIEhUTUxFbWJlZEVsZW1lbnQ6OnVw
ZGF0ZVdpZGdldCBhbmQKIC8vIG1vdmVkIGRvd24gaW50byBIVE1MUGx1Z2luSW1hZ2VFbGVtZW50
LmNwcAotdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6dXBkYXRlV2lkZ2V0KFBsdWdpbkNyZWF0aW9u
T3B0aW9uIHBsdWdpbkNyZWF0aW9uT3B0aW9uKQordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6dXBk
YXRlV2lkZ2V0KENyZWF0ZVBsdWdpbnMgY3JlYXRlUGx1Z2lucykKIHsKICAgICBBU1NFUlQoIXJl
bmRlckVtYmVkZGVkT2JqZWN0KCktPmlzUGx1Z2luVW5hdmFpbGFibGUoKSk7CiAgICAgQVNTRVJU
KG5lZWRzV2lkZ2V0VXBkYXRlKCkpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgSFRNTE9iamVj
dEVsZW1lbnQ6OnVwZGF0ZVdpZGdldChQbHVnaW5DcmVhdGlvbk9wdGlvbiBwbHVnaW5DcmVhdGlv
bk9wdGlvbikKICAgICAvLyBGSVhNRTogSXQncyBzYWRuZXNzIHRoYXQgd2UgaGF2ZSB0aGlzIHNw
ZWNpYWwgY2FzZSBoZXJlLgogICAgIC8vICAgICAgICBTZWUgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMjUxMjggYW5kCiAgICAgLy8gICAgICAgIHBsdWdpbnMvbmV0c2NhcGUtcGx1
Z2luLXNldHdpbmRvdy1zaXplLmh0bWwKLSAgICBpZiAocGx1Z2luQ3JlYXRpb25PcHRpb24gPT0g
Q3JlYXRlT25seU5vbk5ldHNjYXBlUGx1Z2lucyAmJiB3b3VsZExvYWRBc05ldHNjYXBlUGx1Z2lu
KHVybCwgc2VydmljZVR5cGUpKSB7CisgICAgaWYgKGNyZWF0ZVBsdWdpbnMgPT0gQ3JlYXRlUGx1
Z2luczo6Tm8gJiYgd291bGRMb2FkQXNQbHVnSW4odXJsLCBzZXJ2aWNlVHlwZSkpIHsKICAgICAg
ICAgLy8gRW5zdXJlIHVwZGF0ZVdpZGdldCgpIGlzIGNhbGxlZCBhZ2FpbiBkdXJpbmcgbGF5b3V0
IHRvIGNyZWF0ZSB0aGUgTmV0c2NhcGUgcGx1Zy1pbi4KICAgICAgICAgc2V0TmVlZHNXaWRnZXRV
cGRhdGUodHJ1ZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaAppbmRleCAxMTM2ZDIwNjhmOGJlOGZmZGI2YzY0ZTMzNjY0NDdmMjFmZmUyNzM1
Li45ZmMyYmQwODE1NDJhZTQwMzQ1MjA0MDBhNGQ4MDYzZDVhNzhiZDYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+Jikg
Y29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHVwZGF0ZVdpZGdldChQbHVnaW5DcmVhdGlvbk9wdGlv
bikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVXaWRnZXQoQ3JlYXRlUGx1Z2lucykgZmluYWw7CiAg
ICAgdm9pZCB1cGRhdGVEb2NOYW1lZEl0ZW0oKTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0
aW9uIHNob3VsZCBub3QgZGVhbCB3aXRoIHVybCBvciBzZXJ2aWNlVHlwZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggOGI0NDRkYmE2MDIw
ZjE1YjU4NmZjZTNlMmVkZTFmODU1OTk4ZjA3ZC4uMjZjN2Y3MTRmNTM1MTUxN2M2ODdiYzc3YzA4
YTlhNmRmOWE3NTBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuY3BwCkBAIC0xNjIsNyArMTYyLDcgQEAgYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50Ojppc0ltYWdlVHlwZSgpCiAKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5m
cmFtZSgpKSB7CiAgICAgICAgIFVSTCBjb21wbGV0ZWRVUkwgPSBkb2N1bWVudCgpLmNvbXBsZXRl
VVJMKG1fdXJsKTsKLSAgICAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5vYmpl
Y3RDb250ZW50VHlwZShjb21wbGV0ZWRVUkwsIG1fc2VydmljZVR5cGUpID09IE9iamVjdENvbnRl
bnRJbWFnZTsKKyAgICAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5vYmplY3RD
b250ZW50VHlwZShjb21wbGV0ZWRVUkwsIG1fc2VydmljZVR5cGUpID09IE9iamVjdENvbnRlbnRU
eXBlOjpJbWFnZTsKICAgICB9CiAKICAgICByZXR1cm4gSW1hZ2U6OnN1cHBvcnRzVHlwZShtX3Nl
cnZpY2VUeXBlKTsKQEAgLTE4Myw3ICsxODMsNyBAQCBib29sIEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQ6OmFsbG93ZWRUb0xvYWRGcmFtZVVSTChjb25zdCBTdHJpbmcmIHVybCkKIAogLy8gV2UgZG9u
J3QgdXNlIG1fdXJsLCBvciBtX3NlcnZpY2VUeXBlIGFzIHRoZXkgbWF5IG5vdCBiZSB0aGUgZmlu
YWwgdmFsdWVzCiAvLyB0aGF0IDxvYmplY3Q+IHVzZXMgZGVwZW5kaW5nIG9uIDxwYXJhbT4gdmFs
dWVzLgotYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp3b3VsZExvYWRBc05ldHNjYXBlUGx1
Z2luKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlcnZpY2VUeXBlKQorYm9vbCBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp3b3VsZExvYWRBc1BsdWdJbihjb25zdCBTdHJpbmcmIHVy
bCwgY29uc3QgU3RyaW5nJiBzZXJ2aWNlVHlwZSkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQoKS5m
cmFtZSgpKTsKICAgICBVUkwgY29tcGxldGVkVVJMOwpAQCAtMTkxLDcgKzE5MSw3IEBAIGJvb2wg
SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6d291bGRMb2FkQXNOZXRzY2FwZVBsdWdpbihjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QKICAgICAgICAgY29tcGxldGVkVVJMID0gZG9jdW1lbnQoKS5jb21w
bGV0ZVVSTCh1cmwpOwogCiAgICAgRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyID0gZG9jdW1lbnQo
KS5mcmFtZSgpLT5sb2FkZXIoKTsKLSAgICBpZiAoZnJhbWVMb2FkZXIuY2xpZW50KCkub2JqZWN0
Q29udGVudFR5cGUoY29tcGxldGVkVVJMLCBzZXJ2aWNlVHlwZSkgPT0gT2JqZWN0Q29udGVudE5l
dHNjYXBlUGx1Z2luKQorICAgIGlmIChmcmFtZUxvYWRlci5jbGllbnQoKS5vYmplY3RDb250ZW50
VHlwZShjb21wbGV0ZWRVUkwsIHNlcnZpY2VUeXBlKSA9PSBPYmplY3RDb250ZW50VHlwZTo6UGx1
Z0luKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0yOTUs
NyArMjk1LDcgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVXaWRnZXRJZk5l
Y2Vzc2FyeSgpCiAgICAgaWYgKCFyZW5kZXJFbWJlZGRlZE9iamVjdCgpIHx8IHJlbmRlckVtYmVk
ZGVkT2JqZWN0KCktPmlzUGx1Z2luVW5hdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgdXBkYXRlV2lkZ2V0KENyZWF0ZU9ubHlOb25OZXRzY2FwZVBsdWdpbnMpOworICAgIHVwZGF0
ZVdpZGdldChDcmVhdGVQbHVnaW5zOjpObyk7CiB9CiAKIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxl
bWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmgKaW5kZXggZDMzZWVlYmM1OTZiZTkwZThiZjkwM2I5YjRhMzBj
NWNmZmI2ZjIwNi4uOTg4ZDllNjgyNzQzMWZkOGEwYjMwZmIyNjM0YWYzNTliZjAyNGRiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTMyLDkg
KzMyLDkgQEAgY2xhc3MgTW91c2VFdmVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgV2lk
Z2V0OwogCi1lbnVtIFBsdWdpbkNyZWF0aW9uT3B0aW9uIHsKLSAgICBDcmVhdGVBbnlXaWRnZXRU
eXBlLAotICAgIENyZWF0ZU9ubHlOb25OZXRzY2FwZVBsdWdpbnMsCitlbnVtIGNsYXNzIENyZWF0
ZVBsdWdpbnMgeworICAgIE5vLAorICAgIFllcywKIH07CiAKIC8vIEJhc2UgY2xhc3MgZm9yIEhU
TUxBcHBsZXRFbGVtZW50LCBIVE1MRW1iZWRFbGVtZW50LCBhbmQgSFRNTE9iamVjdEVsZW1lbnQu
CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGlzcGxheVN0YXRlKERp
c3BsYXlTdGF0ZSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlV2lkZ2V0KFBs
dWdpbkNyZWF0aW9uT3B0aW9uKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVdpZGdldChD
cmVhdGVQbHVnaW5zKSA9IDA7CiAKICAgICBjb25zdCBTdHJpbmcmIHNlcnZpY2VUeXBlKCkgY29u
c3QgeyByZXR1cm4gbV9zZXJ2aWNlVHlwZTsgfQogICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29u
c3QgeyByZXR1cm4gbV91cmw7IH0KQEAgLTEwMCw3ICsxMDAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
SFRNTEltYWdlTG9hZGVyKiBpbWFnZUxvYWRlcigpIHsgcmV0dXJuIG1faW1hZ2VMb2FkZXIuZ2V0
KCk7IH0KIAogICAgIGJvb2wgYWxsb3dlZFRvTG9hZEZyYW1lVVJMKGNvbnN0IFN0cmluZyYgdXJs
KTsKLSAgICBib29sIHdvdWxkTG9hZEFzTmV0c2NhcGVQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmws
IGNvbnN0IFN0cmluZyYgc2VydmljZVR5cGUpOworICAgIGJvb2wgd291bGRMb2FkQXNQbHVnSW4o
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VydmljZVR5cGUpOwogCiAgICAgU3Ry
aW5nIG1fc2VydmljZVR5cGU7CiAgICAgU3RyaW5nIG1fdXJsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCmluZGV4IDhjODk2MjE3ZDQ4YjFhMzg4ZmM1NTUxMGI4OWZiYWYwZThhZWI3
YTUuLjkzNmFjNDg1YTQ3Y2Q4MjFhMmQ3ODY4ZTJlNzE0MWM0ODA1MzE2MzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTM5MCw3ICszOTAsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCByZWNyZWF0ZVBsdWdpbihXaWRnZXQqKSBvdmVycmlkZTsKICAgICBQYXNzUmVmUHRyPFdp
ZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVs
ZW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+Jikgb3ZlcnJpZGU7CiAKLSAgICBPYmplY3RDb250ZW50VHlwZSBvYmplY3RDb250ZW50
VHlwZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IHJldHVybiBPYmplY3RD
b250ZW50VHlwZSgpOyB9CisgICAgT2JqZWN0Q29udGVudFR5cGUgb2JqZWN0Q29udGVudFR5cGUo
Y29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyByZXR1cm4gT2JqZWN0Q29udGVu
dFR5cGU6Ok5vbmU7IH0KICAgICBTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBTdHJpbmcoKTsgfQogCiAgICAgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdp
bihXaWRnZXQqKSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJU
eXBlcy5oCmluZGV4IDUzOGIyYjBjYTYyMWU2OTE5MGZkMDYzZTVkZmI3OTQ2NjFjNzNmNWEuLjFi
YmVkOTcwNjFhMDhiM2JjYjk3NGM0ZjQ3MzQ1ZGRkZTgzMjg4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtODEsMTIgKzgxLDExIEBAIGVudW0gQ2xlYXJQ
cm92aXNpb25hbEl0ZW1Qb2xpY3kgewogICAgIFNob3VsZE5vdENsZWFyUHJvdmlzaW9uYWxJdGVt
CiB9OwogCi1lbnVtIE9iamVjdENvbnRlbnRUeXBlIHsKLSAgICBPYmplY3RDb250ZW50Tm9uZSwK
LSAgICBPYmplY3RDb250ZW50SW1hZ2UsCi0gICAgT2JqZWN0Q29udGVudEZyYW1lLAotICAgIE9i
amVjdENvbnRlbnROZXRzY2FwZVBsdWdpbiwKLSAgICBPYmplY3RDb250ZW50T3RoZXJQbHVnaW4K
K2VudW0gY2xhc3MgT2JqZWN0Q29udGVudFR5cGUgeworICAgIE5vbmUsCisgICAgSW1hZ2UsCisg
ICAgRnJhbWUsCisgICAgUGx1Z0luLAogfTsKIAogZW51bSBVbmxvYWRFdmVudFBvbGljeSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCAwOGE4NGE0NzUyOTFh
YTNkYzgzNTk3OTMzYjhhMDk3NjhlZDgwNDdlLi40YTdlNTU4OTc1YTFmMjg1NGI2ZWNiNTNlOWFi
YmIyYTY1MWY5OTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAK
QEAgLTM3NSw5ICszNzUsOSBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpzaG91bGRVc2VQbHVnaW4o
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvbwogICAgIE9iamVjdENv
bnRlbnRUeXBlIG9iamVjdFR5cGUgPSBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLm9iamVjdENv
bnRlbnRUeXBlKHVybCwgbWltZVR5cGUpOwogICAgIC8vIElmIGFuIG9iamVjdCdzIGNvbnRlbnQg
Y2FuJ3QgYmUgaGFuZGxlZCBhbmQgaXQgaGFzIG5vIGZhbGxiYWNrLCBsZXQKICAgICAvLyBpdCBi
ZSBoYW5kbGVkIGFzIGEgcGx1Z2luIHRvIHNob3cgdGhlIGJyb2tlbiBwbHVnaW4gaWNvbi4KLSAg
ICB1c2VGYWxsYmFjayA9IG9iamVjdFR5cGUgPT0gT2JqZWN0Q29udGVudE5vbmUgJiYgaGFzRmFs
bGJhY2s7CisgICAgdXNlRmFsbGJhY2sgPSBvYmplY3RUeXBlID09IE9iamVjdENvbnRlbnRUeXBl
OjpOb25lICYmIGhhc0ZhbGxiYWNrOwogCi0gICAgcmV0dXJuIG9iamVjdFR5cGUgPT0gT2JqZWN0
Q29udGVudE5vbmUgfHwgb2JqZWN0VHlwZSA9PSBPYmplY3RDb250ZW50TmV0c2NhcGVQbHVnaW4g
fHwgb2JqZWN0VHlwZSA9PSBPYmplY3RDb250ZW50T3RoZXJQbHVnaW47CisgICAgcmV0dXJuIG9i
amVjdFR5cGUgPT0gT2JqZWN0Q29udGVudFR5cGU6Ok5vbmUgfHwgb2JqZWN0VHlwZSA9PSBPYmpl
Y3RDb250ZW50VHlwZTo6UGx1Z0luOwogfQogCiBEb2N1bWVudCogU3ViZnJhbWVMb2FkZXI6OmRv
Y3VtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBkN2E1Y2ZmZGU1
MmEwMDZiOTJlNWZiNWNlNzBlMmMyYjAxY2U2NjRhLi5lMTUwNTlhMDYwYTViNWEwYTZlNTc4ZGY0
NThhNmE5ODNmZTY5OGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zMTI2LDcg
KzMxMjYsNyBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlRW1iZWRkZWRPYmplY3QoUmVuZGVyRW1i
ZWRkZWRPYmplY3QmIGVtYmVkZGVkT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIGlmIChwbHVnaW5FbGVtZW50Lm5lZWRzV2lkZ2V0VXBkYXRlKCkpCi0gICAg
ICAgICAgICBwbHVnaW5FbGVtZW50LnVwZGF0ZVdpZGdldChDcmVhdGVBbnlXaWRnZXRUeXBlKTsK
KyAgICAgICAgICAgIHBsdWdpbkVsZW1lbnQudXBkYXRlV2lkZ2V0KENyZWF0ZVBsdWdpbnM6Olll
cyk7CiAgICAgfSBlbHNlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCmluZGV4IDljNDhlZDc0YjMwNzQ1MGRmNTIyZDAwYmNmMzA4MDdmMjIzZjczNTYuLmVj
ZjJmNTAxNTZhZDJkZmUxNWI0ZjRhZDIxZGZjOTdmMDNhZjI2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
CkBAIC0xNjYyLDUxICsxNjYyLDMzIEBAIE9iamVjdENvbnRlbnRUeXBlIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpvYmplY3RDb250ZW50VHlwZShjb25zdCBVUkwmIHVybCwgY29uc3QKICAgICAgICAg
ICAgIHR5cGUgPSBbW05TVVJMRmlsZVR5cGVNYXBwaW5ncyBzaGFyZWRNYXBwaW5nc10gTUlNRVR5
cGVGb3JFeHRlbnNpb246ZXh0ZW5zaW9uXTsKICAgICAgICAgICAgIGlmICh0eXBlLmlzRW1wdHko
KSkgewogICAgICAgICAgICAgICAgIC8vIElmIG5vIE1JTUUgdHlwZSBpcyBzcGVjaWZpZWQsIHVz
ZSBhIHBsdWctaW4gaWYgd2UgaGF2ZSBvbmUgdGhhdCBjYW4gaGFuZGxlIHRoZSBleHRlbnNpb24u
Ci0gICAgICAgICAgICAgICAgaWYgKFdlYkJhc2VQbHVnaW5QYWNrYWdlICpwYWNrYWdlID0gW2dl
dFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSkgX3BsdWdpbkZvckV4dGVuc2lvbjpleHRlbnNpb25d
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChbcGFja2FnZSBpc0tpbmRPZkNsYXNzOltXZWJQ
bHVnaW5QYWNrYWdlIGNsYXNzXV0pIAotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9i
amVjdENvbnRlbnRPdGhlclBsdWdpbjsKLSNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
LSAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBBU1NF
UlQoW3BhY2thZ2UgaXNLaW5kT2ZDbGFzczpbV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlIGNsYXNz
XV0pOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnROZXRzY2Fw
ZVBsdWdpbjsKLSAgICAgICAgICAgICAgICAgICAgfQotI2VuZGlmCi0gICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGlmIChbZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKSBfcGx1
Z2luRm9yRXh0ZW5zaW9uOmV4dGVuc2lvbl0pCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBP
YmplY3RDb250ZW50VHlwZTo6UGx1Z0luOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQogCiAgICAgaWYgKHR5cGUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVu
dEZyYW1lOyAvLyBHbyBhaGVhZCBhbmQgaG9wZSB0aGF0IHdlIGNhbiBkaXNwbGF5IHRoZSBjb250
ZW50LgorICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudFR5cGU6OkZyYW1lOyAvLyBHbyBhaGVh
ZCBhbmQgaG9wZSB0aGF0IHdlIGNhbiBkaXNwbGF5IHRoZSBjb250ZW50LgorCisgICAgT2JqZWN0
Q29udGVudFR5cGUgcGx1Z0luVHlwZSA9IE9iamVjdENvbnRlbnRUeXBlOjpOb25lOworICAgIGlm
IChbZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKSBfcGx1Z2luRm9yTUlNRVR5cGU6dHlwZV0p
CisgICAgICAgIHBsdWdJblR5cGUgPSBPYmplY3RDb250ZW50VHlwZTo6UGx1Z0luOwogCi0gICAg
V2ViQmFzZVBsdWdpblBhY2thZ2UgKnBhY2thZ2UgPSBbZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdl
dCgpKSBfcGx1Z2luRm9yTUlNRVR5cGU6dHlwZV07Ci0gICAgT2JqZWN0Q29udGVudFR5cGUgcGx1
Z0luVHlwZSA9IE9iamVjdENvbnRlbnROb25lOwotICAgIGlmIChwYWNrYWdlKSB7Ci0jaWYgRU5B
QkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgICAgIGlmIChbcGFja2FnZSBpc0tpbmRPZkNs
YXNzOltXZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UgY2xhc3NdXSkKLSAgICAgICAgICAgIHBsdWdJ
blR5cGUgPSBPYmplY3RDb250ZW50TmV0c2NhcGVQbHVnaW47Ci0gICAgICAgIGVsc2UKLSNlbmRp
ZgotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoW3BhY2thZ2UgaXNLaW5kT2ZDbGFzczpb
V2ViUGx1Z2luUGFja2FnZSBjbGFzc11dKTsKLSAgICAgICAgICAgIHBsdWdJblR5cGUgPSBPYmpl
Y3RDb250ZW50T3RoZXJQbHVnaW47Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCiAgICAgaWYgKE1J
TUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZSh0eXBlKSkKLSAgICAgICAg
cmV0dXJuIE9iamVjdENvbnRlbnRJbWFnZTsKKyAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnRU
eXBlOjpJbWFnZTsKIAotICAgIGlmIChwbHVnSW5UeXBlICE9IE9iamVjdENvbnRlbnROb25lKQor
ICAgIGlmIChwbHVnSW5UeXBlICE9IE9iamVjdENvbnRlbnRUeXBlOjpOb25lKQogICAgICAgICBy
ZXR1cm4gcGx1Z0luVHlwZTsKIAogICAgIGlmIChbbV93ZWJGcmFtZS0+X3ByaXZhdGUtPndlYkZy
YW1lVmlldyBfdmlld0NsYXNzRm9yTUlNRVR5cGU6dHlwZV0pCi0gICAgICAgIHJldHVybiBPYmpl
Y3RDb250ZW50RnJhbWU7CisgICAgICAgIHJldHVybiBPYmplY3RDb250ZW50VHlwZTo6RnJhbWU7
CiAgICAgCi0gICAgcmV0dXJuIE9iamVjdENvbnRlbnROb25lOworICAgIHJldHVybiBPYmplY3RD
b250ZW50VHlwZTo6Tm9uZTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAg
ICByZXR1cm4gT2JqZWN0Q29udGVudE5vbmU7CisgICAgcmV0dXJuIE9iamVjdENvbnRlbnRUeXBl
OjpOb25lOwogfQogCiBzdGF0aWMgTlNNdXRhYmxlQXJyYXkqIGtpdChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgdmVjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGRmMmQxNjJjMzE3MjA2NDcwNjlh
YTUyNmY1ODkzOTE0NDlhNjdhNWMuLmM2ZTMzNDQwNGNmZWFhMDNlMmJmYTE1ZjZlNDEwYjIxOTdk
NjFlNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTEwNzAsMjAgKzEwNzAsMjAgQEAgT2JqZWN0
Q29udGVudFR5cGUgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0
IFVSTCYgdXJsLCBjb25zdAogICAgIH0KIAogICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBPYmplY3RDb250ZW50RnJhbWU7IC8vIEdvIGFoZWFkIGFuZCBob3BlIHRo
YXQgd2UgY2FuIGRpc3BsYXkgdGhlIGNvbnRlbnQuCisgICAgICAgIHJldHVybiBPYmplY3RDb250
ZW50VHlwZTo6RnJhbWU7IC8vIEdvIGFoZWFkIGFuZCBob3BlIHRoYXQgd2UgY2FuIGRpc3BsYXkg
dGhlIGNvbnRlbnQuCiAKICAgICBib29sIHBsdWdJblN1cHBvcnRzTUlNRVR5cGUgPSBQbHVnaW5E
YXRhYmFzZTo6aW5zdGFsbGVkUGx1Z2lucygpLT5pc01JTUVUeXBlUmVnaXN0ZXJlZChtaW1lVHlw
ZSk7CiAKICAgICBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRJbWFnZU1JTUVUeXBl
KG1pbWVUeXBlKSkKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok9iamVjdENvbnRlbnRJbWFnZTsK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok9iamVjdENvbnRlbnRUeXBlOjpJbWFnZTsKIAogICAg
IGlmIChwbHVnSW5TdXBwb3J0c01JTUVUeXBlKQotICAgICAgICByZXR1cm4gV2ViQ29yZTo6T2Jq
ZWN0Q29udGVudE5ldHNjYXBlUGx1Z2luOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6T2JqZWN0
Q29udGVudFR5cGU6OlBsdWdJbjsKIAogICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBv
cnRlZE5vbkltYWdlTUlNRVR5cGUobWltZVR5cGUpKQotICAgICAgICByZXR1cm4gV2ViQ29yZTo6
T2JqZWN0Q29udGVudEZyYW1lOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6T2JqZWN0Q29udGVu
dFR5cGU6OkZyYW1lOwogCi0gICAgcmV0dXJuIFdlYkNvcmU6Ok9iamVjdENvbnRlbnROb25lOwor
ICAgIHJldHVybiBXZWJDb3JlOjpPYmplY3RDb250ZW50VHlwZTo6Tm9uZTsKIH0KIAogdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsVG9TdGFydFBsdWdpbihjb25zdCBQ
bHVnaW5WaWV3KiBwbHVnaW5WaWV3KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAppbmRleCA5MDgwMGE5MmM3ZTkzMDFhMzU5YTQwZmFhNmQ4ZDRiYjZhMjc2MDg3Li41Zjc2
YmM5ZjQxOWUzYzRhNWYzMTlmOTM4OTRkZWI2YTFlNDRkZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtMTUyMyw3ICsxNTIzLDcgQEAgT2JqZWN0Q29udGVudFR5cGUg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0IFVSTCYgdXJsLCBj
b25zdAogICAgICAgICBTdHJpbmcgcGF0aCA9IHVybC5wYXRoKCk7CiAgICAgICAgIGF1dG8gZG90
UG9zaXRpb24gPSBwYXRoLnJldmVyc2VGaW5kKCcuJyk7CiAgICAgICAgIGlmIChkb3RQb3NpdGlv
biA9PSBub3RGb3VuZCkKLSAgICAgICAgICAgIHJldHVybiBPYmplY3RDb250ZW50RnJhbWU7Cisg
ICAgICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudFR5cGU6OkZyYW1lOwogICAgICAgICBTdHJp
bmcgZXh0ZW5zaW9uID0gcGF0aC5zdWJzdHJpbmcoZG90UG9zaXRpb24gKyAxKS5jb252ZXJ0VG9B
U0NJSUxvd2VyY2FzZSgpOwogCiAgICAgICAgIC8vIFRyeSB0byBndWVzcyB0aGUgTUlNRSB0eXBl
IGZyb20gdGhlIGV4dGVuc2lvbi4KQEAgLTE1MzIsMzIgKzE1MzIsMzIgQEAgT2JqZWN0Q29udGVu
dFR5cGUgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0IFVSTCYg
dXJsLCBjb25zdAogICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBhIHBsdWctaW4gYXJv
dW5kIHRoYXQgY2FuIGhhbmRsZSB0aGUgZXh0ZW5zaW9uLgogICAgICAgICAgICAgaWYgKFdlYlBh
Z2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgICAgICAgICBpZiAocGx1
Z2luU3VwcG9ydHNFeHRlbnNpb24od2ViUGFnZS0+Y29yZVBhZ2UoKS0+cGx1Z2luRGF0YSgpLCBl
eHRlbnNpb24pKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudE5ldHNj
YXBlUGx1Z2luOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudFR5cGU6
OlBsdWdJbjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBPYmplY3RDb250ZW50
RnJhbWU7CisgICAgICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudFR5cGU6OkZyYW1lOwogICAg
ICAgICB9CiAgICAgfQogCiAgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1h
Z2VNSU1FVHlwZShtaW1lVHlwZSkpCi0gICAgICAgIHJldHVybiBPYmplY3RDb250ZW50SW1hZ2U7
CisgICAgICAgIHJldHVybiBPYmplY3RDb250ZW50VHlwZTo6SW1hZ2U7CiAKICAgICBpZiAoV2Vi
UGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewogICAgICAgICBhdXRvIGFsbG93ZWRQ
bHVnaW5UeXBlcyA9IHdlYkZyYW1lKCktPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5zdWJmcmFtZUxv
YWRlcigpLmFsbG93UGx1Z2lucygpCiAgICAgICAgICAgICA/IFBsdWdpbkRhdGE6OkFsbFBsdWdp
bnMgOiBQbHVnaW5EYXRhOjpPbmx5QXBwbGljYXRpb25QbHVnaW5zOwogICAgICAgICBpZiAod2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+cGx1Z2luRGF0YSgpLnN1cHBvcnRzTWltZVR5cGUobWltZVR5cGUs
IGFsbG93ZWRQbHVnaW5UeXBlcykpCi0gICAgICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudE5l
dHNjYXBlUGx1Z2luOworICAgICAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnRUeXBlOjpQbHVn
SW47CiAgICAgfQogCiAgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkTm9uSW1h
Z2VNSU1FVHlwZShtaW1lVHlwZSkpCi0gICAgICAgIHJldHVybiBPYmplY3RDb250ZW50RnJhbWU7
CisgICAgICAgIHJldHVybiBPYmplY3RDb250ZW50VHlwZTo6RnJhbWU7CiAKICNpZiBQTEFURk9S
TShJT1MpCiAgICAgLy8gaU9TIGNhbiByZW5kZXIgUERGIGluIDxvYmplY3Q+LzxlbWJlZD4gdmlh
IFBERkRvY3VtZW50SW1hZ2UuCiAgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzUERGT3JQb3N0
U2NyaXB0TUlNRVR5cGUobWltZVR5cGUpKQotICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudElt
YWdlOworICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudFR5cGU6OkltYWdlOwogI2VuZGlmCiAK
LSAgICByZXR1cm4gT2JqZWN0Q29udGVudE5vbmU7CisgICAgcmV0dXJuIE9iamVjdENvbnRlbnRU
eXBlOjpOb25lOwogfQogCiBTdHJpbmcgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om92ZXJyaWRlTWVk
aWFUeXBlKCkgY29uc3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>