<?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>209054</bug_id>
          
          <creation_ts>2020-03-13 08:48:59 -0700</creation_ts>
          <short_desc>Remove AffectedByDrag style flag</short_desc>
          <delta_ts>2020-03-16 10:01:40 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1629620</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-03-13 08:48:59 -0700</bug_when>
    <thetext>Remove the last remaining user action related AffectedBy flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629647</commentid>
    <comment_count>1</comment_count>
      <attachid>393490</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-03-13 09:33:53 -0700</bug_when>
    <thetext>Created attachment 393490
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629673</commentid>
    <comment_count>2</comment_count>
      <attachid>393490</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-13 10:25:05 -0700</bug_when>
    <thetext>Comment on attachment 393490
patch

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

Dragging is under tested, so some manual testing of this is warranted.

&gt; Source/WebCore/dom/Element.h:318
&gt; +    bool isDragged() const { return isUserActionElement() &amp;&amp; isUserActionElementDragged(); }

isDragged is weird. isBeingDragged?

&gt; Source/WebCore/dom/Element.h:324
&gt; +    void setDragged(bool);

setIsBeingDragged?

&gt; Source/WebCore/dom/Node.h:612
&gt; +        ChildrenAffectedByForwardPositionalRules = 1 &lt;&lt; 1,
&gt; +        DescendantsAffectedByForwardPositionalRules = 1 &lt;&lt; 2,
&gt; +        ChildrenAffectedByBackwardPositionalRules = 1 &lt;&lt; 3,
&gt; +        DescendantsAffectedByBackwardPositionalRules = 1 &lt;&lt; 4,
&gt; +        ChildrenAffectedByPropertyBasedBackwardPositionalRules = 1 &lt;&lt; 5,

I would align the = but that&apos;s just me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629693</commentid>
    <comment_count>3</comment_count>
      <attachid>393504</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-03-13 10:46:33 -0700</bug_when>
    <thetext>Created attachment 393504
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629749</commentid>
    <comment_count>4</comment_count>
      <attachid>393504</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-13 11:56:00 -0700</bug_when>
    <thetext>Comment on attachment 393504
patch

Clearing flags on attachment: 393504

Committed r258416: &lt;https://trac.webkit.org/changeset/258416&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629750</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-13 11:56:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629751</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-13 11:56:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/60427264&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630227</commentid>
    <comment_count>7</comment_count>
      <attachid>393490</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-15 17:47:05 -0700</bug_when>
    <thetext>Comment on attachment 393490
patch

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

&gt; Source/WebCore/dom/UserActionElementSet.h:58
&gt;      enum class Flag {

: uint8_t maybe?

&gt; Source/WebCore/dom/UserActionElementSet.h:63
&gt; +        IsActive        = 1 &lt;&lt; 0,
&gt; +        InActiveChain   = 1 &lt;&lt; 1,
&gt; +        IsHovered       = 1 &lt;&lt; 2,
&gt; +        IsFocused       = 1 &lt;&lt; 3,
&gt; +        IsDragged       = 1 &lt;&lt; 4,

I’m like the opposite of Simon. I would not have lined these up, and it’s just me saying that ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630251</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-03-15 23:44:18 -0700</bug_when>
    <thetext>I&apos;m totally in line-up camp, I just forgot to do it with this enum in the original patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630252</commentid>
    <comment_count>9</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-03-15 23:46:12 -0700</bug_when>
    <thetext>I wish this was a language feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630353</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-16 09:44:04 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #9)
&gt; I wish this was a language feature.

We should just clang-format everything!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630358</commentid>
    <comment_count>11</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-03-16 10:01:40 -0700</bug_when>
    <thetext>Hand-indenting these is not that hard either.

I meant a C++ feature to generate bit enums without the silly 1 &lt;&lt; n dance.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393490</attachid>
            <date>2020-03-13 09:33:53 -0700</date>
            <delta_ts>2020-03-13 10:46:33 -0700</delta_ts>
            <desc>patch</desc>
            <filename>drag-affected-by-remove.patch</filename>
            <type>text/plain</type>
            <size>23293</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNjZlYjE1ZTczNC4uNjNhNjVmY2U4NTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NCBAQAorMjAyMC0wMy0xMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIEFmZmVjdGVkQnlEcmFnIHN0eWxlIGZsYWcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA1NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFzIGEgZm9sbG93dXAgdG8gcjI1
ODMyMSwgcmVtb3ZlIHRoZSBsYXN0IHJlbWFpbmluZyB1c2VyIGFjdGlvbiByZWxhdGVkIEFmZmVj
dGVkQnkgZmxhZy4KKworICAgICAgICBUaGlzIGFsc28gY2xlYW5zIG91dCBhIGJ1bmNoIG9mIHNj
ZXRjaHksIHJpc2t5IGNvZGUgZnJvbSByZW5kZXIgdHJlZSAoc3R5bGUgaW52YWxpZGF0aW9uISku
CisKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUgY29uc3QpOgorICAgICAgICAqIGRvbS9EYXRhVHJh
bnNmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpjcmVhdGVEcmFnSW1h
Z2UgY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmlzVXNlckFjdGlvbkVsZW1lbnREcmFnZ2VkIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnQ6OnNldERyYWdnZWQpOgorCisgICAgICAgIE1vdmUgZHJhZ2dlZCBzdGF0
ZSBmb3IgcmVuZGVyIHRyZWUgdG8gRWxlbWVudCB3aGVyZSBpdCBiZWxvbmdzLgorCisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50OjpoYXNGbGFnc1NldER1cmluZ1N0eWxpbmdPZkNoaWxkcmVuIGNv
bnN0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6aXNEcmFnZ2VkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRlc2NlbmRh
bnRzQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpzZXREZXNjZW5kYW50c0FmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRyZW5BZmZlY3RlZEJ5RHJhZyBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRDaGlsZHJlbkFmZmVjdGVkQnlEcmFn
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRvbS9Vc2VyQWN0
aW9uRWxlbWVudFNldC5oOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6
OmlzRHJhZ2dlZCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxlbWVudFNldDo6c2V0
RHJhZ2dlZCk6CisKKyAgICAgICAgSW52YWxpZGF0ZSB1c2luZyBQc2V1ZG9DbGFzc0NoYW5nZUlu
dmFsaWRhdGlvbiB0aGF0IGRvZXNuJ3QgcmVxdWlyZSBhbnkgZmxhZ3MuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9EcmFnSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkTm9kZURyYWdF
bmFibGVyOjpTY29wZWROb2RlRHJhZ0VuYWJsZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVk
Tm9kZURyYWdFbmFibGVyOjp+U2NvcGVkTm9kZURyYWdFbmFibGVyKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnVw
ZGF0ZURyYWdTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJJbmxpbmU6OnVwZGF0ZURyYWdTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojp1cGRhdGVEcmFnU3RhdGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzZXRJc0RyYWdnaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlJlbmRlck9iamVjdFJhcmVEYXRhOjpSZW5kZXJPYmpl
Y3RSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzRHJhZ2dpbmcg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6Ok5vbkluaGVyaXRlZEZsYWdzOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclN0eWxlOjphZmZlY3RlZEJ5RHJhZyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0QWZmZWN0ZWRCeURyYWcpOiBEZWxldGVk
LgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVsYXRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpjb21taXRSZWxhdGlvbnNUb1JlbmRlclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpjb21taXRSZWxhdGlvbnMpOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVsYXRpb25z
Lmg6CisKIDIwMjAtMDMtMTMgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSB1bnVzZWQgYWZmZWN0ZWRCeSBzdHlsZSBmbGFncwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCA2NDhkZmJlMjUwNS4uMDJjZjgyOGU2NmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC05OTksMTEgKzk5OSw3IEBA
IGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZShDaGVja2luZ0NvbnRleHQmIGNoZWNraW5n
Q29udGV4dCwgY29uc3QgTG9jYWxDb250CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzRGlyZWN0Rm9jdXM6CiAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlc0RpcmVjdEZvY3Vz
UHNldWRvQ2xhc3MoZWxlbWVudCk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzRHJhZzoKLSAgICAgICAgICAgIGFkZFN0eWxlUmVsYXRpb24oY2hlY2tpbmdDb250ZXh0LCBl
bGVtZW50LCBTdHlsZTo6UmVsYXRpb246OkFmZmVjdGVkQnlEcmFnKTsKLQotICAgICAgICAgICAg
aWYgKGVsZW1lbnQucmVuZGVyZXIoKSAmJiBlbGVtZW50LnJlbmRlcmVyKCktPmlzRHJhZ2dpbmco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgcmV0dXJuIGVsZW1lbnQuaXNEcmFnZ2VkKCk7CiAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzRm9jdXM6CiAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlc0ZvY3Vz
UHNldWRvQ2xhc3MoZWxlbWVudCk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzRm9jdXNXaXRoaW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNmRhNDUyNjgxZjkuLjVj
NDI5YWY1MWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC02MjksNiArNjI5LDEyIEBAIGJv
b2wgRWxlbWVudDo6aXNVc2VyQWN0aW9uRWxlbWVudEhvdmVyZWQoKSBjb25zdAogICAgIHJldHVy
biBkb2N1bWVudCgpLnVzZXJBY3Rpb25FbGVtZW50cygpLmlzSG92ZXJlZCgqdGhpcyk7CiB9CiAK
K2Jvb2wgRWxlbWVudDo6aXNVc2VyQWN0aW9uRWxlbWVudERyYWdnZWQoKSBjb25zdAoreworICAg
IEFTU0VSVChpc1VzZXJBY3Rpb25FbGVtZW50KCkpOworICAgIHJldHVybiBkb2N1bWVudCgpLnVz
ZXJBY3Rpb25FbGVtZW50cygpLmlzRHJhZ2dlZCgqdGhpcyk7Cit9CisKIHZvaWQgRWxlbWVudDo6
c2V0QWN0aXZlKGJvb2wgZmxhZywgYm9vbCBwYXVzZSkKIHsKICAgICBpZiAoZmxhZyA9PSBhY3Rp
dmUoKSkKQEAgLTcxOSw2ICs3MjUsMTUgQEAgdm9pZCBFbGVtZW50OjpzZXRIb3ZlcmVkKGJvb2wg
ZmxhZykKICAgICAgICAgcmVuZGVyZXIoKS0+dGhlbWUoKS5zdGF0ZUNoYW5nZWQoKnJlbmRlcmVy
KCksIENvbnRyb2xTdGF0ZXM6OkhvdmVyU3RhdGUpOwogfQogCit2b2lkIEVsZW1lbnQ6OnNldERy
YWdnZWQoYm9vbCBmbGFnKQoreworICAgIGlmIChmbGFnID09IGlzRHJhZ2dlZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBTdHlsZTo6UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24gc3R5
bGVJbnZhbGlkYXRpb24oKnRoaXMsIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0RyYWcpOworICAg
IGRvY3VtZW50KCkudXNlckFjdGlvbkVsZW1lbnRzKCkuc2V0RHJhZ2dlZCgqdGhpcywgZmxhZyk7
Cit9CisKIGlubGluZSBTY3JvbGxBbGlnbm1lbnQgdG9TY3JvbGxBbGlnbm1lbnRGb3JJbmxpbmVE
aXJlY3Rpb24oT3B0aW9uYWw8U2Nyb2xsTG9naWNhbFBvc2l0aW9uPiBwb3NpdGlvbiwgV3JpdGlu
Z01vZGUgd3JpdGluZ01vZGUsIGJvb2wgaXNMVFIpCiB7CiAgICAgc3dpdGNoIChwb3NpdGlvbi52
YWx1ZU9yKFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6TmVhcmVzdCkpIHsKQEAgLTM0MDMsNyArMzQx
OCw2IEBAIGJvb2wgRWxlbWVudDo6aGFzRmxhZ3NTZXREdXJpbmdTdHlsaW5nT2ZDaGlsZHJlbigp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGNoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0Q2hpbGRSdWxlcygp
CiAgICAgICAgIHx8IGNoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzKCkKLSAgICAgICAg
fHwgY2hpbGRyZW5BZmZlY3RlZEJ5RHJhZygpCiAgICAgICAgIHx8IGNoaWxkcmVuQWZmZWN0ZWRC
eUZvcndhcmRQb3NpdGlvbmFsUnVsZXMoKQogICAgICAgICB8fCBkZXNjZW5kYW50c0FmZmVjdGVk
QnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKCkKICAgICAgICAgfHwgY2hpbGRyZW5BZmZlY3RlZEJ5
QmFja3dhcmRQb3NpdGlvbmFsUnVsZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggM2U3OWUxNTk3
MzUuLjBlOGYzNDZlZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTMxNSwxMiArMzE1LDE0IEBA
IHB1YmxpYzoKICAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGlzVXNlckFjdGlvbkVs
ZW1lbnQoKSAmJiBpc1VzZXJBY3Rpb25FbGVtZW50QWN0aXZlKCk7IH0KICAgICBib29sIGhvdmVy
ZWQoKSBjb25zdCB7IHJldHVybiBpc1VzZXJBY3Rpb25FbGVtZW50KCkgJiYgaXNVc2VyQWN0aW9u
RWxlbWVudEhvdmVyZWQoKTsgfQogICAgIGJvb2wgZm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIGlz
VXNlckFjdGlvbkVsZW1lbnQoKSAmJiBpc1VzZXJBY3Rpb25FbGVtZW50Rm9jdXNlZCgpOyB9Cisg
ICAgYm9vbCBpc0RyYWdnZWQoKSBjb25zdCB7IHJldHVybiBpc1VzZXJBY3Rpb25FbGVtZW50KCkg
JiYgaXNVc2VyQWN0aW9uRWxlbWVudERyYWdnZWQoKTsgfQogICAgIGJvb2wgaGFzRm9jdXNXaXRo
aW4oKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKEhhc0ZvY3VzV2l0aGluKTsgfTsKIAotICAgIHZp
cnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBmbGFnID0gdHJ1ZSwgYm9vbCBwYXVzZSA9IGZhbHNl
KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sIGZsYWcgPSB0cnVlKTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCBmbGFnKTsKLSAgICB2b2lkIHNldEhhc0ZvY3VzV2l0
aGluKGJvb2wgZmxhZyk7CisgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sID0gdHJ1ZSwg
Ym9vbCBwYXVzZSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sID0g
dHJ1ZSk7CisgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wpOworICAgIHZvaWQgc2V0RHJh
Z2dlZChib29sKTsKKyAgICB2b2lkIHNldEhhc0ZvY3VzV2l0aGluKGJvb2wpOwogCiAgICAgT3B0
aW9uYWw8aW50PiB0YWJJbmRleFNldEV4cGxpY2l0bHkoKSBjb25zdDsKICAgICBib29sIHNob3Vs
ZEJlSWdub3JlZEluU2VxdWVudGlhbEZvY3VzTmF2aWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGRl
ZmF1bHRUYWJJbmRleCgpIDwgMCAmJiAhc3VwcG9ydHNGb2N1cygpOyB9CkBAIC0zNTEsNyArMzUz
LDYgQEAgcHVibGljOgogICAgIC8vIE1ldGhvZHMgZm9yIGluZGljYXRpbmcgdGhlIHN0eWxlIGlz
IGFmZmVjdGVkIGJ5IGR5bmFtaWMgdXBkYXRlcyAoZS5nLiwgY2hpbGRyZW4gY2hhbmdpbmcsIG91
ciBwb3NpdGlvbiBjaGFuZ2luZyBpbiBvdXIgc2libGluZyBsaXN0LCBldGMuKQogICAgIGJvb2wg
c3R5bGVBZmZlY3RlZEJ5RW1wdHkoKSBjb25zdCB7IHJldHVybiBoYXNTdHlsZUZsYWcoRWxlbWVu
dFN0eWxlRmxhZzo6U3R5bGVBZmZlY3RlZEJ5RW1wdHkpOyB9CiAgICAgYm9vbCBkZXNjZW5kYW50
c0FmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKERlc2Nl
bmRhbnRzQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZ0ZsYWcpOyB9Ci0gICAgYm9vbCBjaGlsZHJl
bkFmZmVjdGVkQnlEcmFnKCkgY29uc3QgeyByZXR1cm4gaGFzU3R5bGVGbGFnKEVsZW1lbnRTdHls
ZUZsYWc6OkNoaWxkcmVuQWZmZWN0ZWRCeURyYWcpOyB9CiAgICAgYm9vbCBjaGlsZHJlbkFmZmVj
dGVkQnlGaXJzdENoaWxkUnVsZXMoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKENoaWxkcmVuQWZm
ZWN0ZWRCeUZpcnN0Q2hpbGRSdWxlc0ZsYWcpOyB9CiAgICAgYm9vbCBjaGlsZHJlbkFmZmVjdGVk
QnlMYXN0Q2hpbGRSdWxlcygpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoQ2hpbGRyZW5BZmZlY3Rl
ZEJ5TGFzdENoaWxkUnVsZXNGbGFnKTsgfQogICAgIGJvb2wgY2hpbGRyZW5BZmZlY3RlZEJ5Rm9y
d2FyZFBvc2l0aW9uYWxSdWxlcygpIGNvbnN0IHsgcmV0dXJuIGhhc1N0eWxlRmxhZyhFbGVtZW50
U3R5bGVGbGFnOjpDaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKTsgfQpA
QCAtMzY2LDcgKzM2Nyw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U3R5bGVBZmZlY3RlZEJ5
RW1wdHkoKSB7IHNldFN0eWxlRmxhZyhFbGVtZW50U3R5bGVGbGFnOjpTdHlsZUFmZmVjdGVkQnlF
bXB0eSk7IH0KICAgICB2b2lkIHNldERlc2NlbmRhbnRzQWZmZWN0ZWRCeVByZXZpb3VzU2libGlu
ZygpIHsgc2V0RmxhZyhEZXNjZW5kYW50c0FmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmdGbGFnKTsg
fQotICAgIHZvaWQgc2V0Q2hpbGRyZW5BZmZlY3RlZEJ5RHJhZygpIHsgc2V0U3R5bGVGbGFnKEVs
ZW1lbnRTdHlsZUZsYWc6OkNoaWxkcmVuQWZmZWN0ZWRCeURyYWcpOyB9CiAgICAgdm9pZCBzZXRD
aGlsZHJlbkFmZmVjdGVkQnlGaXJzdENoaWxkUnVsZXMoKSB7IHNldEZsYWcoQ2hpbGRyZW5BZmZl
Y3RlZEJ5Rmlyc3RDaGlsZFJ1bGVzRmxhZyk7IH0KICAgICB2b2lkIHNldENoaWxkcmVuQWZmZWN0
ZWRCeUxhc3RDaGlsZFJ1bGVzKCkgeyBzZXRGbGFnKENoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGls
ZFJ1bGVzRmxhZyk7IH0KICAgICB2b2lkIHNldENoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3Np
dGlvbmFsUnVsZXMoKSB7IHNldFN0eWxlRmxhZyhFbGVtZW50U3R5bGVGbGFnOjpDaGlsZHJlbkFm
ZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKTsgfQpAQCAtNjQyLDYgKzY0Miw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBpc1VzZXJBY3Rpb25FbGVtZW50QWN0aXZlKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc1VzZXJBY3Rpb25FbGVtZW50Rm9jdXNlZCgpIGNvbnN0OwogICAgIGJvb2wgaXNVc2Vy
QWN0aW9uRWxlbWVudEhvdmVyZWQoKSBjb25zdDsKKyAgICBib29sIGlzVXNlckFjdGlvbkVsZW1l
bnREcmFnZ2VkKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVXNlckFnZW50U2hh
ZG93Um9vdChTaGFkb3dSb290JikgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDYyZTFkMjA4NzVlLi4y
YzIxODllZmMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC02MDIsMTYgKzYwMiwxNCBAQCBwcm90ZWN0ZWQ6
CiAKICAgICBlbnVtIGNsYXNzIEVsZW1lbnRTdHlsZUZsYWcgOiB1aW50OF90IHsKICAgICAgICAg
U3R5bGVBZmZlY3RlZEJ5RW1wdHkgPSAxIDw8IDAsCi0gICAgICAgIENoaWxkcmVuQWZmZWN0ZWRC
eURyYWcgPSAxIDw8IDEsCi0KICAgICAgICAgLy8gQml0cyBmb3IgZHluYW1pYyBjaGlsZCBtYXRj
aGluZy4KICAgICAgICAgLy8gV2Ugb3B0aW1pemUgZm9yIDpmaXJzdC1jaGlsZCBhbmQgOmxhc3Qt
Y2hpbGQuIFRoZSBvdGhlciBwb3NpdGlvbmFsIGNoaWxkIHNlbGVjdG9ycyBsaWtlIG50aC1jaGls
ZCBvcgogICAgICAgICAvLyAqLWNoaWxkLW9mLXR5cGUsIHdlIHdpbGwganVzdCBnaXZlIHVwIGFu
ZCByZS1ldmFsdWF0ZSB3aGVuZXZlciBjaGlsZHJlbiBjaGFuZ2UgYXQgYWxsLgotICAgICAgICBD
aGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzID0gMSA8PCAyLAotICAgICAg
ICBEZXNjZW5kYW50c0FmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzID0gMSA8PCAzLAot
ICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyA9IDEgPDwg
NCwKLSAgICAgICAgRGVzY2VuZGFudHNBZmZlY3RlZEJ5QmFja3dhcmRQb3NpdGlvbmFsUnVsZXMg
PSAxIDw8IDUsCi0gICAgICAgIENoaWxkcmVuQWZmZWN0ZWRCeVByb3BlcnR5QmFzZWRCYWNrd2Fy
ZFBvc2l0aW9uYWxSdWxlcyA9IDEgPDwgNiwKKyAgICAgICAgQ2hpbGRyZW5BZmZlY3RlZEJ5Rm9y
d2FyZFBvc2l0aW9uYWxSdWxlcyA9IDEgPDwgMSwKKyAgICAgICAgRGVzY2VuZGFudHNBZmZlY3Rl
ZEJ5Rm9yd2FyZFBvc2l0aW9uYWxSdWxlcyA9IDEgPDwgMiwKKyAgICAgICAgQ2hpbGRyZW5BZmZl
Y3RlZEJ5QmFja3dhcmRQb3NpdGlvbmFsUnVsZXMgPSAxIDw8IDMsCisgICAgICAgIERlc2NlbmRh
bnRzQWZmZWN0ZWRCeUJhY2t3YXJkUG9zaXRpb25hbFJ1bGVzID0gMSA8PCA0LAorICAgICAgICBD
aGlsZHJlbkFmZmVjdGVkQnlQcm9wZXJ0eUJhc2VkQmFja3dhcmRQb3NpdGlvbmFsUnVsZXMgPSAx
IDw8IDUsCiAgICAgfTsKIAogICAgIGJvb2wgaGFzU3R5bGVGbGFnKEVsZW1lbnRTdHlsZUZsYWcg
c3RhdGUpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXJXaXRoU3R5bGVGbGFncy50eXBlKCkgJiBz
dGF0aWNfY2FzdDx1aW50OF90PihzdGF0ZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJBY3Rp
b25FbGVtZW50U2V0LmgKaW5kZXggZTczZjBlMjEyNWUuLjBkZjYyYmY0NjE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuaApAQCAtNDIsMTEgKzQyLDEzIEBAIHB1
YmxpYzoKICAgICBib29sIGlzRm9jdXNlZChjb25zdCBFbGVtZW50JiBlbGVtZW50KSB7IHJldHVy
biBoYXNGbGFnKGVsZW1lbnQsIEZsYWc6OklzRm9jdXNlZCk7IH0KICAgICBib29sIGlzSG92ZXJl
ZChjb25zdCBFbGVtZW50JiBlbGVtZW50KSB7IHJldHVybiBoYXNGbGFnKGVsZW1lbnQsIEZsYWc6
OklzSG92ZXJlZCk7IH0KICAgICBib29sIGlzSW5BY3RpdmVDaGFpbihjb25zdCBFbGVtZW50JiBl
bGVtZW50KSB7IHJldHVybiBoYXNGbGFnKGVsZW1lbnQsIEZsYWc6OkluQWN0aXZlQ2hhaW4pOyB9
CisgICAgYm9vbCBpc0RyYWdnZWQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkgeyByZXR1cm4gaGFz
RmxhZyhlbGVtZW50LCBGbGFnOjpJc0RyYWdnZWQpOyB9CiAKICAgICB2b2lkIHNldEFjdGl2ZShF
bGVtZW50JiBlbGVtZW50LCBib29sIGVuYWJsZSkgeyBzZXRGbGFncyhlbGVtZW50LCBlbmFibGUs
IEZsYWc6OklzQWN0aXZlKTsgfQogICAgIHZvaWQgc2V0Rm9jdXNlZChFbGVtZW50JiBlbGVtZW50
LCBib29sIGVuYWJsZSkgeyBzZXRGbGFncyhlbGVtZW50LCBlbmFibGUsIEZsYWc6OklzRm9jdXNl
ZCk7IH0KICAgICB2b2lkIHNldEhvdmVyZWQoRWxlbWVudCYgZWxlbWVudCwgYm9vbCBlbmFibGUp
IHsgc2V0RmxhZ3MoZWxlbWVudCwgZW5hYmxlLCBGbGFnOjpJc0hvdmVyZWQpOyB9CiAgICAgdm9p
ZCBzZXRJbkFjdGl2ZUNoYWluKEVsZW1lbnQmIGVsZW1lbnQsIGJvb2wgZW5hYmxlKSB7IHNldEZs
YWdzKGVsZW1lbnQsIGVuYWJsZSwgRmxhZzo6SW5BY3RpdmVDaGFpbik7IH0KKyAgICB2b2lkIHNl
dERyYWdnZWQoRWxlbWVudCYgZWxlbWVudCwgYm9vbCBlbmFibGUpIHsgc2V0RmxhZ3MoZWxlbWVu
dCwgZW5hYmxlLCBGbGFnOjpJc0RyYWdnZWQpOyB9CiAKICAgICB2b2lkIGNsZWFyQWN0aXZlQW5k
SG92ZXJlZChFbGVtZW50JiBlbGVtZW50KSB7IGNsZWFyRmxhZ3MoZWxlbWVudCwgeyBGbGFnOjpJ
c0FjdGl2ZSwgRmxhZzo6SW5BY3RpdmVDaGFpbiwgRmxhZzo6SXNIb3ZlcmVkIH0pOyB9CiAKQEAg
LTU0LDEwICs1NiwxMSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBGbGFn
IHsKLSAgICAgICAgSXNBY3RpdmUgPSAxIDw8IDAsCi0gICAgICAgIEluQWN0aXZlQ2hhaW4gPSAx
IDw8IDEsCi0gICAgICAgIElzSG92ZXJlZCA9IDEgPDwgMiwKLSAgICAgICAgSXNGb2N1c2VkID0g
MSA8PCAzCisgICAgICAgIElzQWN0aXZlICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgSW5BY3Rp
dmVDaGFpbiAgID0gMSA8PCAxLAorICAgICAgICBJc0hvdmVyZWQgICAgICAgPSAxIDw8IDIsCisg
ICAgICAgIElzRm9jdXNlZCAgICAgICA9IDEgPDwgMywKKyAgICAgICAgSXNEcmFnZ2VkICAgICAg
ID0gMSA8PCA0LAogICAgIH07CiAKICAgICB2b2lkIHNldEZsYWdzKEVsZW1lbnQmIGVsZW1lbnQs
IGJvb2wgZW5hYmxlLCBPcHRpb25TZXQ8RmxhZz4gZmxhZ3MpIHsgZW5hYmxlID8gc2V0RmxhZ3Mo
ZWxlbWVudCwgZmxhZ3MpIDogY2xlYXJGbGFncyhlbGVtZW50LCBmbGFncyk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCmluZGV4IDhiOTA1ZjQyYmQyLi5hNjJjM2ZjZjVhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCkBAIC03OSwyMiArNzksMjAgQEAg
RHJhZ0ltYWdlUmVmIGZpdERyYWdJbWFnZVRvTWF4U2l6ZShEcmFnSW1hZ2VSZWYgaW1hZ2UsIGNv
bnN0IEludFNpemUmIGxheW91dFNpemUKIAogc3RydWN0IFNjb3BlZE5vZGVEcmFnRW5hYmxlciB7
CiAgICAgU2NvcGVkTm9kZURyYWdFbmFibGVyKEZyYW1lJiBmcmFtZSwgTm9kZSYgbm9kZSkKLSAg
ICAgICAgOiBmcmFtZShmcmFtZSkKLSAgICAgICAgLCBub2RlKG5vZGUpCisgICAgICAgIDogZWxl
bWVudChpczxFbGVtZW50Pihub2RlKSA/ICZkb3duY2FzdDxFbGVtZW50Pihub2RlKSA6IG51bGxw
dHIpCiAgICAgewotICAgICAgICBpZiAobm9kZS5yZW5kZXJlcigpKQotICAgICAgICAgICAgbm9k
ZS5yZW5kZXJlcigpLT51cGRhdGVEcmFnU3RhdGUodHJ1ZSk7CisgICAgICAgIGlmIChlbGVtZW50
KQorICAgICAgICAgICAgZWxlbWVudC0+c2V0RHJhZ2dlZCh0cnVlKTsKICAgICAgICAgZnJhbWUu
ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CiAgICAgfQogCiAgICAgflNjb3BlZE5vZGVEcmFn
RW5hYmxlcigpCiAgICAgewotICAgICAgICBpZiAobm9kZS5yZW5kZXJlcigpKQotICAgICAgICAg
ICAgbm9kZS5yZW5kZXJlcigpLT51cGRhdGVEcmFnU3RhdGUoZmFsc2UpOworICAgICAgICBpZiAo
ZWxlbWVudCkKKyAgICAgICAgICAgIGVsZW1lbnQtPnNldERyYWdnZWQoZmFsc2UpOwogICAgIH0K
IAotICAgIGNvbnN0IEZyYW1lJiBmcmFtZTsKLSAgICBjb25zdCBOb2RlJiBub2RlOworICAgIFJl
ZlB0cjxFbGVtZW50PiBlbGVtZW50OwogfTsKIAogc3RhdGljIERyYWdJbWFnZVJlZiBjcmVhdGVE
cmFnSW1hZ2VGcm9tU25hcHNob3Qoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBzbmFwc2hv
dCwgTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmlu
ZGV4IGYwZmI4OWU2Y2Y1Li42MDA2NDg1NDIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCkBAIC0yODExLDEzICsyODExLDYgQEAgTGF5b3V0UmVjdCBSZW5kZXJC
bG9jazo6cmVjdFdpdGhPdXRsaW5lRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KgogICAgIHJldHVybiByOwogfQogCi12b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVEcmFnU3Rh
dGUoYm9vbCBkcmFnT24pCi17Ci0gICAgUmVuZGVyQm94Ojp1cGRhdGVEcmFnU3RhdGUoZHJhZ09u
KTsKLSAgICBpZiAoUmVuZGVyQm94TW9kZWxPYmplY3QqIGNvbnRpbnVhdGlvbiA9IHRoaXMtPmNv
bnRpbnVhdGlvbigpKQotICAgICAgICBjb250aW51YXRpb24tPnVwZGF0ZURyYWdTdGF0ZShkcmFn
T24pOwotfQotCiBjb25zdCBSZW5kZXJTdHlsZSYgUmVuZGVyQmxvY2s6Om91dGxpbmVTdHlsZUZv
clJlcGFpbnQoKSBjb25zdAogewogICAgIGlmIChhdXRvKiBjb250aW51YXRpb24gPSB0aGlzLT5j
b250aW51YXRpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXgg
ZGYwMTlmNzY0NWMuLjAxYmQxNGJjNWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suaApAQCAtNDU5LDggKzQ1OSw2IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0UmVjdCByZWN0
V2l0aE91dGxpbmVGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdCBmaW5hbDsKICAgICBj
b25zdCBSZW5kZXJTdHlsZSYgb3V0bGluZVN0eWxlRm9yUmVwYWludCgpIGNvbnN0IGZpbmFsOwog
Ci0gICAgdm9pZCB1cGRhdGVEcmFnU3RhdGUoYm9vbCBkcmFnT24pIGZpbmFsOwotCiAgICAgTGF5
b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIC8qY2xpcFRvVmlzaWJsZUNvbnRlbnQqLykgZmlu
YWwKICAgICB7CiAgICAgICAgIHJldHVybiBzZWxlY3Rpb25HYXBSZWN0c0ZvclJlcGFpbnQocmVw
YWludENvbnRhaW5lcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
CmluZGV4IDczNzIxMGJhZjZlLi42YTcyYTM4OTA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTEwMzAsMTMgKzEwMzAsNiBAQCBjb25zdCBSZW5kZXJP
YmplY3QqIFJlbmRlcklubGluZTo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsTwogICAgIHJldHVybiBhbmNlc3RvclNraXBwZWQgPyBhbmNlc3RvclRvU3RvcEF0
IDogY29udGFpbmVyOwogfQogCi12b2lkIFJlbmRlcklubGluZTo6dXBkYXRlRHJhZ1N0YXRlKGJv
b2wgZHJhZ09uKQotewotICAgIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp1cGRhdGVEcmFnU3RhdGUo
ZHJhZ09uKTsKLSAgICBpZiAoUmVuZGVyQm94TW9kZWxPYmplY3QqIGNvbnRpbnVhdGlvbiA9IHRo
aXMtPmNvbnRpbnVhdGlvbigpKQotICAgICAgICBjb250aW51YXRpb24tPnVwZGF0ZURyYWdTdGF0
ZShkcmFnT24pOwotfQotCiB2b2lkIFJlbmRlcklubGluZTo6dXBkYXRlSGl0VGVzdFJlc3VsdChI
aXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IExheW91dFBvaW50JiBwb2ludCkKIHsKICAgICBp
ZiAocmVzdWx0LmlubmVyTm9kZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGlu
ZS5oCmluZGV4IDY4MWJlYzk5MTk4Li40NDhiM2EwNWQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuaApAQCAtNzYsOCArNzYsNiBAQCBwdWJsaWM6CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICB2b2lkIGFic29sdXRlUXVhZHNGb3JTZWxlY3Rpb24oVmVjdG9y
PEZsb2F0UXVhZD4mIHF1YWRzKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgotCi0gICAgdm9pZCB1
cGRhdGVEcmFnU3RhdGUoYm9vbCBkcmFnT24pIGZpbmFsOwogICAgIAogICAgIExheW91dFNpemUg
b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb25lZElubGluZShjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBj
b25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA0
MzBmNzMzNjVjYi4uMGJlNWNkYjAyMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCkBAIC0xNTI0LDIyICsxNTI0LDYgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRl
ck9iamVjdDo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYsIGNvbnN0IFJlbmRl
ckYKICAgICByZXR1cm4gY3JlYXRlVmlzaWJsZVBvc2l0aW9uKGNhcmV0TWluT2Zmc2V0KCksIERP
V05TVFJFQU0pOwogfQogCi12b2lkIFJlbmRlck9iamVjdDo6dXBkYXRlRHJhZ1N0YXRlKGJvb2wg
ZHJhZ09uKQotewotICAgIGJvb2wgdmFsdWVDaGFuZ2VkID0gKGRyYWdPbiAhPSBpc0RyYWdnaW5n
KCkpOwotICAgIHNldElzRHJhZ2dpbmcoZHJhZ09uKTsKLQotICAgIGlmICghaXM8UmVuZGVyRWxl
bWVudD4oKnRoaXMpKQotICAgICAgICByZXR1cm47Ci0gICAgYXV0byYgcmVuZGVyRWxlbWVudCA9
IGRvd25jYXN0PFJlbmRlckVsZW1lbnQ+KCp0aGlzKTsKLQotICAgIGlmICh2YWx1ZUNoYW5nZWQg
JiYgcmVuZGVyRWxlbWVudC5lbGVtZW50KCkgJiYgKHN0eWxlKCkuYWZmZWN0ZWRCeURyYWcoKSB8
fCByZW5kZXJFbGVtZW50LmVsZW1lbnQoKS0+Y2hpbGRyZW5BZmZlY3RlZEJ5RHJhZygpKSkKLSAg
ICAgICAgcmVuZGVyRWxlbWVudC5lbGVtZW50KCktPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUo
KTsKLQotICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJPYmplY3Q+
KHJlbmRlckVsZW1lbnQpKQotICAgICAgICBjaGlsZC51cGRhdGVEcmFnU3RhdGUoZHJhZ09uKTsK
LX0KLQogYm9vbCBSZW5kZXJPYmplY3Q6OmlzQ29tcG9zaXRlZCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGhhc0xheWVyKCkgJiYgZG93bmNhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4oKnRoaXMp
LmxheWVyKCktPmlzQ29tcG9zaXRlZCgpOwpAQCAtMTg1NiwxMiArMTg0MCw2IEBAIHZvaWQgUmVu
ZGVyT2JqZWN0OjpjYWxjdWxhdGVCb3JkZXJTdHlsZUNvbG9yKGNvbnN0IEJvcmRlclN0eWxlJiBz
dHlsZSwgY29uc3QgQm94CiAgICAgfQogfQogCi12b2lkIFJlbmRlck9iamVjdDo6c2V0SXNEcmFn
Z2luZyhib29sIGlzRHJhZ2dpbmcpCi17Ci0gICAgaWYgKGlzRHJhZ2dpbmcgfHwgaGFzUmFyZURh
dGEoKSkKLSAgICAgICAgZW5zdXJlUmFyZURhdGEoKS5zZXRJc0RyYWdnaW5nKGlzRHJhZ2dpbmcp
OwotfQotCiB2b2lkIFJlbmRlck9iamVjdDo6c2V0SGFzUmVmbGVjdGlvbihib29sIGhhc1JlZmxl
Y3Rpb24pCiB7CiAgICAgaWYgKGhhc1JlZmxlY3Rpb24gfHwgaGFzUmFyZURhdGEoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAyOGZhMmNhODBlZi4uODEzYjMx
ZmYxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTQyNyw3
ICs0MjcsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1JlcGxhY2VkKCkgY29uc3QgeyByZXR1cm4g
bV9iaXRmaWVsZHMuaXNSZXBsYWNlZCgpOyB9IC8vIGEgInJlcGxhY2VkIiBlbGVtZW50IChzZWUg
Q1NTKQogICAgIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSBjb25zdCB7IHJldHVybiBt
X2JpdGZpZWxkcy5ob3Jpem9udGFsV3JpdGluZ01vZGUoKTsgfQogCi0gICAgYm9vbCBpc0RyYWdn
aW5nKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaGFzUmFyZURhdGEoKSAmJiByYXJlRGF0
YSgpLmlzRHJhZ2dpbmcoKTsgfQogICAgIGJvb2wgaGFzUmVmbGVjdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fYml0ZmllbGRzLmhhc1JhcmVEYXRhKCkgJiYgcmFyZURhdGEoKS5oYXNSZWZsZWN0aW9u
KCk7IH0KICAgICBib29sIGlzUmVuZGVyRnJhZ21lbnRlZEZsb3coKSBjb25zdCB7IHJldHVybiBt
X2JpdGZpZWxkcy5oYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhKCkuaXNSZW5kZXJGcmFnbWVudGVk
RmxvdygpOyB9CiAgICAgYm9vbCBoYXNPdXRsaW5lQXV0b0FuY2VzdG9yKCkgY29uc3QgeyByZXR1
cm4gbV9iaXRmaWVsZHMuaGFzUmFyZURhdGEoKSAmJiByYXJlRGF0YSgpLmhhc091dGxpbmVBdXRv
QW5jZXN0b3IoKTsgfQpAQCAtNDc3LDggKzQ3Niw2IEBAIHB1YmxpYzoKIAogICAgIGlubGluZSBi
b29sIHByZXNlcnZlc05ld2xpbmUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVE
cmFnU3RhdGUoYm9vbCBkcmFnT24pOwotCiAgICAgUmVuZGVyVmlldyYgdmlldygpIGNvbnN0IHsg
cmV0dXJuICpkb2N1bWVudCgpLnJlbmRlclZpZXcoKTsgfTsKIAogICAgIC8vIFJldHVybnMgdHJ1
ZSBpZiB0aGlzIHJlbmRlcmVyIGlzIHJvb3RlZC4KQEAgLTU0MSw3ICs1MzgsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRIYXNMYXllcihib29sIGIgPSB0cnVlKSB7IG1fYml0ZmllbGRzLnNldEhh
c0xheWVyKGIpOyB9CiAgICAgdm9pZCBzZXRIYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoYm9v
bCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRIYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHko
Yik7IH0KIAotICAgIHZvaWQgc2V0SXNEcmFnZ2luZyhib29sKTsKICAgICB2b2lkIHNldEhhc1Jl
ZmxlY3Rpb24oYm9vbCA9IHRydWUpOwogICAgIHZvaWQgc2V0SXNSZW5kZXJGcmFnbWVudGVkRmxv
dyhib29sID0gdHJ1ZSk7CiAgICAgdm9pZCBzZXRIYXNPdXRsaW5lQXV0b0FuY2VzdG9yKGJvb2wg
PSB0cnVlKTsKQEAgLTk2OCwxMyArOTY0LDExIEBAIHByaXZhdGU6CiAgICAgICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKICAgICAgICAgUmVuZGVyT2JqZWN0UmFyZURh
dGEoKQotICAgICAgICAgICAgOiBtX2lzRHJhZ2dpbmcoZmFsc2UpCi0gICAgICAgICAgICAsIG1f
aGFzUmVmbGVjdGlvbihmYWxzZSkKKyAgICAgICAgICAgIDogbV9oYXNSZWZsZWN0aW9uKGZhbHNl
KQogICAgICAgICAgICAgLCBtX2lzUmVuZGVyRnJhZ21lbnRlZEZsb3coZmFsc2UpCiAgICAgICAg
ICAgICAsIG1faGFzT3V0bGluZUF1dG9BbmNlc3RvcihmYWxzZSkKICAgICAgICAgewogICAgICAg
ICB9Ci0gICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKGlzRHJhZ2dpbmcsIElzRHJhZ2dpbmcp
OwogICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChoYXNSZWZsZWN0aW9uLCBIYXNSZWZsZWN0
aW9uKTsKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaXNSZW5kZXJGcmFnbWVudGVkRmxv
dywgSXNSZW5kZXJGcmFnbWVudGVkRmxvdyk7CiAgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxE
KGhhc091dGxpbmVBdXRvQW5jZXN0b3IsIEhhc091dGxpbmVBdXRvQW5jZXN0b3IpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggNzNkMzg1
Zjk0YzcuLmU1YjM2NmQwNTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTE4OSw3ICsxODksNiBAQCBSZW5kZXJTdHlsZTo6UmVuZGVy
U3R5bGUoQ3JlYXRlRGVmYXVsdFN0eWxlVGFnKQogICAgIG1fbm9uSW5oZXJpdGVkRmxhZ3MuZW1w
dHlTdGF0ZSA9IGZhbHNlOwogICAgIG1fbm9uSW5oZXJpdGVkRmxhZ3MuZmlyc3RDaGlsZFN0YXRl
ID0gZmFsc2U7CiAgICAgbV9ub25Jbmhlcml0ZWRGbGFncy5sYXN0Q2hpbGRTdGF0ZSA9IGZhbHNl
OwotICAgIG1fbm9uSW5oZXJpdGVkRmxhZ3MuYWZmZWN0ZWRCeURyYWcgPSBmYWxzZTsKICAgICBt
X25vbkluaGVyaXRlZEZsYWdzLmlzTGluayA9IGZhbHNlOwogICAgIG1fbm9uSW5oZXJpdGVkRmxh
Z3Muc3R5bGVUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBzZXVkb0lkOjpOb25lKTsKICAg
ICBtX25vbkluaGVyaXRlZEZsYWdzLnBzZXVkb0JpdHMgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHNldWRvSWQ6Ok5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaAppbmRleCBjODNmMGNkMDJlNy4uNTZmMDM2MWU5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0xOTIsOSArMTkyLDYgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0SGFzVmlld3BvcnRVbml0cyhib29sIHYgPSB0cnVlKSB7IG1fbm9u
SW5oZXJpdGVkRmxhZ3MuaGFzVmlld3BvcnRVbml0cyA9IHY7IH0KICAgICBib29sIGhhc1ZpZXdw
b3J0VW5pdHMoKSBjb25zdCB7IHJldHVybiBtX25vbkluaGVyaXRlZEZsYWdzLmhhc1ZpZXdwb3J0
VW5pdHM7IH0KIAotICAgIGJvb2wgYWZmZWN0ZWRCeURyYWcoKSBjb25zdCB7IHJldHVybiBtX25v
bkluaGVyaXRlZEZsYWdzLmFmZmVjdGVkQnlEcmFnOyB9Ci0gICAgdm9pZCBzZXRBZmZlY3RlZEJ5
RHJhZygpIHsgbV9ub25Jbmhlcml0ZWRGbGFncy5hZmZlY3RlZEJ5RHJhZyA9IHRydWU7IH0KLQog
ICAgIHZvaWQgc2V0Q29sdW1uU3R5bGVzRnJvbVBhZ2luYXRpb25Nb2RlKGNvbnN0IFBhZ2luYXRp
b246Ok1vZGUmKTsKICAgICAKICAgICBib29sIGlzRmxvYXRpbmcoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxGbG9hdD4obV9ub25Jbmhlcml0ZWRGbGFncy5mbG9hdGluZykgIT0gRmxvYXQ6
Ok5vOyB9CkBAIC0xODAxLDcgKzE3OTgsNiBAQCBwcml2YXRlOgogICAgICAgICB1bnNpZ25lZCBl
bXB0eVN0YXRlIDogMTsKICAgICAgICAgdW5zaWduZWQgZmlyc3RDaGlsZFN0YXRlIDogMTsKICAg
ICAgICAgdW5zaWduZWQgbGFzdENoaWxkU3RhdGUgOiAxOwotICAgICAgICB1bnNpZ25lZCBhZmZl
Y3RlZEJ5RHJhZyA6IDE7CiAgICAgICAgIHVuc2lnbmVkIGlzTGluayA6IDE7CiAKICAgICAgICAg
dW5zaWduZWQgc3R5bGVUeXBlIDogNDsgLy8gUHNldWRvSWQKQEAgLTE5MzMsNyArMTkyOSw2IEBA
IGlubGluZSBib29sIFJlbmRlclN0eWxlOjpOb25Jbmhlcml0ZWRGbGFnczo6b3BlcmF0b3I9PShj
b25zdCBOb25Jbmhlcml0ZWRGbGFncyYKICAgICAgICAgJiYgZW1wdHlTdGF0ZSA9PSBvdGhlci5l
bXB0eVN0YXRlCiAgICAgICAgICYmIGZpcnN0Q2hpbGRTdGF0ZSA9PSBvdGhlci5maXJzdENoaWxk
U3RhdGUKICAgICAgICAgJiYgbGFzdENoaWxkU3RhdGUgPT0gb3RoZXIubGFzdENoaWxkU3RhdGUK
LSAgICAgICAgJiYgYWZmZWN0ZWRCeURyYWcgPT0gb3RoZXIuYWZmZWN0ZWRCeURyYWcKICAgICAg
ICAgJiYgaXNMaW5rID09IG90aGVyLmlzTGluawogICAgICAgICAmJiBzdHlsZVR5cGUgPT0gb3Ro
ZXIuc3R5bGVUeXBlCiAgICAgICAgICYmIHBzZXVkb0JpdHMgPT0gb3RoZXIucHNldWRvQml0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVsYXRpb25zLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVsYXRpb25zLmNwcAppbmRleCBkNzQ3NzQxMzNjYi4u
NzkzYzZiZWM5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVsYXRp
b25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0aW9ucy5jcHAKQEAg
LTUwLDkgKzUwLDYgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbGF0aW9ucz4gY29tbWl0UmVsYXRpb25z
VG9SZW5kZXJTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnMKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICB9CiAgICAgICAgIHN3aXRjaCAocmVsYXRpb24udHlwZSkgewotICAgICAg
ICBjYXNlIFJlbGF0aW9uOjpBZmZlY3RlZEJ5RHJhZzoKLSAgICAgICAgICAgIHN0eWxlLnNldEFm
ZmVjdGVkQnlEcmFnKCk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSZWxhdGlv
bjo6QWZmZWN0ZWRCeUVtcHR5OgogICAgICAgICAgICAgc3R5bGUuc2V0RW1wdHlTdGF0ZShyZWxh
dGlvbi52YWx1ZSk7CiAgICAgICAgICAgICBhcHBlbmRTdHlsZVJlbGF0aW9uKHJlbGF0aW9uKTsK
QEAgLTkxLDkgKzg4LDYgQEAgdm9pZCBjb21taXRSZWxhdGlvbnMoc3RkOjp1bmlxdWVfcHRyPFJl
bGF0aW9ucz4gcmVsYXRpb25zLCBVcGRhdGUmIHVwZGF0ZSkKICAgICBmb3IgKGF1dG8mIHJlbGF0
aW9uIDogKnJlbGF0aW9ucykgewogICAgICAgICBhdXRvJiBlbGVtZW50ID0gY29uc3RfY2FzdDxF
bGVtZW50Jj4oKnJlbGF0aW9uLmVsZW1lbnQpOwogICAgICAgICBzd2l0Y2ggKHJlbGF0aW9uLnR5
cGUpIHsKLSAgICAgICAgY2FzZSBSZWxhdGlvbjo6QWZmZWN0ZWRCeURyYWc6Ci0gICAgICAgICAg
ICBlbGVtZW50LnNldENoaWxkcmVuQWZmZWN0ZWRCeURyYWcoKTsKLSAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFJlbGF0aW9uOjpBZmZlY3RlZEJ5RW1wdHk6CiAgICAgICAgICAgICBl
bGVtZW50LnNldFN0eWxlQWZmZWN0ZWRCeUVtcHR5KCk7CiAgICAgICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVsYXRpb25zLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0aW9ucy5oCmluZGV4IDY1YzU1NGY0NDI3Li43OGFhZjA1
ODg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZWxhdGlvbnMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0aW9ucy5oCkBAIC0zOCw3ICszOCw2
IEBAIGNsYXNzIFVwZGF0ZTsKIAogc3RydWN0IFJlbGF0aW9uIHsKICAgICBlbnVtIFR5cGUgewot
ICAgICAgICBBZmZlY3RlZEJ5RHJhZywKICAgICAgICAgQWZmZWN0ZWRCeUVtcHR5LAogICAgICAg
ICBBZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nLAogICAgICAgICBEZXNjZW5kYW50c0FmZmVjdGVk
QnlQcmV2aW91c1NpYmxpbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVNoYXJpbmdSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdS
ZXNvbHZlci5jcHAKaW5kZXggYjExYmNmMzZhZTMuLjg0NmJkMmRkOTAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCkBAIC0yMjUsNiArMjI1LDgg
QEAgYm9vbCBTaGFyaW5nUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudChjb25zdCBD
b250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
IChjYW5kaWRhdGVFbGVtZW50Lmhhc0ZvY3VzV2l0aGluKCkgIT0gZWxlbWVudC5oYXNGb2N1c1dp
dGhpbigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQu
aXNEcmFnZ2VkKCkgIT0gZWxlbWVudC5pc0RyYWdnZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmIChjYW5kaWRhdGVFbGVtZW50LnNoYWRvd1BzZXVkb0lkKCkgIT0gZWxlbWVudC5z
aGFkb3dQc2V1ZG9JZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCZjYW5kaWRh
dGVFbGVtZW50ID09IG1fZG9jdW1lbnQuY3NzVGFyZ2V0KCkpCg==
</data>
<flag name="review"
          id="408887"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393504</attachid>
            <date>2020-03-13 10:46:33 -0700</date>
            <delta_ts>2020-03-13 11:56:00 -0700</delta_ts>
            <desc>patch</desc>
            <filename>drag-affected-by-remove-2.patch</filename>
            <type>text/plain</type>
            <size>23589</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNjZlYjE1ZTczNC4uYzA4ZWJlMjA3NjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NCBAQAorMjAyMC0wMy0xMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIEFmZmVjdGVkQnlEcmFnIHN0eWxlIGZsYWcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA1NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBcyBhIGZvbGxvd3VwIHRvIHIyNTgz
MjEsIHJlbW92ZSB0aGUgbGFzdCByZW1haW5pbmcgdXNlciBhY3Rpb24gcmVsYXRlZCBBZmZlY3Rl
ZEJ5IGZsYWcuCisKKyAgICAgICAgVGhpcyBhbHNvIGNsZWFucyBvdXQgYSBidW5jaCBvZiBzY2V0
Y2h5LCByaXNreSBjb2RlIGZyb20gcmVuZGVyIHRyZWUgKHN0eWxlIGludmFsaWRhdGlvbiEpLgor
CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lIGNvbnN0KToKKyAgICAgICAgKiBkb20vRGF0YVRyYW5z
ZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6Y3JlYXRlRHJhZ0ltYWdl
IGNvbnN0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50Ojppc1VzZXJBY3Rpb25FbGVtZW50RHJhZ2dlZCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpzZXRCZWluZ0RyYWdnZWQpOgorCisgICAgICAgIE1vdmUgZHJhZ2dlZCBz
dGF0ZSBmb3IgcmVuZGVyIHRyZWUgdG8gRWxlbWVudCB3aGVyZSBpdCBiZWxvbmdzLgorCisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpoYXNGbGFnc1NldER1cmluZ1N0eWxpbmdPZkNoaWxkcmVu
IGNvbnN0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6aXNCZWluZ0RyYWdnZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
ZGVzY2VuZGFudHNBZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnQ6OnNldERlc2NlbmRhbnRzQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpjaGlsZHJlbkFmZmVjdGVkQnlEcmFnIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldENoaWxkcmVuQWZmZWN0
ZWRCeURyYWcpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICogZG9t
L1VzZXJBY3Rpb25FbGVtZW50U2V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWN0aW9uRWxl
bWVudFNldDo6aXNCZWluZ0RyYWdnZWQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckFjdGlvbkVs
ZW1lbnRTZXQ6OnNldEJlaW5nRHJhZ2dlZCk6CisKKyAgICAgICAgSW52YWxpZGF0ZSB1c2luZyBQ
c2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbiB0aGF0IGRvZXNuJ3QgcmVxdWlyZSBhbnkgZmxh
Z3MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NvcGVkTm9kZURyYWdFbmFibGVyOjpTY29wZWROb2RlRHJhZ0VuYWJsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U2NvcGVkTm9kZURyYWdFbmFibGVyOjp+U2NvcGVkTm9kZURyYWdFbmFibGVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OnVwZGF0ZURyYWdTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OnVwZGF0ZURyYWdTdGF0ZSk6IERl
bGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0
Ojp1cGRhdGVEcmFnU3RhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0OjpzZXRJc0RyYWdnaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlJlbmRlck9iamVjdFJh
cmVEYXRhOjpSZW5kZXJPYmplY3RSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6OmlzRHJhZ2dpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6UmVu
ZGVyU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Ok5vbkluaGVyaXRlZEZsYWdzOjpvcGVyYXRvcj09
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjphZmZlY3RlZEJ5RHJhZyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0QWZmZWN0
ZWRCeURyYWcpOiBEZWxldGVkLgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVsYXRpb25zLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpjb21taXRSZWxhdGlvbnNUb1JlbmRlclN0eWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpjb21taXRSZWxhdGlvbnMpOgorICAgICAgICAqIHN0
eWxlL1N0eWxlUmVsYXRpb25zLmg6CisKIDIwMjAtMDMtMTMgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgYWZmZWN0ZWRCeSBzdHlsZSBm
bGFncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCA2NDhkZmJlMjUw
NS4uYzM0NDNhYjBmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNo
ZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBA
IC05OTksMTEgKzk5OSw3IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZShDaGVja2lu
Z0NvbnRleHQmIGNoZWNraW5nQ29udGV4dCwgY29uc3QgTG9jYWxDb250CiAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRGlyZWN0Rm9jdXM6CiAgICAgICAgICAgICByZXR1cm4g
bWF0Y2hlc0RpcmVjdEZvY3VzUHNldWRvQ2xhc3MoZWxlbWVudCk7CiAgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzRHJhZzoKLSAgICAgICAgICAgIGFkZFN0eWxlUmVsYXRpb24o
Y2hlY2tpbmdDb250ZXh0LCBlbGVtZW50LCBTdHlsZTo6UmVsYXRpb246OkFmZmVjdGVkQnlEcmFn
KTsKLQotICAgICAgICAgICAgaWYgKGVsZW1lbnQucmVuZGVyZXIoKSAmJiBlbGVtZW50LnJlbmRl
cmVyKCktPmlzRHJhZ2dpbmcoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuaXNCZWluZ0RyYWdnZWQo
KTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1czoKICAgICAgICAg
ICAgIHJldHVybiBtYXRjaGVzRm9jdXNQc2V1ZG9DbGFzcyhlbGVtZW50KTsKICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1c1dpdGhpbjoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAppbmRleCA2ZGE0NTI2ODFmOS4uMmJlN2U0Y2ZkZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
QEAgLTYyOSw2ICs2MjksMTIgQEAgYm9vbCBFbGVtZW50Ojppc1VzZXJBY3Rpb25FbGVtZW50SG92
ZXJlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGRvY3VtZW50KCkudXNlckFjdGlvbkVsZW1lbnRzKCku
aXNIb3ZlcmVkKCp0aGlzKTsKIH0KIAorYm9vbCBFbGVtZW50Ojppc1VzZXJBY3Rpb25FbGVtZW50
RHJhZ2dlZCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVXNlckFjdGlvbkVsZW1lbnQoKSk7Cisg
ICAgcmV0dXJuIGRvY3VtZW50KCkudXNlckFjdGlvbkVsZW1lbnRzKCkuaXNCZWluZ0RyYWdnZWQo
KnRoaXMpOworfQorCiB2b2lkIEVsZW1lbnQ6OnNldEFjdGl2ZShib29sIGZsYWcsIGJvb2wgcGF1
c2UpCiB7CiAgICAgaWYgKGZsYWcgPT0gYWN0aXZlKCkpCkBAIC03MTksNiArNzI1LDE1IEBAIHZv
aWQgRWxlbWVudDo6c2V0SG92ZXJlZChib29sIGZsYWcpCiAgICAgICAgIHJlbmRlcmVyKCktPnRo
ZW1lKCkuc3RhdGVDaGFuZ2VkKCpyZW5kZXJlcigpLCBDb250cm9sU3RhdGVzOjpIb3ZlclN0YXRl
KTsKIH0KIAordm9pZCBFbGVtZW50OjpzZXRCZWluZ0RyYWdnZWQoYm9vbCBmbGFnKQoreworICAg
IGlmIChmbGFnID09IGlzQmVpbmdEcmFnZ2VkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFN0
eWxlOjpQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbiBzdHlsZUludmFsaWRhdGlvbigqdGhp
cywgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRHJhZyk7CisgICAgZG9jdW1lbnQoKS51c2VyQWN0
aW9uRWxlbWVudHMoKS5zZXRCZWluZ0RyYWdnZWQoKnRoaXMsIGZsYWcpOworfQorCiBpbmxpbmUg
U2Nyb2xsQWxpZ25tZW50IHRvU2Nyb2xsQWxpZ25tZW50Rm9ySW5saW5lRGlyZWN0aW9uKE9wdGlv
bmFsPFNjcm9sbExvZ2ljYWxQb3NpdGlvbj4gcG9zaXRpb24sIFdyaXRpbmdNb2RlIHdyaXRpbmdN
b2RlLCBib29sIGlzTFRSKQogewogICAgIHN3aXRjaCAocG9zaXRpb24udmFsdWVPcihTY3JvbGxM
b2dpY2FsUG9zaXRpb246Ok5lYXJlc3QpKSB7CkBAIC0zNDAzLDcgKzM0MTgsNiBAQCBib29sIEVs
ZW1lbnQ6Omhhc0ZsYWdzU2V0RHVyaW5nU3R5bGluZ09mQ2hpbGRyZW4oKSBjb25zdAogewogICAg
IHJldHVybiBjaGlsZHJlbkFmZmVjdGVkQnlGaXJzdENoaWxkUnVsZXMoKQogICAgICAgICB8fCBj
aGlsZHJlbkFmZmVjdGVkQnlMYXN0Q2hpbGRSdWxlcygpCi0gICAgICAgIHx8IGNoaWxkcmVuQWZm
ZWN0ZWRCeURyYWcoKQogICAgICAgICB8fCBjaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRp
b25hbFJ1bGVzKCkKICAgICAgICAgfHwgZGVzY2VuZGFudHNBZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0
aW9uYWxSdWxlcygpCiAgICAgICAgIHx8IGNoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJkUG9zaXRp
b25hbFJ1bGVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDNlNzllMTU5NzM1Li4yYTU5OGQyMWYw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zMTUsMTIgKzMxNSwxNCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBpc1VzZXJBY3Rpb25FbGVtZW50KCkgJiYgaXNV
c2VyQWN0aW9uRWxlbWVudEFjdGl2ZSgpOyB9CiAgICAgYm9vbCBob3ZlcmVkKCkgY29uc3QgeyBy
ZXR1cm4gaXNVc2VyQWN0aW9uRWxlbWVudCgpICYmIGlzVXNlckFjdGlvbkVsZW1lbnRIb3ZlcmVk
KCk7IH0KICAgICBib29sIGZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBpc1VzZXJBY3Rpb25FbGVt
ZW50KCkgJiYgaXNVc2VyQWN0aW9uRWxlbWVudEZvY3VzZWQoKTsgfQorICAgIGJvb2wgaXNCZWlu
Z0RyYWdnZWQoKSBjb25zdCB7IHJldHVybiBpc1VzZXJBY3Rpb25FbGVtZW50KCkgJiYgaXNVc2Vy
QWN0aW9uRWxlbWVudERyYWdnZWQoKTsgfQogICAgIGJvb2wgaGFzRm9jdXNXaXRoaW4oKSBjb25z
dCB7IHJldHVybiBnZXRGbGFnKEhhc0ZvY3VzV2l0aGluKTsgfTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBzZXRBY3RpdmUoYm9vbCBmbGFnID0gdHJ1ZSwgYm9vbCBwYXVzZSA9IGZhbHNlKTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sIGZsYWcgPSB0cnVlKTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0Rm9jdXMoYm9vbCBmbGFnKTsKLSAgICB2b2lkIHNldEhhc0ZvY3VzV2l0aGluKGJvb2wg
ZmxhZyk7CisgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sID0gdHJ1ZSwgYm9vbCBwYXVz
ZSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sID0gdHJ1ZSk7Cisg
ICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wpOworICAgIHZvaWQgc2V0QmVpbmdEcmFnZ2Vk
KGJvb2wpOworICAgIHZvaWQgc2V0SGFzRm9jdXNXaXRoaW4oYm9vbCk7CiAKICAgICBPcHRpb25h
bDxpbnQ+IHRhYkluZGV4U2V0RXhwbGljaXRseSgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQmVJ
Z25vcmVkSW5TZXF1ZW50aWFsRm9jdXNOYXZpZ2F0aW9uKCkgY29uc3QgeyByZXR1cm4gZGVmYXVs
dFRhYkluZGV4KCkgPCAwICYmICFzdXBwb3J0c0ZvY3VzKCk7IH0KQEAgLTM1MSw3ICszNTMsNiBA
QCBwdWJsaWM6CiAgICAgLy8gTWV0aG9kcyBmb3IgaW5kaWNhdGluZyB0aGUgc3R5bGUgaXMgYWZm
ZWN0ZWQgYnkgZHluYW1pYyB1cGRhdGVzIChlLmcuLCBjaGlsZHJlbiBjaGFuZ2luZywgb3VyIHBv
c2l0aW9uIGNoYW5naW5nIGluIG91ciBzaWJsaW5nIGxpc3QsIGV0Yy4pCiAgICAgYm9vbCBzdHls
ZUFmZmVjdGVkQnlFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIGhhc1N0eWxlRmxhZyhFbGVtZW50U3R5
bGVGbGFnOjpTdHlsZUFmZmVjdGVkQnlFbXB0eSk7IH0KICAgICBib29sIGRlc2NlbmRhbnRzQWZm
ZWN0ZWRCeVByZXZpb3VzU2libGluZygpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoRGVzY2VuZGFu
dHNBZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nRmxhZyk7IH0KLSAgICBib29sIGNoaWxkcmVuQWZm
ZWN0ZWRCeURyYWcoKSBjb25zdCB7IHJldHVybiBoYXNTdHlsZUZsYWcoRWxlbWVudFN0eWxlRmxh
Zzo6Q2hpbGRyZW5BZmZlY3RlZEJ5RHJhZyk7IH0KICAgICBib29sIGNoaWxkcmVuQWZmZWN0ZWRC
eUZpcnN0Q2hpbGRSdWxlcygpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoQ2hpbGRyZW5BZmZlY3Rl
ZEJ5Rmlyc3RDaGlsZFJ1bGVzRmxhZyk7IH0KICAgICBib29sIGNoaWxkcmVuQWZmZWN0ZWRCeUxh
c3RDaGlsZFJ1bGVzKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhDaGlsZHJlbkFmZmVjdGVkQnlM
YXN0Q2hpbGRSdWxlc0ZsYWcpOyB9CiAgICAgYm9vbCBjaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJk
UG9zaXRpb25hbFJ1bGVzKCkgY29uc3QgeyByZXR1cm4gaGFzU3R5bGVGbGFnKEVsZW1lbnRTdHls
ZUZsYWc6OkNoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMpOyB9CkBAIC0z
NjYsNyArMzY3LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRTdHlsZUFmZmVjdGVkQnlFbXB0
eSgpIHsgc2V0U3R5bGVGbGFnKEVsZW1lbnRTdHlsZUZsYWc6OlN0eWxlQWZmZWN0ZWRCeUVtcHR5
KTsgfQogICAgIHZvaWQgc2V0RGVzY2VuZGFudHNBZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nKCkg
eyBzZXRGbGFnKERlc2NlbmRhbnRzQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZ0ZsYWcpOyB9Ci0g
ICAgdm9pZCBzZXRDaGlsZHJlbkFmZmVjdGVkQnlEcmFnKCkgeyBzZXRTdHlsZUZsYWcoRWxlbWVu
dFN0eWxlRmxhZzo6Q2hpbGRyZW5BZmZlY3RlZEJ5RHJhZyk7IH0KICAgICB2b2lkIHNldENoaWxk
cmVuQWZmZWN0ZWRCeUZpcnN0Q2hpbGRSdWxlcygpIHsgc2V0RmxhZyhDaGlsZHJlbkFmZmVjdGVk
QnlGaXJzdENoaWxkUnVsZXNGbGFnKTsgfQogICAgIHZvaWQgc2V0Q2hpbGRyZW5BZmZlY3RlZEJ5
TGFzdENoaWxkUnVsZXMoKSB7IHNldEZsYWcoQ2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVs
ZXNGbGFnKTsgfQogICAgIHZvaWQgc2V0Q2hpbGRyZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0aW9u
YWxSdWxlcygpIHsgc2V0U3R5bGVGbGFnKEVsZW1lbnRTdHlsZUZsYWc6OkNoaWxkcmVuQWZmZWN0
ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMpOyB9CkBAIC02NDIsNiArNjQyLDcgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzVXNlckFjdGlvbkVsZW1lbnRBY3RpdmUoKSBjb25zdDsKICAgICBib29s
IGlzVXNlckFjdGlvbkVsZW1lbnRGb2N1c2VkKCkgY29uc3Q7CiAgICAgYm9vbCBpc1VzZXJBY3Rp
b25FbGVtZW50SG92ZXJlZCgpIGNvbnN0OworICAgIGJvb2wgaXNVc2VyQWN0aW9uRWxlbWVudERy
YWdnZWQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dS
b290KFNoYWRvd1Jvb3QmKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggNjJlMWQyMDg3NWUuLjlmNzQ4
NTAzY2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTYwMSwxNyArNjAxLDE1IEBAIHByb3RlY3RlZDoKICAg
ICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHNfcmVmQ291bnRNYXNrID0gfnN0YXRpY19jYXN0
PHVpbnQzMl90PigxKTsKIAogICAgIGVudW0gY2xhc3MgRWxlbWVudFN0eWxlRmxhZyA6IHVpbnQ4
X3QgewotICAgICAgICBTdHlsZUFmZmVjdGVkQnlFbXB0eSA9IDEgPDwgMCwKLSAgICAgICAgQ2hp
bGRyZW5BZmZlY3RlZEJ5RHJhZyA9IDEgPDwgMSwKLQorICAgICAgICBTdHlsZUFmZmVjdGVkQnlF
bXB0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAogICAgICAg
ICAvLyBCaXRzIGZvciBkeW5hbWljIGNoaWxkIG1hdGNoaW5nLgogICAgICAgICAvLyBXZSBvcHRp
bWl6ZSBmb3IgOmZpcnN0LWNoaWxkIGFuZCA6bGFzdC1jaGlsZC4gVGhlIG90aGVyIHBvc2l0aW9u
YWwgY2hpbGQgc2VsZWN0b3JzIGxpa2UgbnRoLWNoaWxkIG9yCiAgICAgICAgIC8vICotY2hpbGQt
b2YtdHlwZSwgd2Ugd2lsbCBqdXN0IGdpdmUgdXAgYW5kIHJlLWV2YWx1YXRlIHdoZW5ldmVyIGNo
aWxkcmVuIGNoYW5nZSBhdCBhbGwuCi0gICAgICAgIENoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQ
b3NpdGlvbmFsUnVsZXMgPSAxIDw8IDIsCi0gICAgICAgIERlc2NlbmRhbnRzQWZmZWN0ZWRCeUZv
cndhcmRQb3NpdGlvbmFsUnVsZXMgPSAxIDw8IDMsCi0gICAgICAgIENoaWxkcmVuQWZmZWN0ZWRC
eUJhY2t3YXJkUG9zaXRpb25hbFJ1bGVzID0gMSA8PCA0LAotICAgICAgICBEZXNjZW5kYW50c0Fm
ZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyA9IDEgPDwgNSwKLSAgICAgICAgQ2hpbGRy
ZW5BZmZlY3RlZEJ5UHJvcGVydHlCYXNlZEJhY2t3YXJkUG9zaXRpb25hbFJ1bGVzID0gMSA8PCA2
LAorICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzICAgICAg
ICAgICAgICAgID0gMSA8PCAxLAorICAgICAgICBEZXNjZW5kYW50c0FmZmVjdGVkQnlGb3J3YXJk
UG9zaXRpb25hbFJ1bGVzICAgICAgICAgICAgID0gMSA8PCAyLAorICAgICAgICBDaGlsZHJlbkFm
ZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyAgICAgICAgICAgICAgID0gMSA8PCAzLAor
ICAgICAgICBEZXNjZW5kYW50c0FmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyAgICAg
ICAgICAgID0gMSA8PCA0LAorICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlQcm9wZXJ0eUJhc2Vk
QmFja3dhcmRQb3NpdGlvbmFsUnVsZXMgID0gMSA8PCA1LAogICAgIH07CiAKICAgICBib29sIGhh
c1N0eWxlRmxhZyhFbGVtZW50U3R5bGVGbGFnIHN0YXRlKSBjb25zdCB7IHJldHVybiBtX3JlbmRl
cmVyV2l0aFN0eWxlRmxhZ3MudHlwZSgpICYgc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGUpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckFjdGlvbkVsZW1lbnRTZXQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyQWN0aW9uRWxlbWVudFNldC5oCmluZGV4IGU3M2YwZTIx
MjVlLi5iYjczODZjODgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJBY3Rp
b25FbGVtZW50U2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJBY3Rpb25FbGVtZW50
U2V0LmgKQEAgLTQyLDExICs0MiwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZvY3VzZWQoY29u
c3QgRWxlbWVudCYgZWxlbWVudCkgeyByZXR1cm4gaGFzRmxhZyhlbGVtZW50LCBGbGFnOjpJc0Zv
Y3VzZWQpOyB9CiAgICAgYm9vbCBpc0hvdmVyZWQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkgeyBy
ZXR1cm4gaGFzRmxhZyhlbGVtZW50LCBGbGFnOjpJc0hvdmVyZWQpOyB9CiAgICAgYm9vbCBpc0lu
QWN0aXZlQ2hhaW4oY29uc3QgRWxlbWVudCYgZWxlbWVudCkgeyByZXR1cm4gaGFzRmxhZyhlbGVt
ZW50LCBGbGFnOjpJbkFjdGl2ZUNoYWluKTsgfQorICAgIGJvb2wgaXNCZWluZ0RyYWdnZWQoY29u
c3QgRWxlbWVudCYgZWxlbWVudCkgeyByZXR1cm4gaGFzRmxhZyhlbGVtZW50LCBGbGFnOjpJc0Jl
aW5nRHJhZ2dlZCk7IH0KIAogICAgIHZvaWQgc2V0QWN0aXZlKEVsZW1lbnQmIGVsZW1lbnQsIGJv
b2wgZW5hYmxlKSB7IHNldEZsYWdzKGVsZW1lbnQsIGVuYWJsZSwgRmxhZzo6SXNBY3RpdmUpOyB9
CiAgICAgdm9pZCBzZXRGb2N1c2VkKEVsZW1lbnQmIGVsZW1lbnQsIGJvb2wgZW5hYmxlKSB7IHNl
dEZsYWdzKGVsZW1lbnQsIGVuYWJsZSwgRmxhZzo6SXNGb2N1c2VkKTsgfQogICAgIHZvaWQgc2V0
SG92ZXJlZChFbGVtZW50JiBlbGVtZW50LCBib29sIGVuYWJsZSkgeyBzZXRGbGFncyhlbGVtZW50
LCBlbmFibGUsIEZsYWc6OklzSG92ZXJlZCk7IH0KICAgICB2b2lkIHNldEluQWN0aXZlQ2hhaW4o
RWxlbWVudCYgZWxlbWVudCwgYm9vbCBlbmFibGUpIHsgc2V0RmxhZ3MoZWxlbWVudCwgZW5hYmxl
LCBGbGFnOjpJbkFjdGl2ZUNoYWluKTsgfQorICAgIHZvaWQgc2V0QmVpbmdEcmFnZ2VkKEVsZW1l
bnQmIGVsZW1lbnQsIGJvb2wgZW5hYmxlKSB7IHNldEZsYWdzKGVsZW1lbnQsIGVuYWJsZSwgRmxh
Zzo6SXNCZWluZ0RyYWdnZWQpOyB9CiAKICAgICB2b2lkIGNsZWFyQWN0aXZlQW5kSG92ZXJlZChF
bGVtZW50JiBlbGVtZW50KSB7IGNsZWFyRmxhZ3MoZWxlbWVudCwgeyBGbGFnOjpJc0FjdGl2ZSwg
RmxhZzo6SW5BY3RpdmVDaGFpbiwgRmxhZzo6SXNIb3ZlcmVkIH0pOyB9CiAKQEAgLTU0LDEwICs1
NiwxMSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBGbGFnIHsKLSAgICAg
ICAgSXNBY3RpdmUgPSAxIDw8IDAsCi0gICAgICAgIEluQWN0aXZlQ2hhaW4gPSAxIDw8IDEsCi0g
ICAgICAgIElzSG92ZXJlZCA9IDEgPDwgMiwKLSAgICAgICAgSXNGb2N1c2VkID0gMSA8PCAzCisg
ICAgICAgIElzQWN0aXZlICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgSW5BY3RpdmVDaGFpbiAg
ID0gMSA8PCAxLAorICAgICAgICBJc0hvdmVyZWQgICAgICAgPSAxIDw8IDIsCisgICAgICAgIElz
Rm9jdXNlZCAgICAgICA9IDEgPDwgMywKKyAgICAgICAgSXNCZWluZ0RyYWdnZWQgID0gMSA8PCA0
LAogICAgIH07CiAKICAgICB2b2lkIHNldEZsYWdzKEVsZW1lbnQmIGVsZW1lbnQsIGJvb2wgZW5h
YmxlLCBPcHRpb25TZXQ8RmxhZz4gZmxhZ3MpIHsgZW5hYmxlID8gc2V0RmxhZ3MoZWxlbWVudCwg
ZmxhZ3MpIDogY2xlYXJGbGFncyhlbGVtZW50LCBmbGFncyk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EcmFnSW1hZ2UuY3BwCmluZGV4IDhiOTA1ZjQyYmQyLi40NjYwY2Y2YzU2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCkBAIC03OSwyMiArNzksMjAgQEAgRHJhZ0ltYWdl
UmVmIGZpdERyYWdJbWFnZVRvTWF4U2l6ZShEcmFnSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0IEludFNp
emUmIGxheW91dFNpemUKIAogc3RydWN0IFNjb3BlZE5vZGVEcmFnRW5hYmxlciB7CiAgICAgU2Nv
cGVkTm9kZURyYWdFbmFibGVyKEZyYW1lJiBmcmFtZSwgTm9kZSYgbm9kZSkKLSAgICAgICAgOiBm
cmFtZShmcmFtZSkKLSAgICAgICAgLCBub2RlKG5vZGUpCisgICAgICAgIDogZWxlbWVudChpczxF
bGVtZW50Pihub2RlKSA/ICZkb3duY2FzdDxFbGVtZW50Pihub2RlKSA6IG51bGxwdHIpCiAgICAg
ewotICAgICAgICBpZiAobm9kZS5yZW5kZXJlcigpKQotICAgICAgICAgICAgbm9kZS5yZW5kZXJl
cigpLT51cGRhdGVEcmFnU3RhdGUodHJ1ZSk7CisgICAgICAgIGlmIChlbGVtZW50KQorICAgICAg
ICAgICAgZWxlbWVudC0+c2V0QmVpbmdEcmFnZ2VkKHRydWUpOwogICAgICAgICBmcmFtZS5kb2N1
bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKICAgICB9CiAKICAgICB+U2NvcGVkTm9kZURyYWdFbmFi
bGVyKCkKICAgICB7Ci0gICAgICAgIGlmIChub2RlLnJlbmRlcmVyKCkpCi0gICAgICAgICAgICBu
b2RlLnJlbmRlcmVyKCktPnVwZGF0ZURyYWdTdGF0ZShmYWxzZSk7CisgICAgICAgIGlmIChlbGVt
ZW50KQorICAgICAgICAgICAgZWxlbWVudC0+c2V0QmVpbmdEcmFnZ2VkKGZhbHNlKTsKICAgICB9
CiAKLSAgICBjb25zdCBGcmFtZSYgZnJhbWU7Ci0gICAgY29uc3QgTm9kZSYgbm9kZTsKKyAgICBS
ZWZQdHI8RWxlbWVudD4gZWxlbWVudDsKIH07CiAKIHN0YXRpYyBEcmFnSW1hZ2VSZWYgY3JlYXRl
RHJhZ0ltYWdlRnJvbVNuYXBzaG90KHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gc25hcHNo
b3QsIE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApp
bmRleCBmMGZiODllNmNmNS4uNjAwNjQ4NTQyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcApAQCAtMjgxMSwxMyArMjgxMSw2IEBAIExheW91dFJlY3QgUmVuZGVy
QmxvY2s6OnJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCoKICAgICByZXR1cm4gcjsKIH0KIAotdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRHJhZ1N0
YXRlKGJvb2wgZHJhZ09uKQotewotICAgIFJlbmRlckJveDo6dXBkYXRlRHJhZ1N0YXRlKGRyYWdP
bik7Ci0gICAgaWYgKFJlbmRlckJveE1vZGVsT2JqZWN0KiBjb250aW51YXRpb24gPSB0aGlzLT5j
b250aW51YXRpb24oKSkKLSAgICAgICAgY29udGludWF0aW9uLT51cGRhdGVEcmFnU3RhdGUoZHJh
Z09uKTsKLX0KLQogY29uc3QgUmVuZGVyU3R5bGUmIFJlbmRlckJsb2NrOjpvdXRsaW5lU3R5bGVG
b3JSZXBhaW50KCkgY29uc3QKIHsKICAgICBpZiAoYXV0byogY29udGludWF0aW9uID0gdGhpcy0+
Y29udGludWF0aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4
IGRmMDE5Zjc2NDVjLi4wMWJkMTRiYzVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmgKQEAgLTQ1OSw4ICs0NTksNiBAQCBwcml2YXRlOgogICAgIExheW91dFJlY3QgcmVj
dFdpdGhPdXRsaW5lRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29uc3QgZmluYWw7CiAgICAg
Y29uc3QgUmVuZGVyU3R5bGUmIG91dGxpbmVTdHlsZUZvclJlcGFpbnQoKSBjb25zdCBmaW5hbDsK
IAotICAgIHZvaWQgdXBkYXRlRHJhZ1N0YXRlKGJvb2wgZHJhZ09uKSBmaW5hbDsKLQogICAgIExh
eW91dFJlY3Qgc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCAvKmNsaXBUb1Zpc2libGVDb250ZW50Ki8pIGZp
bmFsCiAgICAgewogICAgICAgICByZXR1cm4gc2VsZWN0aW9uR2FwUmVjdHNGb3JSZXBhaW50KHJl
cGFpbnRDb250YWluZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNw
cAppbmRleCA3MzcyMTBiYWY2ZS4uNmE3MmEzODkwODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC0xMDMwLDEzICsxMDMwLDYgQEAgY29uc3QgUmVuZGVy
T2JqZWN0KiBSZW5kZXJJbmxpbmU6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE8KICAgICByZXR1cm4gYW5jZXN0b3JTa2lwcGVkID8gYW5jZXN0b3JUb1N0b3BB
dCA6IGNvbnRhaW5lcjsKIH0KIAotdm9pZCBSZW5kZXJJbmxpbmU6OnVwZGF0ZURyYWdTdGF0ZShi
b29sIGRyYWdPbikKLXsKLSAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6dXBkYXRlRHJhZ1N0YXRl
KGRyYWdPbik7Ci0gICAgaWYgKFJlbmRlckJveE1vZGVsT2JqZWN0KiBjb250aW51YXRpb24gPSB0
aGlzLT5jb250aW51YXRpb24oKSkKLSAgICAgICAgY29udGludWF0aW9uLT51cGRhdGVEcmFnU3Rh
dGUoZHJhZ09uKTsKLX0KLQogdm9pZCBSZW5kZXJJbmxpbmU6OnVwZGF0ZUhpdFRlc3RSZXN1bHQo
SGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCiB7CiAgICAg
aWYgKHJlc3VsdC5pbm5lck5vZGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuaAppbmRleCA2ODFiZWM5OTE5OC4uNDQ4YjNhMDVkNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmgKQEAgLTc2LDggKzc2LDYgQEAgcHVibGljOgogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBhYnNvbHV0ZVF1YWRzRm9yU2VsZWN0aW9uKFZlY3Rv
cjxGbG9hdFF1YWQ+JiBxdWFkcykgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKLQotICAgIHZvaWQg
dXBkYXRlRHJhZ1N0YXRlKGJvb2wgZHJhZ09uKSBmaW5hbDsKICAgICAKICAgICBMYXlvdXRTaXpl
IG9mZnNldEZvckluRmxvd1Bvc2l0aW9uZWRJbmxpbmUoY29uc3QgUmVuZGVyQm94KiBjaGlsZCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXgg
NDMwZjczMzY1Y2IuLjBiZTVjZGIwMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcApAQCAtMTUyNCwyMiArMTUyNCw2IEBAIFZpc2libGVQb3NpdGlvbiBSZW5k
ZXJPYmplY3Q6OnBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBSZW5k
ZXJGCiAgICAgcmV0dXJuIGNyZWF0ZVZpc2libGVQb3NpdGlvbihjYXJldE1pbk9mZnNldCgpLCBE
T1dOU1RSRUFNKTsKIH0KIAotdm9pZCBSZW5kZXJPYmplY3Q6OnVwZGF0ZURyYWdTdGF0ZShib29s
IGRyYWdPbikKLXsKLSAgICBib29sIHZhbHVlQ2hhbmdlZCA9IChkcmFnT24gIT0gaXNEcmFnZ2lu
ZygpKTsKLSAgICBzZXRJc0RyYWdnaW5nKGRyYWdPbik7Ci0KLSAgICBpZiAoIWlzPFJlbmRlckVs
ZW1lbnQ+KCp0aGlzKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGF1dG8mIHJlbmRlckVsZW1lbnQg
PSBkb3duY2FzdDxSZW5kZXJFbGVtZW50PigqdGhpcyk7Ci0KLSAgICBpZiAodmFsdWVDaGFuZ2Vk
ICYmIHJlbmRlckVsZW1lbnQuZWxlbWVudCgpICYmIChzdHlsZSgpLmFmZmVjdGVkQnlEcmFnKCkg
fHwgcmVuZGVyRWxlbWVudC5lbGVtZW50KCktPmNoaWxkcmVuQWZmZWN0ZWRCeURyYWcoKSkpCi0g
ICAgICAgIHJlbmRlckVsZW1lbnQuZWxlbWVudCgpLT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVl
KCk7Ci0KLSAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyT2JqZWN0
PihyZW5kZXJFbGVtZW50KSkKLSAgICAgICAgY2hpbGQudXBkYXRlRHJhZ1N0YXRlKGRyYWdPbik7
Ci19Ci0KIGJvb2wgUmVuZGVyT2JqZWN0Ojppc0NvbXBvc2l0ZWQoKSBjb25zdAogewogICAgIHJl
dHVybiBoYXNMYXllcigpICYmIGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxPYmplY3Q+KCp0aGlz
KS5sYXllcigpLT5pc0NvbXBvc2l0ZWQoKTsKQEAgLTE4NTYsMTIgKzE4NDAsNiBAQCB2b2lkIFJl
bmRlck9iamVjdDo6Y2FsY3VsYXRlQm9yZGVyU3R5bGVDb2xvcihjb25zdCBCb3JkZXJTdHlsZSYg
c3R5bGUsIGNvbnN0IEJveAogICAgIH0KIH0KIAotdm9pZCBSZW5kZXJPYmplY3Q6OnNldElzRHJh
Z2dpbmcoYm9vbCBpc0RyYWdnaW5nKQotewotICAgIGlmIChpc0RyYWdnaW5nIHx8IGhhc1JhcmVE
YXRhKCkpCi0gICAgICAgIGVuc3VyZVJhcmVEYXRhKCkuc2V0SXNEcmFnZ2luZyhpc0RyYWdnaW5n
KTsKLX0KLQogdm9pZCBSZW5kZXJPYmplY3Q6OnNldEhhc1JlZmxlY3Rpb24oYm9vbCBoYXNSZWZs
ZWN0aW9uKQogewogICAgIGlmIChoYXNSZWZsZWN0aW9uIHx8IGhhc1JhcmVEYXRhKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMjhmYTJjYTgwZWYuLjgxM2Iz
MWZmMWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC00Mjcs
NyArNDI3LDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fYml0ZmllbGRzLmlzUmVwbGFjZWQoKTsgfSAvLyBhICJyZXBsYWNlZCIgZWxlbWVudCAoc2Vl
IENTUykKICAgICBib29sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9iaXRmaWVsZHMuaG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7IH0KIAotICAgIGJvb2wgaXNEcmFn
Z2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmhhc1JhcmVEYXRhKCkgJiYgcmFyZURh
dGEoKS5pc0RyYWdnaW5nKCk7IH0KICAgICBib29sIGhhc1JlZmxlY3Rpb24oKSBjb25zdCB7IHJl
dHVybiBtX2JpdGZpZWxkcy5oYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhKCkuaGFzUmVmbGVjdGlv
bigpOyB9CiAgICAgYm9vbCBpc1JlbmRlckZyYWdtZW50ZWRGbG93KCkgY29uc3QgeyByZXR1cm4g
bV9iaXRmaWVsZHMuaGFzUmFyZURhdGEoKSAmJiByYXJlRGF0YSgpLmlzUmVuZGVyRnJhZ21lbnRl
ZEZsb3coKTsgfQogICAgIGJvb2wgaGFzT3V0bGluZUF1dG9BbmNlc3RvcigpIGNvbnN0IHsgcmV0
dXJuIG1fYml0ZmllbGRzLmhhc1JhcmVEYXRhKCkgJiYgcmFyZURhdGEoKS5oYXNPdXRsaW5lQXV0
b0FuY2VzdG9yKCk7IH0KQEAgLTQ3Nyw4ICs0NzYsNiBAQCBwdWJsaWM6CiAKICAgICBpbmxpbmUg
Ym9vbCBwcmVzZXJ2ZXNOZXdsaW5lKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
RHJhZ1N0YXRlKGJvb2wgZHJhZ09uKTsKLQogICAgIFJlbmRlclZpZXcmIHZpZXcoKSBjb25zdCB7
IHJldHVybiAqZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCk7IH07CiAKICAgICAvLyBSZXR1cm5zIHRy
dWUgaWYgdGhpcyByZW5kZXJlciBpcyByb290ZWQuCkBAIC01NDEsNyArNTM4LDYgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0SGFzTGF5ZXIoYm9vbCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRI
YXNMYXllcihiKTsgfQogICAgIHZvaWQgc2V0SGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KGJv
b2wgYiA9IHRydWUpIHsgbV9iaXRmaWVsZHMuc2V0SGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5
KGIpOyB9CiAKLSAgICB2b2lkIHNldElzRHJhZ2dpbmcoYm9vbCk7CiAgICAgdm9pZCBzZXRIYXNS
ZWZsZWN0aW9uKGJvb2wgPSB0cnVlKTsKICAgICB2b2lkIHNldElzUmVuZGVyRnJhZ21lbnRlZEZs
b3coYm9vbCA9IHRydWUpOwogICAgIHZvaWQgc2V0SGFzT3V0bGluZUF1dG9BbmNlc3Rvcihib29s
ID0gdHJ1ZSk7CkBAIC05NjgsMTMgKzk2NCwxMSBAQCBwcml2YXRlOgogICAgICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6CiAgICAgICAgIFJlbmRlck9iamVjdFJhcmVE
YXRhKCkKLSAgICAgICAgICAgIDogbV9pc0RyYWdnaW5nKGZhbHNlKQotICAgICAgICAgICAgLCBt
X2hhc1JlZmxlY3Rpb24oZmFsc2UpCisgICAgICAgICAgICA6IG1faGFzUmVmbGVjdGlvbihmYWxz
ZSkKICAgICAgICAgICAgICwgbV9pc1JlbmRlckZyYWdtZW50ZWRGbG93KGZhbHNlKQogICAgICAg
ICAgICAgLCBtX2hhc091dGxpbmVBdXRvQW5jZXN0b3IoZmFsc2UpCiAgICAgICAgIHsKICAgICAg
ICAgfQotICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChpc0RyYWdnaW5nLCBJc0RyYWdnaW5n
KTsKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaGFzUmVmbGVjdGlvbiwgSGFzUmVmbGVj
dGlvbik7CiAgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKGlzUmVuZGVyRnJhZ21lbnRlZEZs
b3csIElzUmVuZGVyRnJhZ21lbnRlZEZsb3cpOwogICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVM
RChoYXNPdXRsaW5lQXV0b0FuY2VzdG9yLCBIYXNPdXRsaW5lQXV0b0FuY2VzdG9yKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDczZDM4
NWY5NGM3Li5lNWIzNjZkMDU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xODksNyArMTg5LDYgQEAgUmVuZGVyU3R5bGU6OlJlbmRl
clN0eWxlKENyZWF0ZURlZmF1bHRTdHlsZVRhZykKICAgICBtX25vbkluaGVyaXRlZEZsYWdzLmVt
cHR5U3RhdGUgPSBmYWxzZTsKICAgICBtX25vbkluaGVyaXRlZEZsYWdzLmZpcnN0Q2hpbGRTdGF0
ZSA9IGZhbHNlOwogICAgIG1fbm9uSW5oZXJpdGVkRmxhZ3MubGFzdENoaWxkU3RhdGUgPSBmYWxz
ZTsKLSAgICBtX25vbkluaGVyaXRlZEZsYWdzLmFmZmVjdGVkQnlEcmFnID0gZmFsc2U7CiAgICAg
bV9ub25Jbmhlcml0ZWRGbGFncy5pc0xpbmsgPSBmYWxzZTsKICAgICBtX25vbkluaGVyaXRlZEZs
YWdzLnN0eWxlVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQc2V1ZG9JZDo6Tm9uZSk7CiAg
ICAgbV9ub25Jbmhlcml0ZWRGbGFncy5wc2V1ZG9CaXRzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFBzZXVkb0lkOjpOb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKaW5kZXggYzgzZjBjZDAyZTcuLjU2ZjAzNjFlOWNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTkyLDkgKzE5Miw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEhhc1ZpZXdwb3J0VW5pdHMoYm9vbCB2ID0gdHJ1ZSkgeyBtX25v
bkluaGVyaXRlZEZsYWdzLmhhc1ZpZXdwb3J0VW5pdHMgPSB2OyB9CiAgICAgYm9vbCBoYXNWaWV3
cG9ydFVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV9ub25Jbmhlcml0ZWRGbGFncy5oYXNWaWV3cG9y
dFVuaXRzOyB9CiAKLSAgICBib29sIGFmZmVjdGVkQnlEcmFnKCkgY29uc3QgeyByZXR1cm4gbV9u
b25Jbmhlcml0ZWRGbGFncy5hZmZlY3RlZEJ5RHJhZzsgfQotICAgIHZvaWQgc2V0QWZmZWN0ZWRC
eURyYWcoKSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3MuYWZmZWN0ZWRCeURyYWcgPSB0cnVlOyB9Ci0K
ICAgICB2b2lkIHNldENvbHVtblN0eWxlc0Zyb21QYWdpbmF0aW9uTW9kZShjb25zdCBQYWdpbmF0
aW9uOjpNb2RlJik7CiAgICAgCiAgICAgYm9vbCBpc0Zsb2F0aW5nKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8RmxvYXQ+KG1fbm9uSW5oZXJpdGVkRmxhZ3MuZmxvYXRpbmcpICE9IEZsb2F0
OjpObzsgfQpAQCAtMTgwMSw3ICsxNzk4LDYgQEAgcHJpdmF0ZToKICAgICAgICAgdW5zaWduZWQg
ZW1wdHlTdGF0ZSA6IDE7CiAgICAgICAgIHVuc2lnbmVkIGZpcnN0Q2hpbGRTdGF0ZSA6IDE7CiAg
ICAgICAgIHVuc2lnbmVkIGxhc3RDaGlsZFN0YXRlIDogMTsKLSAgICAgICAgdW5zaWduZWQgYWZm
ZWN0ZWRCeURyYWcgOiAxOwogICAgICAgICB1bnNpZ25lZCBpc0xpbmsgOiAxOwogCiAgICAgICAg
IHVuc2lnbmVkIHN0eWxlVHlwZSA6IDQ7IC8vIFBzZXVkb0lkCkBAIC0xOTMzLDcgKzE5MjksNiBA
QCBpbmxpbmUgYm9vbCBSZW5kZXJTdHlsZTo6Tm9uSW5oZXJpdGVkRmxhZ3M6Om9wZXJhdG9yPT0o
Y29uc3QgTm9uSW5oZXJpdGVkRmxhZ3MmCiAgICAgICAgICYmIGVtcHR5U3RhdGUgPT0gb3RoZXIu
ZW1wdHlTdGF0ZQogICAgICAgICAmJiBmaXJzdENoaWxkU3RhdGUgPT0gb3RoZXIuZmlyc3RDaGls
ZFN0YXRlCiAgICAgICAgICYmIGxhc3RDaGlsZFN0YXRlID09IG90aGVyLmxhc3RDaGlsZFN0YXRl
Ci0gICAgICAgICYmIGFmZmVjdGVkQnlEcmFnID09IG90aGVyLmFmZmVjdGVkQnlEcmFnCiAgICAg
ICAgICYmIGlzTGluayA9PSBvdGhlci5pc0xpbmsKICAgICAgICAgJiYgc3R5bGVUeXBlID09IG90
aGVyLnN0eWxlVHlwZQogICAgICAgICAmJiBwc2V1ZG9CaXRzID09IG90aGVyLnBzZXVkb0JpdHM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0aW9ucy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0aW9ucy5jcHAKaW5kZXggZDc0Nzc0MTMzY2Iu
Ljc5M2M2YmVjOTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0
aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZWxhdGlvbnMuY3BwCkBA
IC01MCw5ICs1MCw2IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZWxhdGlvbnM+IGNvbW1pdFJlbGF0aW9u
c1RvUmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zCiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogICAgICAgICBzd2l0Y2ggKHJlbGF0aW9uLnR5cGUpIHsKLSAgICAg
ICAgY2FzZSBSZWxhdGlvbjo6QWZmZWN0ZWRCeURyYWc6Ci0gICAgICAgICAgICBzdHlsZS5zZXRB
ZmZlY3RlZEJ5RHJhZygpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUmVsYXRp
b246OkFmZmVjdGVkQnlFbXB0eToKICAgICAgICAgICAgIHN0eWxlLnNldEVtcHR5U3RhdGUocmVs
YXRpb24udmFsdWUpOwogICAgICAgICAgICAgYXBwZW5kU3R5bGVSZWxhdGlvbihyZWxhdGlvbik7
CkBAIC05MSw5ICs4OCw2IEBAIHZvaWQgY29tbWl0UmVsYXRpb25zKHN0ZDo6dW5pcXVlX3B0cjxS
ZWxhdGlvbnM+IHJlbGF0aW9ucywgVXBkYXRlJiB1cGRhdGUpCiAgICAgZm9yIChhdXRvJiByZWxh
dGlvbiA6ICpyZWxhdGlvbnMpIHsKICAgICAgICAgYXV0byYgZWxlbWVudCA9IGNvbnN0X2Nhc3Q8
RWxlbWVudCY+KCpyZWxhdGlvbi5lbGVtZW50KTsKICAgICAgICAgc3dpdGNoIChyZWxhdGlvbi50
eXBlKSB7Ci0gICAgICAgIGNhc2UgUmVsYXRpb246OkFmZmVjdGVkQnlEcmFnOgotICAgICAgICAg
ICAgZWxlbWVudC5zZXRDaGlsZHJlbkFmZmVjdGVkQnlEcmFnKCk7Ci0gICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBSZWxhdGlvbjo6QWZmZWN0ZWRCeUVtcHR5OgogICAgICAgICAgICAg
ZWxlbWVudC5zZXRTdHlsZUFmZmVjdGVkQnlFbXB0eSgpOwogICAgICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0aW9ucy5oIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZWxhdGlvbnMuaAppbmRleCA2NWM1NTRmNDQyNy4uNzhhYWYw
NTg4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVsYXRpb25zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZWxhdGlvbnMuaApAQCAtMzgsNyArMzgs
NiBAQCBjbGFzcyBVcGRhdGU7CiAKIHN0cnVjdCBSZWxhdGlvbiB7CiAgICAgZW51bSBUeXBlIHsK
LSAgICAgICAgQWZmZWN0ZWRCeURyYWcsCiAgICAgICAgIEFmZmVjdGVkQnlFbXB0eSwKICAgICAg
ICAgQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZywKICAgICAgICAgRGVzY2VuZGFudHNBZmZlY3Rl
ZEJ5UHJldmlvdXNTaWJsaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVTaGFyaW5nUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5n
UmVzb2x2ZXIuY3BwCmluZGV4IGIxMWJjZjM2YWUzLi42MmVjY2Y2ZjM2MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcApAQCAtMjI1LDYgKzIyNSw4
IEBAIGJvb2wgU2hhcmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoY29uc3Qg
Q29udGV4dCYgY29udGV4dCwgY29uc3QgU3R5CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBp
ZiAoY2FuZGlkYXRlRWxlbWVudC5oYXNGb2N1c1dpdGhpbigpICE9IGVsZW1lbnQuaGFzRm9jdXNX
aXRoaW4oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChjYW5kaWRhdGVFbGVtZW50
LmlzQmVpbmdEcmFnZ2VkKCkgIT0gZWxlbWVudC5pc0JlaW5nRHJhZ2dlZCgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQuc2hhZG93UHNldWRvSWQoKSAh
PSBlbGVtZW50LnNoYWRvd1BzZXVkb0lkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBp
ZiAoJmNhbmRpZGF0ZUVsZW1lbnQgPT0gbV9kb2N1bWVudC5jc3NUYXJnZXQoKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>