<?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>158203</bug_id>
          
          <creation_ts>2016-05-30 07:05:13 -0700</creation_ts>
          <short_desc>WebRTC: Update MediaEndpointPeerConnection::createOffer() to use the transceiver set</short_desc>
          <delta_ts>2016-06-06 23:07:05 -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>WebCore Misc.</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>
          
          <blocked>143211</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Bergkvist">adam.bergkvist</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1197610</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-05-30 07:05:13 -0700</bug_when>
    <thetext>Currently MediaEndpointPeerConnection::createOffer() uses the sender set (RTCRtpSender objects) to create an offer, but the latest WebRTC 1.0 specifications [1][2] describe this process in terms of the RTCRtpTranceiver object.

[1] http://rtcweb-wg.github.io/jsep/
[2] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.htm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198676</commentid>
    <comment_count>1</comment_count>
      <attachid>280366</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-02 14:16:11 -0700</bug_when>
    <thetext>Created attachment 280366
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198928</commentid>
    <comment_count>2</comment_count>
      <attachid>280366</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-06-03 08:09:18 -0700</bug_when>
    <thetext>Comment on attachment 280366
Proposed patch

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

&gt; Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h:110
&gt; +    unsigned m_sdpAnswerSessionVersion { 0 };

Nit: This isn&apos;t used (yet?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198964</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-03 10:52:47 -0700</bug_when>
    <thetext>Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h:110
&gt; &gt; +    unsigned m_sdpAnswerSessionVersion { 0 };
&gt; 
&gt; Nit: This isn&apos;t used (yet?).

True. I can remove it before committing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199603</commentid>
    <comment_count>4</comment_count>
      <attachid>280605</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-06 10:21:39 -0700</bug_when>
    <thetext>Created attachment 280605
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199715</commentid>
    <comment_count>5</comment_count>
      <attachid>280605</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-06 14:16:52 -0700</bug_when>
    <thetext>Comment on attachment 280605
Patch for landing

Thanks for reviewing Eric!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199718</commentid>
    <comment_count>6</comment_count>
      <attachid>280605</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-06 14:39:33 -0700</bug_when>
    <thetext>Comment on attachment 280605
Patch for landing

Clearing flags on attachment: 280605

Committed r201728: &lt;http://trac.webkit.org/changeset/201728&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280366</attachid>
            <date>2016-06-02 14:16:11 -0700</date>
            <delta_ts>2016-06-03 08:09:18 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>transceiver-based-create-offer_0.patch</filename>
            <type>text/plain</type>
            <size>24785</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NDZlMDFiLi5kZGIyMDA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUgQEAKIDIwMTYtMDYt
MDIgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgogCisgICAg
ICAgIFdlYlJUQzogVXBkYXRlIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlT2Zm
ZXIoKSB0byB1c2UgdGhlIHRyYW5zY2VpdmVyIHNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MjAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCBleGlzdGluZyB0ZXN0LgorCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pbnNwZWN0LW9mZmVyLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWlu
c3BlY3Qtb2ZmZXIuaHRtbDoKKyAgICAgICAgQWRkIHZlcmlmaWNhdGlvbiBvZiBtaWQgYXR0cmli
dXRlIFsxXSAoY29ycmVzcG9uZHMgdG8gdGhlIFJUQ1J0cFRyYW5zY2VpdmVyIG1pZCBhdHRyaWJ1
dGUpLgorICAgICAgICBbMV0gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzU4ODgKKyAg
ICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9zZHAtdXRpbHMuanM6IEFkZGVkLgor
ICAgICAgICAocHJpbnRDb21wYXJhYmxlU2Vzc2lvbkRlc2NyaXB0aW9uKToKKyAgICAgICAgKHZl
cmlmaWVkKToKKyAgICAgICAgKG1hdGNoKToKKyAgICAgICAgTW92ZSB0aGUgcHJpbnRDb21wYXJh
YmxlU2Vzc2lvbkRlc2NyaXB0aW9uIGZ1bmN0aW9uIHRvIGEgc2VwYXJhdGUgZmlsZQorICAgICAg
ICB0byBtYWtlIGl0IHVzYWJsZSBpbiBvdGhlciAoZnV0dXJlKSB0ZXN0cy4KKworMjAxNi0wNi0w
MiAgQWRhbSBCZXJna3Zpc3QgIDxhZGFtLmJlcmdrdmlzdEBlcmljc3Nvbi5jb20+CisKICAgICAg
ICAgV2ViUlRDOiBVcGRhdGUgUlRDUGVlckNvbm5lY3Rpb24uYWRkVHJhY2soKSB0byBjcmVhdGUg
KG9yIHJldXNlKSBhbiBSVENSdHBUcmFuc2NlaXZlcgogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MTkxCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taW5zcGVjdC1vZmZlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWlu
c3BlY3Qtb2ZmZXItZXhwZWN0ZWQudHh0CmluZGV4IDAzYWVlMzYuLmIzNWU5YWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taW5zcGVj
dC1vZmZlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1pbnNwZWN0LW9mZmVyLWV4cGVjdGVkLnR4dApAQCAtMTUsNiArMTUs
NyBAQCBtPWF1ZGlvIDkgVURQL1RMUy9SVFAvU0FWUEYgMTExIDggMAogYz1JTiBJUDQgMC4wLjAu
MAogYT1ydGNwLW11eAogYT1zZW5kcmVjdgorYT1taWQ6e21pZDpPS30KIGE9cnRwbWFwOjExMSBP
UFVTLzQ4MDAwLzIKIGE9cnRwbWFwOjggUENNQS84MDAwCiBhPXJ0cG1hcDowIFBDTVUvODAwMApA
QCAtMzgsNiArMzksNyBAQCBtPWF1ZGlvIDkgVURQL1RMUy9SVFAvU0FWUEYgMTExIDggMAogYz1J
TiBJUDQgMC4wLjAuMAogYT1ydGNwLW11eAogYT1zZW5kcmVjdgorYT1taWQ6e21pZDpPS30KIGE9
cnRwbWFwOjExMSBPUFVTLzQ4MDAwLzIKIGE9cnRwbWFwOjggUENNQS84MDAwCiBhPXJ0cG1hcDow
IFBDTVUvODAwMApAQCAtNTEsNiArNTMsNyBAQCBtPXZpZGVvIDkgVURQL1RMUy9SVFAvU0FWUEYg
MTAzIDEwMCAxMjAKIGM9SU4gSVA0IDAuMC4wLjAKIGE9cnRjcC1tdXgKIGE9c2VuZHJlY3YKK2E9
bWlkOnttaWQ6T0t9CiBhPXJ0cG1hcDoxMDMgSDI2NC85MDAwMAogYT1ydHBtYXA6MTAwIFZQOC85
MDAwMAogYT1ydHBtYXA6MTIwIFJUWC85MDAwMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pbnNwZWN0LW9mZmVyLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWluc3BlY3Qtb2ZmZXIu
aHRtbAppbmRleCAyZDFjMWE4Li4yNTQzODcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWluc3BlY3Qtb2ZmZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWluc3BlY3Qtb2Zm
ZXIuaHRtbApAQCAtMiw2ICsyLDcgQEAKIDxodG1sPgogICAgIDxoZWFkPgogICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3NkcC11dGlscy5qcyI+PC9zY3JpcHQ+CiAgICAg
PC9oZWFkPgogICAgIDxib2R5PgogICAgICAgICA8c2NyaXB0PgpAQCAtNTEsODcgKzUyLDYgQEAK
ICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0pOwogCi0gICAg
ICAgICAgICAvLyBWYXJpYWJsZSBmaWVsZHMgKGUuZy4gZ2VuZXJhdGVkIGlkcykgYXJlIHZlcmlm
aWVkIGFuZCByZXBsYWNlZCB3aXRoIHByZWRpY3RhYmxlCi0gICAgICAgICAgICAvLyBsYWJsZXMu
IFRoZSByZXN1bHQgY2FuIGJlIGNvbXBhcmVkIHdpdGggYSBwcmVkZWZpbmVkIGV4cGVjdGVkIG91
dHB1dC4KLSAgICAgICAgICAgIGZ1bmN0aW9uIHByaW50Q29tcGFyYWJsZVNlc3Npb25EZXNjcmlw
dGlvbihzZXNzaW9uRGVzY3JpcHRpb24sIG1kZXNjVmFyaWFibGVzKSB7Ci0gICAgICAgICAgICAg
ICAgZGVidWcoIj09PSBSVENTZXNzaW9uRGVzY3JpcHRpb24gPT09Iik7Ci0gICAgICAgICAgICAg
ICAgZGVidWcoInR5cGU6ICIgKyBzZXNzaW9uRGVzY3JpcHRpb24udHlwZSArICIsIHNkcDoiKTsK
LQotICAgICAgICAgICAgICAgIHZhciBzZHAgPSBzZXNzaW9uRGVzY3JpcHRpb24uc2RwOwotCi0g
ICAgICAgICAgICAgICAgdmFyIHJlZ2V4cCA9IHsKLSAgICAgICAgICAgICAgICAgICAgIm9saW5l
IjogIl5vPSgtKSAoW1xcZF0rKSAuKiQiLAotICAgICAgICAgICAgICAgICAgICAibXNpZHNlbWFu
dGljIjogIl5hPW1zaWQtc2VtYW50aWM6ICpXTVMgLiokIiwKLSAgICAgICAgICAgICAgICAgICAg
Im1saW5lIjogIl5tPS4qJCIsCi0gICAgICAgICAgICAgICAgICAgICJjbmFtZSI6ICJeYT1zc3Jj
OihcXGQrKSBjbmFtZTooW1xcdysvXFwtQFxcLlxce1xcfV0rKS4qJCIsCi0gICAgICAgICAgICAg
ICAgICAgICJtc2lkIjogIl5hPShzc3JjOlxcZCsgKT9tc2lkOihbXFx3Ky9cXC09XSspICsoW1xc
dysvXFwtPV0rKS4qJCIsCi0gICAgICAgICAgICAgICAgICAgICJpY2V1ZnJhZyI6ICJeYT1pY2Ut
dWZyYWc6KFtcXHcrL10qKS4qJCIsCi0gICAgICAgICAgICAgICAgICAgICJpY2Vwd2QiOiAiXmE9
aWNlLXB3ZDooW1xcdysvXSo9KikuKiQiLAotICAgICAgICAgICAgICAgIH07Ci0KLSAgICAgICAg
ICAgICAgICB2YXIgbWRlc2NJbmRleCA9IC0xOwotICAgICAgICAgICAgICAgIHNkcC5zcGxpdCgi
XHJcbiIpLmZvckVhY2goZnVuY3Rpb24gKGxpbmUpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KG1hdGNoKGxpbmUsIHJlZ2V4cC5tbGluZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8v
IE1lZGlhIGJsb2NrICgiaGVhZGVyIiBsaW5lKQotICAgICAgICAgICAgICAgICAgICAgICAgbWRl
c2NJbmRleCsrOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1kZXNjSW5kZXggPCAw
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBTZXNzaW9uIGJsb2NrCi0gICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgb2xpbmU7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChv
bGluZSA9IG1hdGNoKGxpbmUsIHJlZ2V4cC5vbGluZSkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGluZSA9IGxpbmUucmVwbGFjZShvbGluZVsyXSwgdmVyaWZpZWQoInNlc3Npb24taWQi
KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChtYXRjaChsaW5lLCByZWdleHAu
bXNpZHNlbWFudGljKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1kZXNjVmFyaWFi
bGVzLmZvckVhY2goZnVuY3Rpb24gKHZhcmlhYmxlcykgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKHZhcmlhYmxlcy5zdHJlYW1JZCwgdmVyaWZp
ZWQoIm1lZGlhLXN0cmVhbS1pZCIpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1lZGlhIGJsb2NrIChjb250ZW50IGxpbmVzKQot
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNuYW1lOwotICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIG1zaWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaWNldWZyYWc7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgaWNlcHdkOwotCi0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoY25hbWUgPSBtYXRjaChsaW5lLCByZWdleHAuY25hbWUpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZShjbmFtZVsxXSwgdmVyaWZpZWQoInNz
cmMiKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZShj
bmFtZVsyXSwgdmVyaWZpZWQoImNuYW1lIikpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKG1zaWQgPSBtYXRjaChsaW5lLCByZWdleHAubXNpZCkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAobXNpZFsxXSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGluZSA9IGxpbmUucmVwbGFjZShtc2lkWzFdLCB2ZXJpZmllZCgic3NyYyIpKTsKLQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YXJpYWJsZXMgPSBtZGVzY1ZhcmlhYmxl
c1ttZGVzY0luZGV4XTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtZWRpYVN0
cmVhbUlkID0gbXNpZFsyXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3RyZWFt
SWRWZXJpZmllZCA9IHZlcmlmaWVkKCJtZWRpYS1zdHJlYW0taWQiLCBtZWRpYVN0cmVhbUlkICE9
IHZhcmlhYmxlcy5zdHJlYW1JZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSA9
IGxpbmUucmVwbGFjZShtZWRpYVN0cmVhbUlkLCBzdHJlYW1JZFZlcmlmaWVkKTsKLQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBtZWRpYVN0cmVhbVRyYWNrSWQgPSBtc2lkWzNdOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0cmFja0lkVmVyaWZpZWQgPSB2ZXJpZmll
ZCgibWVkaWEtc3RyZWFtLXRyYWNrLWlkIiwgbWVkaWFTdHJlYW1UcmFja0lkICE9IHZhcmlhYmxl
cy50cmFja0lkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yZXBs
YWNlKG1lZGlhU3RyZWFtVHJhY2tJZCwgdHJhY2tJZFZlcmlmaWVkKTsKLQotICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChpY2V1ZnJhZyA9IG1hdGNoKGxpbmUsIHJlZ2V4cC5pY2V1
ZnJhZykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZShp
Y2V1ZnJhZ1sxXSwgdmVyaWZpZWQoImljZS11ZnJhZyIpKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKGljZXB3ZCA9IG1hdGNoKGxpbmUsIHJlZ2V4cC5pY2Vwd2QpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoaWNlcHdkWzFdLCB2ZXJp
ZmllZCgiaWNlLXBhc3N3b3JkIikpOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgICAgICAgaWYgKGxpbmUpCi0gICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhsaW5l
KTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIGRlYnVnKCI9PT0iKTsK
LSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIHZlcmlmaWVkKG5hbWUsIGlzRmFpbHVyZSkgewotICAgICAgICAgICAgICAgIHJl
dHVybiAieyIgKyBuYW1lICsgIjoiICsgKGlzRmFpbHVyZSA/ICJGQUlMRUQiIDogIk9LIikgKyAi
fSI7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIG1hdGNoKGRhdGEsIHBh
dHRlcm4pIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5tYXRjaChuZXcgUmVnRXhwKHBh
dHRlcm4pKTsKLSAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwogICAgICAgICAgICAgd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL3Nk
cC11dGlscy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL3NkcC11
dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjMyZDA1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvc2Rw
LXV0aWxzLmpzCkBAIC0wLDAgKzEsODkgQEAKKyhmdW5jdGlvbiAoZ2xvYmFsT2JqZWN0KSB7Cisg
ICAgLy8gVmFyaWFibGUgZmllbGRzIChlLmcuIGdlbmVyYXRlZCBpZHMpIGFyZSB2ZXJpZmllZCBh
bmQgcmVwbGFjZWQgd2l0aCBwcmVkaWN0YWJsZQorICAgIC8vIGxhYmxlcy4gVGhlIHJlc3VsdCBj
YW4gYmUgY29tcGFyZWQgd2l0aCBhIHByZWRlZmluZWQgZXhwZWN0ZWQgb3V0cHV0LgorICAgIGZ1
bmN0aW9uIHByaW50Q29tcGFyYWJsZVNlc3Npb25EZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRp
b24sIG1kZXNjVmFyaWFibGVzKSB7CisgICAgICAgIGRlYnVnKCI9PT0gUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uID09PSIpOworICAgICAgICBkZWJ1ZygidHlwZTogIiArIHNlc3Npb25EZXNjcmlwdGlv
bi50eXBlICsgIiwgc2RwOiIpOworCisgICAgICAgIHZhciBzZHAgPSBzZXNzaW9uRGVzY3JpcHRp
b24uc2RwOworCisgICAgICAgIHZhciByZWdleHAgPSB7CisgICAgICAgICAgICAib2xpbmUiOiAi
Xm89KC0pIChbXFxkXSspIC4qJCIsCisgICAgICAgICAgICAibXNpZHNlbWFudGljIjogIl5hPW1z
aWQtc2VtYW50aWM6ICpXTVMgLiokIiwKKyAgICAgICAgICAgICJtbGluZSI6ICJebT0uKiQiLAor
ICAgICAgICAgICAgImNuYW1lIjogIl5hPXNzcmM6KFxcZCspIGNuYW1lOihbXFx3Ky9cXC1AXFwu
XFx7XFx9XSspLiokIiwKKyAgICAgICAgICAgICJtaWQiOiAiXmE9bWlkOihbISMkJSYnKistLlxc
d10qKS4qJCIsCisgICAgICAgICAgICAibXNpZCI6ICJeYT0oc3NyYzpcXGQrICk/bXNpZDooW1xc
dysvXFwtPV0rKSArKFtcXHcrL1xcLT1dKykuKiQiLAorICAgICAgICAgICAgImljZXVmcmFnIjog
Il5hPWljZS11ZnJhZzooW1xcdysvXSopLiokIiwKKyAgICAgICAgICAgICJpY2Vwd2QiOiAiXmE9
aWNlLXB3ZDooW1xcdysvXSo9KikuKiQiLAorICAgICAgICB9OworCisgICAgICAgIHZhciBtZGVz
Y0luZGV4ID0gLTE7CisgICAgICAgIHNkcC5zcGxpdCgiXHJcbiIpLmZvckVhY2goZnVuY3Rpb24g
KGxpbmUpIHsKKyAgICAgICAgICAgIGlmIChtYXRjaChsaW5lLCByZWdleHAubWxpbmUpKSB7Cisg
ICAgICAgICAgICAgICAgLy8gTWVkaWEgYmxvY2sgKCJoZWFkZXIiIGxpbmUpCisgICAgICAgICAg
ICAgICAgbWRlc2NJbmRleCsrOworICAgICAgICAgICAgfSBlbHNlIGlmIChtZGVzY0luZGV4IDwg
MCkgeworICAgICAgICAgICAgICAgIC8vIFNlc3Npb24gYmxvY2sKKyAgICAgICAgICAgICAgICB2
YXIgb2xpbmU7CisKKyAgICAgICAgICAgICAgICBpZiAob2xpbmUgPSBtYXRjaChsaW5lLCByZWdl
eHAub2xpbmUpKQorICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKG9saW5l
WzJdLCB2ZXJpZmllZCgic2Vzc2lvbi1pZCIpKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICht
YXRjaChsaW5lLCByZWdleHAubXNpZHNlbWFudGljKSkgeworICAgICAgICAgICAgICAgICAgICBt
ZGVzY1ZhcmlhYmxlcy5mb3JFYWNoKGZ1bmN0aW9uICh2YXJpYWJsZXMpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UodmFyaWFibGVzLnN0cmVhbUlkLCB2ZXJp
ZmllZCgibWVkaWEtc3RyZWFtLWlkIikpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIE1l
ZGlhIGJsb2NrIChjb250ZW50IGxpbmVzKQorICAgICAgICAgICAgICAgIHZhciBjbmFtZTsKKyAg
ICAgICAgICAgICAgICB2YXIgbWlkOworICAgICAgICAgICAgICAgIHZhciBtc2lkOworICAgICAg
ICAgICAgICAgIHZhciBpY2V1ZnJhZzsKKyAgICAgICAgICAgICAgICB2YXIgaWNlcHdkOworCisg
ICAgICAgICAgICAgICAgaWYgKGNuYW1lID0gbWF0Y2gobGluZSwgcmVnZXhwLmNuYW1lKSkgewor
ICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKGNuYW1lWzFdLCB2ZXJpZmll
ZCgic3NyYyIpKTsKKyAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZShjbmFt
ZVsyXSwgdmVyaWZpZWQoImNuYW1lIikpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWlk
ID0gbWF0Y2gobGluZSwgcmVnZXhwLm1pZCkpCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBs
aW5lLnJlcGxhY2UobWlkWzFdLCB2ZXJpZmllZCgibWlkIikpCisgICAgICAgICAgICAgICAgZWxz
ZSBpZiAobXNpZCA9IG1hdGNoKGxpbmUsIHJlZ2V4cC5tc2lkKSkgeworICAgICAgICAgICAgICAg
ICAgICBpZiAobXNpZFsxXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJl
cGxhY2UobXNpZFsxXSwgdmVyaWZpZWQoInNzcmMiKSk7CisKKyAgICAgICAgICAgICAgICAgICAg
dmFyIHZhcmlhYmxlcyA9IG1kZXNjVmFyaWFibGVzW21kZXNjSW5kZXhdOworCisgICAgICAgICAg
ICAgICAgICAgIHZhciBtZWRpYVN0cmVhbUlkID0gbXNpZFsyXTsKKyAgICAgICAgICAgICAgICAg
ICAgdmFyIHN0cmVhbUlkVmVyaWZpZWQgPSB2ZXJpZmllZCgibWVkaWEtc3RyZWFtLWlkIiwgbWVk
aWFTdHJlYW1JZCAhPSB2YXJpYWJsZXMuc3RyZWFtSWQpOworICAgICAgICAgICAgICAgICAgICBs
aW5lID0gbGluZS5yZXBsYWNlKG1lZGlhU3RyZWFtSWQsIHN0cmVhbUlkVmVyaWZpZWQpOworCisg
ICAgICAgICAgICAgICAgICAgIHZhciBtZWRpYVN0cmVhbVRyYWNrSWQgPSBtc2lkWzNdOworICAg
ICAgICAgICAgICAgICAgICB2YXIgdHJhY2tJZFZlcmlmaWVkID0gdmVyaWZpZWQoIm1lZGlhLXN0
cmVhbS10cmFjay1pZCIsIG1lZGlhU3RyZWFtVHJhY2tJZCAhPSB2YXJpYWJsZXMudHJhY2tJZCk7
CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UobWVkaWFTdHJlYW1UcmFj
a0lkLCB0cmFja0lkVmVyaWZpZWQpOworCisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpY2V1
ZnJhZyA9IG1hdGNoKGxpbmUsIHJlZ2V4cC5pY2V1ZnJhZykpCisgICAgICAgICAgICAgICAgICAg
IGxpbmUgPSBsaW5lLnJlcGxhY2UoaWNldWZyYWdbMV0sIHZlcmlmaWVkKCJpY2UtdWZyYWciKSk7
CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaWNlcHdkID0gbWF0Y2gobGluZSwgcmVnZXhwLmlj
ZXB3ZCkpCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoaWNlcHdkWzFd
LCB2ZXJpZmllZCgiaWNlLXBhc3N3b3JkIikpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBpZiAobGluZSkKKyAgICAgICAgICAgICAgICBkZWJ1ZyhsaW5lKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgZGVidWcoIj09PSIpOworICAgICAgICBkZWJ1ZygiIik7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gdmVyaWZpZWQobmFtZSwgaXNGYWlsdXJlKSB7CisgICAgICAgIHJldHVybiAieyIg
KyBuYW1lICsgIjoiICsgKGlzRmFpbHVyZSA/ICJGQUlMRUQiIDogIk9LIikgKyAifSI7CisgICAg
fQorCisgICAgZnVuY3Rpb24gbWF0Y2goZGF0YSwgcGF0dGVybikgeworICAgICAgICByZXR1cm4g
ZGF0YS5tYXRjaChuZXcgUmVnRXhwKHBhdHRlcm4pKTsKKyAgICB9CisKKyAgICAvLyBFeHBvc2Vk
IGZ1bmN0aW9uKHMpCisgICAgZ2xvYmFsT2JqZWN0LnByaW50Q29tcGFyYWJsZVNlc3Npb25EZXNj
cmlwdGlvbiA9IHByaW50Q29tcGFyYWJsZVNlc3Npb25EZXNjcmlwdGlvbjsKKworfSkoc2VsZik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYWUyOTU1Yy4uODk5ZjY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3
IEBACiAyMDE2LTA2LTAyICBBZGFtIEJlcmdrdmlzdCAgPGFkYW0uYmVyZ2t2aXN0QGVyaWNzc29u
LmNvbT4KIAorICAgICAgICBXZWJSVEM6IFVwZGF0ZSBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rp
b246OmNyZWF0ZU9mZmVyKCkgdG8gdXNlIHRoZSB0cmFuc2NlaXZlciBzZXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODIwMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBhbiBTRFAgb2ZmZXIg
YmFzZWQgb24gdGhlIFJUQ1BlZXJDb25uZWN0aW9uIG9iamVjdCdzIHNldCBvZiBSVENSdHBUcmFu
c2NlaXZlciBvYmplY3RzCisgICAgICAgIChpbnN0ZWFkIG9mIFJUQ1J0cFNlbmRlciBvYmplY3Rz
KS4KKworICAgICAgICBVcGRhdGVkIGV4aXN0aW5nIHRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24taW5zcGVjdC1vZmZlci5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjptYXRjaFRyYW5zY2VpdmVyKToKKyAgICAgICAgKFdlYkNvcmU6Om1hdGNoVHJhbnNjZWl2
ZXJCeU1pZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246
OmNyZWF0ZU9mZmVyVGFzayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVu
ZHBvaW50UGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICBSZW1vdmUgZ2V0U2VuZGVycygpIHdoaWNo
IGlzIHJlcGxhY2VkIGJ5IGdldFRyYW5zY2VpdmVycygpLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1NEUFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25maWd1cmF0aW9uRnJv
bUpTT04pOgorICAgICAgICAoV2ViQ29yZTo6Y29uZmlndXJhdGlvblRvSlNPTik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9zZHAuanM6CisgICAgICAgIChTRFAucGFyc2UpOgorICAg
ICAgICAoU0RQLmdlbmVyYXRlKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG1pZCBhdHRyaWJ1
dGUuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlck1lZGlhRGVzY3JpcHRpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJNZWRpYURlc2NyaXB0aW9uOjptaWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UGVlck1lZGlhRGVzY3JpcHRpb246OnNldE1pZCk6CisgICAgICAgIChXZWJD
b3JlOjpQZWVyTWVkaWFEZXNjcmlwdGlvbjo6Y2xvbmUpOgorCisyMDE2LTA2LTAyICBBZGFtIEJl
cmdrdmlzdCAgPGFkYW0uYmVyZ2t2aXN0QGVyaWNzc29uLmNvbT4KKwogICAgICAgICBXZWJSVEM6
IFVwZGF0ZSBSVENQZWVyQ29ubmVjdGlvbi5hZGRUcmFjaygpIHRvIGNyZWF0ZSAob3IgcmV1c2Up
IGFuIFJUQ1J0cFRyYW5zY2VpdmVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTgxOTEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3Bw
CmluZGV4IDk2NjhmMzAuLmJmOGFmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bi5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFt
ZXNwYWNlIFBlZXJDb25uZWN0aW9uOwordXNpbmcgbmFtZXNwYWNlIFBlZXJDb25uZWN0aW9uU3Rh
dGVzOwogCiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBlZXJDb25uZWN0aW9uQmFja2VuZD4gY3Jl
YXRlTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uKFBlZXJDb25uZWN0aW9uQmFja2VuZENsaWVu
dCogY2xpZW50KQogewpAQCAtOTUsNiArOTYsMjIgQEAgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0
aW9uOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24oUGVlckNvbm5lY3Rpb25CYWNrZW5kQ2wK
ICAgICBtX21lZGlhRW5kcG9pbnQtPmdlbmVyYXRlRHRsc0luZm8oKTsKIH0KIAorc3RhdGljIFJU
Q1J0cFRyYW5zY2VpdmVyKiBtYXRjaFRyYW5zY2VpdmVyKGNvbnN0IFJ0cFRyYW5zY2VpdmVyVmVj
dG9yJiB0cmFuc2NlaXZlcnMsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248Ym9vbChSVENSdHBUcmFuc2Nl
aXZlciYpPiYgbWF0Y2hGdW5jdGlvbikKK3sKKyAgICBmb3IgKGF1dG8mIHRyYW5zY2VpdmVyIDog
dHJhbnNjZWl2ZXJzKSB7CisgICAgICAgIGlmIChtYXRjaEZ1bmN0aW9uKCp0cmFuc2NlaXZlcikp
CisgICAgICAgICAgICByZXR1cm4gdHJhbnNjZWl2ZXIuZ2V0KCk7CisgICAgfQorICAgIHJldHVy
biBudWxscHRyOworfQorCitzdGF0aWMgUlRDUnRwVHJhbnNjZWl2ZXIqIG1hdGNoVHJhbnNjZWl2
ZXJCeU1pZChjb25zdCBSdHBUcmFuc2NlaXZlclZlY3RvciYgdHJhbnNjZWl2ZXJzLCBjb25zdCBT
dHJpbmcmIG1pZCkKK3sKKyAgICByZXR1cm4gbWF0Y2hUcmFuc2NlaXZlcih0cmFuc2NlaXZlcnMs
IFsmbWlkXSAoUlRDUnRwVHJhbnNjZWl2ZXImIGN1cnJlbnQpIHsKKyAgICAgICAgcmV0dXJuIGN1
cnJlbnQubWlkKCkgPT0gbWlkOworICAgIH0pOworfQorCiB2b2lkIE1lZGlhRW5kcG9pbnRQZWVy
Q29ubmVjdGlvbjo6cnVuVGFzayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgdGFzaykK
IHsKICAgICBpZiAobV9kdGxzRmluZ2VycHJpbnQuaXNOdWxsKCkpIHsKQEAgLTEyOCwyMSArMTQ1
LDQ3IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpjcmVhdGVPZmZlclRhc2so
UlRDT2ZmZXJPcHRpb25zJiwgU2Vzc2lvbkRlc2NyCiB7CiAgICAgQVNTRVJUKCFtX2R0bHNGaW5n
ZXJwcmludC5pc0VtcHR5KCkpOwogCisgICAgaWYgKG1fY2xpZW50LT5pbnRlcm5hbFNpZ25hbGlu
Z1N0YXRlKCkgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgUmVmUHRyPE1lZGlhRW5kcG9pbnRTZXNzaW9uQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlv
blNuYXBzaG90ID0gTWVkaWFFbmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9uOjpjcmVhdGUoKTsK
IAotICAgIGNvbmZpZ3VyYXRpb25TbmFwc2hvdC0+c2V0U2Vzc2lvblZlcnNpb24obV9zZHBTZXNz
aW9uVmVyc2lvbisrKTsKKyAgICBjb25maWd1cmF0aW9uU25hcHNob3QtPnNldFNlc3Npb25WZXJz
aW9uKG1fc2RwT2ZmZXJTZXNzaW9uVmVyc2lvbisrKTsKKworICAgIGF1dG8gdHJhbnNjZWl2ZXJz
ID0gUnRwVHJhbnNjZWl2ZXJWZWN0b3IobV9jbGllbnQtPmdldFRyYW5zY2VpdmVycygpKTsKKwor
ICAgIC8vIFJlbW92ZSBhbnkgdHJhbnNjZWl2ZXIgb2JqZWN0cyBmcm9tIHRyYW5zY2VpdmVycyB0
aGF0IGNhbiBiZSBtYXRjaGVkIHRvIGFuIGV4aXN0aW5nIG1lZGlhIGRlc2NyaXB0aW9uLgorICAg
IGZvciAoYXV0byYgbWVkaWFEZXNjcmlwdGlvbiA6IGNvbmZpZ3VyYXRpb25TbmFwc2hvdC0+bWVk
aWFEZXNjcmlwdGlvbnMoKSkgeworICAgICAgICBpZiAoIW1lZGlhRGVzY3JpcHRpb24tPnBvcnQo
KSkgeworICAgICAgICAgICAgLy8gVGhpcyBtZWRpYSBkZXNjcmlwdGlvbiBzaG91bGQgYmUgcmVj
eWNsZWQuCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIFJUQ1J0
cFRyYW5zY2VpdmVyKiB0cmFuc2NlaXZlciA9IG1hdGNoVHJhbnNjZWl2ZXJCeU1pZCh0cmFuc2Nl
aXZlcnMsIG1lZGlhRGVzY3JpcHRpb24tPm1pZCgpKTsKKyAgICAgICAgaWYgKCF0cmFuc2NlaXZl
cikKKyAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgUnRwU2VuZGVyVmVjdG9yIHNlbmRlcnMg
PSBSdHBTZW5kZXJWZWN0b3IobV9jbGllbnQtPmdldFNlbmRlcnMoKSk7CisgICAgICAgIG1lZGlh
RGVzY3JpcHRpb24tPnNldE1vZGUodHJhbnNjZWl2ZXItPmRpcmVjdGlvblN0cmluZygpKTsKKyAg
ICAgICAgaWYgKHRyYW5zY2VpdmVyLT5oYXNTZW5kaW5nRGlyZWN0aW9uKCkpIHsKKyAgICAgICAg
ICAgIFJUQ1J0cFNlbmRlciYgc2VuZGVyID0gKnRyYW5zY2VpdmVyLT5zZW5kZXIoKTsKIAotICAg
IC8vIEFkZCBtZWRpYSBkZXNjcmlwdGlvbnMgZm9yIHNlbmRlcnMuCi0gICAgZm9yIChhdXRvJiBz
ZW5kZXIgOiBzZW5kZXJzKSB7CisgICAgICAgICAgICBtZWRpYURlc2NyaXB0aW9uLT5zZXRNZWRp
YVN0cmVhbUlkKHNlbmRlci5tZWRpYVN0cmVhbUlkcygpWzBdKTsKKyAgICAgICAgICAgIG1lZGlh
RGVzY3JpcHRpb24tPnNldE1lZGlhU3RyZWFtVHJhY2tJZChzZW5kZXIudHJhY2tJZCgpKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHRyYW5zY2VpdmVycy5yZW1vdmVGaXJzdCh0cmFuc2NlaXZlcik7
CisgICAgfQorCisgICAgLy8gQWRkIG1lZGlhIGRlc2NyaXB0aW9ucyBmb3IgcmVtYWluaW5nIHRy
YW5zY2VpdmVycy4KKyAgICBmb3IgKGF1dG8mIHRyYW5zY2VpdmVyIDogdHJhbnNjZWl2ZXJzKSB7
CiAgICAgICAgIFJlZlB0cjxQZWVyTWVkaWFEZXNjcmlwdGlvbj4gbWVkaWFEZXNjcmlwdGlvbiA9
IFBlZXJNZWRpYURlc2NyaXB0aW9uOjpjcmVhdGUoKTsKLSAgICAgICAgTWVkaWFTdHJlYW1UcmFj
ayYgdHJhY2sgPSAqc2VuZGVyLT50cmFjaygpOworICAgICAgICBSVENSdHBTZW5kZXImIHNlbmRl
ciA9ICp0cmFuc2NlaXZlci0+c2VuZGVyKCk7CiAKLSAgICAgICAgbWVkaWFEZXNjcmlwdGlvbi0+
c2V0TWVkaWFTdHJlYW1JZChzZW5kZXItPm1lZGlhU3RyZWFtSWRzKClbMF0pOwotICAgICAgICBt
ZWRpYURlc2NyaXB0aW9uLT5zZXRNZWRpYVN0cmVhbVRyYWNrSWQodHJhY2suaWQoKSk7Ci0gICAg
ICAgIG1lZGlhRGVzY3JpcHRpb24tPnNldFR5cGUodHJhY2sua2luZCgpKTsKLSAgICAgICAgbWVk
aWFEZXNjcmlwdGlvbi0+c2V0UGF5bG9hZHModHJhY2sua2luZCgpID09ICJhdWRpbyIgPyBtX2Rl
ZmF1bHRBdWRpb1BheWxvYWRzIDogbV9kZWZhdWx0VmlkZW9QYXlsb2Fkcyk7CisgICAgICAgIG1l
ZGlhRGVzY3JpcHRpb24tPnNldE1vZGUodHJhbnNjZWl2ZXItPmRpcmVjdGlvblN0cmluZygpKTsK
KyAgICAgICAgbWVkaWFEZXNjcmlwdGlvbi0+c2V0TWlkKHRyYW5zY2VpdmVyLT5wcm92aXNpb25h
bE1pZCgpKTsKKyAgICAgICAgbWVkaWFEZXNjcmlwdGlvbi0+c2V0TWVkaWFTdHJlYW1JZChzZW5k
ZXIubWVkaWFTdHJlYW1JZHMoKVswXSk7CisgICAgICAgIG1lZGlhRGVzY3JpcHRpb24tPnNldFR5
cGUoc2VuZGVyLnRyYWNrS2luZCgpKTsKKyAgICAgICAgbWVkaWFEZXNjcmlwdGlvbi0+c2V0UGF5
bG9hZHMoc2VuZGVyLnRyYWNrS2luZCgpID09ICJhdWRpbyIgPyBtX2RlZmF1bHRBdWRpb1BheWxv
YWRzIDogbV9kZWZhdWx0VmlkZW9QYXlsb2Fkcyk7CiAgICAgICAgIG1lZGlhRGVzY3JpcHRpb24t
PnNldER0bHNGaW5nZXJwcmludEhhc2hGdW5jdGlvbihtX2R0bHNGaW5nZXJwcmludEZ1bmN0aW9u
KTsKICAgICAgICAgbWVkaWFEZXNjcmlwdGlvbi0+c2V0RHRsc0ZpbmdlcnByaW50KG1fZHRsc0Zp
bmdlcnByaW50KTsKICAgICAgICAgbWVkaWFEZXNjcmlwdGlvbi0+c2V0Q25hbWUobV9jbmFtZSk7
CkBAIC0xNTAsNiArMTkzLDkgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNy
ZWF0ZU9mZmVyVGFzayhSVENPZmZlck9wdGlvbnMmLCBTZXNzaW9uRGVzY3IKICAgICAgICAgbWVk
aWFEZXNjcmlwdGlvbi0+c2V0SWNlVWZyYWcobV9pY2VVZnJhZyk7CiAgICAgICAgIG1lZGlhRGVz
Y3JpcHRpb24tPnNldEljZVBhc3N3b3JkKG1faWNlUGFzc3dvcmQpOwogCisgICAgICAgIGlmIChz
ZW5kZXIudHJhY2soKSkKKyAgICAgICAgICAgIG1lZGlhRGVzY3JpcHRpb24tPnNldE1lZGlhU3Ry
ZWFtVHJhY2tJZChzZW5kZXIudHJhY2tJZCgpKTsKKwogICAgICAgICBjb25maWd1cmF0aW9uU25h
cHNob3QtPmFkZE1lZGlhRGVzY3JpcHRpb24oV1RGTW92ZShtZWRpYURlc2NyaXB0aW9uKSk7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaAppbmRleCBmMjU4MmZiLi4zZjI1
YzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgKQEAgLTQ2LDYgKzQ2LDcgQEAg
Y2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNzIFNEUFByb2Nlc3NvcjsKIAogdHlwZWRlZiBW
ZWN0b3I8UmVmUHRyPFJUQ1J0cFNlbmRlcj4+IFJ0cFNlbmRlclZlY3RvcjsKK3R5cGVkZWYgVmVj
dG9yPFJlZlB0cjxSVENSdHBUcmFuc2NlaXZlcj4+IFJ0cFRyYW5zY2VpdmVyVmVjdG9yOwogCiBj
bGFzcyBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24gOiBwdWJsaWMgUGVlckNvbm5lY3Rpb25C
YWNrZW5kLCBwdWJsaWMgTWVkaWFFbmRwb2ludENsaWVudCB7CiBwdWJsaWM6CkBAIC0xMDUsNyAr
MTA2LDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9pY2VQYXNzd29yZDsKICAgICBTdHJpbmcg
bV9kdGxzRmluZ2VycHJpbnQ7CiAgICAgU3RyaW5nIG1fZHRsc0ZpbmdlcnByaW50RnVuY3Rpb247
Ci0gICAgdW5zaWduZWQgbV9zZHBTZXNzaW9uVmVyc2lvbiB7IDAgfTsKKyAgICB1bnNpZ25lZCBt
X3NkcE9mZmVyU2Vzc2lvblZlcnNpb24geyAwIH07CisgICAgdW5zaWduZWQgbV9zZHBBbnN3ZXJT
ZXNzaW9uVmVyc2lvbiB7IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5oCmluZGV4IGIzODFjZTUuLjAxZjg3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQu
aApAQCAtNjIsNyArNjIsNiBAQCB0eXBlZGVmIERPTVByb21pc2U8UlRDU3RhdHNSZXNwb25zZT4g
U3RhdHNQcm9taXNlOwogY2xhc3MgUGVlckNvbm5lY3Rpb25CYWNrZW5kQ2xpZW50IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRwVHJhbnNjZWl2ZXI+PiYg
Z2V0VHJhbnNjZWl2ZXJzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFJl
ZlB0cjxSVENSdHBTZW5kZXI+PiYgZ2V0U2VuZGVycygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZmlyZUV2ZW50KEV2ZW50JikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldFNpZ25h
bGluZ1N0YXRlKFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZSkgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5oCmluZGV4IDU0ZmE4MDUuLjIxZGEwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTYzLDcgKzYz
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgRGljdGlvbmFyeSYgcnRjQ29uZmlndXJh
dGlvbiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIH5SVENQZWVyQ29ubmVjdGlvbigpOwogCi0gICAg
Y29uc3QgVmVjdG9yPFJlZlB0cjxSVENSdHBTZW5kZXI+PiYgZ2V0U2VuZGVycygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fdHJhbnNjZWl2ZXJTZXQtPmdldFNlbmRlcnMoKTsgfQorICAgIGNv
bnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRwU2VuZGVyPj4mIGdldFNlbmRlcnMoKSBjb25zdCB7IHJl
dHVybiBtX3RyYW5zY2VpdmVyU2V0LT5nZXRTZW5kZXJzKCk7IH0KICAgICBjb25zdCBWZWN0b3I8
UmVmUHRyPFJUQ1J0cFJlY2VpdmVyPj4mIGdldFJlY2VpdmVycygpIGNvbnN0IHsgcmV0dXJuIG1f
dHJhbnNjZWl2ZXJTZXQtPmdldFJlY2VpdmVycygpOyB9CiAgICAgY29uc3QgVmVjdG9yPFJlZlB0
cjxSVENSdHBUcmFuc2NlaXZlcj4+JiBnZXRUcmFuc2NlaXZlcnMoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX3RyYW5zY2VpdmVyU2V0LT5saXN0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TRFBQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TRFBQcm9jZXNzb3IuY3BwCmluZGV4IDQ1NDA1OWYu
LjZhZjkwYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
U0RQUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1NEUFByb2Nlc3Nvci5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgU1RSSU5HX0ZVTkNUSU9OKGljZSkK
IFNUUklOR19GVU5DVElPTihtZWRpYURlc2NyaXB0aW9ucykKIFNUUklOR19GVU5DVElPTihtZWRp
YVN0cmVhbUlkKQogU1RSSU5HX0ZVTkNUSU9OKG1lZGlhU3RyZWFtVHJhY2tJZCkKK1NUUklOR19G
VU5DVElPTihtaWQpCiBTVFJJTkdfRlVOQ1RJT04obW9kZSkKIFNUUklOR19GVU5DVElPTihtdXgp
CiBTVFJJTkdfRlVOQ1RJT04obmFjaykKQEAgLTIxMSw2ICsyMTIsOSBAQCBzdGF0aWMgUmVmUHRy
PE1lZGlhRW5kcG9pbnRTZXNzaW9uQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbkZyb21KU09O
KGNvbnN0IFN0cgogICAgICAgICBpZiAobWVkaWFEZXNjcmlwdGlvbk9iamVjdC0+Z2V0U3RyaW5n
KG1vZGVTdHJpbmcoKSwgc3RyaW5nVmFsdWUpKQogICAgICAgICAgICAgbWVkaWFEZXNjcmlwdGlv
bi0+c2V0TW9kZShzdHJpbmdWYWx1ZSk7CiAKKyAgICAgICAgaWYgKG1lZGlhRGVzY3JpcHRpb25P
YmplY3QtPmdldFN0cmluZyhtaWRTdHJpbmcoKSwgc3RyaW5nVmFsdWUpKQorICAgICAgICAgICAg
bWVkaWFEZXNjcmlwdGlvbi0+c2V0TWlkKHN0cmluZ1ZhbHVlKTsKKwogICAgICAgICBSZWZQdHI8
SW5zcGVjdG9yQXJyYXk+IHBheWxvYWRzQXJyYXkgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7
CiAgICAgICAgIG1lZGlhRGVzY3JpcHRpb25PYmplY3QtPmdldEFycmF5KHBheWxvYWRzU3RyaW5n
KCksIHBheWxvYWRzQXJyYXkpOwogCkBAIC0zNTMsNiArMzU3LDcgQEAgc3RhdGljIFN0cmluZyBj
b25maWd1cmF0aW9uVG9KU09OKGNvbnN0IE1lZGlhRW5kcG9pbnRTZXNzaW9uQ29uZmlndXJhdGlv
biYgY29uZmkKICAgICAgICAgbWVkaWFEZXNjcmlwdGlvbk9iamVjdC0+c2V0SW50ZWdlcihwb3J0
U3RyaW5nKCksIG1lZGlhRGVzY3JpcHRpb24tPnBvcnQoKSk7CiAgICAgICAgIG1lZGlhRGVzY3Jp
cHRpb25PYmplY3QtPnNldFN0cmluZyhhZGRyZXNzU3RyaW5nKCksIG1lZGlhRGVzY3JpcHRpb24t
PmFkZHJlc3MoKSk7CiAgICAgICAgIG1lZGlhRGVzY3JpcHRpb25PYmplY3QtPnNldFN0cmluZyht
b2RlU3RyaW5nKCksIG1lZGlhRGVzY3JpcHRpb24tPm1vZGUoKSk7CisgICAgICAgIG1lZGlhRGVz
Y3JpcHRpb25PYmplY3QtPnNldFN0cmluZyhtaWRTdHJpbmcoKSwgbWVkaWFEZXNjcmlwdGlvbi0+
bWlkKCkpOwogCiAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gcGF5bG9hZHNBcnJheSA9
IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9zZHAuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL3NkcC5qcwppbmRleCAyNGZjODhjLi42MDc2Zjc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL3NkcC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL3NkcC5qcwpAQCAtNDAsOCArNDAsOSBAQCBpZiAodHlwZW9mKFNE
UCkgPT0gInVuZGVmaW5lZCIpCiAgICAgICAgICJtc2lkc2VtYW50aWMiOiAiXmE9bXNpZC1zZW1h
bnRpYzogKldNUyAuKiQiLAogICAgICAgICAibWJsb2NrIjogIl5tPShhdWRpb3x2aWRlb3xhcHBs
aWNhdGlvbikgKFtcXGRdKykgKFtBLVovXSspKFtcXGQgXSopJFxccj9cXG4iLAogICAgICAgICAi
bW9kZSI6ICJeYT0oc2VuZHJlY3Z8c2VuZG9ubHl8cmVjdm9ubHl8aW5hY3RpdmUpLiokIiwKKyAg
ICAgICAgIm1pZCI6ICJeYT1taWQ6KFshIyQlJicqKy0uXFx3XSopLiokIiwKICAgICAgICAgInJ0
cG1hcCI6ICJeYT1ydHBtYXA6JHt0eXBlfSAoW1xcd1xcLV0rKS8oW1xcZF0rKS8/KFtcXGRdKyk/
LiokIiwKLSAgICAgICAgImZtdHAiOiAiXmE9Zm10cDoke3R5cGV9IChbXFx3XFwtPTtdKykuKiQi
LAorICAgICAgICAiZm10cCI6ICJeYT1mbXRwOiR7dHlwZX0gKFtcXHdcXC09OyBdKykuKiQiLAog
ICAgICAgICAicGFyYW0iOiAiKFtcXHdcXC1dKyk9KFtcXHdcXC1dKyk7PyIsCiAgICAgICAgICJu
YWNrIjogIl5hPXJ0Y3AtZmI6JHt0eXBlfSBuYWNrJCIsCiAgICAgICAgICJuYWNrcGxpIjogIl5h
PXJ0Y3AtZmI6JHt0eXBlfSBuYWNrIHBsaSQiLApAQCAtNzcsNiArNzgsNyBAQCBpZiAodHlwZW9m
KFNEUCkgPT0gInVuZGVmaW5lZCIpCiAgICAgICAgICAgICAiJHtydGNwTGluZX0iICsKICAgICAg
ICAgICAgICIke3J0Y3BNdXhMaW5lfSIgKwogICAgICAgICAgICAgImE9JHttb2RlfVxyXG4iICsK
KyAgICAgICAgICAgICIke21pZExpbmV9IiArCiAgICAgICAgICAgICAiJHtydHBNYXBMaW5lc30i
ICsKICAgICAgICAgICAgICIke2ZtdHBMaW5lc30iICsKICAgICAgICAgICAgICIke25hY2tMaW5l
c30iICsKQEAgLTkzLDYgKzk1LDcgQEAgaWYgKHR5cGVvZihTRFApID09ICJ1bmRlZmluZWQiKQog
CiAgICAgICAgICJydGNwIjogImE9cnRjcDoke3BvcnR9JHtbIF1uZXRUeXBlfSR7WyBdYWRkcmVz
c1R5cGV9JHtbIF1hZGRyZXNzfVxyXG4iLAogICAgICAgICAicnRjcE11eCI6ICJhPXJ0Y3AtbXV4
XHJcbiIsCisgICAgICAgICJtaWQiOiAiYT1taWQ6JHttaWR9XHJcbiIsCiAKICAgICAgICAgInJ0
cE1hcCI6ICJhPXJ0cG1hcDoke3R5cGV9ICR7ZW5jb2RpbmdOYW1lfS8ke2Nsb2NrUmF0ZX0ke1sv
XWNoYW5uZWxzfVxyXG4iLAogICAgICAgICAiZm10cCI6ICJhPWZtdHA6JHt0eXBlfSAke3BhcmFt
ZXRlcnN9XHJcbiIsCkBAIC0yMDIsNiArMjA1LDEwIEBAIGlmICh0eXBlb2YoU0RQKSA9PSAidW5k
ZWZpbmVkIikKICAgICAgICAgICAgIGlmIChtb2RlKQogICAgICAgICAgICAgICAgIG1lZGlhRGVz
Y3JpcHRpb24ubW9kZSA9IG1vZGVbMV07CiAKKyAgICAgICAgICAgIHZhciBtaWQgPSBtYXRjaCht
YmxvY2ssIHJlZ2V4cHMubWlkLCAibSIsIHNibG9jayk7CisgICAgICAgICAgICBpZiAobWlkKQor
ICAgICAgICAgICAgICAgIG1lZGlhRGVzY3JpcHRpb24ubWlkID0gbWlkWzFdOworCiAgICAgICAg
ICAgICB2YXIgcGF5bG9hZFR5cGVzID0gW107CiAgICAgICAgICAgICBpZiAobWF0Y2gobWVkaWFE
ZXNjcmlwdGlvbi5wcm90b2NvbCwgIihVRFAvVExTKT9SVFAvUz9BVlBGPyIpKSB7CiAgICAgICAg
ICAgICAgICAgbWVkaWFEZXNjcmlwdGlvbi5wYXlsb2FkcyA9IFtdOwpAQCAtNDA1LDYgKzQxMiwx
MSBAQCBpZiAodHlwZW9mKFNEUCkgPT0gInVuZGVmaW5lZCIpCiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgIHZhciBtYmxvY2sgPSBmaWxsVGVtcGxhdGUodGVtcGxhdGVzLm1ibG9jaywgbWVk
aWFEZXNjcmlwdGlvbik7CiAKKyAgICAgICAgICAgIHZhciBtaWRJbmZvID0geyJtaWRMaW5lIjog
IiJ9OworICAgICAgICAgICAgaWYgKG1lZGlhRGVzY3JpcHRpb24ubWlkKQorICAgICAgICAgICAg
ICAgIG1pZEluZm8ubWlkTGluZSA9IGZpbGxUZW1wbGF0ZSh0ZW1wbGF0ZXMubWlkLCBtZWRpYURl
c2NyaXB0aW9uKTsKKyAgICAgICAgICAgIG1ibG9jayA9IGZpbGxUZW1wbGF0ZShtYmxvY2ssIG1p
ZEluZm8pOworCiAgICAgICAgICAgICB2YXIgcGF5bG9hZEluZm8gPSB7InJ0cE1hcExpbmVzIjog
IiIsICJmbXRwTGluZXMiOiAiIiwgIm5hY2tMaW5lcyI6ICIiLAogICAgICAgICAgICAgICAgICJu
YWNrcGxpTGluZXMiOiAiIiwgImNjbWZpckxpbmVzIjogIiIsICJlcmljU2NyZWFtTGluZXMiOiAi
In07CiAgICAgICAgICAgICBtZWRpYURlc2NyaXB0aW9uLnBheWxvYWRzLmZvckVhY2goZnVuY3Rp
b24gKHBheWxvYWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1BlZXJNZWRpYURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9QZWVyTWVkaWFEZXNjcmlwdGlvbi5oCmluZGV4IDIyZGMxM2EuLmI3ZDRhMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJNZWRp
YURlc2NyaXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UGVlck1lZGlhRGVzY3JpcHRpb24uaApAQCAtNjEsNiArNjEsOSBAQCBwdWJsaWM6CiAgICAgY29u
c3QgU3RyaW5nJiBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAgICAgdm9pZCBzZXRN
b2RlKGNvbnN0IFN0cmluZyYgbW9kZSkgeyBtX21vZGUgPSBtb2RlOyB9CiAKKyAgICBjb25zdCBT
dHJpbmcmIG1pZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWlkOyB9CisgICAgdm9pZCBzZXRNaWQoY29u
c3QgU3RyaW5nJiBtaWQpIHsgbV9taWQgPSBtaWQ7IH0KKwogICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8TWVkaWFQYXlsb2FkPj4mIHBheWxvYWRzKCkgY29uc3QgeyByZXR1cm4gbV9wYXlsb2Fkczsg
fQogICAgIHZvaWQgYWRkUGF5bG9hZChSZWZQdHI8TWVkaWFQYXlsb2FkPiYmIHBheWxvYWQpIHsg
bV9wYXlsb2Fkcy5hcHBlbmQoV1RGTW92ZShwYXlsb2FkKSk7IH0KICAgICB2b2lkIHNldFBheWxv
YWRzKFZlY3RvcjxSZWZQdHI8TWVkaWFQYXlsb2FkPj4mJiBwYXlsb2FkcykgeyBtX3BheWxvYWRz
ID0gcGF5bG9hZHM7IH0KQEAgLTExNyw2ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvcHkt
Pm1fcG9ydCA9IG1fcG9ydDsKICAgICAgICAgY29weS0+bV9hZGRyZXNzID0gU3RyaW5nKG1fYWRk
cmVzcyk7CiAgICAgICAgIGNvcHktPm1fbW9kZSA9IFN0cmluZyhtX21vZGUpOworICAgICAgICBj
b3B5LT5tX21pZCA9IFN0cmluZyhtX21pZCk7CiAKICAgICAgICAgZm9yIChhdXRvJiBwYXlsb2Fk
IDogbV9wYXlsb2FkcykKICAgICAgICAgICAgIGNvcHktPm1fcGF5bG9hZHMuYXBwZW5kKHBheWxv
YWQtPmNsb25lKCkpOwpAQCAtMTUzLDYgKzE1Nyw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQg
c2hvcnQgbV9wb3J0IHsgOSB9OwogICAgIFN0cmluZyBtX2FkZHJlc3MgeyAiMC4wLjAuMCIgfTsK
ICAgICBTdHJpbmcgbV9tb2RlIHsgInNlbmRyZWN2IiB9OworICAgIFN0cmluZyBtX21pZDsKIAog
ICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFQYXlsb2FkPj4gbV9wYXlsb2FkczsKIAo=
</data>
<flag name="review"
          id="304329"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280605</attachid>
            <date>2016-06-06 10:21:39 -0700</date>
            <delta_ts>2016-06-06 14:39:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>transceiver-based-create-offer_1.patch</filename>
            <type>text/plain</type>
            <size>24734</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NDZlMDFiLi5lMDk0NTA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUgQEAKIDIwMTYtMDYt
MDIgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgogCisgICAg
ICAgIFdlYlJUQzogVXBkYXRlIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlT2Zm
ZXIoKSB0byB1c2UgdGhlIHRyYW5zY2VpdmVyIHNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MjAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgIFVwZGF0ZWQgZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taW5zcGVjdC1vZmZlci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pbnNw
ZWN0LW9mZmVyLmh0bWw6CisgICAgICAgIEFkZCB2ZXJpZmljYXRpb24gb2YgbWlkIGF0dHJpYnV0
ZSBbMV0gKGNvcnJlc3BvbmRzIHRvIHRoZSBSVENSdHBUcmFuc2NlaXZlciBtaWQgYXR0cmlidXRl
KS4KKyAgICAgICAgWzFdIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1ODg4CisgICAg
ICAgICogZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvc2RwLXV0aWxzLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHByaW50Q29tcGFyYWJsZVNlc3Npb25EZXNjcmlwdGlvbik6CisgICAgICAgICh2ZXJp
ZmllZCk6CisgICAgICAgIChtYXRjaCk6CisgICAgICAgIE1vdmUgdGhlIHByaW50Q29tcGFyYWJs
ZVNlc3Npb25EZXNjcmlwdGlvbiBmdW5jdGlvbiB0byBhIHNlcGFyYXRlIGZpbGUKKyAgICAgICAg
dG8gbWFrZSBpdCB1c2FibGUgaW4gb3RoZXIgKGZ1dHVyZSkgdGVzdHMuCisKKzIwMTYtMDYtMDIg
IEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgorCiAgICAgICAg
IFdlYlJUQzogVXBkYXRlIFJUQ1BlZXJDb25uZWN0aW9uLmFkZFRyYWNrKCkgdG8gY3JlYXRlIChv
ciByZXVzZSkgYW4gUlRDUnRwVHJhbnNjZWl2ZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODE5MQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWluc3BlY3Qtb2ZmZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pbnNw
ZWN0LW9mZmVyLWV4cGVjdGVkLnR4dAppbmRleCAwM2FlZTM2Li5iMzVlOWFmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWluc3BlY3Qt
b2ZmZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24taW5zcGVjdC1vZmZlci1leHBlY3RlZC50eHQKQEAgLTE1LDYgKzE1LDcg
QEAgbT1hdWRpbyA5IFVEUC9UTFMvUlRQL1NBVlBGIDExMSA4IDAKIGM9SU4gSVA0IDAuMC4wLjAK
IGE9cnRjcC1tdXgKIGE9c2VuZHJlY3YKK2E9bWlkOnttaWQ6T0t9CiBhPXJ0cG1hcDoxMTEgT1BV
Uy80ODAwMC8yCiBhPXJ0cG1hcDo4IFBDTUEvODAwMAogYT1ydHBtYXA6MCBQQ01VLzgwMDAKQEAg
LTM4LDYgKzM5LDcgQEAgbT1hdWRpbyA5IFVEUC9UTFMvUlRQL1NBVlBGIDExMSA4IDAKIGM9SU4g
SVA0IDAuMC4wLjAKIGE9cnRjcC1tdXgKIGE9c2VuZHJlY3YKK2E9bWlkOnttaWQ6T0t9CiBhPXJ0
cG1hcDoxMTEgT1BVUy80ODAwMC8yCiBhPXJ0cG1hcDo4IFBDTUEvODAwMAogYT1ydHBtYXA6MCBQ
Q01VLzgwMDAKQEAgLTUxLDYgKzUzLDcgQEAgbT12aWRlbyA5IFVEUC9UTFMvUlRQL1NBVlBGIDEw
MyAxMDAgMTIwCiBjPUlOIElQNCAwLjAuMC4wCiBhPXJ0Y3AtbXV4CiBhPXNlbmRyZWN2CithPW1p
ZDp7bWlkOk9LfQogYT1ydHBtYXA6MTAzIEgyNjQvOTAwMDAKIGE9cnRwbWFwOjEwMCBWUDgvOTAw
MDAKIGE9cnRwbWFwOjEyMCBSVFgvOTAwMDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taW5zcGVjdC1vZmZlci5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pbnNwZWN0LW9mZmVyLmh0
bWwKaW5kZXggMmQxYzFhOC4uMjU0Mzg3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pbnNwZWN0LW9mZmVyLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pbnNwZWN0LW9mZmVy
Lmh0bWwKQEAgLTIsNiArMiw3IEBACiA8aHRtbD4KICAgICA8aGVhZD4KICAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9zZHAtdXRpbHMuanMiPjwvc2NyaXB0PgogICAgIDwv
aGVhZD4KICAgICA8Ym9keT4KICAgICAgICAgPHNjcmlwdD4KQEAgLTUxLDg3ICs1Miw2IEBACiAg
ICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICB9KTsKIAotICAgICAg
ICAgICAgLy8gVmFyaWFibGUgZmllbGRzIChlLmcuIGdlbmVyYXRlZCBpZHMpIGFyZSB2ZXJpZmll
ZCBhbmQgcmVwbGFjZWQgd2l0aCBwcmVkaWN0YWJsZQotICAgICAgICAgICAgLy8gbGFibGVzLiBU
aGUgcmVzdWx0IGNhbiBiZSBjb21wYXJlZCB3aXRoIGEgcHJlZGVmaW5lZCBleHBlY3RlZCBvdXRw
dXQuCi0gICAgICAgICAgICBmdW5jdGlvbiBwcmludENvbXBhcmFibGVTZXNzaW9uRGVzY3JpcHRp
b24oc2Vzc2lvbkRlc2NyaXB0aW9uLCBtZGVzY1ZhcmlhYmxlcykgewotICAgICAgICAgICAgICAg
IGRlYnVnKCI9PT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uID09PSIpOwotICAgICAgICAgICAgICAg
IGRlYnVnKCJ0eXBlOiAiICsgc2Vzc2lvbkRlc2NyaXB0aW9uLnR5cGUgKyAiLCBzZHA6Iik7Ci0K
LSAgICAgICAgICAgICAgICB2YXIgc2RwID0gc2Vzc2lvbkRlc2NyaXB0aW9uLnNkcDsKLQotICAg
ICAgICAgICAgICAgIHZhciByZWdleHAgPSB7Ci0gICAgICAgICAgICAgICAgICAgICJvbGluZSI6
ICJebz0oLSkgKFtcXGRdKykgLiokIiwKLSAgICAgICAgICAgICAgICAgICAgIm1zaWRzZW1hbnRp
YyI6ICJeYT1tc2lkLXNlbWFudGljOiAqV01TIC4qJCIsCi0gICAgICAgICAgICAgICAgICAgICJt
bGluZSI6ICJebT0uKiQiLAotICAgICAgICAgICAgICAgICAgICAiY25hbWUiOiAiXmE9c3NyYzoo
XFxkKykgY25hbWU6KFtcXHcrL1xcLUBcXC5cXHtcXH1dKykuKiQiLAotICAgICAgICAgICAgICAg
ICAgICAibXNpZCI6ICJeYT0oc3NyYzpcXGQrICk/bXNpZDooW1xcdysvXFwtPV0rKSArKFtcXHcr
L1xcLT1dKykuKiQiLAotICAgICAgICAgICAgICAgICAgICAiaWNldWZyYWciOiAiXmE9aWNlLXVm
cmFnOihbXFx3Ky9dKikuKiQiLAotICAgICAgICAgICAgICAgICAgICAiaWNlcHdkIjogIl5hPWlj
ZS1wd2Q6KFtcXHcrL10qPSopLiokIiwKLSAgICAgICAgICAgICAgICB9OwotCi0gICAgICAgICAg
ICAgICAgdmFyIG1kZXNjSW5kZXggPSAtMTsKLSAgICAgICAgICAgICAgICBzZHAuc3BsaXQoIlxy
XG4iKS5mb3JFYWNoKGZ1bmN0aW9uIChsaW5lKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICht
YXRjaChsaW5lLCByZWdleHAubWxpbmUpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBN
ZWRpYSBibG9jayAoImhlYWRlciIgbGluZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG1kZXNj
SW5kZXgrKzsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtZGVzY0luZGV4IDwgMCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Vzc2lvbiBibG9jawotICAgICAgICAgICAg
ICAgICAgICAgICAgdmFyIG9saW5lOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAob2xp
bmUgPSBtYXRjaChsaW5lLCByZWdleHAub2xpbmUpKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpbmUgPSBsaW5lLnJlcGxhY2Uob2xpbmVbMl0sIHZlcmlmaWVkKCJzZXNzaW9uLWlkIikp
OwotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobWF0Y2gobGluZSwgcmVnZXhwLm1z
aWRzZW1hbnRpYykpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZGVzY1ZhcmlhYmxl
cy5mb3JFYWNoKGZ1bmN0aW9uICh2YXJpYWJsZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSh2YXJpYWJsZXMuc3RyZWFtSWQsIHZlcmlmaWVk
KCJtZWRpYS1zdHJlYW0taWQiKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAvLyBNZWRpYSBibG9jayAoY29udGVudCBsaW5lcykKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBjbmFtZTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHZhciBtc2lkOwotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGljZXVmcmFnOwotICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIGljZXB3ZDsKLQotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGNuYW1lID0gbWF0Y2gobGluZSwgcmVnZXhwLmNuYW1lKSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoY25hbWVbMV0sIHZlcmlmaWVkKCJzc3Jj
IikpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoY25h
bWVbMl0sIHZlcmlmaWVkKCJjbmFtZSIpKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIGlmIChtc2lkID0gbWF0Y2gobGluZSwgcmVnZXhwLm1zaWQpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKG1zaWRbMV0pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UobXNpZFsxXSwgdmVyaWZpZWQoInNzcmMiKSk7Ci0KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFyaWFibGVzID0gbWRlc2NWYXJpYWJsZXNb
bWRlc2NJbmRleF07Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWVkaWFTdHJl
YW1JZCA9IG1zaWRbMl07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN0cmVhbUlk
VmVyaWZpZWQgPSB2ZXJpZmllZCgibWVkaWEtc3RyZWFtLWlkIiwgbWVkaWFTdHJlYW1JZCAhPSB2
YXJpYWJsZXMuc3RyZWFtSWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBs
aW5lLnJlcGxhY2UobWVkaWFTdHJlYW1JZCwgc3RyZWFtSWRWZXJpZmllZCk7Ci0KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgbWVkaWFTdHJlYW1UcmFja0lkID0gbXNpZFszXTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHJhY2tJZFZlcmlmaWVkID0gdmVyaWZpZWQo
Im1lZGlhLXN0cmVhbS10cmFjay1pZCIsIG1lZGlhU3RyZWFtVHJhY2tJZCAhPSB2YXJpYWJsZXMu
dHJhY2tJZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFj
ZShtZWRpYVN0cmVhbVRyYWNrSWQsIHRyYWNrSWRWZXJpZmllZCk7Ci0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoaWNldWZyYWcgPSBtYXRjaChsaW5lLCByZWdleHAuaWNldWZy
YWcpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoaWNl
dWZyYWdbMV0sIHZlcmlmaWVkKCJpY2UtdWZyYWciKSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBlbHNlIGlmIChpY2Vwd2QgPSBtYXRjaChsaW5lLCByZWdleHAuaWNlcHdkKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKGljZXB3ZFsxXSwgdmVyaWZp
ZWQoImljZS1wYXNzd29yZCIpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgICAgIGlmIChsaW5lKQotICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcobGluZSk7
Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICBkZWJ1ZygiPT09Iik7Ci0g
ICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBm
dW5jdGlvbiB2ZXJpZmllZChuYW1lLCBpc0ZhaWx1cmUpIHsKLSAgICAgICAgICAgICAgICByZXR1
cm4gInsiICsgbmFtZSArICI6IiArIChpc0ZhaWx1cmUgPyAiRkFJTEVEIiA6ICJPSyIpICsgIn0i
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBtYXRjaChkYXRhLCBwYXR0
ZXJuKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubWF0Y2gobmV3IFJlZ0V4cChwYXR0
ZXJuKSk7Ci0gICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKICAgICAgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9zZHAt
dXRpbHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9zZHAtdXRp
bHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjYzMmQwNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL3NkcC11
dGlscy5qcwpAQCAtMCwwICsxLDg5IEBACisoZnVuY3Rpb24gKGdsb2JhbE9iamVjdCkgeworICAg
IC8vIFZhcmlhYmxlIGZpZWxkcyAoZS5nLiBnZW5lcmF0ZWQgaWRzKSBhcmUgdmVyaWZpZWQgYW5k
IHJlcGxhY2VkIHdpdGggcHJlZGljdGFibGUKKyAgICAvLyBsYWJsZXMuIFRoZSByZXN1bHQgY2Fu
IGJlIGNvbXBhcmVkIHdpdGggYSBwcmVkZWZpbmVkIGV4cGVjdGVkIG91dHB1dC4KKyAgICBmdW5j
dGlvbiBwcmludENvbXBhcmFibGVTZXNzaW9uRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9u
LCBtZGVzY1ZhcmlhYmxlcykgeworICAgICAgICBkZWJ1ZygiPT09IFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbiA9PT0iKTsKKyAgICAgICAgZGVidWcoInR5cGU6ICIgKyBzZXNzaW9uRGVzY3JpcHRpb24u
dHlwZSArICIsIHNkcDoiKTsKKworICAgICAgICB2YXIgc2RwID0gc2Vzc2lvbkRlc2NyaXB0aW9u
LnNkcDsKKworICAgICAgICB2YXIgcmVnZXhwID0geworICAgICAgICAgICAgIm9saW5lIjogIl5v
PSgtKSAoW1xcZF0rKSAuKiQiLAorICAgICAgICAgICAgIm1zaWRzZW1hbnRpYyI6ICJeYT1tc2lk
LXNlbWFudGljOiAqV01TIC4qJCIsCisgICAgICAgICAgICAibWxpbmUiOiAiXm09LiokIiwKKyAg
ICAgICAgICAgICJjbmFtZSI6ICJeYT1zc3JjOihcXGQrKSBjbmFtZTooW1xcdysvXFwtQFxcLlxc
e1xcfV0rKS4qJCIsCisgICAgICAgICAgICAibWlkIjogIl5hPW1pZDooWyEjJCUmJyorLS5cXHdd
KikuKiQiLAorICAgICAgICAgICAgIm1zaWQiOiAiXmE9KHNzcmM6XFxkKyApP21zaWQ6KFtcXHcr
L1xcLT1dKykgKyhbXFx3Ky9cXC09XSspLiokIiwKKyAgICAgICAgICAgICJpY2V1ZnJhZyI6ICJe
YT1pY2UtdWZyYWc6KFtcXHcrL10qKS4qJCIsCisgICAgICAgICAgICAiaWNlcHdkIjogIl5hPWlj
ZS1wd2Q6KFtcXHcrL10qPSopLiokIiwKKyAgICAgICAgfTsKKworICAgICAgICB2YXIgbWRlc2NJ
bmRleCA9IC0xOworICAgICAgICBzZHAuc3BsaXQoIlxyXG4iKS5mb3JFYWNoKGZ1bmN0aW9uIChs
aW5lKSB7CisgICAgICAgICAgICBpZiAobWF0Y2gobGluZSwgcmVnZXhwLm1saW5lKSkgeworICAg
ICAgICAgICAgICAgIC8vIE1lZGlhIGJsb2NrICgiaGVhZGVyIiBsaW5lKQorICAgICAgICAgICAg
ICAgIG1kZXNjSW5kZXgrKzsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobWRlc2NJbmRleCA8IDAp
IHsKKyAgICAgICAgICAgICAgICAvLyBTZXNzaW9uIGJsb2NrCisgICAgICAgICAgICAgICAgdmFy
IG9saW5lOworCisgICAgICAgICAgICAgICAgaWYgKG9saW5lID0gbWF0Y2gobGluZSwgcmVnZXhw
Lm9saW5lKSkKKyAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZShvbGluZVsy
XSwgdmVyaWZpZWQoInNlc3Npb24taWQiKSk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAobWF0
Y2gobGluZSwgcmVnZXhwLm1zaWRzZW1hbnRpYykpIHsKKyAgICAgICAgICAgICAgICAgICAgbWRl
c2NWYXJpYWJsZXMuZm9yRWFjaChmdW5jdGlvbiAodmFyaWFibGVzKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKHZhcmlhYmxlcy5zdHJlYW1JZCwgdmVyaWZp
ZWQoIm1lZGlhLXN0cmVhbS1pZCIpKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBNZWRp
YSBibG9jayAoY29udGVudCBsaW5lcykKKyAgICAgICAgICAgICAgICB2YXIgY25hbWU7CisgICAg
ICAgICAgICAgICAgdmFyIG1pZDsKKyAgICAgICAgICAgICAgICB2YXIgbXNpZDsKKyAgICAgICAg
ICAgICAgICB2YXIgaWNldWZyYWc7CisgICAgICAgICAgICAgICAgdmFyIGljZXB3ZDsKKworICAg
ICAgICAgICAgICAgIGlmIChjbmFtZSA9IG1hdGNoKGxpbmUsIHJlZ2V4cC5jbmFtZSkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZShjbmFtZVsxXSwgdmVyaWZpZWQo
InNzcmMiKSk7CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoY25hbWVb
Ml0sIHZlcmlmaWVkKCJjbmFtZSIpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1pZCA9
IG1hdGNoKGxpbmUsIHJlZ2V4cC5taWQpKQorICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGlu
ZS5yZXBsYWNlKG1pZFsxXSwgdmVyaWZpZWQoIm1pZCIpKQorICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKG1zaWQgPSBtYXRjaChsaW5lLCByZWdleHAubXNpZCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKG1zaWRbMV0pCisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yZXBs
YWNlKG1zaWRbMV0sIHZlcmlmaWVkKCJzc3JjIikpOworCisgICAgICAgICAgICAgICAgICAgIHZh
ciB2YXJpYWJsZXMgPSBtZGVzY1ZhcmlhYmxlc1ttZGVzY0luZGV4XTsKKworICAgICAgICAgICAg
ICAgICAgICB2YXIgbWVkaWFTdHJlYW1JZCA9IG1zaWRbMl07CisgICAgICAgICAgICAgICAgICAg
IHZhciBzdHJlYW1JZFZlcmlmaWVkID0gdmVyaWZpZWQoIm1lZGlhLXN0cmVhbS1pZCIsIG1lZGlh
U3RyZWFtSWQgIT0gdmFyaWFibGVzLnN0cmVhbUlkKTsKKyAgICAgICAgICAgICAgICAgICAgbGlu
ZSA9IGxpbmUucmVwbGFjZShtZWRpYVN0cmVhbUlkLCBzdHJlYW1JZFZlcmlmaWVkKTsKKworICAg
ICAgICAgICAgICAgICAgICB2YXIgbWVkaWFTdHJlYW1UcmFja0lkID0gbXNpZFszXTsKKyAgICAg
ICAgICAgICAgICAgICAgdmFyIHRyYWNrSWRWZXJpZmllZCA9IHZlcmlmaWVkKCJtZWRpYS1zdHJl
YW0tdHJhY2staWQiLCBtZWRpYVN0cmVhbVRyYWNrSWQgIT0gdmFyaWFibGVzLnRyYWNrSWQpOwor
ICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKG1lZGlhU3RyZWFtVHJhY2tJ
ZCwgdHJhY2tJZFZlcmlmaWVkKTsKKworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaWNldWZy
YWcgPSBtYXRjaChsaW5lLCByZWdleHAuaWNldWZyYWcpKQorICAgICAgICAgICAgICAgICAgICBs
aW5lID0gbGluZS5yZXBsYWNlKGljZXVmcmFnWzFdLCB2ZXJpZmllZCgiaWNlLXVmcmFnIikpOwor
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKGljZXB3ZCA9IG1hdGNoKGxpbmUsIHJlZ2V4cC5pY2Vw
d2QpKQorICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKGljZXB3ZFsxXSwg
dmVyaWZpZWQoImljZS1wYXNzd29yZCIpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKGxpbmUpCisgICAgICAgICAgICAgICAgZGVidWcobGluZSk7CisgICAgICAgIH0pOworCisg
ICAgICAgIGRlYnVnKCI9PT0iKTsKKyAgICAgICAgZGVidWcoIiIpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHZlcmlmaWVkKG5hbWUsIGlzRmFpbHVyZSkgeworICAgICAgICByZXR1cm4gInsiICsg
bmFtZSArICI6IiArIChpc0ZhaWx1cmUgPyAiRkFJTEVEIiA6ICJPSyIpICsgIn0iOworICAgIH0K
KworICAgIGZ1bmN0aW9uIG1hdGNoKGRhdGEsIHBhdHRlcm4pIHsKKyAgICAgICAgcmV0dXJuIGRh
dGEubWF0Y2gobmV3IFJlZ0V4cChwYXR0ZXJuKSk7CisgICAgfQorCisgICAgLy8gRXhwb3NlZCBm
dW5jdGlvbihzKQorICAgIGdsb2JhbE9iamVjdC5wcmludENvbXBhcmFibGVTZXNzaW9uRGVzY3Jp
cHRpb24gPSBwcmludENvbXBhcmFibGVTZXNzaW9uRGVzY3JpcHRpb247CisKK30pKHNlbGYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGFlMjk1NWMuLjFlNjQwY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNyBA
QAogMjAxNi0wNi0wMiAgQWRhbSBCZXJna3Zpc3QgIDxhZGFtLmJlcmdrdmlzdEBlcmljc3Nvbi5j
b20+CiAKKyAgICAgICAgV2ViUlRDOiBVcGRhdGUgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
OjpjcmVhdGVPZmZlcigpIHRvIHVzZSB0aGUgdHJhbnNjZWl2ZXIgc2V0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgyMDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQ3JlYXRlIGFuIFNEUCBvZmZlciBiYXNl
ZCBvbiB0aGUgUlRDUGVlckNvbm5lY3Rpb24gb2JqZWN0J3Mgc2V0IG9mIFJUQ1J0cFRyYW5zY2Vp
dmVyIG9iamVjdHMKKyAgICAgICAgKGluc3RlYWQgb2YgUlRDUnRwU2VuZGVyIG9iamVjdHMpLgor
CisgICAgICAgIFVwZGF0ZWQgZXhpc3RpbmcgdGVzdDogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi1pbnNwZWN0LW9mZmVyLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om1hdGNoVHJhbnNjZWl2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6bWF0Y2hUcmFuc2NlaXZlckJ5
TWlkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Y3Jl
YXRlT2ZmZXJUYXNrKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9p
bnRQZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNv
bm5lY3Rpb25CYWNrZW5kLmg6CisgICAgICAgIFJlbW92ZSBnZXRTZW5kZXJzKCkgd2hpY2ggaXMg
cmVwbGFjZWQgYnkgZ2V0VHJhbnNjZWl2ZXJzKCkuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
U0RQUHJvY2Vzc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbmZpZ3VyYXRpb25Gcm9tSlNP
Tik6CisgICAgICAgIChXZWJDb3JlOjpjb25maWd1cmF0aW9uVG9KU09OKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL3NkcC5qczoKKyAgICAgICAgKFNEUC5wYXJzZSk6CisgICAgICAg
IChTRFAuZ2VuZXJhdGUpOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbWlkIGF0dHJpYnV0ZS4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyTWVkaWFEZXNjcmlwdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGVlck1lZGlhRGVzY3JpcHRpb246Om1pZCk6CisgICAgICAgIChX
ZWJDb3JlOjpQZWVyTWVkaWFEZXNjcmlwdGlvbjo6c2V0TWlkKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlZXJNZWRpYURlc2NyaXB0aW9uOjpjbG9uZSk6CisKKzIwMTYtMDYtMDIgIEFkYW0gQmVyZ2t2
aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgorCiAgICAgICAgIFdlYlJUQzogVXBk
YXRlIFJUQ1BlZXJDb25uZWN0aW9uLmFkZFRyYWNrKCkgdG8gY3JlYXRlIChvciByZXVzZSkgYW4g
UlRDUnRwVHJhbnNjZWl2ZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1ODE5MQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKaW5k
ZXggOTY2OGYzMC4uYmY4YWYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNw
cApAQCAtNDUsNiArNDUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3Bh
Y2UgUGVlckNvbm5lY3Rpb247Cit1c2luZyBuYW1lc3BhY2UgUGVlckNvbm5lY3Rpb25TdGF0ZXM7
CiAKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGVlckNvbm5lY3Rpb25CYWNrZW5kPiBjcmVhdGVN
ZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24oUGVlckNvbm5lY3Rpb25CYWNrZW5kQ2xpZW50KiBj
bGllbnQpCiB7CkBAIC05NSw2ICs5NiwyMiBAQCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246
Ok1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbihQZWVyQ29ubmVjdGlvbkJhY2tlbmRDbAogICAg
IG1fbWVkaWFFbmRwb2ludC0+Z2VuZXJhdGVEdGxzSW5mbygpOwogfQogCitzdGF0aWMgUlRDUnRw
VHJhbnNjZWl2ZXIqIG1hdGNoVHJhbnNjZWl2ZXIoY29uc3QgUnRwVHJhbnNjZWl2ZXJWZWN0b3Im
IHRyYW5zY2VpdmVycywgY29uc3Qgc3RkOjpmdW5jdGlvbjxib29sKFJUQ1J0cFRyYW5zY2VpdmVy
Jik+JiBtYXRjaEZ1bmN0aW9uKQoreworICAgIGZvciAoYXV0byYgdHJhbnNjZWl2ZXIgOiB0cmFu
c2NlaXZlcnMpIHsKKyAgICAgICAgaWYgKG1hdGNoRnVuY3Rpb24oKnRyYW5zY2VpdmVyKSkKKyAg
ICAgICAgICAgIHJldHVybiB0cmFuc2NlaXZlci5nZXQoKTsKKyAgICB9CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK3N0YXRpYyBSVENSdHBUcmFuc2NlaXZlciogbWF0Y2hUcmFuc2NlaXZlckJ5
TWlkKGNvbnN0IFJ0cFRyYW5zY2VpdmVyVmVjdG9yJiB0cmFuc2NlaXZlcnMsIGNvbnN0IFN0cmlu
ZyYgbWlkKQoreworICAgIHJldHVybiBtYXRjaFRyYW5zY2VpdmVyKHRyYW5zY2VpdmVycywgWyZt
aWRdIChSVENSdHBUcmFuc2NlaXZlciYgY3VycmVudCkgeworICAgICAgICByZXR1cm4gY3VycmVu
dC5taWQoKSA9PSBtaWQ7CisgICAgfSk7Cit9CisKIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25u
ZWN0aW9uOjpydW5UYXNrKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJiB0YXNrKQogewog
ICAgIGlmIChtX2R0bHNGaW5nZXJwcmludC5pc051bGwoKSkgewpAQCAtMTI4LDIxICsxNDUsNDcg
QEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZU9mZmVyVGFzayhSVENP
ZmZlck9wdGlvbnMmLCBTZXNzaW9uRGVzY3IKIHsKICAgICBBU1NFUlQoIW1fZHRsc0ZpbmdlcnBy
aW50LmlzRW1wdHkoKSk7CiAKKyAgICBpZiAobV9jbGllbnQtPmludGVybmFsU2lnbmFsaW5nU3Rh
dGUoKSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgICAgICByZXR1cm47CisKICAgICBS
ZWZQdHI8TWVkaWFFbmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uU25h
cHNob3QgPSBNZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRpb246OmNyZWF0ZSgpOwogCi0g
ICAgY29uZmlndXJhdGlvblNuYXBzaG90LT5zZXRTZXNzaW9uVmVyc2lvbihtX3NkcFNlc3Npb25W
ZXJzaW9uKyspOworICAgIGNvbmZpZ3VyYXRpb25TbmFwc2hvdC0+c2V0U2Vzc2lvblZlcnNpb24o
bV9zZHBPZmZlclNlc3Npb25WZXJzaW9uKyspOworCisgICAgYXV0byB0cmFuc2NlaXZlcnMgPSBS
dHBUcmFuc2NlaXZlclZlY3RvcihtX2NsaWVudC0+Z2V0VHJhbnNjZWl2ZXJzKCkpOworCisgICAg
Ly8gUmVtb3ZlIGFueSB0cmFuc2NlaXZlciBvYmplY3RzIGZyb20gdHJhbnNjZWl2ZXJzIHRoYXQg
Y2FuIGJlIG1hdGNoZWQgdG8gYW4gZXhpc3RpbmcgbWVkaWEgZGVzY3JpcHRpb24uCisgICAgZm9y
IChhdXRvJiBtZWRpYURlc2NyaXB0aW9uIDogY29uZmlndXJhdGlvblNuYXBzaG90LT5tZWRpYURl
c2NyaXB0aW9ucygpKSB7CisgICAgICAgIGlmICghbWVkaWFEZXNjcmlwdGlvbi0+cG9ydCgpKSB7
CisgICAgICAgICAgICAvLyBUaGlzIG1lZGlhIGRlc2NyaXB0aW9uIHNob3VsZCBiZSByZWN5Y2xl
ZC4KKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgUlRDUnRwVHJh
bnNjZWl2ZXIqIHRyYW5zY2VpdmVyID0gbWF0Y2hUcmFuc2NlaXZlckJ5TWlkKHRyYW5zY2VpdmVy
cywgbWVkaWFEZXNjcmlwdGlvbi0+bWlkKCkpOworICAgICAgICBpZiAoIXRyYW5zY2VpdmVyKQor
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICBSdHBTZW5kZXJWZWN0b3Igc2VuZGVycyA9IFJ0
cFNlbmRlclZlY3RvcihtX2NsaWVudC0+Z2V0U2VuZGVycygpKTsKKyAgICAgICAgbWVkaWFEZXNj
cmlwdGlvbi0+c2V0TW9kZSh0cmFuc2NlaXZlci0+ZGlyZWN0aW9uU3RyaW5nKCkpOworICAgICAg
ICBpZiAodHJhbnNjZWl2ZXItPmhhc1NlbmRpbmdEaXJlY3Rpb24oKSkgeworICAgICAgICAgICAg
UlRDUnRwU2VuZGVyJiBzZW5kZXIgPSAqdHJhbnNjZWl2ZXItPnNlbmRlcigpOwogCi0gICAgLy8g
QWRkIG1lZGlhIGRlc2NyaXB0aW9ucyBmb3Igc2VuZGVycy4KLSAgICBmb3IgKGF1dG8mIHNlbmRl
ciA6IHNlbmRlcnMpIHsKKyAgICAgICAgICAgIG1lZGlhRGVzY3JpcHRpb24tPnNldE1lZGlhU3Ry
ZWFtSWQoc2VuZGVyLm1lZGlhU3RyZWFtSWRzKClbMF0pOworICAgICAgICAgICAgbWVkaWFEZXNj
cmlwdGlvbi0+c2V0TWVkaWFTdHJlYW1UcmFja0lkKHNlbmRlci50cmFja0lkKCkpOworICAgICAg
ICB9CisKKyAgICAgICAgdHJhbnNjZWl2ZXJzLnJlbW92ZUZpcnN0KHRyYW5zY2VpdmVyKTsKKyAg
ICB9CisKKyAgICAvLyBBZGQgbWVkaWEgZGVzY3JpcHRpb25zIGZvciByZW1haW5pbmcgdHJhbnNj
ZWl2ZXJzLgorICAgIGZvciAoYXV0byYgdHJhbnNjZWl2ZXIgOiB0cmFuc2NlaXZlcnMpIHsKICAg
ICAgICAgUmVmUHRyPFBlZXJNZWRpYURlc2NyaXB0aW9uPiBtZWRpYURlc2NyaXB0aW9uID0gUGVl
ck1lZGlhRGVzY3JpcHRpb246OmNyZWF0ZSgpOwotICAgICAgICBNZWRpYVN0cmVhbVRyYWNrJiB0
cmFjayA9ICpzZW5kZXItPnRyYWNrKCk7CisgICAgICAgIFJUQ1J0cFNlbmRlciYgc2VuZGVyID0g
KnRyYW5zY2VpdmVyLT5zZW5kZXIoKTsKIAotICAgICAgICBtZWRpYURlc2NyaXB0aW9uLT5zZXRN
ZWRpYVN0cmVhbUlkKHNlbmRlci0+bWVkaWFTdHJlYW1JZHMoKVswXSk7Ci0gICAgICAgIG1lZGlh
RGVzY3JpcHRpb24tPnNldE1lZGlhU3RyZWFtVHJhY2tJZCh0cmFjay5pZCgpKTsKLSAgICAgICAg
bWVkaWFEZXNjcmlwdGlvbi0+c2V0VHlwZSh0cmFjay5raW5kKCkpOwotICAgICAgICBtZWRpYURl
c2NyaXB0aW9uLT5zZXRQYXlsb2Fkcyh0cmFjay5raW5kKCkgPT0gImF1ZGlvIiA/IG1fZGVmYXVs
dEF1ZGlvUGF5bG9hZHMgOiBtX2RlZmF1bHRWaWRlb1BheWxvYWRzKTsKKyAgICAgICAgbWVkaWFE
ZXNjcmlwdGlvbi0+c2V0TW9kZSh0cmFuc2NlaXZlci0+ZGlyZWN0aW9uU3RyaW5nKCkpOworICAg
ICAgICBtZWRpYURlc2NyaXB0aW9uLT5zZXRNaWQodHJhbnNjZWl2ZXItPnByb3Zpc2lvbmFsTWlk
KCkpOworICAgICAgICBtZWRpYURlc2NyaXB0aW9uLT5zZXRNZWRpYVN0cmVhbUlkKHNlbmRlci5t
ZWRpYVN0cmVhbUlkcygpWzBdKTsKKyAgICAgICAgbWVkaWFEZXNjcmlwdGlvbi0+c2V0VHlwZShz
ZW5kZXIudHJhY2tLaW5kKCkpOworICAgICAgICBtZWRpYURlc2NyaXB0aW9uLT5zZXRQYXlsb2Fk
cyhzZW5kZXIudHJhY2tLaW5kKCkgPT0gImF1ZGlvIiA/IG1fZGVmYXVsdEF1ZGlvUGF5bG9hZHMg
OiBtX2RlZmF1bHRWaWRlb1BheWxvYWRzKTsKICAgICAgICAgbWVkaWFEZXNjcmlwdGlvbi0+c2V0
RHRsc0ZpbmdlcnByaW50SGFzaEZ1bmN0aW9uKG1fZHRsc0ZpbmdlcnByaW50RnVuY3Rpb24pOwog
ICAgICAgICBtZWRpYURlc2NyaXB0aW9uLT5zZXREdGxzRmluZ2VycHJpbnQobV9kdGxzRmluZ2Vy
cHJpbnQpOwogICAgICAgICBtZWRpYURlc2NyaXB0aW9uLT5zZXRDbmFtZShtX2NuYW1lKTsKQEAg
LTE1MCw2ICsxOTMsOSBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Y3JlYXRl
T2ZmZXJUYXNrKFJUQ09mZmVyT3B0aW9ucyYsIFNlc3Npb25EZXNjcgogICAgICAgICBtZWRpYURl
c2NyaXB0aW9uLT5zZXRJY2VVZnJhZyhtX2ljZVVmcmFnKTsKICAgICAgICAgbWVkaWFEZXNjcmlw
dGlvbi0+c2V0SWNlUGFzc3dvcmQobV9pY2VQYXNzd29yZCk7CiAKKyAgICAgICAgaWYgKHNlbmRl
ci50cmFjaygpKQorICAgICAgICAgICAgbWVkaWFEZXNjcmlwdGlvbi0+c2V0TWVkaWFTdHJlYW1U
cmFja0lkKHNlbmRlci50cmFja0lkKCkpOworCiAgICAgICAgIGNvbmZpZ3VyYXRpb25TbmFwc2hv
dC0+YWRkTWVkaWFEZXNjcmlwdGlvbihXVEZNb3ZlKG1lZGlhRGVzY3JpcHRpb24pKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFF
bmRwb2ludFBlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCmluZGV4IGYyNTgyZmIuLmY2OWEyM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRw
b2ludFBlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaApAQCAtNDYsNiArNDYsNyBAQCBjbGFz
cyBNZWRpYVN0cmVhbVRyYWNrOwogY2xhc3MgU0RQUHJvY2Vzc29yOwogCiB0eXBlZGVmIFZlY3Rv
cjxSZWZQdHI8UlRDUnRwU2VuZGVyPj4gUnRwU2VuZGVyVmVjdG9yOwordHlwZWRlZiBWZWN0b3I8
UmVmUHRyPFJUQ1J0cFRyYW5zY2VpdmVyPj4gUnRwVHJhbnNjZWl2ZXJWZWN0b3I7CiAKIGNsYXNz
IE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbiA6IHB1YmxpYyBQZWVyQ29ubmVjdGlvbkJhY2tl
bmQsIHB1YmxpYyBNZWRpYUVuZHBvaW50Q2xpZW50IHsKIHB1YmxpYzoKQEAgLTEwNSw3ICsxMDYs
NyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2ljZVBhc3N3b3JkOwogICAgIFN0cmluZyBtX2R0
bHNGaW5nZXJwcmludDsKICAgICBTdHJpbmcgbV9kdGxzRmluZ2VycHJpbnRGdW5jdGlvbjsKLSAg
ICB1bnNpZ25lZCBtX3NkcFNlc3Npb25WZXJzaW9uIHsgMCB9OworICAgIHVuc2lnbmVkIG1fc2Rw
T2ZmZXJTZXNzaW9uVmVyc2lvbiB7IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uQmFja2VuZC5oCmluZGV4IGIzODFjZTUuLjAxZjg3YjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuaApAQCAtNjIsNyArNjIsNiBAQCB0eXBlZGVmIERPTVByb21pc2U8UlRDU3RhdHNSZXNw
b25zZT4gU3RhdHNQcm9taXNlOwogY2xhc3MgUGVlckNvbm5lY3Rpb25CYWNrZW5kQ2xpZW50IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRwVHJhbnNjZWl2
ZXI+PiYgZ2V0VHJhbnNjZWl2ZXJzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgVmVj
dG9yPFJlZlB0cjxSVENSdHBTZW5kZXI+PiYgZ2V0U2VuZGVycygpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZmlyZUV2ZW50KEV2ZW50JikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNl
dFNpZ25hbGluZ1N0YXRlKFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZSkgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5oCmluZGV4IDU0ZmE4MDUuLjIxZGEwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTYz
LDcgKzYzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgRGljdGlvbmFyeSYgcnRjQ29u
ZmlndXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIH5SVENQZWVyQ29ubmVjdGlvbigpOwog
Ci0gICAgY29uc3QgVmVjdG9yPFJlZlB0cjxSVENSdHBTZW5kZXI+PiYgZ2V0U2VuZGVycygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdHJhbnNjZWl2ZXJTZXQtPmdldFNlbmRlcnMoKTsgfQor
ICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRwU2VuZGVyPj4mIGdldFNlbmRlcnMoKSBjb25z
dCB7IHJldHVybiBtX3RyYW5zY2VpdmVyU2V0LT5nZXRTZW5kZXJzKCk7IH0KICAgICBjb25zdCBW
ZWN0b3I8UmVmUHRyPFJUQ1J0cFJlY2VpdmVyPj4mIGdldFJlY2VpdmVycygpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhbnNjZWl2ZXJTZXQtPmdldFJlY2VpdmVycygpOyB9CiAgICAgY29uc3QgVmVjdG9y
PFJlZlB0cjxSVENSdHBUcmFuc2NlaXZlcj4+JiBnZXRUcmFuc2NlaXZlcnMoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3RyYW5zY2VpdmVyU2V0LT5saXN0KCk7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TRFBQcm9jZXNzb3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TRFBQcm9jZXNzb3IuY3BwCmluZGV4IDQ1
NDA1OWYuLjZhZjkwYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vU0RQUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1NEUFByb2Nlc3Nvci5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgU1RSSU5HX0ZVTkNUSU9O
KGljZSkKIFNUUklOR19GVU5DVElPTihtZWRpYURlc2NyaXB0aW9ucykKIFNUUklOR19GVU5DVElP
TihtZWRpYVN0cmVhbUlkKQogU1RSSU5HX0ZVTkNUSU9OKG1lZGlhU3RyZWFtVHJhY2tJZCkKK1NU
UklOR19GVU5DVElPTihtaWQpCiBTVFJJTkdfRlVOQ1RJT04obW9kZSkKIFNUUklOR19GVU5DVElP
TihtdXgpCiBTVFJJTkdfRlVOQ1RJT04obmFjaykKQEAgLTIxMSw2ICsyMTIsOSBAQCBzdGF0aWMg
UmVmUHRyPE1lZGlhRW5kcG9pbnRTZXNzaW9uQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbkZy
b21KU09OKGNvbnN0IFN0cgogICAgICAgICBpZiAobWVkaWFEZXNjcmlwdGlvbk9iamVjdC0+Z2V0
U3RyaW5nKG1vZGVTdHJpbmcoKSwgc3RyaW5nVmFsdWUpKQogICAgICAgICAgICAgbWVkaWFEZXNj
cmlwdGlvbi0+c2V0TW9kZShzdHJpbmdWYWx1ZSk7CiAKKyAgICAgICAgaWYgKG1lZGlhRGVzY3Jp
cHRpb25PYmplY3QtPmdldFN0cmluZyhtaWRTdHJpbmcoKSwgc3RyaW5nVmFsdWUpKQorICAgICAg
ICAgICAgbWVkaWFEZXNjcmlwdGlvbi0+c2V0TWlkKHN0cmluZ1ZhbHVlKTsKKwogICAgICAgICBS
ZWZQdHI8SW5zcGVjdG9yQXJyYXk+IHBheWxvYWRzQXJyYXkgPSBJbnNwZWN0b3JBcnJheTo6Y3Jl
YXRlKCk7CiAgICAgICAgIG1lZGlhRGVzY3JpcHRpb25PYmplY3QtPmdldEFycmF5KHBheWxvYWRz
U3RyaW5nKCksIHBheWxvYWRzQXJyYXkpOwogCkBAIC0zNTMsNiArMzU3LDcgQEAgc3RhdGljIFN0
cmluZyBjb25maWd1cmF0aW9uVG9KU09OKGNvbnN0IE1lZGlhRW5kcG9pbnRTZXNzaW9uQ29uZmln
dXJhdGlvbiYgY29uZmkKICAgICAgICAgbWVkaWFEZXNjcmlwdGlvbk9iamVjdC0+c2V0SW50ZWdl
cihwb3J0U3RyaW5nKCksIG1lZGlhRGVzY3JpcHRpb24tPnBvcnQoKSk7CiAgICAgICAgIG1lZGlh
RGVzY3JpcHRpb25PYmplY3QtPnNldFN0cmluZyhhZGRyZXNzU3RyaW5nKCksIG1lZGlhRGVzY3Jp
cHRpb24tPmFkZHJlc3MoKSk7CiAgICAgICAgIG1lZGlhRGVzY3JpcHRpb25PYmplY3QtPnNldFN0
cmluZyhtb2RlU3RyaW5nKCksIG1lZGlhRGVzY3JpcHRpb24tPm1vZGUoKSk7CisgICAgICAgIG1l
ZGlhRGVzY3JpcHRpb25PYmplY3QtPnNldFN0cmluZyhtaWRTdHJpbmcoKSwgbWVkaWFEZXNjcmlw
dGlvbi0+bWlkKCkpOwogCiAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gcGF5bG9hZHNB
cnJheSA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9zZHAuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL3NkcC5qcwppbmRleCAyNGZjODhjLi42MDc2Zjc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL3NkcC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL3NkcC5qcwpAQCAtNDAsOCArNDAsOSBAQCBpZiAodHlw
ZW9mKFNEUCkgPT0gInVuZGVmaW5lZCIpCiAgICAgICAgICJtc2lkc2VtYW50aWMiOiAiXmE9bXNp
ZC1zZW1hbnRpYzogKldNUyAuKiQiLAogICAgICAgICAibWJsb2NrIjogIl5tPShhdWRpb3x2aWRl
b3xhcHBsaWNhdGlvbikgKFtcXGRdKykgKFtBLVovXSspKFtcXGQgXSopJFxccj9cXG4iLAogICAg
ICAgICAibW9kZSI6ICJeYT0oc2VuZHJlY3Z8c2VuZG9ubHl8cmVjdm9ubHl8aW5hY3RpdmUpLiok
IiwKKyAgICAgICAgIm1pZCI6ICJeYT1taWQ6KFshIyQlJicqKy0uXFx3XSopLiokIiwKICAgICAg
ICAgInJ0cG1hcCI6ICJeYT1ydHBtYXA6JHt0eXBlfSAoW1xcd1xcLV0rKS8oW1xcZF0rKS8/KFtc
XGRdKyk/LiokIiwKLSAgICAgICAgImZtdHAiOiAiXmE9Zm10cDoke3R5cGV9IChbXFx3XFwtPTtd
KykuKiQiLAorICAgICAgICAiZm10cCI6ICJeYT1mbXRwOiR7dHlwZX0gKFtcXHdcXC09OyBdKyku
KiQiLAogICAgICAgICAicGFyYW0iOiAiKFtcXHdcXC1dKyk9KFtcXHdcXC1dKyk7PyIsCiAgICAg
ICAgICJuYWNrIjogIl5hPXJ0Y3AtZmI6JHt0eXBlfSBuYWNrJCIsCiAgICAgICAgICJuYWNrcGxp
IjogIl5hPXJ0Y3AtZmI6JHt0eXBlfSBuYWNrIHBsaSQiLApAQCAtNzcsNiArNzgsNyBAQCBpZiAo
dHlwZW9mKFNEUCkgPT0gInVuZGVmaW5lZCIpCiAgICAgICAgICAgICAiJHtydGNwTGluZX0iICsK
ICAgICAgICAgICAgICIke3J0Y3BNdXhMaW5lfSIgKwogICAgICAgICAgICAgImE9JHttb2RlfVxy
XG4iICsKKyAgICAgICAgICAgICIke21pZExpbmV9IiArCiAgICAgICAgICAgICAiJHtydHBNYXBM
aW5lc30iICsKICAgICAgICAgICAgICIke2ZtdHBMaW5lc30iICsKICAgICAgICAgICAgICIke25h
Y2tMaW5lc30iICsKQEAgLTkzLDYgKzk1LDcgQEAgaWYgKHR5cGVvZihTRFApID09ICJ1bmRlZmlu
ZWQiKQogCiAgICAgICAgICJydGNwIjogImE9cnRjcDoke3BvcnR9JHtbIF1uZXRUeXBlfSR7WyBd
YWRkcmVzc1R5cGV9JHtbIF1hZGRyZXNzfVxyXG4iLAogICAgICAgICAicnRjcE11eCI6ICJhPXJ0
Y3AtbXV4XHJcbiIsCisgICAgICAgICJtaWQiOiAiYT1taWQ6JHttaWR9XHJcbiIsCiAKICAgICAg
ICAgInJ0cE1hcCI6ICJhPXJ0cG1hcDoke3R5cGV9ICR7ZW5jb2RpbmdOYW1lfS8ke2Nsb2NrUmF0
ZX0ke1svXWNoYW5uZWxzfVxyXG4iLAogICAgICAgICAiZm10cCI6ICJhPWZtdHA6JHt0eXBlfSAk
e3BhcmFtZXRlcnN9XHJcbiIsCkBAIC0yMDIsNiArMjA1LDEwIEBAIGlmICh0eXBlb2YoU0RQKSA9
PSAidW5kZWZpbmVkIikKICAgICAgICAgICAgIGlmIChtb2RlKQogICAgICAgICAgICAgICAgIG1l
ZGlhRGVzY3JpcHRpb24ubW9kZSA9IG1vZGVbMV07CiAKKyAgICAgICAgICAgIHZhciBtaWQgPSBt
YXRjaChtYmxvY2ssIHJlZ2V4cHMubWlkLCAibSIsIHNibG9jayk7CisgICAgICAgICAgICBpZiAo
bWlkKQorICAgICAgICAgICAgICAgIG1lZGlhRGVzY3JpcHRpb24ubWlkID0gbWlkWzFdOworCiAg
ICAgICAgICAgICB2YXIgcGF5bG9hZFR5cGVzID0gW107CiAgICAgICAgICAgICBpZiAobWF0Y2go
bWVkaWFEZXNjcmlwdGlvbi5wcm90b2NvbCwgIihVRFAvVExTKT9SVFAvUz9BVlBGPyIpKSB7CiAg
ICAgICAgICAgICAgICAgbWVkaWFEZXNjcmlwdGlvbi5wYXlsb2FkcyA9IFtdOwpAQCAtNDA1LDYg
KzQxMiwxMSBAQCBpZiAodHlwZW9mKFNEUCkgPT0gInVuZGVmaW5lZCIpCiAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIHZhciBtYmxvY2sgPSBmaWxsVGVtcGxhdGUodGVtcGxhdGVzLm1ibG9j
aywgbWVkaWFEZXNjcmlwdGlvbik7CiAKKyAgICAgICAgICAgIHZhciBtaWRJbmZvID0geyJtaWRM
aW5lIjogIiJ9OworICAgICAgICAgICAgaWYgKG1lZGlhRGVzY3JpcHRpb24ubWlkKQorICAgICAg
ICAgICAgICAgIG1pZEluZm8ubWlkTGluZSA9IGZpbGxUZW1wbGF0ZSh0ZW1wbGF0ZXMubWlkLCBt
ZWRpYURlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIG1ibG9jayA9IGZpbGxUZW1wbGF0ZShtYmxv
Y2ssIG1pZEluZm8pOworCiAgICAgICAgICAgICB2YXIgcGF5bG9hZEluZm8gPSB7InJ0cE1hcExp
bmVzIjogIiIsICJmbXRwTGluZXMiOiAiIiwgIm5hY2tMaW5lcyI6ICIiLAogICAgICAgICAgICAg
ICAgICJuYWNrcGxpTGluZXMiOiAiIiwgImNjbWZpckxpbmVzIjogIiIsICJlcmljU2NyZWFtTGlu
ZXMiOiAiIn07CiAgICAgICAgICAgICBtZWRpYURlc2NyaXB0aW9uLnBheWxvYWRzLmZvckVhY2go
ZnVuY3Rpb24gKHBheWxvYWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1BlZXJNZWRpYURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9QZWVyTWVkaWFEZXNjcmlwdGlvbi5oCmluZGV4IDIyZGMxM2EuLmI3
ZDRhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Bl
ZXJNZWRpYURlc2NyaXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUGVlck1lZGlhRGVzY3JpcHRpb24uaApAQCAtNjEsNiArNjEsOSBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgU3RyaW5nJiBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAgICAgdm9p
ZCBzZXRNb2RlKGNvbnN0IFN0cmluZyYgbW9kZSkgeyBtX21vZGUgPSBtb2RlOyB9CiAKKyAgICBj
b25zdCBTdHJpbmcmIG1pZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWlkOyB9CisgICAgdm9pZCBzZXRN
aWQoY29uc3QgU3RyaW5nJiBtaWQpIHsgbV9taWQgPSBtaWQ7IH0KKwogICAgIGNvbnN0IFZlY3Rv
cjxSZWZQdHI8TWVkaWFQYXlsb2FkPj4mIHBheWxvYWRzKCkgY29uc3QgeyByZXR1cm4gbV9wYXls
b2FkczsgfQogICAgIHZvaWQgYWRkUGF5bG9hZChSZWZQdHI8TWVkaWFQYXlsb2FkPiYmIHBheWxv
YWQpIHsgbV9wYXlsb2Fkcy5hcHBlbmQoV1RGTW92ZShwYXlsb2FkKSk7IH0KICAgICB2b2lkIHNl
dFBheWxvYWRzKFZlY3RvcjxSZWZQdHI8TWVkaWFQYXlsb2FkPj4mJiBwYXlsb2FkcykgeyBtX3Bh
eWxvYWRzID0gcGF5bG9hZHM7IH0KQEAgLTExNyw2ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGNvcHktPm1fcG9ydCA9IG1fcG9ydDsKICAgICAgICAgY29weS0+bV9hZGRyZXNzID0gU3RyaW5n
KG1fYWRkcmVzcyk7CiAgICAgICAgIGNvcHktPm1fbW9kZSA9IFN0cmluZyhtX21vZGUpOworICAg
ICAgICBjb3B5LT5tX21pZCA9IFN0cmluZyhtX21pZCk7CiAKICAgICAgICAgZm9yIChhdXRvJiBw
YXlsb2FkIDogbV9wYXlsb2FkcykKICAgICAgICAgICAgIGNvcHktPm1fcGF5bG9hZHMuYXBwZW5k
KHBheWxvYWQtPmNsb25lKCkpOwpAQCAtMTUzLDYgKzE1Nyw3IEBAIHByaXZhdGU6CiAgICAgdW5z
aWduZWQgc2hvcnQgbV9wb3J0IHsgOSB9OwogICAgIFN0cmluZyBtX2FkZHJlc3MgeyAiMC4wLjAu
MCIgfTsKICAgICBTdHJpbmcgbV9tb2RlIHsgInNlbmRyZWN2IiB9OworICAgIFN0cmluZyBtX21p
ZDsKIAogICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFQYXlsb2FkPj4gbV9wYXlsb2FkczsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>