<?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>75228</bug_id>
          
          <creation_ts>2011-12-26 07:32:13 -0800</creation_ts>
          <short_desc>Web Inspector: Introduce a Profiler launcher view similar to that in the Audits panel</short_desc>
          <delta_ts>2011-12-28 07:25:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>74004</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>527215</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-26 07:32:13 -0800</bug_when>
    <thetext>The current approach does not scale w.r.t. the number of different profile types (&quot;Record&quot; buttons.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527382</commentid>
    <comment_count>1</comment_count>
      <attachid>120593</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-27 09:32:55 -0800</bug_when>
    <thetext>Created attachment 120593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527594</commentid>
    <comment_count>2</comment_count>
      <attachid>120593</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-12-28 02:21:39 -0800</bug_when>
    <thetext>Comment on attachment 120593
Patch

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

Please remove welcome screen.

&gt; Source/WebCore/inspector/front-end/profilesPanel.css:150
&gt; +.profile-launcher-view-content {

Please reuse this style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527623</commentid>
    <comment_count>3</comment_count>
      <attachid>120656</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-28 05:20:43 -0800</bug_when>
    <thetext>Created attachment 120656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527641</commentid>
    <comment_count>4</comment_count>
      <attachid>120656</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-12-28 06:01:15 -0800</bug_when>
    <thetext>Comment on attachment 120656
Patch

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

&gt; Source/WebCore/inspector/front-end/ProfileLauncherView.js:87
&gt; +            this.dispatchEventToListeners(WebInspector.ProfileLauncherView.EventTypes.ProfileTypeSelected, { profileType: profileType });

Why not to pass profileType as an event data instead?

&gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:280
&gt; +            // Retain the profile type registration order in the tree, too.

I don&apos;t think you need this logic.

&gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:1032
&gt; +    onattach: function()

Why do you need this override?

&gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:1049
&gt; +        this.refreshTitles();

Where is this defined? Why doesn&apos;t it work be default?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527651</commentid>
    <comment_count>5</comment_count>
      <attachid>120664</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-28 06:40:42 -0800</bug_when>
    <thetext>Created attachment 120664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527667</commentid>
    <comment_count>6</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-28 07:25:23 -0800</bug_when>
    <thetext>Committed r103765: &lt;http://trac.webkit.org/changeset/103765&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120593</attachid>
            <date>2011-12-27 09:32:55 -0800</date>
            <delta_ts>2011-12-28 05:20:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75228-20111227213252.patch</filename>
            <type>text/plain</type>
            <size>36156</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ1N2JjNjNjZjc4Y2Zi
Y2ZhZmEyYmQ0YjgyNDU0ZTE4NjUxNjdiZS4uYTE3YzgxN2RkYTdjMjg2MmIxNTYyNDM2NTAxYWNh
ODg5YjFmZWJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcxIEBACiAyMDExLTEyLTI3ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW50cm9kdWNlIGEgUHJvZmlsZXIgbGF1bmNoZXIgdmlldyBzaW1pbGFyIHRvIHRoYXQg
aW4gdGhlIEF1ZGl0cyBwYW5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzUyMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90UHJvZmlsZVR5cGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNob3RQcm9maWxlVHlwZS5wcm90b3R5cGUu
Z2V0IHRyZWVJdGVtVGl0bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNo
b3RQcm9maWxlVHlwZS5wcm90b3R5cGUuZ2V0IGRlc2NyaXB0aW9uKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVMYXVuY2hlclZpZXcuanM6IEFkZGVkLgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlLmdldCBzZWxlY3RlZFByb2ZpbGVUeXBlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlwZS5zZXRV
cEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJW
aWV3LnByb3RvdHlwZS5hZGRQcm9maWxlVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJv
ZmlsZUxhdW5jaGVyVmlldy5wcm90b3R5cGUuX2NvbnRyb2xCdXR0b25DbGlja2VkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlwZS5fdXBkYXRlQ29u
dHJvbHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90
eXBlLl9wcm9maWxlVHlwZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVM
YXVuY2hlclZpZXcucHJvdG90eXBlLl9vblByb2ZpbGVTdGFydGVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlwZS5fb25Qcm9maWxlRmluaXNoZWQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNQ
VVByb2ZpbGVUeXBlLnByb3RvdHlwZS5nZXQgdHJlZUl0ZW1UaXRsZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUucHJvdG90eXBlLmdldCBkZXNjcmlwdGlvbik6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlByb2ZpbGVUeXBlLnByb3RvdHlwZS5nZXQgdHJlZUl0ZW1UaXRsZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUucHJvdG90eXBlLmdldCBkZXNjcmlwdGlvbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuZ2V0IHN0YXR1
c0Jhckl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZS50b2dnbGVSZWNvcmRCdXR0b24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwucHJvdG90eXBlLl9vblByb2ZpbGVUeXBlU2VsZWN0ZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3Nob3dMYXVuY2hlclZpZXcpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9wcm9maWxlVHlwZVRyZWVFbGVt
ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5fcmVn
aXN0ZXJQcm9maWxlVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUuX2FkZFByb2ZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWwucHJvdG90eXBlLl91cGRhdGVJbnRlcmZhY2UpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlByb2ZpbGVUeXBlVHJlZUVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2Zp
bGVUeXBlVHJlZUVsZW1lbnQucHJvdG90eXBlLmNvbGxhcHNlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1NpZGViYXJUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNTaWRlYmFyVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uYXR0YWNoKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Qcm9maWxlc1NpZGViYXJUcmVlRWxlbWVudC5wcm90b3R5cGUub25zZWxl
Y3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzU2lkZWJhclRyZWVFbGVtZW50LnBy
b3RvdHlwZS5nZXQgc2VsZWN0YWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNT
aWRlYmFyVHJlZUVsZW1lbnQucHJvdG90eXBlLnJlZnJlc2gpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvV2ViS2l0LnFyYzoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvcHJvZmlsZXNQYW5l
bC5jc3M6CisgICAgICAgICgucHJvZmlsZS1sYXVuY2hlci12aWV3LXRyZWUtaXRlbSA+IC5pY29u
KToKKyAgICAgICAgKC5wcm9maWxlLWxhdW5jaGVyLXZpZXctY29udGVudCk6CisgICAgICAgICgu
cHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQgLmZsZXhpYmxlLXNwYWNlKToKKyAgICAgICAg
KC5wcm9maWxlLWxhdW5jaGVyLXZpZXctY29udGVudCBoMSk6CisgICAgICAgICgucHJvZmlsZS1s
YXVuY2hlci12aWV3LWNvbnRlbnQgZm9ybSk6CisgICAgICAgICgucHJvZmlsZS1sYXVuY2hlci12
aWV3LWNvbnRlbnQgcCk6CisgICAgICAgICgucHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQg
aW5wdXRbdHlwZT0iY2hlY2tib3giXSk6CisgICAgICAgICgucHJvZmlsZS1sYXVuY2hlci12aWV3
LWNvbnRlbnQgaW5wdXRbdHlwZT0icmFkaW8iXSk6CisgICAgICAgICgucHJvZmlsZS1sYXVuY2hl
ci12aWV3LWNvbnRlbnQgaW5wdXRbdHlwZT0icmFkaW8iXTphY3RpdmU6bm90KDpkaXNhYmxlZCkp
OgorICAgICAgICAoLnByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250ZW50IGlucHV0W3R5cGU9InJh
ZGlvIl06Y2hlY2tlZDpub3QoOmRpc2FibGVkKSwgLnByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250
ZW50IGlucHV0W3R5cGU9InJhZGlvIl06Y2hlY2tlZDpkaXNhYmxlZCk6CisgICAgICAgICgucHJv
ZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQgYnV0dG9uKToKKyAgICAgICAgKC5wcm9maWxlLWxh
dW5jaGVyLXZpZXctY29udGVudCBidXR0b246YWN0aXZlKToKKyAgICAgICAgKGJvZHkuaW5hY3Rp
dmUgLnByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250ZW50IGJ1dHRvbik6CisgICAgICAgICgucHJv
ZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQgYnV0dG9uLnJ1bm5pbmcpOgorICAgICAgICAoYm9k
eS5pbmFjdGl2ZSAucHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQgYnV0dG9uLnJ1bm5pbmcp
OgorCisyMDExLTEyLTI3ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+
CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogW1JFR1JFU1NJT05dIEdvIHRvIEZ1bmN0aW9uIGRp
YWxvZyBhbHdheXMgaGFzIGEgbWluaW1hbCBoZWlnaHQKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjU0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0Vu
Z2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCBlYzg5YTVjMjA4ODJjMmVlNzVl
YjdlNDE4NzkyYWNlZjAyOTQxOWU0Li5kYzM0M2Y4YTBlMDFiOWFlMjg1ZWY3Y2U3ZWJhMjk2MzNj
YzUxYzk5IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDc2Nwp6Y21kVD9LfSFOKjVGSkJB
UktuRD5JPjwlYEooUXFXTEM1T1FCQGArVWdrYTRyNjx4UG9MJkFIPEtxZ0ROTDxORXUKenV7TlNa
S2ZxJUBBY1d7RExJMHEpVFRsXm40N3orWF5TeWE5LStPJFdUa0ZsZXdjOEp8SmFGK3YoQz1OTUJ5
RXNACnpRPjhMKFE9Vz1razlvUUlqKnRBbnhqcjRgJEl1LXwhWnQzblQkMilNO0FAbHZ6bHlBaU91
e3E/ZEJ3PjJzVFA+OAp6VX48WDQlWVhETXNBT35xS3hDWno7T35KYWtVfUV1MDFjN0dYVGZua3hP
QjV9PTtsbnpfaDtLfHlqY3IjXjRZMiUKemhkVH5fbjZxO3lLQ0N6NiFqJTQhPko5T0YkfWNJT3Jz
MjhZWjd7QF5BVzROVmZ3QjsoTDlCfEhmbFJ9V3ZNRjBNCnp5SlFJZCNlJiV+U09yWW4wQEsoZGZ9
MkcmWSVaZHpBUjZeREMxQDI8I2BHKi1ITkQoVit5MkV7VXIoY1lIJEFxJQp6b2BqIzFJVWYlaUU7
RTtORi17KTJeaj40cGQ2S2JQSlFrSUFDdVhrQzlkX3BtV1ErSk8wPEgwQUl+NGQqIXZYXl8KS3xF
MWFBajtMPi1ITX5tegoKZGVsdGEgNTEyCnpjbWRuOGhoXlAxbUpScFJDLS1QPG85dn57SEpMfFNX
ViNnLUJqNGwkK0FOYWB2e15SdVh4RElZPH1zOG82Znh2OAp6PFZAfmdFRX1vN2tpPH5RcHVrVzc2
aWEwJjJFdDUrSmNlfGpOQ2BzKlAoKj0yNih8TiRSU0ZhLTBxVjtHQCpwSGsKek1LTXIzNXJ8OG5E
aWVXYj19biReTXwkI3YjV0pCWnYwPHt9VyZPenAjdz9USG5YK3h9R2N7MFZQWCMoYWZneTNTCnp7
VGtWTm5wZz8pNm9WMiZFWUtFUEFYWns8Mkw9ej1QOVA1eVJFZllxUX4oQSstZW10Wnl0TVE3PH48
Um9tXk5wYApWM1IhSnRuYz44fWMqMF9pJT5ydndpVTVucWFrS3ljCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDY1MzczZDA4YmQyNjhkYTIyNzE5ODk5MjA0YzJlMmYxMmNlYmMyM2MuLjI2OTVlM2I4YzUz
OTc2OTg3YjJlMGY5NmYxYWY0YmI2YzNhZTM1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTY0NDgs
NiArNjQ0OCw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9QbGFjYXJkLmpz
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIuanMnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJlZS5qcycsCisgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlTGF1bmNoZXJWaWV3LmpzJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvUHJvcGVydGllc1NlY3Rpb24uanMnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzZjcyYjRkNWM3YjAwOTBj
NTk5MzdmOGYyYTE0ZWRkOGI3NDc3YzExLi42Y2I5NGYwNTBmNjcwMGVkNmFkZGE3MmEzOTdmOGU4
ZDgyYjIzYzhmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagpAQCAtNzE4MzcsNiArNzE4MzcsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8
RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcUHJvZmlsZUxh
dW5jaGVyVmlldy5qcyIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcUHJvZmlsZXNQYW5lbC5qcyIKIAkJCQkJ
PgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRGV0YWlsZWRIZWFwc2hvdFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzCmluZGV4IDNhZmE5N2ZkNzFlYjRiZjEx
NTZkZjNmZWIxYTkxNzA1N2RkYzgxZjUuLjkwMGE2MDY5YzJmMDg4MjhjMmRiM2U4ZDY2ZTkwYjUz
NmI3YzMxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGV0YWlsZWRIZWFwc2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qcwpAQCAtMTI5Nyw3ICsxMjk3LDcgQEAgV2Vi
SW5zcGVjdG9yLnNldHRpbmdzLnNob3dIZWFwU25hcHNob3RPYmplY3RzSGlkZGVuUHJvcGVydGll
cyA9IFdlYkluc3BlY3Rvci5zZXQKIAogV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNob3RQcm9m
aWxlVHlwZSA9IGZ1bmN0aW9uKCkKIHsKLSAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUuY2Fs
bCh0aGlzLCBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJZCwg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJIRUFQIFNOQVBTSE9UUyIpKTsKKyAgICBXZWJJbnNwZWN0
b3IuUHJvZmlsZVR5cGUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFBy
b2ZpbGVUeXBlLlR5cGVJZCwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUYWtlIEhlYXAgU25hcHNo
b3QiKSk7CiB9CiAKIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90UHJvZmlsZVR5cGUuVHlw
ZUlkID0gIkhFQVAiOwpAQCAtMTMxOCw5ICsxMzE4LDE0IEBAIFdlYkluc3BlY3Rvci5EZXRhaWxl
ZEhlYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlID0gewogICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxzLnByb2ZpbGVzLnRha2VIZWFwU25hcHNob3QoKTsKICAgICB9LAogCi0gICAgZ2V0IHdl
bGNvbWVNZXNzYWdlKCkKKyAgICBnZXQgdHJlZUl0ZW1UaXRsZSgpCiAgICAgewotICAgICAgICBy
ZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHZXQgYSBoZWFwIHNuYXBzaG90IGJ5IHByZXNz
aW5nIHRoZSAlcyBidXR0b24gb24gdGhlIHN0YXR1cyBiYXIuIik7CisgICAgICAgIHJldHVybiBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkhFQVAgU05BUFNIT1RTIik7CisgICAgfSwKKworICAgIGdl
dCBkZXNjcmlwdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJIZWFwIHNuYXBzaG90IHByb2ZpbGVzIHNob3cgbWVtb3J5IGRpc3RyaWJ1dGlvbiBhbW9u
ZyB5b3VyIHBhZ2UncyBKYXZhU2NyaXB0IG9iamVjdHMgYW5kIHJlbGF0ZWQgRE9NIG5vZGVzLiIp
OwogICAgIH0sCiAKICAgICBjcmVhdGVTaWRlYmFyVHJlZUVsZW1lbnRGb3JQcm9maWxlOiBmdW5j
dGlvbihwcm9maWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Qcm9maWxlTGF1bmNoZXJWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlTGF1bmNoZXJWaWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0ZWYwNzBiNjlmYTA4
Mzc4NjdlZGZkMjI0ZjI2ZjRlOGVlOWY0MWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVMYXVuY2hlclZpZXcuanMKQEAgLTAsMCAr
MSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5W
aWV3fQorICovCitXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldyA9IGZ1bmN0aW9uKHBy
b2ZpbGVzUGFuZWwpCit7CisgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKKyAgICB0
aGlzLl9wYW5lbCA9IHByb2ZpbGVzUGFuZWw7CisgICAgdGhpcy5fcHJvZmlsZVJ1bm5pbmcgPSBm
YWxzZTsKKyAgICB0aGlzLl9vcHRpb25JZFByZWZpeCA9ICJwcm9maWxlLXR5cGUtIjsKKworICAg
IHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJwcm9maWxlLWxhdW5jaGVyLXZpZXciKTsKKwor
ICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgICAgdGhpcy5fY29udGVudEVsZW1lbnQuY2xhc3NOYW1lID0gInByb2ZpbGUtbGF1bmNoZXIt
dmlldy1jb250ZW50IjsKKyAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY29udGVu
dEVsZW1lbnQpOworCisgICAgdmFyIGhlYWRlciA9IHRoaXMuX2NvbnRlbnRFbGVtZW50LmNyZWF0
ZUNoaWxkKCJoMSIpOworICAgIGhlYWRlci50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiU2VsZWN0IHByb2ZpbGluZyB0eXBlIik7CisKKyAgICB0aGlzLl9wcm9maWxlVHlwZVNl
bGVjdG9yRm9ybSA9IHRoaXMuX2NvbnRlbnRFbGVtZW50LmNyZWF0ZUNoaWxkKCJmb3JtIik7Cisg
ICAgdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJmbGV4aWJsZS1zcGFj
ZSIpOworCisgICAgdGhpcy5fYm91bmRQcm9maWxlVHlwZUNoYW5nZUxpc3RlbmVyID0gdGhpcy5f
cHJvZmlsZVR5cGVDaGFuZ2VkLmJpbmQodGhpcyk7CisKKyAgICB0aGlzLl9jb250cm9sQnV0dG9u
ID0gdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImJ1dHRvbiIsICJjb250cm9sLXBy
b2ZpbGluZyIpOworICAgIHRoaXMuX2NvbnRyb2xCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCB0aGlzLl9jb250cm9sQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAg
dGhpcy5fdXBkYXRlQ29udHJvbHMoKTsKK30KKworV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hl
clZpZXcuRXZlbnRUeXBlcyA9IHsKKyAgICBQcm9maWxlVHlwZVNlbGVjdGVkOiAicHJvZmlsZS10
eXBlLXNlbGVjdGVkIgorfQorCitXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5wcm90
b3R5cGUgPSB7CisgICAgZ2V0IHNlbGVjdGVkUHJvZmlsZVR5cGUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX3NlbGVjdGVkUHJvZmlsZVR5cGU7CisgICAgfSwKKworICAgIHNldFVwRXZl
bnRMaXN0ZW5lcnM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BhbmVsLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuRXZlbnRUeXBlcy5Qcm9maWxl
U3RhcnRlZCwgdGhpcy5fb25Qcm9maWxlU3RhcnRlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX3Bh
bmVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuRXZlbnRUeXBl
cy5Qcm9maWxlRmluaXNoZWQsIHRoaXMuX29uUHJvZmlsZUZpbmlzaGVkLCB0aGlzKTsKKyAgICB9
LAorCisgICAgYWRkUHJvZmlsZVR5cGU6IGZ1bmN0aW9uKHByb2ZpbGVUeXBlKQorICAgIHsKKyAg
ICAgICAgdmFyIGNoZWNrZWQgPSAhdGhpcy5fcHJvZmlsZVR5cGVTZWxlY3RvckZvcm0uY2hpbGRy
ZW4ubGVuZ3RoOworICAgICAgICB2YXIgb3B0aW9uRWxlbWVudCA9IHRoaXMuX3Byb2ZpbGVUeXBl
U2VsZWN0b3JGb3JtLmNyZWF0ZUNoaWxkKCJpbnB1dCIpOworICAgICAgICB2YXIgb3B0aW9uSWQg
PSB0aGlzLl9vcHRpb25JZFByZWZpeCArIHByb2ZpbGVUeXBlLmlkOworICAgICAgICBvcHRpb25F
bGVtZW50LnR5cGUgPSAicmFkaW8iOworICAgICAgICBvcHRpb25FbGVtZW50Lm5hbWUgPSAicHJv
ZmlsZS10eXBlIjsKKyAgICAgICAgb3B0aW9uRWxlbWVudC5pZCA9IG9wdGlvbklkOworICAgICAg
ICBpZiAoY2hlY2tlZCkgeworICAgICAgICAgICAgb3B0aW9uRWxlbWVudC5jaGVja2VkID0gY2hl
Y2tlZDsKKyAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkUHJvZmlsZVR5cGUgPSBwcm9maWxlVHlw
ZTsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5Qcm9maWxlTGF1bmNoZXJWaWV3LkV2ZW50VHlwZXMuUHJvZmlsZVR5cGVTZWxlY3RlZCwgeyBw
cm9maWxlVHlwZTogcHJvZmlsZVR5cGUgfSk7CisgICAgICAgIH0KKyAgICAgICAgb3B0aW9uRWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlzLl9ib3VuZFByb2ZpbGVUeXBlQ2hh
bmdlTGlzdGVuZXIsIGZhbHNlKTsKKyAgICAgICAgdmFyIGxhYmVsRWxlbWVudCA9IHRoaXMuX3By
b2ZpbGVUeXBlU2VsZWN0b3JGb3JtLmNyZWF0ZUNoaWxkKCJsYWJlbCIpOworICAgICAgICBsYWJl
bEVsZW1lbnQuaHRtbEZvciA9IG9wdGlvbklkOworICAgICAgICBsYWJlbEVsZW1lbnQudGV4dENv
bnRlbnQgPSBwcm9maWxlVHlwZS5uYW1lOworICAgICAgICB2YXIgZGVzY3JpcHRpb25FbGVtZW50
ID0gdGhpcy5fcHJvZmlsZVR5cGVTZWxlY3RvckZvcm0uY3JlYXRlQ2hpbGQoInAiKTsKKyAgICAg
ICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gcHJvZmlsZVR5cGUuZGVzY3JpcHRp
b247CisgICAgfSwKKworICAgIF9jb250cm9sQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgdGhpcy5fcGFuZWwudG9nZ2xlUmVjb3JkQnV0dG9uKCk7CisgICAgfSwKKwor
ICAgIF91cGRhdGVDb250cm9sczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMu
X2lzUHJvZmlsaW5nKSB7CisgICAgICAgICAgICB0aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9yRm9y
bS5kaXNhYmxlZCA9IHRydWU7CisgICAgICAgICAgICB0aGlzLl9jb250cm9sQnV0dG9uLmFkZFN0
eWxlQ2xhc3MoInJ1bm5pbmciKTsKKyAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xCdXR0b24udGV4
dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0b3AiKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlU2VsZWN0b3JGb3JtLmRpc2FibGVkID0g
ZmFsc2U7CisgICAgICAgICAgICB0aGlzLl9jb250cm9sQnV0dG9uLnJlbW92ZVN0eWxlQ2xhc3Mo
InJ1bm5pbmciKTsKKyAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xCdXR0b24udGV4dENvbnRlbnQg
PSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0YXJ0Iik7CisgICAgICAgIH0KKyAgICB9LAorCisg
ICAgX3Byb2ZpbGVUeXBlQ2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0
aGlzLl9zZWxlY3RlZFByb2ZpbGVUeXBlID0gdGhpcy5fcGFuZWwuZ2V0UHJvZmlsZVR5cGUoZXZl
bnQudGFyZ2V0LmlkLnN1YnN0cmluZyh0aGlzLl9vcHRpb25JZFByZWZpeC5sZW5ndGgpKTsKKyAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlByb2ZpbGVM
YXVuY2hlclZpZXcuRXZlbnRUeXBlcy5Qcm9maWxlVHlwZVNlbGVjdGVkLCB7IHByb2ZpbGVUeXBl
OiB0aGlzLl9zZWxlY3RlZFByb2ZpbGVUeXBlIH0pOworICAgIH0sCisKKyAgICBfb25Qcm9maWxl
U3RhcnRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9pc1Byb2ZpbGlu
ZyA9IHRydWU7CisgICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xzKCk7CisgICAgfSwKKworICAg
IF9vblByb2ZpbGVGaW5pc2hlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0aGlz
Ll9pc1Byb2ZpbGluZyA9IGZhbHNlOworICAgICAgICB0aGlzLl91cGRhdGVDb250cm9scygpOwor
ICAgIH0KK30KKworV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlLl9f
cHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzCmluZGV4IDdiMWRlNzRlZjQy
NWM3NWIwZjZkYjUwYjMzMTIyYTg0OWJjNmYxMjEuLjdlY2NiZjFhZGZiNGE1MWI1NjlmOTJlNGEw
NTYyMDZlZWZiYTQzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Qcm9maWxlVmlldy5qcwpAQCAtNTY5LDcgKzU2OSw3IEBAIFdlYkluc3BlY3Rvci5DUFVQ
cm9maWxlVmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90
eXBlOwogCiBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUgPSBmdW5jdGlvbigpCiB7Ci0gICAg
V2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBlLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLkNQVVByb2Zp
bGVUeXBlLlR5cGVJZCwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDUFUgUFJPRklMRVMiKSk7Cisg
ICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBlLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLkNQVVBy
b2ZpbGVUeXBlLlR5cGVJZCwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb2xsZWN0IEphdmFTY3Jp
cHQgQ1BVIFByb2ZpbGUiKSk7CiAgICAgdGhpcy5fcmVjb3JkaW5nID0gZmFsc2U7CiAgICAgV2Vi
SW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLmluc3RhbmNlID0gdGhpczsKIH0KQEAgLTU5OCw5ICs1
OTgsMTQgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgfQogICAgIH0sCiAKLSAgICBnZXQgd2VsY29tZU1lc3NhZ2UoKQorICAgIGdldCB0cmVlSXRl
bVRpdGxlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNv
bnRyb2wgQ1BVIHByb2ZpbGluZyBieSBwcmVzc2luZyB0aGUgJXMgYnV0dG9uIG9uIHRoZSBzdGF0
dXMgYmFyLiIpOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDUFUgUFJP
RklMRVMiKTsKKyAgICB9LAorCisgICAgZ2V0IGRlc2NyaXB0aW9uKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNQVSBwcm9maWxlcyBzaG93IHdoZXJlIHRo
ZSBleGVjdXRpb24gdGltZSBpcyBzcGVudCBpbiB5b3VyIHBhZ2UncyBKYXZhU2NyaXB0IGZ1bmN0
aW9ucy4iKTsKICAgICB9LAogCiAgICAgaXNSZWNvcmRpbmdQcm9maWxlOiBmdW5jdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFu
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwu
anMKaW5kZXggMTE1MTM5MDIzYTdhNmYwNmZlZjZlODczNmRjYzUyMzhiNWUyMjYxYi4uNmMwNzc0
YjkwMzk4MDIyOTBjOGZkYTlmZDg1NjMzNGQwMzRlODU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtNTQsNiArNTQs
MTEgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBlLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0
dXJuIHRoaXMuX2lkOwogICAgIH0sCiAKKyAgICBnZXQgdHJlZUl0ZW1UaXRsZSgpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5fbmFtZTsKKyAgICB9LAorCiAgICAgZ2V0IG5hbWUoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7CkBAIC03MCw3ICs3NSw3IEBAIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBwcm9maWxlLl9w
cm9maWxlVmlldzsKICAgICB9LAogCi0gICAgZ2V0IHdlbGNvbWVNZXNzYWdlKCkKKyAgICBnZXQg
ZGVzY3JpcHRpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuICIiOwogICAgIH0sCkBAIC0xMDQs
OCArMTA5LDEwIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24oKQogCiAg
ICAgdGhpcy5jcmVhdGVTcGxpdFZpZXdXaXRoU2lkZWJhclRyZWUoKTsKIAorICAgIHRoaXMucHJv
ZmlsZXNJdGVtVHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlByb2ZpbGVzU2lkZWJhclRy
ZWVFbGVtZW50KHRoaXMpOworICAgIHRoaXMuc2lkZWJhclRyZWUuYXBwZW5kQ2hpbGQodGhpcy5w
cm9maWxlc0l0ZW1UcmVlRWxlbWVudCk7CisKICAgICB0aGlzLl9wcm9maWxlVHlwZXNCeUlkTWFw
ID0ge307Ci0gICAgdGhpcy5fcHJvZmlsZVR5cGVCdXR0b25zQnlJZE1hcCA9IHt9OwogCiAgICAg
dmFyIHBhbmVsRW5hYmxlckhlYWRpbmcgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIllvdSBuZWVk
IHRvIGVuYWJsZSBwcm9maWxpbmcgYmVmb3JlIHlvdSBjYW4gdXNlIHRoZSBQcm9maWxlcyBwYW5l
bC4iKTsKICAgICB2YXIgcGFuZWxFbmFibGVyRGlzY2xhaW1lciA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRW5hYmxpbmcgcHJvZmlsaW5nIHdpbGwgbWFrZSBzY3JpcHRzIHJ1biBzbG93ZXIuIik7
CkBAIC0xMjIsMTcgKzEyOSwyMiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbCA9IGZ1bmN0
aW9uKCkKICAgICBpZiAoIUNhcGFiaWxpdGllcy5wcm9maWxlckNhdXNlc1JlY29tcGlsYXRpb24p
CiAgICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygi
aGlkZGVuIik7CiAKKyAgICB0aGlzLnJlY29yZEJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3Rh
dHVzQmFyQnV0dG9uKCIiLCAicmVjb3JkLXByb2ZpbGUtc3RhdHVzLWJhci1pdGVtIik7CisgICAg
dGhpcy5yZWNvcmRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLnRvZ2dsZVJl
Y29yZEJ1dHRvbiwgdGhpcyk7CisKICAgICB0aGlzLmNsZWFyUmVzdWx0c0J1dHRvbiA9IG5ldyBX
ZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xlYXIg
YWxsIHByb2ZpbGVzLiIpLCAiY2xlYXItc3RhdHVzLWJhci1pdGVtIik7CiAgICAgdGhpcy5jbGVh
clJlc3VsdHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9jbGVhclByb2Zp
bGVzLmJpbmQodGhpcyksIGZhbHNlKTsKIAogICAgIHRoaXMucHJvZmlsZVZpZXdTdGF0dXNCYXJJ
dGVtc0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMu
cHJvZmlsZVZpZXdTdGF0dXNCYXJJdGVtc0NvbnRhaW5lci5jbGFzc05hbWUgPSAic3RhdHVzLWJh
ci1pdGVtcyI7CiAKLSAgICB0aGlzLndlbGNvbWVWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5XZWxj
b21lVmlldygicHJvZmlsZXMiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldlbGNvbWUgdG8gdGhl
IFByb2ZpbGVzIHBhbmVsIikpOwotCiAgICAgdGhpcy5fcHJvZmlsZXMgPSBbXTsKICAgICB0aGlz
Ll9wcm9maWxlckVuYWJsZWQgPSAhQ2FwYWJpbGl0aWVzLnByb2ZpbGVyQ2F1c2VzUmVjb21waWxh
dGlvbjsKKworICAgIHRoaXMuX2xhdW5jaGVyVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuUHJvZmls
ZUxhdW5jaGVyVmlldyh0aGlzKTsKKyAgICB0aGlzLl9sYXVuY2hlclZpZXcuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5FdmVudFR5cGVzLlByb2ZpbGVU
eXBlU2VsZWN0ZWQsIHRoaXMuX29uUHJvZmlsZVR5cGVTZWxlY3RlZCwgdGhpcyk7CiAgICAgdGhp
cy5fcmVzZXQoKTsKKyAgICB0aGlzLl9sYXVuY2hlclZpZXcuc2V0VXBFdmVudExpc3RlbmVycygp
OwogCiAgICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLkNQVVBy
b2ZpbGVUeXBlKCkpOwogICAgIGlmIChDYXBhYmlsaXRpZXMuaGVhcFByb2ZpbGVyUHJlc2VudCkK
QEAgLTE0NCw2ICsxNTYsMTEgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwgPSBmdW5jdGlv
bigpCiAgICAgICAgIFByb2ZpbGVyQWdlbnQuZW5hYmxlKHRoaXMuX3Byb2ZpbGVyV2FzRW5hYmxl
ZC5iaW5kKHRoaXMpKTsKIH0KIAorV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuRXZlbnRUeXBl
cyA9IHsKKyAgICBQcm9maWxlU3RhcnRlZDogInByb2ZpbGUtc3RhcnRlZCIsCisgICAgUHJvZmls
ZUZpbmlzaGVkOiAicHJvZmlsZS1maW5pc2hlZCIKK30KKwogV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWwucHJvdG90eXBlID0gewogICAgIGdldCB0b29sYmFySXRlbUxhYmVsKCkKICAgICB7CkBA
IC0xNTIsMjYgKzE2OSwxMiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUg
PSB7CiAKICAgICBnZXQgc3RhdHVzQmFySXRlbXMoKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24g
Y2xpY2tIYW5kbGVyKHByb2ZpbGVUeXBlLCBidXR0b24pCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHZhciB3YXNQcm9maWxpbmcgPSBidXR0b24udG9nZ2xlZDsKLSAgICAgICAgICAgIHByb2ZpbGVU
eXBlLmJ1dHRvbkNsaWNrZWQuY2FsbChwcm9maWxlVHlwZSk7Ci0gICAgICAgICAgICB0aGlzLnVw
ZGF0ZVByb2ZpbGVUeXBlQnV0dG9ucyghd2FzUHJvZmlsaW5nLCBidXR0b24pOwotICAgICAgICB9
Ci0KLSAgICAgICAgdmFyIGl0ZW1zID0gW3RoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLmVsZW1lbnRd
OwotICAgICAgICAvLyBGSVhNRTogR2VuZXJhdGUgYSBzaW5nbGUgImNvbWJvLWJ1dHRvbiIuCi0g
ICAgICAgIGZvciAodmFyIHR5cGVJZCBpbiB0aGlzLl9wcm9maWxlVHlwZXNCeUlkTWFwKSB7Ci0g
ICAgICAgICAgICB2YXIgcHJvZmlsZVR5cGUgPSB0aGlzLmdldFByb2ZpbGVUeXBlKHR5cGVJZCk7
Ci0gICAgICAgICAgICBpZiAocHJvZmlsZVR5cGUuYnV0dG9uU3R5bGUpIHsKLSAgICAgICAgICAg
ICAgICB2YXIgYnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24ocHJvZmls
ZVR5cGUuYnV0dG9uVG9vbHRpcCwgcHJvZmlsZVR5cGUuYnV0dG9uU3R5bGUpOwotICAgICAgICAg
ICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXBbdHlwZUlkXSA9IGJ1dHRvbjsK
LSAgICAgICAgICAgICAgICBidXR0b24uZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IGNsaWNrSGFuZGxlci5iaW5kKHRoaXMsIHByb2ZpbGVUeXBlLCBidXR0b24pLCBmYWxzZSk7Ci0g
ICAgICAgICAgICAgICAgaXRlbXMucHVzaChidXR0b24uZWxlbWVudCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgICAgaXRlbXMucHVzaCh0aGlzLmNsZWFyUmVzdWx0c0J1dHRvbi5l
bGVtZW50LCB0aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRlbXNDb250YWluZXIpOwotICAgICAg
ICByZXR1cm4gaXRlbXM7CisgICAgICAgIHJldHVybiBbdGhpcy5lbmFibGVUb2dnbGVCdXR0b24u
ZWxlbWVudCwgdGhpcy5yZWNvcmRCdXR0b24uZWxlbWVudCwgdGhpcy5jbGVhclJlc3VsdHNCdXR0
b24uZWxlbWVudCwgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVyXTsKKyAg
ICB9LAorCisgICAgdG9nZ2xlUmVjb3JkQnV0dG9uOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICB0aGlzLl9zZWxlY3RlZFByb2ZpbGVUeXBlLmJ1dHRvbkNsaWNrZWQoKTsKICAgICB9LAogCiAg
ICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKQEAgLTIwMSw2ICsyMDQsMTIgQEAgV2ViSW5zcGVjdG9y
LlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZXNldCgpOwogICAg
IH0sCiAKKyAgICBfb25Qcm9maWxlVHlwZVNlbGVjdGVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7
CisgICAgICAgIHRoaXMuX3NlbGVjdGVkUHJvZmlsZVR5cGUgPSBldmVudC5kYXRhLnByb2ZpbGVU
eXBlOworICAgICAgICB0aGlzLnJlY29yZEJ1dHRvbi50aXRsZSA9IHRoaXMuX3NlbGVjdGVkUHJv
ZmlsZVR5cGUuYnV0dG9uVG9vbHRpcDsKKyAgICB9LAorCiAgICAgX3Jlc2V0OiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnJlc2V0LmNhbGwo
dGhpcyk7CkBAIC0yMjAsNiArMjI5LDE0IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgZGVsZXRlIHRoaXMuY3VycmVudFF1ZXJ5OwogICAgICAgICB0
aGlzLnNlYXJjaENhbmNlbGVkKCk7CiAKKyAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5fcHJv
ZmlsZVR5cGVzQnlJZE1hcCkgeworICAgICAgICAgICAgdmFyIHByb2ZpbGVUeXBlID0gdGhpcy5f
cHJvZmlsZVR5cGVzQnlJZE1hcFtpZF07CisgICAgICAgICAgICBpZiAocHJvZmlsZVR5cGUudHJl
ZUVsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJUcmVlLnJlbW92ZUNoaWxk
KHByb2ZpbGVUeXBlLnRyZWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICBkZWxldGUgcHJvZmls
ZVR5cGUudHJlZUVsZW1lbnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICB0
aGlzLl9wcm9maWxlcyA9IFtdOwogICAgICAgICB0aGlzLl9wcm9maWxlc0lkTWFwID0ge307CiAg
ICAgICAgIHRoaXMuX3Byb2ZpbGVHcm91cHMgPSB7fTsKQEAgLTIyOCwxNyArMjQ1LDIzIEBAIFdl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLnNp
ZGViYXJUcmVlRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJzb21lLWV4cGFuZGFibGUiKTsKIAot
ICAgICAgICBmb3IgKHZhciB0eXBlSWQgaW4gdGhpcy5fcHJvZmlsZVR5cGVzQnlJZE1hcCkKLSAg
ICAgICAgICAgIHRoaXMuZ2V0UHJvZmlsZVR5cGUodHlwZUlkKS50cmVlRWxlbWVudC5yZW1vdmVD
aGlsZHJlbigpOwotCiAgICAgICAgIHRoaXMucHJvZmlsZVZpZXdzLnJlbW92ZUNoaWxkcmVuKCk7
Ci0KICAgICAgICAgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVyLnJlbW92
ZUNoaWxkcmVuKCk7CiAKICAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoKTsKKyAgICAg
ICAgdGhpcy5fbGF1bmNoZXJWaWV3LnNldFVwRXZlbnRMaXN0ZW5lcnMoKTsKIAogICAgICAgICB0
aGlzLl91cGRhdGVJbnRlcmZhY2UoKTsKLSAgICAgICAgdGhpcy53ZWxjb21lVmlldy5zaG93KHRo
aXMuc3BsaXRWaWV3Lm1haW5FbGVtZW50KTsKKyAgICAgICAgdGhpcy5wcm9maWxlc0l0ZW1UcmVl
RWxlbWVudC5zZWxlY3QoKTsKKyAgICAgICAgdGhpcy5fc2hvd0xhdW5jaGVyVmlldygpOworICAg
IH0sCisKKyAgICBfc2hvd0xhdW5jaGVyVmlldzogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
dGhpcy5jbG9zZVZpc2libGVWaWV3KCk7CisgICAgICAgIHRoaXMucHJvZmlsZVZpZXdTdGF0dXNC
YXJJdGVtc0NvbnRhaW5lci5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICB0aGlzLl9sYXVuY2hl
clZpZXcuc2hvdyh0aGlzLnNwbGl0Vmlldy5tYWluRWxlbWVudCk7CisgICAgICAgIHRoaXMudmlz
aWJsZVZpZXcgPSB0aGlzLl9sYXVuY2hlclZpZXc7CiAgICAgfSwKIAogICAgIF9jbGVhclByb2Zp
bGVzOiBmdW5jdGlvbigpCkBAIC0yNDcsMzcgKzI3MCwzNiBAQCBXZWJJbnNwZWN0b3IuUHJvZmls
ZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Jlc2V0KCk7CiAgICAgfSwKIAot
ICAgIF9yZWdpc3RlclByb2ZpbGVUeXBlOiBmdW5jdGlvbihwcm9maWxlVHlwZSkKLSAgICB7Ci0g
ICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlc0J5SWRNYXBbcHJvZmlsZVR5cGUuaWRdID0gcHJvZmls
ZVR5cGU7Ci0gICAgICAgIHByb2ZpbGVUeXBlLnRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rv
ci5TaWRlYmFyU2VjdGlvblRyZWVFbGVtZW50KHByb2ZpbGVUeXBlLm5hbWUsIG51bGwsIHRydWUp
OwotICAgICAgICB0aGlzLnNpZGViYXJUcmVlLmFwcGVuZENoaWxkKHByb2ZpbGVUeXBlLnRyZWVF
bGVtZW50KTsKLSAgICAgICAgcHJvZmlsZVR5cGUudHJlZUVsZW1lbnQuZXhwYW5kKCk7Ci0gICAg
ICAgIHRoaXMuX2FkZFdlbGNvbWVNZXNzYWdlKHByb2ZpbGVUeXBlKTsKKyAgICBfcHJvZmlsZVR5
cGVUcmVlRWxlbWVudDogZnVuY3Rpb24ocHJvZmlsZVR5cGUpCisgICAgeworICAgICAgICBpZiAo
IXByb2ZpbGVUeXBlLnRyZWVFbGVtZW50KSB7CisgICAgICAgICAgICBwcm9maWxlVHlwZS50cmVl
RWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGVUcmVlRWxlbWVudChwcm9maWxl
VHlwZS50cmVlSXRlbVRpdGxlKTsKKyAgICAgICAgICAgIHByb2ZpbGVUeXBlLnRyZWVFbGVtZW50
LmV4cGFuZCgpOworCisgICAgICAgICAgICAvLyBSZXRhaW4gdGhlIHByb2ZpbGUgdHlwZSByZWdp
c3RyYXRpb24gb3JkZXIgaW4gdGhlIHRyZWUsIHRvby4KKyAgICAgICAgICAgIHZhciBzZWxmRm91
bmQ7CisgICAgICAgICAgICB2YXIgaW5kZXggPSAxOyAvLyBTa2lwIHRoZSBsYXVuY2hlciB2aWV3
IGl0ZW0uCisgICAgICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLl9wcm9maWxlVHlwZXNCeUlk
TWFwKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkID09PSBwcm9maWxlVHlwZS5pZCkgeworICAg
ICAgICAgICAgICAgICAgICBzZWxmRm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5f
cHJvZmlsZVR5cGVzQnlJZE1hcFtpZF0udHJlZUVsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKHNlbGZGb3VuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICArK2luZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHRoaXMuc2lkZWJhclRyZWUuaW5zZXJ0Q2hpbGQocHJvZmlsZVR5cGUudHJl
ZUVsZW1lbnQsIGluZGV4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcHJvZmlsZVR5cGUu
dHJlZUVsZW1lbnQ7CiAgICAgfSwKIAotICAgIF9hZGRXZWxjb21lTWVzc2FnZTogZnVuY3Rpb24o
cHJvZmlsZVR5cGUpCisgICAgX3JlZ2lzdGVyUHJvZmlsZVR5cGU6IGZ1bmN0aW9uKHByb2ZpbGVU
eXBlKQogICAgIHsKLSAgICAgICAgdmFyIG1lc3NhZ2UgPSBwcm9maWxlVHlwZS53ZWxjb21lTWVz
c2FnZTsKLSAgICAgICAgLy8gTWVzc2FnZSB0ZXh0IGlzIHN1cHBvc2VkIHRvIGhhdmUgYSAnJXMn
IHN1YnN0cmluZyBhcyBhIHBsYWNlaG9sZGVyCi0gICAgICAgIC8vIGZvciBhIHN0YXR1cyBiYXIg
YnV0dG9uLiBJZiBpdCBpcyB0aGVyZSwgd2Ugc3BsaXQgdGhlIG1lc3NhZ2UgaW4gdHdvCi0gICAg
ICAgIC8vIHBhcnRzLCBhbmQgaW5zZXJ0IHRoZSBidXR0b24gYmV0d2VlbiB0aGVtLgotICAgICAg
ICB2YXIgYnV0dG9uUG9zID0gbWVzc2FnZS5pbmRleE9mKCIlcyIpOwotICAgICAgICBpZiAoYnV0
dG9uUG9zID4gLTEpIHsKLSAgICAgICAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5jcmVh
dGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICAgICAgICB2YXIgcGFydDEgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgICAgICAgICBwYXJ0MS50ZXh0Q29udGVudCA9IG1l
c3NhZ2Uuc3Vic3RyKDAsIGJ1dHRvblBvcyk7Ci0gICAgICAgICAgICBjb250YWluZXIuYXBwZW5k
Q2hpbGQocGFydDEpOwotCi0gICAgICAgICAgICB2YXIgYnV0dG9uID0gbmV3IFdlYkluc3BlY3Rv
ci5TdGF0dXNCYXJCdXR0b24ocHJvZmlsZVR5cGUuYnV0dG9uVG9vbHRpcCwgcHJvZmlsZVR5cGUu
YnV0dG9uU3R5bGUsIHByb2ZpbGVUeXBlLmJ1dHRvbkNhcHRpb24pOwotICAgICAgICAgICAgY29u
dGFpbmVyLmFwcGVuZENoaWxkKGJ1dHRvbi5lbGVtZW50KTsKLQotICAgICAgICAgICAgdmFyIHBh
cnQyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgICAgICAgICAgcGFydDIu
dGV4dENvbnRlbnQgPSBtZXNzYWdlLnN1YnN0cihidXR0b25Qb3MgKyAyKTsKLSAgICAgICAgICAg
IGNvbnRhaW5lci5hcHBlbmRDaGlsZChwYXJ0Mik7Ci0gICAgICAgICAgICB0aGlzLndlbGNvbWVW
aWV3LmFkZE1lc3NhZ2UoY29udGFpbmVyKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICB0
aGlzLndlbGNvbWVWaWV3LmFkZE1lc3NhZ2UobWVzc2FnZSk7CisgICAgICAgIHRoaXMuX3Byb2Zp
bGVUeXBlc0J5SWRNYXBbcHJvZmlsZVR5cGUuaWRdID0gcHJvZmlsZVR5cGU7CisgICAgICAgIHRo
aXMuX2xhdW5jaGVyVmlldy5hZGRQcm9maWxlVHlwZShwcm9maWxlVHlwZSk7CiAgICAgfSwKIAog
ICAgIF9tYWtlS2V5OiBmdW5jdGlvbih0ZXh0LCBwcm9maWxlVHlwZUlkKQpAQCAtMjkyLDcgKzMx
NCw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAg
ICB2YXIgdHlwZUlkID0gcHJvZmlsZS50eXBlSWQ7CiAgICAgICAgIHZhciBwcm9maWxlVHlwZSA9
IHRoaXMuZ2V0UHJvZmlsZVR5cGUodHlwZUlkKTsKLSAgICAgICAgdmFyIHNpZGViYXJQYXJlbnQg
PSBwcm9maWxlVHlwZS50cmVlRWxlbWVudDsKKyAgICAgICAgdmFyIHNpZGViYXJQYXJlbnQgPSB0
aGlzLl9wcm9maWxlVHlwZVRyZWVFbGVtZW50KHByb2ZpbGVUeXBlKTsKICAgICAgICAgdmFyIHNt
YWxsID0gZmFsc2U7CiAgICAgICAgIHZhciBhbHRlcm5hdGVUaXRsZTsKIApAQCAtMzQ1LDEyICsz
NjcsMTggQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAg
ICAgIHNpZGViYXJQYXJlbnQuYXBwZW5kQ2hpbGQocHJvZmlsZVRyZWVFbGVtZW50KTsKICAgICAg
ICAgaWYgKCFwcm9maWxlLmlzVGVtcG9yYXJ5KSB7Ci0gICAgICAgICAgICB0aGlzLndlbGNvbWVW
aWV3LmRldGFjaCgpOwogICAgICAgICAgICAgaWYgKCF0aGlzLnZpc2libGVWaWV3KQogICAgICAg
ICAgICAgICAgIHRoaXMuc2hvd1Byb2ZpbGUocHJvZmlsZSk7CiAgICAgICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycygicHJvZmlsZSBhZGRlZCIpOwotICAgICAgICAgICAgdGhp
cy51cGRhdGVQcm9maWxlVHlwZUJ1dHRvbnMoZmFsc2UsIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9u
c0J5SWRNYXBbdHlwZUlkXSk7CisgICAgICAgICAgICBkZWxldGUgdGhpcy5fdGVtcG9yYXJ5UmVj
b3JkaW5nUHJvZmlsZTsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLkV2ZW50VHlwZXMuUHJvZmlsZUZpbmlzaGVkKTsK
KyAgICAgICAgICAgIHRoaXMucmVjb3JkQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5Qcm9maWxlc1BhbmVsLkV2ZW50VHlwZXMuUHJvZmlsZVN0YXJ0ZWQpOworICAgICAg
ICAgICAgdGhpcy5yZWNvcmRCdXR0b24udG9nZ2xlZCA9IHRydWU7CiAgICAgICAgIH0KKworICAg
ICAgICB0aGlzLnJlY29yZEJ1dHRvbi50aXRsZSA9IHRoaXMuX3NlbGVjdGVkUHJvZmlsZVR5cGUu
YnV0dG9uVG9vbHRpcDsKICAgICB9LAogCiAgICAgX3JlbW92ZVByb2ZpbGVIZWFkZXI6IGZ1bmN0
aW9uKHByb2ZpbGUpCkBAIC01MDMsMjcgKzUzMSw2IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5zaG93UHJvZmlsZSh0aGlzLl9wcm9maWxl
c0lkTWFwW3RoaXMuX21ha2VLZXkobWF0Y2hbM10sIG1hdGNoWzFdKV0pOwogICAgIH0sCiAKLSAg
ICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzUHJvZmlsaW5nCi0gICAgICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uPX0gZWZmZWN0QnV0dG9uCi0gICAgICovCi0g
ICAgdXBkYXRlUHJvZmlsZVR5cGVCdXR0b25zOiBmdW5jdGlvbihpc1Byb2ZpbGluZywgZWZmZWN0
QnV0dG9uKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgdHlwZUlkIGluIHRoaXMuX3Byb2ZpbGVU
eXBlQnV0dG9uc0J5SWRNYXApIHsKLSAgICAgICAgICAgIHZhciBidXR0b24gPSB0aGlzLl9wcm9m
aWxlVHlwZUJ1dHRvbnNCeUlkTWFwW3R5cGVJZF07Ci0gICAgICAgICAgICB2YXIgcHJvZmlsZVR5
cGUgPSB0aGlzLmdldFByb2ZpbGVUeXBlKHR5cGVJZCk7Ci0gICAgICAgICAgICBidXR0b24uZWxl
bWVudC5jbGFzc05hbWUgPSBwcm9maWxlVHlwZS5idXR0b25TdHlsZTsKLSAgICAgICAgICAgIGJ1
dHRvbi5lbGVtZW50LnRpdGxlID0gcHJvZmlsZVR5cGUuYnV0dG9uVG9vbHRpcDsKLSAgICAgICAg
ICAgIC8vIEZJWE1FOiBBcHBseSBwcm9maWxlVHlwZS5idXR0b25DYXB0aW9uIG9uY2UgY2FwdGlv
bnMgYXJlIGFkZGVkIHRvIGJ1dHRvbiBjb250cm9scy4KLSAgICAgICAgICAgIGlmICghaXNQcm9m
aWxpbmcpCi0gICAgICAgICAgICAgICAgYnV0dG9uLmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoZWZmZWN0QnV0dG9uICYmIGJ1dHRvbiAh
PT0gZWZmZWN0QnV0dG9uKQotICAgICAgICAgICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPSB0
cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSwKLQogICAgIGNsb3NlVmlzaWJs
ZVZpZXc6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3KQpA
QCAtNzU5LDE2ICs3NjYsMTQgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICBpZiAodGhpcy5fcHJvZmlsZXJFbmFibGVkKSB7CiAgICAgICAgICAgICB0
aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJv
ZmlsaW5nIGVuYWJsZWQuIENsaWNrIHRvIGRpc2FibGUuIik7CiAgICAgICAgICAgICB0aGlzLmVu
YWJsZVRvZ2dsZUJ1dHRvbi50b2dnbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIGZvciAodmFyIHR5
cGVJZCBpbiB0aGlzLl9wcm9maWxlVHlwZUJ1dHRvbnNCeUlkTWFwKQotICAgICAgICAgICAgICAg
IHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXBbdHlwZUlkXS52aXNpYmxlID0gdHJ1ZTsK
KyAgICAgICAgICAgIHRoaXMucmVjb3JkQnV0dG9uLnZpc2libGUgPSB0cnVlOwogICAgICAgICAg
ICAgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVyLnJlbW92ZVN0eWxlQ2xh
c3MoImhpZGRlbiIpOwogICAgICAgICAgICAgdGhpcy5jbGVhclJlc3VsdHNCdXR0b24uZWxlbWVu
dC5yZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4iKTsKICAgICAgICAgICAgIHRoaXMucGFuZWxFbmFi
bGVyVmlldy5kZXRhY2goKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMuZW5h
YmxlVG9nZ2xlQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9maWxpbmcg
ZGlzYWJsZWQuIENsaWNrIHRvIGVuYWJsZS4iKTsKICAgICAgICAgICAgIHRoaXMuZW5hYmxlVG9n
Z2xlQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGZvciAodmFyIHR5cGVJZCBp
biB0aGlzLl9wcm9maWxlVHlwZUJ1dHRvbnNCeUlkTWFwKQotICAgICAgICAgICAgICAgIHRoaXMu
X3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXBbdHlwZUlkXS52aXNpYmxlID0gZmFsc2U7CisgICAg
ICAgICAgICB0aGlzLnJlY29yZEJ1dHRvbi52aXNpYmxlID0gZmFsc2U7CiAgICAgICAgICAgICB0
aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRlbXNDb250YWluZXIuYWRkU3R5bGVDbGFzcygiaGlk
ZGVuIik7CiAgICAgICAgICAgICB0aGlzLmNsZWFyUmVzdWx0c0J1dHRvbi5lbGVtZW50LmFkZFN0
eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAgICAgdGhpcy5wYW5lbEVuYWJsZXJWaWV3LnNo
b3codGhpcy5lbGVtZW50KTsKQEAgLTkyMyw2ICs5MjgsMjAgQEAgV2ViSW5zcGVjdG9yLlByb2Zp
bGVyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCitXZWJJbnNwZWN0b3IuUHJv
ZmlsZVR5cGVUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHRpdGxlKQoreworICAgIFdlYkluc3BlY3Rv
ci5TaWRlYmFyU2VjdGlvblRyZWVFbGVtZW50LmNhbGwodGhpcywgdGl0bGUsIG51bGwsIHRydWUp
OworfQorCitXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGVUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7
CisgICAgY29sbGFwc2U6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIC8vIFNob3VsZCBub3Qg
Y29sbGFwc2UuCisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGVUcmVlRWxlbWVu
dC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNpZGViYXJTZWN0aW9uVHJlZUVs
ZW1lbnQucHJvdG90eXBlOworCiBXZWJJbnNwZWN0b3IuUHJvZmlsZVNpZGViYXJUcmVlRWxlbWVu
dCA9IGZ1bmN0aW9uKHByb2ZpbGUsIHRpdGxlRm9ybWF0LCBjbGFzc05hbWUpCiB7CiAgICAgdGhp
cy5wcm9maWxlID0gcHJvZmlsZTsKQEAgLTk5NSwzICsxMDE0LDM5IEBAIFdlYkluc3BlY3Rvci5Q
cm9maWxlR3JvdXBTaWRlYmFyVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogfQogCiBXZWJJbnNw
ZWN0b3IuUHJvZmlsZUdyb3VwU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZS5fX3Byb3RvX18g
PSBXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZTsKKworLyoqCisgKiBA
Y29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVtZW50
fQorICovCitXZWJJbnNwZWN0b3IuUHJvZmlsZXNTaWRlYmFyVHJlZUVsZW1lbnQgPSBmdW5jdGlv
bihwYW5lbCkKK3sKKyAgICB0aGlzLl9wYW5lbCA9IHBhbmVsOworICAgIHRoaXMuc21hbGwgPSBm
YWxzZTsKKworICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCAi
cHJvZmlsZS1sYXVuY2hlci12aWV3LXRyZWUtaXRlbSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygi
UHJvZmlsZXMiKSwgIiIsIG51bGwsIGZhbHNlKTsKK30KKworV2ViSW5zcGVjdG9yLlByb2ZpbGVz
U2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKKyAgICBvbmF0dGFjaDogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlNpZGViYXJUcmVlRWxlbWVudC5wcm90b3R5
cGUub25hdHRhY2guY2FsbCh0aGlzKTsKKyAgICB9LAorCisgICAgb25zZWxlY3Q6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BhbmVsLl9zaG93TGF1bmNoZXJWaWV3KCk7CisgICAg
fSwKKworICAgIGdldCBzZWxlY3RhYmxlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0sCisKKyAgICByZWZyZXNoOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLnJl
ZnJlc2hUaXRsZXMoKTsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5Qcm9maWxlc1NpZGViYXJU
cmVlRWxlbWVudC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNpZGViYXJUcmVl
RWxlbWVudC5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1dlYktpdC5xcmMKaW5kZXggYzZlNWQ0NDhiZWU0N2MxMmI3YjFiYTM5OGJlMjExMzFiNTg1ZmYx
My4uNGQ2MGUxMzJiOWZiYjFlYmI2NDQ0NDE2ZjMxZjRkMjZkMzY4NDlhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAtODksNiArODksNyBA
QAogICAgIDxmaWxlPlBsYWNhcmQuanM8L2ZpbGU+CiAgICAgPGZpbGU+UG9wb3Zlci5qczwvZmls
ZT4KICAgICA8ZmlsZT5Qcm9maWxlRGF0YUdyaWRUcmVlLmpzPC9maWxlPgorICAgIDxmaWxlPlBy
b2ZpbGVMYXVuY2hlclZpZXcuanM8L2ZpbGU+CiAgICAgPGZpbGU+UHJvZmlsZXNQYW5lbC5qczwv
ZmlsZT4KICAgICA8ZmlsZT5Qcm9maWxlVmlldy5qczwvZmlsZT4KICAgICA8ZmlsZT5Qcm9wZXJ0
aWVzU2VjdGlvbi5qczwvZmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5odG1sCmluZGV4IDE1ZDUyZjllMzJhMjY1ZGI0MTkzMTA4YzRmOTZh
NWI1OTI4YzY0M2EuLjM1ZjY2YjU1MmUyNTg4M2E2ZGI1ZjkwNzkwOTVhNzBjNzMwYjFlODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0
bWwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRt
bApAQCAtMTUzLDYgKzE1Myw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iSW1hZ2VWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJEYXRhYmFzZVRhYmxlVmlldy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRGF0YWJhc2VRdWVyeVZpZXcu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlBy
b2ZpbGVMYXVuY2hlclZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IlByb2ZpbGVEYXRhR3JpZFRyZWUuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkJvdHRvbVVwUHJvZmlsZURhdGFHcmlk
VHJlZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iVG9wRG93blByb2ZpbGVEYXRhR3JpZFRyZWUuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9wcm9maWxlc1BhbmVsLmNzcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvcHJvZmlsZXNQYW5lbC5jc3MKaW5kZXgg
ZmFlMjk5YjRjMjBjNjY4NjkxYjdjMWZmM2VlN2M1MjVjYjYyZTYzMS4uYjQwNjU1YmZjMTNiMmU5
ODFiNDJmYjdjOTNjZTQ3MWMwMGU5NTg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9wcm9maWxlc1BhbmVsLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL3Byb2ZpbGVzUGFuZWwuY3NzCkBAIC00Nyw2ICs0NywxMiBAQAog
ICAgIG1hcmdpbi1sZWZ0OiAtMXB4OwogfQogCisucHJvZmlsZS1sYXVuY2hlci12aWV3LXRyZWUt
aXRlbSA+IC5pY29uIHsKKyAgICBwYWRkaW5nOiAxNXB4OworICAgIGJhY2tncm91bmQtaW1hZ2U6
IHVybChJbWFnZXMvdG9vbGJhckljb25zLnBuZyk7CisgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14
OiAtMTYwcHg7Cit9CisKIC5wcm9maWxlLXNpZGViYXItdHJlZS1pdGVtIC5pY29uIHsKICAgICBj
b250ZW50OiB1cmwoSW1hZ2VzL3Byb2ZpbGVJY29uLnBuZyk7CiB9CkBAIC0xNDAsMyArMTQ2LDk1
IEBACiAucmVzZXQtcHJvZmlsZS1zdGF0dXMtYmFyLWl0ZW0gLmdseXBoIHsKICAgICAtd2Via2l0
LW1hc2stcG9zaXRpb246IDAgMDsKIH0KKworLnByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250ZW50
IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIHJpZ2h0OiAwOwor
ICAgIGJvdHRvbTogMDsKKyAgICBsZWZ0OiAwOworICAgIHBhZGRpbmc6IDAgMCAwIDE2cHg7Cisg
ICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNh
bDsKK30KKworLnByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250ZW50IC5mbGV4aWJsZS1zcGFjZSB7
CisgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKK30KKworLnByb2ZpbGUtbGF1bmNoZXItdmlldy1j
b250ZW50IGgxIHsKKyAgICBjb2xvcjogcmdiKDExMCwgMTE2LCAxMjgpOworICAgIGZvbnQtc2l6
ZTogMTZweDsKKyAgICBsaW5lLWhlaWdodDogMjBweDsKKyAgICBmb250LXdlaWdodDogbm9ybWFs
OworICAgIHBhZGRpbmc6IDE1cHggMCAxMHB4OworfQorCisucHJvZmlsZS1sYXVuY2hlci12aWV3
LWNvbnRlbnQgZm9ybSB7CisgICAgcGFkZGluZy10b3A6IDA7CisgICAgZm9udC1zaXplOiAxM3B4
OworfQorCisucHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQgcCB7CisgICAgY29sb3I6IGdy
ZXk7CisgICAgbWFyZ2luLXRvcDogMXB4OworICAgIG1hcmdpbi1sZWZ0OiAyMnB4OworfQorCisu
cHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQgaW5wdXRbdHlwZT0iY2hlY2tib3giXSB7Cisg
ICAgbWFyZ2luLWxlZnQ6IDA7Cit9CisKKy5wcm9maWxlLWxhdW5jaGVyLXZpZXctY29udGVudCBp
bnB1dFt0eXBlPSJyYWRpbyJdIHsKKyAgICBoZWlnaHQ6IDE3cHg7CisgICAgd2lkdGg6IDE3cHg7
CisgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDE2NSwgMTY1LCAxNjUpOworICAgIGJhY2tncm91
bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20s
IGZyb20ocmdiKDI1MiwgMjUyLCAyNTIpKSwgdG8ocmdiKDIyMywgMjIzLCAyMjMpKSk7CisgICAg
LXdlYmtpdC1ib3JkZXItcmFkaXVzOiA4cHg7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25l
OworICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgICAgbWFyZ2luOiAwIDVweCA1cHggMDsK
K30KKworLnByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250ZW50IGlucHV0W3R5cGU9InJhZGlvIl06
YWN0aXZlOm5vdCg6ZGlzYWJsZWQpIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdy
YWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYigxOTQsIDE5NCwg
MTk0KSksIHRvKHJnYigyMzksIDIzOSwgMjM5KSkpOworfQorCisucHJvZmlsZS1sYXVuY2hlci12
aWV3LWNvbnRlbnQgaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2VkOm5vdCg6ZGlzYWJsZWQpLCAu
cHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQgaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2Vk
OmRpc2FibGVkIHsKKyAgICBiYWNrZ3JvdW5kOiB1cmwoSW1hZ2VzL3JhZGlvRG90LnBuZykgY2Vu
dGVyIG5vLXJlcGVhdCwKKyAgICAgICAgICAgICAgICAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwg
bGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYigyNTIsIDI1MiwgMjUyKSksIHRvKHJnYigy
MjMsIDIyMywgMjIzKSkpOworfQorCisucHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQgYnV0
dG9uIHsKKyAgICBjb2xvcjogcmdiKDYsIDYsIDYpOworICAgIGZvbnQtc2l6ZTogMTNweDsKKyAg
ICBwYWRkaW5nOiAzcHggMjBweDsKKyAgICBoZWlnaHQ6IDI0cHg7CisgICAgbWFyZ2luOiAxNnB4
IDA7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CisgICAgYm9yZGVyOiAxcHgg
c29saWQgcmdiKDE2NSwgMTY1LCAxNjUpOworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzcs
IDIzNywgMjM3KTsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVh
ciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYigyNTIsIDI1MiwgMjUyKSksIHRvKHJn
YigyMjMsIDIyMywgMjIzKSkpOworICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTJweDsKKyAg
ICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Cit9CisKKy5wcm9maWxlLWxhdW5jaGVyLXZpZXct
Y29udGVudCBidXR0b246YWN0aXZlIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE1LCAy
MTUsIDIxNSk7CisgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIs
IGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMTk0LCAxOTQsIDE5NCkpLCB0byhyZ2Io
MjM5LCAyMzksIDIzOSkpKTsKK30KKworYm9keS5pbmFjdGl2ZSAucHJvZmlsZS1sYXVuY2hlci12
aWV3LWNvbnRlbnQgYnV0dG9uIHsKKyAgICBjb2xvcjogcmdiKDEzMCwgMTMwLCAxMzApOworICAg
IGJvcmRlci1jb2xvcjogcmdiKDIxMiwgMjEyLCAyMTIpOworICAgIGJhY2tncm91bmQtY29sb3I6
IHJnYigyMzksIDIzOSwgMjM5KTsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRp
ZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYigyNTAsIDI1MCwgMjUw
KSksIHRvKHJnYigyMzUsIDIzNSwgMjM1KSkpOworfQorCisucHJvZmlsZS1sYXVuY2hlci12aWV3
LWNvbnRlbnQgYnV0dG9uLnJ1bm5pbmcgeworICAgIGNvbG9yOiByZWQ7Cit9CisKK2JvZHkuaW5h
Y3RpdmUgLnByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250ZW50IGJ1dHRvbi5ydW5uaW5nIHsKKyAg
ICBjb2xvcjogcmdiKDIyMCwgMTMwLCAxMzApOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRjNjhlMzZjOTJhM2MxMDE4
ODVhYmIyY2ZiYzUwMTg0NjRkMmRmODAuLmFlNWU3ZDE0ZDUxODQ0OWExODViMTVkYTVkNzczZDY4
MjdhNGFhYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMi0yNyAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IElu
dHJvZHVjZSBhIFByb2ZpbGVyIGxhdW5jaGVyIHZpZXcgc2ltaWxhciB0byB0aGF0IGluIHRoZSBB
dWRpdHMgcGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc1MjI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvcHJvZmlsZXItdGVzdC5qczoKKyAgICAgICAgKGluaXRp
YWxpemVfUHJvZmlsZXJUZXN0KToKKwogMjAxMS0xMi0yNyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8
b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBYbWFzIGdhcmRlbmlu
ZyBhZnRlciByMTAzNjE3LCBhZGQgYWRkaXRpb25hbCBjb25zb2xlIG1lc3NhZ2U6CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvcHJvZmlsZXItdGVzdC5qcyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9wcm9maWxlci10ZXN0LmpzCmluZGV4IGZkNTQ1
ZDA4YmIzOTU1ZDQ2NDg3ODk5MGU1YzM0OTU0MjA0MTVjN2YuLmNjYTQ5MmEyM2FlMjJiNTllNzlm
MGI2ZDU3NDI0ZDIzNDJiYmUyNjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9wcm9maWxlci10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9wcm9maWxlci10ZXN0LmpzCkBAIC03NSw3ICs3NSw3IEBAIEluc3BlY3RvclRlc3Qud2Fp
dFVudGlsUHJvZmlsZVZpZXdJc1Nob3duID0gZnVuY3Rpb24odGl0bGUsIGNhbGxiYWNrKQogICAg
IGNhbGxiYWNrID0gSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjayk7CiAKICAgICB2YXIg
cHJvZmlsZXNQYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXM7Ci0gICAgaWYgKHBy
b2ZpbGVzUGFuZWwudmlzaWJsZVZpZXcgJiYgcHJvZmlsZXNQYW5lbC52aXNpYmxlVmlldy5wcm9m
aWxlLnRpdGxlID09PSB0aXRsZSkKKyAgICBpZiAocHJvZmlsZXNQYW5lbC52aXNpYmxlVmlldyAm
JiBwcm9maWxlc1BhbmVsLnZpc2libGVWaWV3LnByb2ZpbGUgJiYgcHJvZmlsZXNQYW5lbC52aXNp
YmxlVmlldy5wcm9maWxlLnRpdGxlID09PSB0aXRsZSkKICAgICAgICAgY2FsbGJhY2socHJvZmls
ZXNQYW5lbC52aXNpYmxlVmlldyk7CiAgICAgZWxzZQogICAgICAgICBJbnNwZWN0b3JUZXN0Ll93
YWl0VW50aWxQcm9maWxlVmlld0lzU2hvd25DYWxsYmFjayA9IHsgdGl0bGU6IHRpdGxlLCBjYWxs
YmFjazogY2FsbGJhY2sgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120656</attachid>
            <date>2011-12-28 05:20:43 -0800</date>
            <delta_ts>2011-12-28 06:40:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75228-20111228172041.patch</filename>
            <type>text/plain</type>
            <size>47979</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQwNTcyZTJmNzM0MWU3
NGZhZTM0MWM4N2MwY2JmMjIwYmJhNzBhYy4uMTI5MjNjZDU3ZDQ1ODQ0NTViMjE2MjU2M2IxNjY5
NGIxMzZhY2U5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDExLTEyLTI4ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW50cm9kdWNlIGEgUHJvZmlsZXIgbGF1bmNoZXIgdmlldyBzaW1pbGFyIHRvIHRoYXQg
aW4gdGhlIEF1ZGl0cyBwYW5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzUyMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdExhdW5jaGVyVmlldy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdExhdW5jaGVyVmlldyk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRp
dHNQYW5lbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90
Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90UHJvZmlsZVR5
cGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNob3RQcm9maWxlVHlwZS5w
cm90b3R5cGUuZ2V0IHRyZWVJdGVtVGl0bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFp
bGVkSGVhcHNob3RQcm9maWxlVHlwZS5wcm90b3R5cGUuZ2V0IGRlc2NyaXB0aW9uKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVMYXVuY2hlclZpZXcuanM6IEFkZGVkLgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlLnNldFVwRXZlbnRMaXN0ZW5l
cnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBl
LmFkZFByb2ZpbGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJW
aWV3LnByb3RvdHlwZS5fY29udHJvbEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlLl91cGRhdGVDb250cm9scyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5wcm90b3R5cGUuX3Byb2ZpbGVU
eXBlQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5w
cm90b3R5cGUuX29uUHJvZmlsZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2Zp
bGVMYXVuY2hlclZpZXcucHJvdG90eXBlLl9vblByb2ZpbGVGaW5pc2hlZCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5DUFVQcm9maWxlVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUu
cHJvdG90eXBlLmdldCB0cmVlSXRlbVRpdGxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DUFVQ
cm9maWxlVHlwZS5wcm90b3R5cGUuZ2V0IGRlc2NyaXB0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJv
ZmlsZVR5cGUucHJvdG90eXBlLmdldCB0cmVlSXRlbVRpdGxlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Qcm9maWxlVHlwZS5wcm90b3R5cGUuZ2V0IGRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5nZXQgc3RhdHVzQmFySXRlbXMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnRvZ2dsZVJlY29y
ZEJ1dHRvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUu
X29uUHJvZmlsZVR5cGVTZWxlY3RlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQ
YW5lbC5wcm90b3R5cGUuX3Jlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsLnByb3RvdHlwZS5fc2hvd0xhdW5jaGVyVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3Byb2ZpbGVUeXBlVHJlZUVsZW1lbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9yZWdpc3RlclByb2ZpbGVU
eXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5fYWRk
UHJvZmlsZUhlYWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90
b3R5cGUuX3VwZGF0ZUludGVyZmFjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZVR5
cGVUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGVUcmVlRWxl
bWVudC5wcm90b3R5cGUuY29sbGFwc2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVz
U2lkZWJhclRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1NpZGVi
YXJUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlByb2ZpbGVzU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUHJvZmlsZXNTaWRlYmFyVHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBz
ZWxlY3RhYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1NpZGViYXJUcmVlRWxl
bWVudC5wcm90b3R5cGUucmVmcmVzaCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9X
ZWJLaXQucXJjOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2VsY29tZVZpZXcuanM6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9hdWRpdHNQYW5lbC5jc3M6
CisgICAgICAgICguYXVkaXQtbGF1bmNoZXItdmlldyAuYXVkaXQtbGF1bmNoZXItdmlldy1jb250
ZW50KToKKyAgICAgICAgKC5hdWRpdC1sYXVuY2hlci12aWV3IGRpdi5idXR0b24tY29udGFpbmVy
KToKKyAgICAgICAgKC5wYW5lbC1lbmFibGVyLXZpZXcuYXVkaXQtbGF1bmNoZXItdmlldyBsYWJl
bCk6CisgICAgICAgICgucGFuZWwtZW5hYmxlci12aWV3LmF1ZGl0LWxhdW5jaGVyLXZpZXcgbGFi
ZWwuZGlzYWJsZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9wYW5lbEVuYWJsZXJWaWV3LmNzczoK
KyAgICAgICAgKC5wYW5lbC1lbmFibGVyLXZpZXcgaW1nKToKKyAgICAgICAgKC5wYW5lbC1lbmFi
bGVyLXZpZXcgLmZsZXhpYmxlLXNwYWNlKToKKyAgICAgICAgKC5wYW5lbC1lbmFibGVyLXZpZXcg
YnV0dG9uOm5vdCguc3RhdHVzLWJhci1pdGVtKSk6CisgICAgICAgIChib2R5LmluYWN0aXZlIC5w
YW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uLCAucGFuZWwtZW5hYmxlci12aWV3IGJ1dHRvbjpkaXNh
YmxlZCk6CisgICAgICAgICgucGFuZWwtZW5hYmxlci12aWV3IGlucHV0W3R5cGU9InJhZGlvIl0p
OgorICAgICAgICAoLnBhbmVsLWVuYWJsZXItdmlldyBpbnB1dFt0eXBlPSJyYWRpbyJdOmFjdGl2
ZTpub3QoOmRpc2FibGVkKSk6CisgICAgICAgICgucGFuZWwtZW5hYmxlci12aWV3IGlucHV0W3R5
cGU9InJhZGlvIl06Y2hlY2tlZCk6CisgICAgICAgICgucGFuZWwtZW5hYmxlci12aWV3IGlucHV0
W3R5cGU9InJhZGlvIl06Y2hlY2tlZDphY3RpdmUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvcHJvZmlsZXNQYW5lbC5jc3M6CisgICAgICAgICgucHJvZmlsZS1sYXVuY2hlci12aWV3
LXRyZWUtaXRlbSA+IC5pY29uKToKKyAgICAgICAgKC5wcm9maWxlLWxhdW5jaGVyLXZpZXctY29u
dGVudCk6CisgICAgICAgICgucHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQgaDEpOgorICAg
ICAgICAoLnBhbmVsLWVuYWJsZXItdmlldy5wcm9maWxlLWxhdW5jaGVyLXZpZXcgZm9ybSk6Cisg
ICAgICAgICgucGFuZWwtZW5hYmxlci12aWV3LnByb2ZpbGUtbGF1bmNoZXItdmlldyBsYWJlbCk6
CisgICAgICAgICgucHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQgcCk6CisgICAgICAgICgu
cGFuZWwtZW5hYmxlci12aWV3LnByb2ZpbGUtbGF1bmNoZXItdmlldyBidXR0b246bm90KC5zdGF0
dXMtYmFyLWl0ZW0pKToKKyAgICAgICAgKC5wcm9maWxlLWxhdW5jaGVyLXZpZXctY29udGVudCBi
dXR0b24ucnVubmluZzpub3QoLnN0YXR1cy1iYXItaXRlbSkpOgorICAgICAgICAoYm9keS5pbmFj
dGl2ZSAucHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQgYnV0dG9uLnJ1bm5pbmc6bm90KC5z
dGF0dXMtYmFyLWl0ZW0pKToKKwogMjAxMS0xMi0yNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFu
QGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogY29tcGxldGUgYW5ub3RhdGlu
ZyBTREsgY29tcG9uZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJv
ai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzCmluZGV4IDJkMDBhYmE4OTJkOWRlZTlkODZmMGRmYjJjMGZmY2VkNjI4
MzNlNmUuLjE2NDQxMzMyMjY4MGVhOGEyYTZiOWE2ZTRhOGU2ZmM1MWY2NWFiN2EgMTAwNjQ0CkdJ
VCBiaW5hcnkgcGF0Y2gKZGVsdGEgODEzCnpjbWRUPyZyMVNQNUZTZlJOVE84Q0k+PV4rSlhFTXlM
Q35jLWJPeyRTMiY3PDUlZEI+e2J3ZmdraTBCeHxYaTFsLQp6SzxFPElVT1IrYEBZcjd2TUFyIVY1
QmdTdmhAZk44VmN5S1ZuUXdsNEA3MzxDND5mREc3fnRXNmpXWlFUVXk4Q00KeksrPmQ4NHB0NlVp
WnFCb3hAcSVzekkjbGtIUUg/NHQkcFVKQE1MNU5oeyFtMWZacW1BQWVBSXFNUmI2JmVDRiVuCnoh
Xj0pcWsyKk9+YXNPRjI4IXpQcEVXVEtjPEdea2slZFpaO0BPZk5RQitAKWE2ZnZrbUQ7UngpM3Q8
PFJvQUl0Ngp6YVZgdm9jclIhKHl1cmElZWpLJiliKT5eNk19JlVrWksyLTZ1PzBeYHtWSW03enE0
c193dXgzNl96QF9IaEZOZj8KektffGVMJCpSJnxQaWtiejtPIVNDTS0tcWtzSklOSSorJjk0MzJu
YUMyMFJfd15ydENHdihQZkNDOzZ1QTstfFJuCnpVKEVWYDhaeFNKPz5JWjc5djBKWGVsMGx+d3d3
O0xTYWNabShxI0tkIWZ0VXxHflZoUng7O096TTxyVXY7c1ZYIQppbDxAcm9uIzFhKiklP352YERx
Y2k2QShZZTVjeElWdFpWRkYtUm1FOD0pLSpnCgpkZWx0YSA1MjUKemNtWD9oaH4+fjhtSkwlaENl
UDkwbmpFSmtHSk9eIUJpQ2Q7Wkh+PVJTXj9+bl5QWTJUUEI3QTdwNnV8Mmd8Jnp3CnpwQ007Knw2
PHVsMSVAUHNOKEtkbjApYEBuUkVBPDgldykpOE5DJTNQRmt9RWw2Y3wqMlZqeHdlSyM+eGx6QzBp
Zwp6TGMmeE8xSH1gOHhEPWB+NW9uZyk8VXx1dWdneE9qdlMrZlB1S3dmK1J2ZXJBT2J3TFRRLU98
OVVgVSsyZjM8OHEKempWeHIpVl5DczwxPT9aQCM3WWVBeiNzekszRkx1LUQtanJ3M2N6NTxufHl2
WEZVPnJDa3lVcnxvYF9SU249QGpDCmJ0VHdhRWFOXiFQVlIwNDViT0N1cm1kIW5EYzlqNEMyS2pa
fAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1OGU1Y2M4MzRlNWVjNDMxYWI3Yjk4YjNiMTZhMGJkZmM0
ZTMzMTM3Li40NDMzMzRiYmYxMzYxODhlYTQ5NWYyM2Q3YjhjMGNkY2MxNmEwMjRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC02NDQ2LDYgKzY0NDYsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvUGxhY2FyZC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Q
b3BvdmVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVEYXRh
R3JpZFRyZWUuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZUxh
dW5jaGVyVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxl
c1BhbmVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3
LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRpZXNTZWN0aW9u
LmpzJywKQEAgLTY1MTAsNyArNjUxMSw2IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250
LWVuZC91dGlsaXRpZXMuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVmll
dy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25z
U2lkZWJhclBhbmUuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV2VsY29t
ZVZpZXcuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdl
ci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBh
bmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvZ29Ub0xpbmVEaWFsb2cu
Y3NzJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5k
ZXggM2Y3MmI0ZDVjN2IwMDkwYzU5OTM3ZjhmMmExNGVkZDhiNzQ3N2MxMS4uNmVhMGZmY2RiODIw
NjFmM2VlZDM1MDBkN2MxODliZGJhMTdlNDM2YyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTcxODM3LDYgKzcxODM3LDEwIEBACiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3Jc
ZnJvbnQtZW5kXFByb2ZpbGVMYXVuY2hlclZpZXcuanMiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJ
CQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFByb2Zp
bGVzUGFuZWwuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC03MjEyOSwxMCArNzIxMzMsNiBA
QAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5c
aW5zcGVjdG9yXGZyb250LWVuZFxXZWxjb21lVmlldy5qcyIKLQkJCQkJPgotCQkJCTwvRmlsZT4K
LQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcV29y
a2Vyc1NpZGViYXJQYW5lLmpzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdExhdW5jaGVyVmlldy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRMYXVuY2hlclZpZXcuanMKaW5k
ZXggOGIxYjBiNjc5MTFjOWU4YzM2YWUxZDU5NGIyNzlmMmVhZDI1ZjE2Ni4uOWE4ZTlkZWUwMWM1
NjEwMjQ4MzlmMzY0NTFmNWY5MDA5NGFkNjM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdExhdW5jaGVyVmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0TGF1bmNoZXJWaWV3LmpzCkBAIC0zNSwxMiAr
MzUsMTQgQEAKIFdlYkluc3BlY3Rvci5BdWRpdExhdW5jaGVyVmlldyA9IGZ1bmN0aW9uKHJ1bm5l
ckNhbGxiYWNrLCBzdG9wQ2FsbGJhY2spCiB7CiAgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0
aGlzKTsKKwogICAgIHRoaXMuX3J1bm5lckNhbGxiYWNrID0gcnVubmVyQ2FsbGJhY2s7CiAgICAg
dGhpcy5fc3RvcENhbGxiYWNrID0gc3RvcENhbGxiYWNrOwogICAgIHRoaXMuX2NhdGVnb3J5SWRQ
cmVmaXggPSAiYXVkaXQtY2F0ZWdvcnktaXRlbS0iOwogICAgIHRoaXMuX2F1ZGl0UnVubmluZyA9
IGZhbHNlOwogCiAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImF1ZGl0LWxhdW5jaGVy
LXZpZXciKTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygicGFuZWwtZW5hYmxlci12
aWV3Iik7CiAKICAgICB0aGlzLl9jb250ZW50RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwogICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50LmNsYXNzTmFtZSA9ICJhdWRpdC1s
YXVuY2hlci12aWV3LWNvbnRlbnQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQXVkaXRzUGFuZWwuanMKaW5kZXggMWEzMGI4ZjhlM2E1YmMzNTViZDU4NWM4Y2Uy
NWU2YzJjNTlhMTg4OS4uOGU1MWEzMmEyZjM0NTAzZjFhZjg4Nzc0MDhlNTkyZDBmZTNkY2ZjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5l
bC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVs
LmpzCkBAIC0zNSw2ICszNSw3IEBACiBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwgPSBmdW5jdGlv
bigpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcywgImF1ZGl0cyIpOworICAg
IHRoaXMucmVnaXN0ZXJSZXF1aXJlZENTUygicGFuZWxFbmFibGVyVmlldy5jc3MiKTsKICAgICB0
aGlzLnJlZ2lzdGVyUmVxdWlyZWRDU1MoImF1ZGl0c1BhbmVsLmNzcyIpOwogCiAgICAgdGhpcy5j
cmVhdGVTcGxpdFZpZXdXaXRoU2lkZWJhclRyZWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdFZpZXcuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzCmluZGV4
IDNhZmE5N2ZkNzFlYjRiZjExNTZkZjNmZWIxYTkxNzA1N2RkYzgxZjUuLjkwMGE2MDY5YzJmMDg4
MjhjMmRiM2U4ZDY2ZTkwYjUzNmI3YzMxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qcwpAQCAtMTI5
Nyw3ICsxMjk3LDcgQEAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dIZWFwU25hcHNob3RPYmpl
Y3RzSGlkZGVuUHJvcGVydGllcyA9IFdlYkluc3BlY3Rvci5zZXQKIAogV2ViSW5zcGVjdG9yLkRl
dGFpbGVkSGVhcHNob3RQcm9maWxlVHlwZSA9IGZ1bmN0aW9uKCkKIHsKLSAgICBXZWJJbnNwZWN0
b3IuUHJvZmlsZVR5cGUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFBy
b2ZpbGVUeXBlLlR5cGVJZCwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJIRUFQIFNOQVBTSE9UUyIp
KTsKKyAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3Iu
RGV0YWlsZWRIZWFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJZCwgV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJUYWtlIEhlYXAgU25hcHNob3QiKSk7CiB9CiAKIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBz
aG90UHJvZmlsZVR5cGUuVHlwZUlkID0gIkhFQVAiOwpAQCAtMTMxOCw5ICsxMzE4LDE0IEBAIFdl
Ykluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlID0gewogICAg
ICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLnRha2VIZWFwU25hcHNob3QoKTsKICAg
ICB9LAogCi0gICAgZ2V0IHdlbGNvbWVNZXNzYWdlKCkKKyAgICBnZXQgdHJlZUl0ZW1UaXRsZSgp
CiAgICAgewotICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHZXQgYSBoZWFw
IHNuYXBzaG90IGJ5IHByZXNzaW5nIHRoZSAlcyBidXR0b24gb24gdGhlIHN0YXR1cyBiYXIuIik7
CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkhFQVAgU05BUFNIT1RTIik7
CisgICAgfSwKKworICAgIGdldCBkZXNjcmlwdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJIZWFwIHNuYXBzaG90IHByb2ZpbGVzIHNob3cgbWVtb3J5
IGRpc3RyaWJ1dGlvbiBhbW9uZyB5b3VyIHBhZ2UncyBKYXZhU2NyaXB0IG9iamVjdHMgYW5kIHJl
bGF0ZWQgRE9NIG5vZGVzLiIpOwogICAgIH0sCiAKICAgICBjcmVhdGVTaWRlYmFyVHJlZUVsZW1l
bnRGb3JQcm9maWxlOiBmdW5jdGlvbihwcm9maWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlTGF1bmNoZXJWaWV3LmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlTGF1bmNoZXJWaWV3LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU0ZmE5ZWMxYTNjMDIzNzI5M2Y5MjAwZGM1NDZlYmZiZjZhNGNhOTAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVMYXVuY2hl
clZpZXcuanMKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVu
ZHMge1dlYkluc3BlY3Rvci5WaWV3fQorICovCitXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVy
VmlldyA9IGZ1bmN0aW9uKHByb2ZpbGVzUGFuZWwpCit7CisgICAgV2ViSW5zcGVjdG9yLlZpZXcu
Y2FsbCh0aGlzKTsKKworICAgIHRoaXMuX3BhbmVsID0gcHJvZmlsZXNQYW5lbDsKKyAgICB0aGlz
Ll9wcm9maWxlUnVubmluZyA9IGZhbHNlOworICAgIHRoaXMuX29wdGlvbklkUHJlZml4ID0gInBy
b2ZpbGUtdHlwZS0iOworCisgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInByb2ZpbGUt
bGF1bmNoZXItdmlldyIpOworICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJwYW5lbC1l
bmFibGVyLXZpZXciKTsKKworICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5fY29udGVudEVsZW1lbnQuY2xhc3NOYW1lID0g
InByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250ZW50IjsKKyAgICB0aGlzLmVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5fY29udGVudEVsZW1lbnQpOworCisgICAgdmFyIGhlYWRlciA9IHRoaXMuX2Nv
bnRlbnRFbGVtZW50LmNyZWF0ZUNoaWxkKCJoMSIpOworICAgIGhlYWRlci50ZXh0Q29udGVudCA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2VsZWN0IHByb2ZpbGluZyB0eXBlIik7CisKKyAgICB0
aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9yRm9ybSA9IHRoaXMuX2NvbnRlbnRFbGVtZW50LmNyZWF0
ZUNoaWxkKCJmb3JtIik7CisgICAgdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRp
diIsICJmbGV4aWJsZS1zcGFjZSIpOworCisgICAgdGhpcy5fYm91bmRQcm9maWxlVHlwZUNoYW5n
ZUxpc3RlbmVyID0gdGhpcy5fcHJvZmlsZVR5cGVDaGFuZ2VkLmJpbmQodGhpcyk7CisKKyAgICB0
aGlzLl9jb250cm9sQnV0dG9uID0gdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImJ1
dHRvbiIsICJjb250cm9sLXByb2ZpbGluZyIpOworICAgIHRoaXMuX2NvbnRyb2xCdXR0b24uYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9jb250cm9sQnV0dG9uQ2xpY2tlZC5iaW5kKHRo
aXMpLCBmYWxzZSk7CisgICAgdGhpcy5fdXBkYXRlQ29udHJvbHMoKTsKK30KKworV2ViSW5zcGVj
dG9yLlByb2ZpbGVMYXVuY2hlclZpZXcuRXZlbnRUeXBlcyA9IHsKKyAgICBQcm9maWxlVHlwZVNl
bGVjdGVkOiAicHJvZmlsZS10eXBlLXNlbGVjdGVkIgorfQorCitXZWJJbnNwZWN0b3IuUHJvZmls
ZUxhdW5jaGVyVmlldy5wcm90b3R5cGUgPSB7CisgICAgc2V0VXBFdmVudExpc3RlbmVyczogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fcGFuZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5FdmVudFR5cGVzLlByb2ZpbGVTdGFydGVkLCB0aGlzLl9v
blByb2ZpbGVTdGFydGVkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fcGFuZWwuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5FdmVudFR5cGVzLlByb2ZpbGVGaW5pc2hl
ZCwgdGhpcy5fb25Qcm9maWxlRmluaXNoZWQsIHRoaXMpOworICAgIH0sCisKKyAgICBhZGRQcm9m
aWxlVHlwZTogZnVuY3Rpb24ocHJvZmlsZVR5cGUpCisgICAgeworICAgICAgICB2YXIgY2hlY2tl
ZCA9ICF0aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9yRm9ybS5jaGlsZHJlbi5sZW5ndGg7CisgICAg
ICAgIHZhciBsYWJlbEVsZW1lbnQgPSB0aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9yRm9ybS5jcmVh
dGVDaGlsZCgibGFiZWwiKTsKKyAgICAgICAgbGFiZWxFbGVtZW50LnRleHRDb250ZW50ID0gcHJv
ZmlsZVR5cGUubmFtZTsKKyAgICAgICAgdmFyIG9wdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbnB1dCIpOworICAgICAgICBsYWJlbEVsZW1lbnQuaW5zZXJ0QmVmb3JlKG9w
dGlvbkVsZW1lbnQsIGxhYmVsRWxlbWVudC5maXJzdENoaWxkKTsKKyAgICAgICAgb3B0aW9uRWxl
bWVudC50eXBlID0gInJhZGlvIjsKKyAgICAgICAgb3B0aW9uRWxlbWVudC5uYW1lID0gInByb2Zp
bGUtdHlwZSI7CisgICAgICAgIHZhciBvcHRpb25JZCA9IHRoaXMuX29wdGlvbklkUHJlZml4ICsg
cHJvZmlsZVR5cGUuaWQ7CisgICAgICAgIG9wdGlvbkVsZW1lbnQuaWQgPSBvcHRpb25JZDsKKyAg
ICAgICAgaWYgKGNoZWNrZWQpIHsKKyAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQuY2hlY2tlZCA9
IGNoZWNrZWQ7CisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5FdmVudFR5cGVzLlByb2ZpbGVUeXBlU2VsZWN0
ZWQsIHsgcHJvZmlsZVR5cGU6IHByb2ZpbGVUeXBlIH0pOworICAgICAgICB9CisgICAgICAgIG9w
dGlvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5fYm91bmRQcm9maWxl
VHlwZUNoYW5nZUxpc3RlbmVyLCBmYWxzZSk7CisgICAgICAgIHZhciBkZXNjcmlwdGlvbkVsZW1l
bnQgPSBsYWJlbEVsZW1lbnQuY3JlYXRlQ2hpbGQoInAiKTsKKyAgICAgICAgZGVzY3JpcHRpb25F
bGVtZW50LnRleHRDb250ZW50ID0gcHJvZmlsZVR5cGUuZGVzY3JpcHRpb247CisgICAgfSwKKwor
ICAgIF9jb250cm9sQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhp
cy5fcGFuZWwudG9nZ2xlUmVjb3JkQnV0dG9uKCk7CisgICAgfSwKKworICAgIF91cGRhdGVDb250
cm9sczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2lzUHJvZmlsaW5nKSB7
CisgICAgICAgICAgICB0aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9yRm9ybS5kaXNhYmxlZCA9IHRy
dWU7CisgICAgICAgICAgICB0aGlzLl9jb250cm9sQnV0dG9uLmFkZFN0eWxlQ2xhc3MoInJ1bm5p
bmciKTsKKyAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xCdXR0b24udGV4dENvbnRlbnQgPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlN0b3AiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IHRoaXMuX3Byb2ZpbGVUeXBlU2VsZWN0b3JGb3JtLmRpc2FibGVkID0gZmFsc2U7CisgICAgICAg
ICAgICB0aGlzLl9jb250cm9sQnV0dG9uLnJlbW92ZVN0eWxlQ2xhc3MoInJ1bm5pbmciKTsKKyAg
ICAgICAgICAgIHRoaXMuX2NvbnRyb2xCdXR0b24udGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlN0YXJ0Iik7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX3Byb2ZpbGVUeXBl
Q2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgc2VsZWN0ZWRQcm9m
aWxlVHlwZSA9IHRoaXMuX3BhbmVsLmdldFByb2ZpbGVUeXBlKGV2ZW50LnRhcmdldC5pZC5zdWJz
dHJpbmcodGhpcy5fb3B0aW9uSWRQcmVmaXgubGVuZ3RoKSk7CisgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LkV2ZW50
VHlwZXMuUHJvZmlsZVR5cGVTZWxlY3RlZCwgeyBwcm9maWxlVHlwZTogc2VsZWN0ZWRQcm9maWxl
VHlwZSB9KTsKKyAgICB9LAorCisgICAgX29uUHJvZmlsZVN0YXJ0ZWQ6IGZ1bmN0aW9uKGV2ZW50
KQorICAgIHsKKyAgICAgICAgdGhpcy5faXNQcm9maWxpbmcgPSB0cnVlOworICAgICAgICB0aGlz
Ll91cGRhdGVDb250cm9scygpOworICAgIH0sCisKKyAgICBfb25Qcm9maWxlRmluaXNoZWQ6IGZ1
bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5faXNQcm9maWxpbmcgPSBmYWxzZTsK
KyAgICAgICAgdGhpcy5fdXBkYXRlQ29udHJvbHMoKTsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rv
ci5Qcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Byb2ZpbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qcm9maWxlVmlldy5qcwppbmRleCA3YjFkZTc0ZWY0MjVjNzViMGY2ZGI1MGIzMzEyMmE4NDli
YzZmMTIxLi43ZWNjYmYxYWRmYjRhNTFiNTY5ZjkyZTRhMDU2MjA2ZWVmYmE0M2IzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMKQEAg
LTU2OSw3ICs1NjksNyBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlLl9f
cHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZTsKIAogV2ViSW5zcGVjdG9yLkNQ
VVByb2ZpbGVUeXBlID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlVHlw
ZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZS5UeXBlSWQsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiQ1BVIFBST0ZJTEVTIikpOworICAgIFdlYkluc3BlY3Rvci5Qcm9maWxl
VHlwZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZS5UeXBlSWQsIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiQ29sbGVjdCBKYXZhU2NyaXB0IENQVSBQcm9maWxlIikpOwogICAg
IHRoaXMuX3JlY29yZGluZyA9IGZhbHNlOwogICAgIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlw
ZS5pbnN0YW5jZSA9IHRoaXM7CiB9CkBAIC01OTgsOSArNTk4LDE0IEBAIFdlYkluc3BlY3Rvci5D
UFVQcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgZ2V0
IHdlbGNvbWVNZXNzYWdlKCkKKyAgICBnZXQgdHJlZUl0ZW1UaXRsZSgpCiAgICAgewotICAgICAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb250cm9sIENQVSBwcm9maWxpbmcgYnkg
cHJlc3NpbmcgdGhlICVzIGJ1dHRvbiBvbiB0aGUgc3RhdHVzIGJhci4iKTsKKyAgICAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ1BVIFBST0ZJTEVTIik7CisgICAgfSwKKworICAg
IGdldCBkZXNjcmlwdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJDUFUgcHJvZmlsZXMgc2hvdyB3aGVyZSB0aGUgZXhlY3V0aW9uIHRpbWUgaXMgc3Bl
bnQgaW4geW91ciBwYWdlJ3MgSmF2YVNjcmlwdCBmdW5jdGlvbnMuIik7CiAgICAgfSwKIAogICAg
IGlzUmVjb3JkaW5nUHJvZmlsZTogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IDExNTEzOTAyM2E3YTZm
MDZmZWY2ZTg3MzZkY2M1MjM4YjVlMjI2MWIuLjE2YjZjMGUyMzk1NmQzZWJmNjYxZjUwZTRiYTM2
MGNjZTVjZGQ3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTU0LDYgKzU0LDExIEBAIFdlYkluc3BlY3Rvci5Qcm9m
aWxlVHlwZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9pZDsKICAgICB9LAog
CisgICAgZ2V0IHRyZWVJdGVtVGl0bGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX25h
bWU7CisgICAgfSwKKwogICAgIGdldCBuYW1lKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlz
Ll9uYW1lOwpAQCAtNzAsNyArNzUsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gcHJvZmlsZS5fcHJvZmlsZVZpZXc7CiAgICAgfSwKIAot
ICAgIGdldCB3ZWxjb21lTWVzc2FnZSgpCisgICAgZ2V0IGRlc2NyaXB0aW9uKCkKICAgICB7CiAg
ICAgICAgIHJldHVybiAiIjsKICAgICB9LApAQCAtOTksMTMgKzEwNCwxNiBAQCBXZWJJbnNwZWN0
b3IucmVnaXN0ZXJMaW5raWZpZXJQbHVnaW4oZnVuY3Rpb24odGl0bGUpCiBXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNQYW5lbCA9IGZ1bmN0aW9uKCkKIHsKICAgICBXZWJJbnNwZWN0b3IuUGFuZWwuY2Fs
bCh0aGlzLCAicHJvZmlsZXMiKTsKKyAgICB0aGlzLnJlZ2lzdGVyUmVxdWlyZWRDU1MoInBhbmVs
RW5hYmxlclZpZXcuY3NzIik7CiAgICAgdGhpcy5yZWdpc3RlclJlcXVpcmVkQ1NTKCJoZWFwUHJv
ZmlsZXIuY3NzIik7CiAgICAgdGhpcy5yZWdpc3RlclJlcXVpcmVkQ1NTKCJwcm9maWxlc1BhbmVs
LmNzcyIpOwogCiAgICAgdGhpcy5jcmVhdGVTcGxpdFZpZXdXaXRoU2lkZWJhclRyZWUoKTsKIAor
ICAgIHRoaXMucHJvZmlsZXNJdGVtVHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlByb2Zp
bGVzU2lkZWJhclRyZWVFbGVtZW50KHRoaXMpOworICAgIHRoaXMuc2lkZWJhclRyZWUuYXBwZW5k
Q2hpbGQodGhpcy5wcm9maWxlc0l0ZW1UcmVlRWxlbWVudCk7CisKICAgICB0aGlzLl9wcm9maWxl
VHlwZXNCeUlkTWFwID0ge307Ci0gICAgdGhpcy5fcHJvZmlsZVR5cGVCdXR0b25zQnlJZE1hcCA9
IHt9OwogCiAgICAgdmFyIHBhbmVsRW5hYmxlckhlYWRpbmcgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIllvdSBuZWVkIHRvIGVuYWJsZSBwcm9maWxpbmcgYmVmb3JlIHlvdSBjYW4gdXNlIHRoZSBQ
cm9maWxlcyBwYW5lbC4iKTsKICAgICB2YXIgcGFuZWxFbmFibGVyRGlzY2xhaW1lciA9IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiRW5hYmxpbmcgcHJvZmlsaW5nIHdpbGwgbWFrZSBzY3JpcHRzIHJ1
biBzbG93ZXIuIik7CkBAIC0xMjIsMTcgKzEzMCwyMiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQ
YW5lbCA9IGZ1bmN0aW9uKCkKICAgICBpZiAoIUNhcGFiaWxpdGllcy5wcm9maWxlckNhdXNlc1Jl
Y29tcGlsYXRpb24pCiAgICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLmVsZW1lbnQuYWRk
U3R5bGVDbGFzcygiaGlkZGVuIik7CiAKKyAgICB0aGlzLnJlY29yZEJ1dHRvbiA9IG5ldyBXZWJJ
bnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKCIiLCAicmVjb3JkLXByb2ZpbGUtc3RhdHVzLWJhci1p
dGVtIik7CisgICAgdGhpcy5yZWNvcmRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0
aGlzLnRvZ2dsZVJlY29yZEJ1dHRvbiwgdGhpcyk7CisKICAgICB0aGlzLmNsZWFyUmVzdWx0c0J1
dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiQ2xlYXIgYWxsIHByb2ZpbGVzLiIpLCAiY2xlYXItc3RhdHVzLWJhci1pdGVtIik7CiAg
ICAgdGhpcy5jbGVhclJlc3VsdHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlz
Ll9jbGVhclByb2ZpbGVzLmJpbmQodGhpcyksIGZhbHNlKTsKIAogICAgIHRoaXMucHJvZmlsZVZp
ZXdTdGF0dXNCYXJJdGVtc0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwogICAgIHRoaXMucHJvZmlsZVZpZXdTdGF0dXNCYXJJdGVtc0NvbnRhaW5lci5jbGFzc05hbWUg
PSAic3RhdHVzLWJhci1pdGVtcyI7CiAKLSAgICB0aGlzLndlbGNvbWVWaWV3ID0gbmV3IFdlYklu
c3BlY3Rvci5XZWxjb21lVmlldygicHJvZmlsZXMiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldl
bGNvbWUgdG8gdGhlIFByb2ZpbGVzIHBhbmVsIikpOwotCiAgICAgdGhpcy5fcHJvZmlsZXMgPSBb
XTsKICAgICB0aGlzLl9wcm9maWxlckVuYWJsZWQgPSAhQ2FwYWJpbGl0aWVzLnByb2ZpbGVyQ2F1
c2VzUmVjb21waWxhdGlvbjsKKworICAgIHRoaXMuX2xhdW5jaGVyVmlldyA9IG5ldyBXZWJJbnNw
ZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldyh0aGlzKTsKKyAgICB0aGlzLl9sYXVuY2hlclZpZXcu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5FdmVudFR5
cGVzLlByb2ZpbGVUeXBlU2VsZWN0ZWQsIHRoaXMuX29uUHJvZmlsZVR5cGVTZWxlY3RlZCwgdGhp
cyk7CiAgICAgdGhpcy5fcmVzZXQoKTsKKyAgICB0aGlzLl9sYXVuY2hlclZpZXcuc2V0VXBFdmVu
dExpc3RlbmVycygpOwogCiAgICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5z
cGVjdG9yLkNQVVByb2ZpbGVUeXBlKCkpOwogICAgIGlmIChDYXBhYmlsaXRpZXMuaGVhcFByb2Zp
bGVyUHJlc2VudCkKQEAgLTE0NCw2ICsxNTcsMTEgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwgPSBmdW5jdGlvbigpCiAgICAgICAgIFByb2ZpbGVyQWdlbnQuZW5hYmxlKHRoaXMuX3Byb2Zp
bGVyV2FzRW5hYmxlZC5iaW5kKHRoaXMpKTsKIH0KIAorV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwuRXZlbnRUeXBlcyA9IHsKKyAgICBQcm9maWxlU3RhcnRlZDogInByb2ZpbGUtc3RhcnRlZCIs
CisgICAgUHJvZmlsZUZpbmlzaGVkOiAicHJvZmlsZS1maW5pc2hlZCIKK30KKwogV2ViSW5zcGVj
dG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgIGdldCB0b29sYmFySXRlbUxhYmVs
KCkKICAgICB7CkBAIC0xNTIsMjYgKzE3MCwxMiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5l
bC5wcm90b3R5cGUgPSB7CiAKICAgICBnZXQgc3RhdHVzQmFySXRlbXMoKQogICAgIHsKLSAgICAg
ICAgZnVuY3Rpb24gY2xpY2tIYW5kbGVyKHByb2ZpbGVUeXBlLCBidXR0b24pCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHZhciB3YXNQcm9maWxpbmcgPSBidXR0b24udG9nZ2xlZDsKLSAgICAgICAg
ICAgIHByb2ZpbGVUeXBlLmJ1dHRvbkNsaWNrZWQuY2FsbChwcm9maWxlVHlwZSk7Ci0gICAgICAg
ICAgICB0aGlzLnVwZGF0ZVByb2ZpbGVUeXBlQnV0dG9ucyghd2FzUHJvZmlsaW5nLCBidXR0b24p
OwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIGl0ZW1zID0gW3RoaXMuZW5hYmxlVG9nZ2xlQnV0
dG9uLmVsZW1lbnRdOwotICAgICAgICAvLyBGSVhNRTogR2VuZXJhdGUgYSBzaW5nbGUgImNvbWJv
LWJ1dHRvbiIuCi0gICAgICAgIGZvciAodmFyIHR5cGVJZCBpbiB0aGlzLl9wcm9maWxlVHlwZXNC
eUlkTWFwKSB7Ci0gICAgICAgICAgICB2YXIgcHJvZmlsZVR5cGUgPSB0aGlzLmdldFByb2ZpbGVU
eXBlKHR5cGVJZCk7Ci0gICAgICAgICAgICBpZiAocHJvZmlsZVR5cGUuYnV0dG9uU3R5bGUpIHsK
LSAgICAgICAgICAgICAgICB2YXIgYnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJC
dXR0b24ocHJvZmlsZVR5cGUuYnV0dG9uVG9vbHRpcCwgcHJvZmlsZVR5cGUuYnV0dG9uU3R5bGUp
OwotICAgICAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXBbdHlwZUlk
XSA9IGJ1dHRvbjsKLSAgICAgICAgICAgICAgICBidXR0b24uZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIGNsaWNrSGFuZGxlci5iaW5kKHRoaXMsIHByb2ZpbGVUeXBlLCBidXR0b24p
LCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgaXRlbXMucHVzaChidXR0b24uZWxlbWVudCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaXRlbXMucHVzaCh0aGlzLmNsZWFyUmVz
dWx0c0J1dHRvbi5lbGVtZW50LCB0aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRlbXNDb250YWlu
ZXIpOwotICAgICAgICByZXR1cm4gaXRlbXM7CisgICAgICAgIHJldHVybiBbdGhpcy5lbmFibGVU
b2dnbGVCdXR0b24uZWxlbWVudCwgdGhpcy5yZWNvcmRCdXR0b24uZWxlbWVudCwgdGhpcy5jbGVh
clJlc3VsdHNCdXR0b24uZWxlbWVudCwgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29u
dGFpbmVyXTsKKyAgICB9LAorCisgICAgdG9nZ2xlUmVjb3JkQnV0dG9uOiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICB0aGlzLl9zZWxlY3RlZFByb2ZpbGVUeXBlLmJ1dHRvbkNsaWNrZWQoKTsK
ICAgICB9LAogCiAgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKQEAgLTIwMSw2ICsyMDUsMTIgQEAg
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9y
ZXNldCgpOwogICAgIH0sCiAKKyAgICBfb25Qcm9maWxlVHlwZVNlbGVjdGVkOiBmdW5jdGlvbihl
dmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3NlbGVjdGVkUHJvZmlsZVR5cGUgPSBldmVudC5k
YXRhLnByb2ZpbGVUeXBlOworICAgICAgICB0aGlzLnJlY29yZEJ1dHRvbi50aXRsZSA9IHRoaXMu
X3NlbGVjdGVkUHJvZmlsZVR5cGUuYnV0dG9uVG9vbHRpcDsKKyAgICB9LAorCiAgICAgX3Jlc2V0
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LnJlc2V0LmNhbGwodGhpcyk7CkBAIC0yMjAsNiArMjMwLDE0IEBAIFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZGVsZXRlIHRoaXMuY3VycmVudFF1ZXJ5
OwogICAgICAgICB0aGlzLnNlYXJjaENhbmNlbGVkKCk7CiAKKyAgICAgICAgZm9yICh2YXIgaWQg
aW4gdGhpcy5fcHJvZmlsZVR5cGVzQnlJZE1hcCkgeworICAgICAgICAgICAgdmFyIHByb2ZpbGVU
eXBlID0gdGhpcy5fcHJvZmlsZVR5cGVzQnlJZE1hcFtpZF07CisgICAgICAgICAgICBpZiAocHJv
ZmlsZVR5cGUudHJlZUVsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJUcmVl
LnJlbW92ZUNoaWxkKHByb2ZpbGVUeXBlLnRyZWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICBk
ZWxldGUgcHJvZmlsZVR5cGUudHJlZUVsZW1lbnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KwogICAgICAgICB0aGlzLl9wcm9maWxlcyA9IFtdOwogICAgICAgICB0aGlzLl9wcm9maWxlc0lk
TWFwID0ge307CiAgICAgICAgIHRoaXMuX3Byb2ZpbGVHcm91cHMgPSB7fTsKQEAgLTIyOCwxNyAr
MjQ2LDIzIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAg
ICAgICB0aGlzLnNpZGViYXJUcmVlRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJzb21lLWV4cGFu
ZGFibGUiKTsKIAotICAgICAgICBmb3IgKHZhciB0eXBlSWQgaW4gdGhpcy5fcHJvZmlsZVR5cGVz
QnlJZE1hcCkKLSAgICAgICAgICAgIHRoaXMuZ2V0UHJvZmlsZVR5cGUodHlwZUlkKS50cmVlRWxl
bWVudC5yZW1vdmVDaGlsZHJlbigpOwotCiAgICAgICAgIHRoaXMucHJvZmlsZVZpZXdzLnJlbW92
ZUNoaWxkcmVuKCk7Ci0KICAgICAgICAgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29u
dGFpbmVyLnJlbW92ZUNoaWxkcmVuKCk7CiAKICAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5l
cnMoKTsKKyAgICAgICAgdGhpcy5fbGF1bmNoZXJWaWV3LnNldFVwRXZlbnRMaXN0ZW5lcnMoKTsK
IAogICAgICAgICB0aGlzLl91cGRhdGVJbnRlcmZhY2UoKTsKLSAgICAgICAgdGhpcy53ZWxjb21l
Vmlldy5zaG93KHRoaXMuc3BsaXRWaWV3Lm1haW5FbGVtZW50KTsKKyAgICAgICAgdGhpcy5wcm9m
aWxlc0l0ZW1UcmVlRWxlbWVudC5zZWxlY3QoKTsKKyAgICAgICAgdGhpcy5fc2hvd0xhdW5jaGVy
VmlldygpOworICAgIH0sCisKKyAgICBfc2hvd0xhdW5jaGVyVmlldzogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgdGhpcy5jbG9zZVZpc2libGVWaWV3KCk7CisgICAgICAgIHRoaXMucHJvZmls
ZVZpZXdTdGF0dXNCYXJJdGVtc0NvbnRhaW5lci5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICB0
aGlzLl9sYXVuY2hlclZpZXcuc2hvdyh0aGlzLnNwbGl0Vmlldy5tYWluRWxlbWVudCk7CisgICAg
ICAgIHRoaXMudmlzaWJsZVZpZXcgPSB0aGlzLl9sYXVuY2hlclZpZXc7CiAgICAgfSwKIAogICAg
IF9jbGVhclByb2ZpbGVzOiBmdW5jdGlvbigpCkBAIC0yNDcsMzcgKzI3MSwzNiBAQCBXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Jlc2V0KCk7
CiAgICAgfSwKIAotICAgIF9yZWdpc3RlclByb2ZpbGVUeXBlOiBmdW5jdGlvbihwcm9maWxlVHlw
ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlc0J5SWRNYXBbcHJvZmlsZVR5cGUu
aWRdID0gcHJvZmlsZVR5cGU7Ci0gICAgICAgIHByb2ZpbGVUeXBlLnRyZWVFbGVtZW50ID0gbmV3
IFdlYkluc3BlY3Rvci5TaWRlYmFyU2VjdGlvblRyZWVFbGVtZW50KHByb2ZpbGVUeXBlLm5hbWUs
IG51bGwsIHRydWUpOwotICAgICAgICB0aGlzLnNpZGViYXJUcmVlLmFwcGVuZENoaWxkKHByb2Zp
bGVUeXBlLnRyZWVFbGVtZW50KTsKLSAgICAgICAgcHJvZmlsZVR5cGUudHJlZUVsZW1lbnQuZXhw
YW5kKCk7Ci0gICAgICAgIHRoaXMuX2FkZFdlbGNvbWVNZXNzYWdlKHByb2ZpbGVUeXBlKTsKKyAg
ICBfcHJvZmlsZVR5cGVUcmVlRWxlbWVudDogZnVuY3Rpb24ocHJvZmlsZVR5cGUpCisgICAgewor
ICAgICAgICBpZiAoIXByb2ZpbGVUeXBlLnRyZWVFbGVtZW50KSB7CisgICAgICAgICAgICBwcm9m
aWxlVHlwZS50cmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGVUcmVlRWxl
bWVudChwcm9maWxlVHlwZS50cmVlSXRlbVRpdGxlKTsKKyAgICAgICAgICAgIHByb2ZpbGVUeXBl
LnRyZWVFbGVtZW50LmV4cGFuZCgpOworCisgICAgICAgICAgICAvLyBSZXRhaW4gdGhlIHByb2Zp
bGUgdHlwZSByZWdpc3RyYXRpb24gb3JkZXIgaW4gdGhlIHRyZWUsIHRvby4KKyAgICAgICAgICAg
IHZhciBzZWxmRm91bmQ7CisgICAgICAgICAgICB2YXIgaW5kZXggPSAxOyAvLyBTa2lwIHRoZSBs
YXVuY2hlciB2aWV3IGl0ZW0uCisgICAgICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLl9wcm9m
aWxlVHlwZXNCeUlkTWFwKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkID09PSBwcm9maWxlVHlw
ZS5pZCkgeworICAgICAgICAgICAgICAgICAgICBzZWxmRm91bmQgPSB0cnVlOworICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBpZiAodGhpcy5fcHJvZmlsZVR5cGVzQnlJZE1hcFtpZF0udHJlZUVsZW1lbnQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKHNlbGZGb3VuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgICAgICArK2luZGV4OworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuc2lkZWJhclRyZWUuaW5zZXJ0Q2hpbGQocHJv
ZmlsZVR5cGUudHJlZUVsZW1lbnQsIGluZGV4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
cHJvZmlsZVR5cGUudHJlZUVsZW1lbnQ7CiAgICAgfSwKIAotICAgIF9hZGRXZWxjb21lTWVzc2Fn
ZTogZnVuY3Rpb24ocHJvZmlsZVR5cGUpCisgICAgX3JlZ2lzdGVyUHJvZmlsZVR5cGU6IGZ1bmN0
aW9uKHByb2ZpbGVUeXBlKQogICAgIHsKLSAgICAgICAgdmFyIG1lc3NhZ2UgPSBwcm9maWxlVHlw
ZS53ZWxjb21lTWVzc2FnZTsKLSAgICAgICAgLy8gTWVzc2FnZSB0ZXh0IGlzIHN1cHBvc2VkIHRv
IGhhdmUgYSAnJXMnIHN1YnN0cmluZyBhcyBhIHBsYWNlaG9sZGVyCi0gICAgICAgIC8vIGZvciBh
IHN0YXR1cyBiYXIgYnV0dG9uLiBJZiBpdCBpcyB0aGVyZSwgd2Ugc3BsaXQgdGhlIG1lc3NhZ2Ug
aW4gdHdvCi0gICAgICAgIC8vIHBhcnRzLCBhbmQgaW5zZXJ0IHRoZSBidXR0b24gYmV0d2VlbiB0
aGVtLgotICAgICAgICB2YXIgYnV0dG9uUG9zID0gbWVzc2FnZS5pbmRleE9mKCIlcyIpOwotICAg
ICAgICBpZiAoYnV0dG9uUG9zID4gLTEpIHsKLSAgICAgICAgICAgIHZhciBjb250YWluZXIgPSBk
b2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICAgICAgICB2YXIgcGFydDEg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgICAgICAgICBwYXJ0MS50ZXh0
Q29udGVudCA9IG1lc3NhZ2Uuc3Vic3RyKDAsIGJ1dHRvblBvcyk7Ci0gICAgICAgICAgICBjb250
YWluZXIuYXBwZW5kQ2hpbGQocGFydDEpOwotCi0gICAgICAgICAgICB2YXIgYnV0dG9uID0gbmV3
IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24ocHJvZmlsZVR5cGUuYnV0dG9uVG9vbHRpcCwg
cHJvZmlsZVR5cGUuYnV0dG9uU3R5bGUsIHByb2ZpbGVUeXBlLmJ1dHRvbkNhcHRpb24pOwotICAg
ICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGJ1dHRvbi5lbGVtZW50KTsKLQotICAgICAg
ICAgICAgdmFyIHBhcnQyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgICAg
ICAgICAgcGFydDIudGV4dENvbnRlbnQgPSBtZXNzYWdlLnN1YnN0cihidXR0b25Qb3MgKyAyKTsK
LSAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChwYXJ0Mik7Ci0gICAgICAgICAgICB0
aGlzLndlbGNvbWVWaWV3LmFkZE1lc3NhZ2UoY29udGFpbmVyKTsKLSAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICB0aGlzLndlbGNvbWVWaWV3LmFkZE1lc3NhZ2UobWVzc2FnZSk7CisgICAgICAg
IHRoaXMuX3Byb2ZpbGVUeXBlc0J5SWRNYXBbcHJvZmlsZVR5cGUuaWRdID0gcHJvZmlsZVR5cGU7
CisgICAgICAgIHRoaXMuX2xhdW5jaGVyVmlldy5hZGRQcm9maWxlVHlwZShwcm9maWxlVHlwZSk7
CiAgICAgfSwKIAogICAgIF9tYWtlS2V5OiBmdW5jdGlvbih0ZXh0LCBwcm9maWxlVHlwZUlkKQpA
QCAtMjkyLDcgKzMxNSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9
IHsKIAogICAgICAgICB2YXIgdHlwZUlkID0gcHJvZmlsZS50eXBlSWQ7CiAgICAgICAgIHZhciBw
cm9maWxlVHlwZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUodHlwZUlkKTsKLSAgICAgICAgdmFyIHNp
ZGViYXJQYXJlbnQgPSBwcm9maWxlVHlwZS50cmVlRWxlbWVudDsKKyAgICAgICAgdmFyIHNpZGVi
YXJQYXJlbnQgPSB0aGlzLl9wcm9maWxlVHlwZVRyZWVFbGVtZW50KHByb2ZpbGVUeXBlKTsKICAg
ICAgICAgdmFyIHNtYWxsID0gZmFsc2U7CiAgICAgICAgIHZhciBhbHRlcm5hdGVUaXRsZTsKIApA
QCAtMzQ1LDEyICszNjgsMTggQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBl
ID0gewogCiAgICAgICAgIHNpZGViYXJQYXJlbnQuYXBwZW5kQ2hpbGQocHJvZmlsZVRyZWVFbGVt
ZW50KTsKICAgICAgICAgaWYgKCFwcm9maWxlLmlzVGVtcG9yYXJ5KSB7Ci0gICAgICAgICAgICB0
aGlzLndlbGNvbWVWaWV3LmRldGFjaCgpOwogICAgICAgICAgICAgaWYgKCF0aGlzLnZpc2libGVW
aWV3KQogICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Byb2ZpbGUocHJvZmlsZSk7CiAgICAgICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygicHJvZmlsZSBhZGRlZCIpOwotICAg
ICAgICAgICAgdGhpcy51cGRhdGVQcm9maWxlVHlwZUJ1dHRvbnMoZmFsc2UsIHRoaXMuX3Byb2Zp
bGVUeXBlQnV0dG9uc0J5SWRNYXBbdHlwZUlkXSk7CisgICAgICAgICAgICBkZWxldGUgdGhpcy5f
dGVtcG9yYXJ5UmVjb3JkaW5nUHJvZmlsZTsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLkV2ZW50VHlwZXMuUHJvZmls
ZUZpbmlzaGVkKTsKKyAgICAgICAgICAgIHRoaXMucmVjb3JkQnV0dG9uLnRvZ2dsZWQgPSBmYWxz
ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLkV2ZW50VHlwZXMuUHJvZmlsZVN0YXJ0
ZWQpOworICAgICAgICAgICAgdGhpcy5yZWNvcmRCdXR0b24udG9nZ2xlZCA9IHRydWU7CiAgICAg
ICAgIH0KKworICAgICAgICB0aGlzLnJlY29yZEJ1dHRvbi50aXRsZSA9IHRoaXMuX3NlbGVjdGVk
UHJvZmlsZVR5cGUuYnV0dG9uVG9vbHRpcDsKICAgICB9LAogCiAgICAgX3JlbW92ZVByb2ZpbGVI
ZWFkZXI6IGZ1bmN0aW9uKHByb2ZpbGUpCkBAIC01MDMsMjcgKzUzMiw2IEBAIFdlYkluc3BlY3Rv
ci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5zaG93UHJvZmlsZSh0
aGlzLl9wcm9maWxlc0lkTWFwW3RoaXMuX21ha2VLZXkobWF0Y2hbM10sIG1hdGNoWzFdKV0pOwog
ICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzUHJvZmlsaW5nCi0g
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uPX0gZWZmZWN0QnV0dG9u
Ci0gICAgICovCi0gICAgdXBkYXRlUHJvZmlsZVR5cGVCdXR0b25zOiBmdW5jdGlvbihpc1Byb2Zp
bGluZywgZWZmZWN0QnV0dG9uKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgdHlwZUlkIGluIHRo
aXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXApIHsKLSAgICAgICAgICAgIHZhciBidXR0b24g
PSB0aGlzLl9wcm9maWxlVHlwZUJ1dHRvbnNCeUlkTWFwW3R5cGVJZF07Ci0gICAgICAgICAgICB2
YXIgcHJvZmlsZVR5cGUgPSB0aGlzLmdldFByb2ZpbGVUeXBlKHR5cGVJZCk7Ci0gICAgICAgICAg
ICBidXR0b24uZWxlbWVudC5jbGFzc05hbWUgPSBwcm9maWxlVHlwZS5idXR0b25TdHlsZTsKLSAg
ICAgICAgICAgIGJ1dHRvbi5lbGVtZW50LnRpdGxlID0gcHJvZmlsZVR5cGUuYnV0dG9uVG9vbHRp
cDsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBBcHBseSBwcm9maWxlVHlwZS5idXR0b25DYXB0aW9u
IG9uY2UgY2FwdGlvbnMgYXJlIGFkZGVkIHRvIGJ1dHRvbiBjb250cm9scy4KLSAgICAgICAgICAg
IGlmICghaXNQcm9maWxpbmcpCi0gICAgICAgICAgICAgICAgYnV0dG9uLmRpc2FibGVkID0gZmFs
c2U7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoZWZmZWN0QnV0dG9u
ICYmIGJ1dHRvbiAhPT0gZWZmZWN0QnV0dG9uKQotICAgICAgICAgICAgICAgICAgICBidXR0b24u
ZGlzYWJsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSwKLQogICAg
IGNsb3NlVmlzaWJsZVZpZXc6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLnZp
c2libGVWaWV3KQpAQCAtNzU5LDE2ICs3NjcsMTQgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy5fcHJvZmlsZXJFbmFibGVkKSB7CiAg
ICAgICAgICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiUHJvZmlsaW5nIGVuYWJsZWQuIENsaWNrIHRvIGRpc2FibGUuIik7CiAgICAgICAg
ICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi50b2dnbGVkID0gdHJ1ZTsKLSAgICAgICAgICAg
IGZvciAodmFyIHR5cGVJZCBpbiB0aGlzLl9wcm9maWxlVHlwZUJ1dHRvbnNCeUlkTWFwKQotICAg
ICAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXBbdHlwZUlkXS52aXNp
YmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRoaXMucmVjb3JkQnV0dG9uLnZpc2libGUgPSB0cnVl
OwogICAgICAgICAgICAgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVyLnJl
bW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAgICAgdGhpcy5jbGVhclJlc3VsdHNC
dXR0b24uZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4iKTsKICAgICAgICAgICAgIHRo
aXMucGFuZWxFbmFibGVyVmlldy5kZXRhY2goKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJQcm9maWxpbmcgZGlzYWJsZWQuIENsaWNrIHRvIGVuYWJsZS4iKTsKICAgICAgICAgICAgIHRo
aXMuZW5hYmxlVG9nZ2xlQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGZvciAo
dmFyIHR5cGVJZCBpbiB0aGlzLl9wcm9maWxlVHlwZUJ1dHRvbnNCeUlkTWFwKQotICAgICAgICAg
ICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXBbdHlwZUlkXS52aXNpYmxlID0g
ZmFsc2U7CisgICAgICAgICAgICB0aGlzLnJlY29yZEJ1dHRvbi52aXNpYmxlID0gZmFsc2U7CiAg
ICAgICAgICAgICB0aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRlbXNDb250YWluZXIuYWRkU3R5
bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAgICB0aGlzLmNsZWFyUmVzdWx0c0J1dHRvbi5l
bGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAgICAgdGhpcy5wYW5lbEVu
YWJsZXJWaWV3LnNob3codGhpcy5lbGVtZW50KTsKQEAgLTkyMyw2ICs5MjksMjAgQEAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCitXZWJJ
bnNwZWN0b3IuUHJvZmlsZVR5cGVUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHRpdGxlKQoreworICAg
IFdlYkluc3BlY3Rvci5TaWRlYmFyU2VjdGlvblRyZWVFbGVtZW50LmNhbGwodGhpcywgdGl0bGUs
IG51bGwsIHRydWUpOworfQorCitXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGVUcmVlRWxlbWVudC5w
cm90b3R5cGUgPSB7CisgICAgY29sbGFwc2U6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIC8v
IFNob3VsZCBub3QgY29sbGFwc2UuCisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuUHJvZmlsZVR5
cGVUcmVlRWxlbWVudC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNpZGViYXJT
ZWN0aW9uVHJlZUVsZW1lbnQucHJvdG90eXBlOworCiBXZWJJbnNwZWN0b3IuUHJvZmlsZVNpZGVi
YXJUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHByb2ZpbGUsIHRpdGxlRm9ybWF0LCBjbGFzc05hbWUp
CiB7CiAgICAgdGhpcy5wcm9maWxlID0gcHJvZmlsZTsKQEAgLTk5NSwzICsxMDE1LDM5IEBAIFdl
Ykluc3BlY3Rvci5Qcm9maWxlR3JvdXBTaWRlYmFyVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewog
fQogCiBXZWJJbnNwZWN0b3IuUHJvZmlsZUdyb3VwU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlw
ZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZTsK
KworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2lkZWJh
clRyZWVFbGVtZW50fQorICovCitXZWJJbnNwZWN0b3IuUHJvZmlsZXNTaWRlYmFyVHJlZUVsZW1l
bnQgPSBmdW5jdGlvbihwYW5lbCkKK3sKKyAgICB0aGlzLl9wYW5lbCA9IHBhbmVsOworICAgIHRo
aXMuc21hbGwgPSBmYWxzZTsKKworICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyVHJlZUVsZW1lbnQu
Y2FsbCh0aGlzLCAicHJvZmlsZS1sYXVuY2hlci12aWV3LXRyZWUtaXRlbSIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUHJvZmlsZXMiKSwgIiIsIG51bGwsIGZhbHNlKTsKK30KKworV2ViSW5zcGVj
dG9yLlByb2ZpbGVzU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKKyAgICBvbmF0dGFj
aDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlNpZGViYXJUcmVlRWxl
bWVudC5wcm90b3R5cGUub25hdHRhY2guY2FsbCh0aGlzKTsKKyAgICB9LAorCisgICAgb25zZWxl
Y3Q6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BhbmVsLl9zaG93TGF1bmNoZXJW
aWV3KCk7CisgICAgfSwKKworICAgIGdldCBzZWxlY3RhYmxlKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0sCisKKyAgICByZWZyZXNoOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICB0aGlzLnJlZnJlc2hUaXRsZXMoKTsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5Qcm9m
aWxlc1NpZGViYXJUcmVlRWxlbWVudC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9y
LlNpZGViYXJUcmVlRWxlbWVudC5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5kZXggYzZlNWQ0NDhiZWU0N2MxMmI3YjFiYTM5OGJl
MjExMzFiNTg1ZmYxMy4uNjc0MmJmOTZlMDBhOTU0MTVmMzNjYjZhNmFlYTBkODNlOTU3ZDQ4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJj
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAt
ODksNiArODksNyBAQAogICAgIDxmaWxlPlBsYWNhcmQuanM8L2ZpbGU+CiAgICAgPGZpbGU+UG9w
b3Zlci5qczwvZmlsZT4KICAgICA8ZmlsZT5Qcm9maWxlRGF0YUdyaWRUcmVlLmpzPC9maWxlPgor
ICAgIDxmaWxlPlByb2ZpbGVMYXVuY2hlclZpZXcuanM8L2ZpbGU+CiAgICAgPGZpbGU+UHJvZmls
ZXNQYW5lbC5qczwvZmlsZT4KICAgICA8ZmlsZT5Qcm9maWxlVmlldy5qczwvZmlsZT4KICAgICA8
ZmlsZT5Qcm9wZXJ0aWVzU2VjdGlvbi5qczwvZmlsZT4KQEAgLTE1Myw3ICsxNTQsNiBAQAogICAg
IDxmaWxlPnV0aWxpdGllcy5qczwvZmlsZT4KICAgICA8ZmlsZT5WaWV3LmpzPC9maWxlPgogICAg
IDxmaWxlPldhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qczwvZmlsZT4KLSAgICA8ZmlsZT5X
ZWxjb21lVmlldy5qczwvZmlsZT4KICAgICA8ZmlsZT5Xb3JrZXJNYW5hZ2VyLmpzPC9maWxlPgog
ICAgIDxmaWxlPldvcmtlcnNTaWRlYmFyUGFuZS5qczwvZmlsZT4KICAgICA8ZmlsZT5VZ2xpZnlK
Uy9wYXJzZS1qcy5qczwvZmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvV2VsY29tZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1dlbGNvbWVWaWV3LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YTk3
ODkyMTM2MmQ4ZTg2MjJiYWNmYjM3OWFhZjhmMjFiYjY3NWQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvV2VsY29tZVZpZXcuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwot
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8qKgot
ICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQotICogQGNvbnN0cnVjdG9yCi0gKi8KLVdl
Ykluc3BlY3Rvci5XZWxjb21lVmlldyA9IGZ1bmN0aW9uKGlkZW50aWZpZXIsIGhlYWRpbmdUZXh0
LCBpbnN0cnVjdGlvbnNUZXh0KQotewotICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7
Ci0gICAgdGhpcy5yZWdpc3RlclJlcXVpcmVkQ1NTKCJwYW5lbEVuYWJsZXJWaWV3LmNzcyIpOwot
Ci0gICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInBhbmVsLWVuYWJsZXItdmlldyIpOwot
ICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKGlkZW50aWZpZXIpOwotICAgIHRoaXMuZWxl
bWVudC5hZGRTdHlsZUNsYXNzKCJ3ZWxjb21lIik7Ci0KLSAgICB0aGlzLmNvbnRlbnRFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy5jb250ZW50RWxlbWVu
dC5jbGFzc05hbWUgPSAicGFuZWwtZW5hYmxlci12aWV3LWNvbnRlbnQiOwotICAgIHRoaXMuZWxl
bWVudC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRlbnRFbGVtZW50KTsKLQotICAgIHRoaXMuYWxpZ25l
ckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLmFsaWdu
ZXJFbGVtZW50LmNsYXNzTmFtZSA9ICJ3ZWxjb21lLWluc3RydWN0aW9ucy1hbGlnbmVyIjsKLSAg
ICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuYWxpZ25lckVsZW1lbnQpOwot
Ci0gICAgdGhpcy5pbnN0cnVjdGlvbnNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Ci0gICAgdGhpcy5pbnN0cnVjdGlvbnNFbGVtZW50LmNsYXNzTmFtZSA9ICJpbnN0cnVj
dGlvbnMiOwotICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5pbnN0cnVj
dGlvbnNFbGVtZW50KTsKLQotICAgIHRoaXMuaGVhZGVyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImgxIik7Ci0gICAgdGhpcy5oZWFkZXJFbGVtZW50LnRleHRDb250ZW50ID0gaGVh
ZGluZ1RleHQ7Ci0gICAgdGhpcy5pbnN0cnVjdGlvbnNFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
aGVhZGVyRWxlbWVudCk7Ci0KLSAgICBpZiAoaW5zdHJ1Y3Rpb25zVGV4dCkKLSAgICAgICAgdGhp
cy5hZGRNZXNzYWdlKGluc3RydWN0aW9uc1RleHQpOwotfQotCi1XZWJJbnNwZWN0b3IuV2VsY29t
ZVZpZXcucHJvdG90eXBlID0gewotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfEVsZW1l
bnR9IG1lc3NhZ2UKLSAgICAgKi8KLSAgICBhZGRNZXNzYWdlOiBmdW5jdGlvbihtZXNzYWdlKQot
ICAgIHsKLSAgICAgICAgdmFyIG1lc3NhZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7Ci0gICAgICAgIG1lc3NhZ2VFbGVtZW50LmNsYXNzTmFtZSA9ICJtZXNzYWdlIjsK
LSAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAic3RyaW5nIikKLSAgICAgICAgICAgIG1l
c3NhZ2VFbGVtZW50LnRleHRDb250ZW50ID0gbWVzc2FnZTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgbWVzc2FnZUVsZW1lbnQuYXBwZW5kQ2hpbGQobWVzc2FnZSk7Ci0gICAgICAgIHRoaXMu
aW5zdHJ1Y3Rpb25zRWxlbWVudC5hcHBlbmRDaGlsZChtZXNzYWdlRWxlbWVudCk7Ci0gICAgfQot
fQotCi1XZWJJbnNwZWN0b3IuV2VsY29tZVZpZXcucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYklu
c3BlY3Rvci5WaWV3LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvYXVkaXRzUGFuZWwuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9hdWRpdHNQYW5lbC5jc3MKaW5kZXggNGNlYWJiNzU4MTFjMTJmOWRiZDgyZWEy
Y2U4OWRhYWQ1MWFmZWM1Yy4uODRhNmE1MGNlMmZkN2YzNzVjZDNhOTJlMGNhZDY0MjI0NDIyYTc5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9hdWRpdHNQ
YW5lbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9hdWRpdHNQ
YW5lbC5jc3MKQEAgLTY0LDE0ICs2NCwxMSBAQAogICAgIHBhZGRpbmc6IDAgMCAwIDE2cHg7CiAg
ICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICB0
ZXh0LWFsaWduOiBsZWZ0OwogICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiB9CiAK
IC5hdWRpdC1sYXVuY2hlci12aWV3IGgxIHsKLSAgICBjb2xvcjogcmdiKDExMCwgMTE2LCAxMjgp
OwotICAgIGZvbnQtc2l6ZTogMTZweDsKLSAgICBsaW5lLWhlaWdodDogMjBweDsKLSAgICBmb250
LXdlaWdodDogbm9ybWFsOwogICAgIHBhZGRpbmctdG9wOiAxNXB4OwogfQogCkBAIC04OCw5ICs4
NSw2IEBACiAgICAgd2lkdGg6IDEwMCU7CiAgICAgcGFkZGluZzogMTZweCAwOwogfQotLmF1ZGl0
LWxhdW5jaGVyLXZpZXcgLmZsZXhpYmxlLXNwYWNlIHsKLSAgICAtd2Via2l0LWJveC1mbGV4OiAx
OwotfQogCiAuYXVkaXQtbGF1bmNoZXItdmlldyBkaXYuYXVkaXQtY2F0ZWdvcmllcy1jb250YWlu
ZXIgewogICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKQEAgLTEwMSwxNiArOTUsNiBAQAogfQogCiAu
YXVkaXQtbGF1bmNoZXItdmlldyBidXR0b24gewotICAgIGNvbG9yOiByZ2IoNiwgNiwgNik7Ci0g
ICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Ci0gICAgYm9yZGVyOiAxcHggc29saWQg
cmdiKDE2NSwgMTY1LCAxNjUpOwotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzcsIDIzNywg
MjM3KTsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVm
dCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYigyNTIsIDI1MiwgMjUyKSksIHRvKHJnYigyMjMs
IDIyMywgMjIzKSkpOwotICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTJweDsKLSAgICAtd2Vi
a2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci19Ci0KLS5hdWRpdC1sYXVuY2hlci12aWV3IGJ1dHRvbiB7
CiAgICAgZm9udC1zaXplOiAxM3B4OwogICAgIHBhZGRpbmc6IDNweCAyMHB4OwogICAgIGhlaWdo
dDogMjRweDsKQEAgLTEyMiwyMiArMTA2LDEyIEBACiAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdl
YmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMTk0
LCAxOTQsIDE5NCkpLCB0byhyZ2IoMjM5LCAyMzksIDIzOSkpKTsKIH0KIAotYm9keS5pbmFjdGl2
ZSAuYXVkaXQtbGF1bmNoZXItdmlldyBidXR0b24sIC5hdWRpdC1sYXVuY2hlci12aWV3IGJ1dHRv
bjpkaXNhYmxlZCB7Ci0gICAgY29sb3I6IHJnYigxMzAsIDEzMCwgMTMwKTsKLSAgICBib3JkZXIt
Y29sb3I6IHJnYigyMTIsIDIxMiwgMjEyKTsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5
LCAyMzksIDIzOSk7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5l
YXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMjUwLCAyNTAsIDI1MCkpLCB0byhy
Z2IoMjM1LCAyMzUsIDIzNSkpKTsKLX0KLQotLmF1ZGl0LWxhdW5jaGVyLXZpZXcgbGFiZWwgewot
ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICB0ZXh0LWFs
aWduOiBsZWZ0OwotICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CisucGFuZWwtZW5hYmxlci12
aWV3LmF1ZGl0LWxhdW5jaGVyLXZpZXcgbGFiZWwgewogICAgIHBhZGRpbmc6IDAgMCA1cHggMDsK
KyAgICBtYXJnaW46IDA7CiB9CiAKLS5hdWRpdC1sYXVuY2hlci12aWV3IGxhYmVsLmRpc2FibGVk
IHsKKy5wYW5lbC1lbmFibGVyLXZpZXcuYXVkaXQtbGF1bmNoZXItdmlldyBsYWJlbC5kaXNhYmxl
ZCB7CiAgICAgY29sb3I6IHJnYigxMzAsIDEzMCwgMTMwKTsKIH0KIApAQCAtMTQ1LDI2ICsxMTks
NiBAQCBib2R5LmluYWN0aXZlIC5hdWRpdC1sYXVuY2hlci12aWV3IGJ1dHRvbiwgLmF1ZGl0LWxh
dW5jaGVyLXZpZXcgYnV0dG9uOmRpc2FibGVkCiAgICAgbWFyZ2luLWxlZnQ6IDA7CiB9CiAKLS5h
dWRpdC1sYXVuY2hlci12aWV3IGlucHV0W3R5cGU9InJhZGlvIl0gewotICAgIGhlaWdodDogMTdw
eDsKLSAgICB3aWR0aDogMTdweDsKLSAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTY1LCAxNjUs
IDE2NSk7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxl
ZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMjUyLCAyNTIsIDI1MikpLCB0byhyZ2IoMjIz
LCAyMjMsIDIyMykpKTsKLSAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDhweDsKLSAgICAtd2Vi
a2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci0gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKLSAgICBt
YXJnaW46IDAgNXB4IDVweCAwOwotfQotCi0uYXVkaXQtbGF1bmNoZXItdmlldyBpbnB1dFt0eXBl
PSJyYWRpbyJdOmFjdGl2ZTpub3QoOmRpc2FibGVkKSB7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2Io
MTk0LCAxOTQsIDE5NCkpLCB0byhyZ2IoMjM5LCAyMzksIDIzOSkpKTsKLX0KLQotLmF1ZGl0LWxh
dW5jaGVyLXZpZXcgaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2VkOm5vdCg6ZGlzYWJsZWQpLCAu
YXVkaXQtbGF1bmNoZXItdmlldyBpbnB1dFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQ6ZGlzYWJsZWQg
ewotICAgIGJhY2tncm91bmQ6IHVybChJbWFnZXMvcmFkaW9Eb3QucG5nKSBjZW50ZXIgbm8tcmVw
ZWF0LAotICAgICAgICAgICAgICAgIC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwg
bGVmdCBib3R0b20sIGZyb20ocmdiKDI1MiwgMjUyLCAyNTIpKSwgdG8ocmdiKDIyMywgMjIzLCAy
MjMpKSk7Ci19Ci0KIC5hdWRpdC1sYXVuY2hlci12aWV3IC5yZXNvdXJjZS1wcm9ncmVzcyA+IGlt
ZyB7CiAgICAgY29udGVudDogdXJsKEltYWdlcy9zcGlubmVyLmdpZik7CiAgICAgdmVydGljYWwt
YWxpZ246IHRleHQtdG9wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggMTVkNTJmOWUzMmEyNjVkYjQxOTMxMDhjNGY5NmE1YjU5
MjhjNjQzYS4uMmY0NGE0ZjhmYzZiNjUwYmMyYTIwNjdlMjBmM2Y5Mzc2ZWQxZGQxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBA
IC0xMDUsNyArMTA1LDYgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJDU1NLZXl3b3JkQ29tcGxldGlvbnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlN0eWxlc1NpZGViYXJQYW5lLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJQYW5lbEVuYWJs
ZXJWaWV3LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJXZWxjb21lVmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iU3RhdHVzQmFyQnV0dG9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJFbGVtZW50c1BhbmVsLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJOZXR3b3JrUGFuZWwuanMi
Pjwvc2NyaXB0PgpAQCAtMTUzLDYgKzE1Miw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSW1hZ2VWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJEYXRhYmFzZVRhYmxlVmlldy5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRGF0YWJhc2VR
dWVyeVZpZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9IlByb2ZpbGVMYXVuY2hlclZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlByb2ZpbGVEYXRhR3JpZFRyZWUuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkJvdHRvbVVwUHJvZmls
ZURhdGFHcmlkVHJlZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iVG9wRG93blByb2ZpbGVEYXRhR3JpZFRyZWUuanMiPjwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9wYW5lbEVuYWJsZXJW
aWV3LmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvcGFuZWxFbmFibGVy
Vmlldy5jc3MKaW5kZXggZDczYzZjYmZjMmI5NWRlMGE3ODlhYWQ0NjNjOWExZWYyMmFhNTAyMC4u
OTY0YWIxYWRhNWI4YjY3YzQ1NDZhYjI3ZDAxZGU1YzQ5MDViOWIxOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9wYW5lbEVuYWJsZXJWaWV3LmNzcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3BhbmVsRW5hYmxlclZpZXcuY3Nz
CkBAIC03Niw3ICs3Niw3IEBACiAgICAgZGlzcGxheTogbm9uZTsKIH0KIAotLnBhbmVsLWVuYWJs
ZXItdmlldyBpbWcsIGRpdi53ZWxjb21lLWluc3RydWN0aW9ucy1hbGlnbmVyIHsKKy5wYW5lbC1l
bmFibGVyLXZpZXcgaW1nIHsKICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgbWluLWhlaWdodDogMjAw
cHg7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwpAQCAtOTIsNiArOTIsMTAgQEAKICAgICB3aWR0aDog
MDsKIH0KIAorLnBhbmVsLWVuYWJsZXItdmlldyAuZmxleGlibGUtc3BhY2UgeworICAgIC13ZWJr
aXQtYm94LWZsZXg6IDE7Cit9CisKIC5wYW5lbC1lbmFibGVyLXZpZXcgZm9ybSB7CiAgICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOwogICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CkBAIC0xMTQs
MzUgKzExOCwyMiBAQAogICAgIG1hcmdpbjogNnB4IDAgMCAwOwogICAgIHBhZGRpbmc6IDNweCAy
MHB4OwogICAgIGhlaWdodDogMjRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVu
dDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTY1LCAxNjUsIDE2NSk7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogcmdiKDIzNywgMjM3LCAyMzcpOworICAgIGJhY2tncm91bmQtaW1hZ2U6IC13
ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiKDI1
MiwgMjUyLCAyNTIpKSwgdG8ocmdiKDIyMywgMjIzLCAyMjMpKSk7CisgICAgLXdlYmtpdC1ib3Jk
ZXItcmFkaXVzOiAxMnB4OworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKIH0KIAotLnBh
bmVsLWVuYWJsZXItdmlldy53ZWxjb21lIHsKLSAgICB6LWluZGV4OiBhdXRvOwotfQotCi0ucGFu
ZWwtZW5hYmxlci12aWV3LndlbGNvbWUgZGl2LndlbGNvbWUtaW5zdHJ1Y3Rpb25zLWFsaWduZXIg
ewotICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAgICB3aWR0aDogMDsKLX0KLQotLnBhbmVs
LWVuYWJsZXItdmlldy53ZWxjb21lIC5pbnN0cnVjdGlvbnMgewotICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwotICAgIG1hcmdpbjogMDsKLSAg
ICB3aGl0ZS1zcGFjZTogbm9ybWFsOwotICAgIGxpbmUtaGVpZ2h0OiAxNzUlOwotfQotCi0ucGFu
ZWwtZW5hYmxlci12aWV3LndlbGNvbWUgLm1lc3NhZ2UgewotICAgIG1hcmdpbi1ib3R0b206IDJl
eDsKLX0KLQotLnBhbmVsLWVuYWJsZXItdmlldy53ZWxjb21lIGJ1dHRvbi5zdGF0dXMtYmFyLWl0
ZW0gewotICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7Ci0gICAgdmVydGljYWwtYWxpZ246IHRv
cDsKK2JvZHkuaW5hY3RpdmUgLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b24sIC5wYW5lbC1lbmFi
bGVyLXZpZXcgYnV0dG9uOmRpc2FibGVkIHsKKyAgICBjb2xvcjogcmdiKDEzMCwgMTMwLCAxMzAp
OworICAgIGJvcmRlci1jb2xvcjogcmdiKDIxMiwgMjEyLCAyMTIpOworICAgIGJhY2tncm91bmQt
Y29sb3I6IHJnYigyMzksIDIzOSwgMjM5KTsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0
LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYigyNTAsIDI1
MCwgMjUwKSksIHRvKHJnYigyMzUsIDIzNSwgMjM1KSkpOwogfQogCi0ucGFuZWwtZW5hYmxlci12
aWV3IGlucHV0IHsKKy5wYW5lbC1lbmFibGVyLXZpZXcgaW5wdXRbdHlwZT0icmFkaW8iXSB7CiAg
ICAgaGVpZ2h0OiAxN3B4OwogICAgIHdpZHRoOiAxN3B4OwogICAgIGJvcmRlcjogMXB4IHNvbGlk
IHJnYigxNjUsIDE2NSwgMTY1KTsKQEAgLTE1MywxNSArMTQ0LDIwIEBACiAgICAgbWFyZ2luOiAw
IDVweCA1cHggMDsKIH0KIAotLnBhbmVsLWVuYWJsZXItdmlldyBpbnB1dDphY3RpdmUgeworLnBh
bmVsLWVuYWJsZXItdmlldyBpbnB1dFt0eXBlPSJyYWRpbyJdOmFjdGl2ZTpub3QoOmRpc2FibGVk
KSB7CiAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQg
dG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMTk0LCAxOTQsIDE5NCkpLCB0byhyZ2IoMjM5LCAy
MzksIDIzOSkpKTsKIH0KIAotLnBhbmVsLWVuYWJsZXItdmlldyBpbnB1dDpjaGVja2VkIHsKKy5w
YW5lbC1lbmFibGVyLXZpZXcgaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2VkIHsKICAgICBiYWNr
Z3JvdW5kOiB1cmwoSW1hZ2VzL3JhZGlvRG90LnBuZykgY2VudGVyIG5vLXJlcGVhdCwKICAgICAg
ICAgICAgICAgICAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9t
LCBmcm9tKHJnYigyNTIsIDI1MiwgMjUyKSksIHRvKHJnYigyMjMsIDIyMywgMjIzKSkpOwogfQog
CisucGFuZWwtZW5hYmxlci12aWV3IGlucHV0W3R5cGU9InJhZGlvIl06Y2hlY2tlZDphY3RpdmUg
eworICAgIGJhY2tncm91bmQ6IHVybChJbWFnZXMvcmFkaW9Eb3QucG5nKSBjZW50ZXIgbm8tcmVw
ZWF0LAorICAgICAgICAgICAgICAgIC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwg
bGVmdCBib3R0b20sIGZyb20ocmdiKDE5NCwgMTk0LCAxOTQpKSwgdG8ocmdiKDIzOSwgMjM5LCAy
MzkpKSk7Cit9CisKIC5wYW5lbC1lbmFibGVyLXZpZXcuc2NyaXB0cyBpbWcgewogICAgIGNvbnRl
bnQ6IHVybChJbWFnZXMvc2NyaXB0c1NpbGhvdWV0dGUucG5nKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvcHJvZmlsZXNQYW5lbC5jc3MgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Byb2ZpbGVzUGFuZWwuY3NzCmluZGV4IGZh
ZTI5OWI0YzIwYzY2ODY5MWI3YzFmZjNlZTdjNTI1Y2I2MmU2MzEuLmUxN2RjOTQwNDFiYmFmZGMy
NjZkYjc5M2JkOTUwMWU1OGQ1NDU0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvcHJvZmlsZXNQYW5lbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9wcm9maWxlc1BhbmVsLmNzcwpAQCAtNDcsNiArNDcsMTIgQEAKICAg
ICBtYXJnaW4tbGVmdDogLTFweDsKIH0KIAorLnByb2ZpbGUtbGF1bmNoZXItdmlldy10cmVlLWl0
ZW0gPiAuaWNvbiB7CisgICAgcGFkZGluZzogMTVweDsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1
cmwoSW1hZ2VzL3Rvb2xiYXJJY29ucy5wbmcpOworICAgIGJhY2tncm91bmQtcG9zaXRpb24teDog
LTE2MHB4OworfQorCiAucHJvZmlsZS1zaWRlYmFyLXRyZWUtaXRlbSAuaWNvbiB7CiAgICAgY29u
dGVudDogdXJsKEltYWdlcy9wcm9maWxlSWNvbi5wbmcpOwogfQpAQCAtMTQwLDMgKzE0Niw0OSBA
QAogLnJlc2V0LXByb2ZpbGUtc3RhdHVzLWJhci1pdGVtIC5nbHlwaCB7CiAgICAgLXdlYmtpdC1t
YXNrLXBvc2l0aW9uOiAwIDA7CiB9CisKKy5wcm9maWxlLWxhdW5jaGVyLXZpZXctY29udGVudCB7
CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICByaWdodDogMDsKKyAg
ICBib3R0b206IDA7CisgICAgbGVmdDogMDsKKyAgICBwYWRkaW5nOiAwIDAgMCAxNnB4OworICAg
IGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgLXdlYmtp
dC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKK30KKworLnByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250
ZW50IGgxIHsKKyAgICBwYWRkaW5nOiAxNXB4IDAgMTBweDsKK30KKworLnBhbmVsLWVuYWJsZXIt
dmlldy5wcm9maWxlLWxhdW5jaGVyLXZpZXcgZm9ybSB7CisgICAgcGFkZGluZzogMDsKKyAgICBm
b250LXNpemU6IDEzcHg7CisgICAgd2lkdGg6IDEwMCU7Cit9CisKKy5wYW5lbC1lbmFibGVyLXZp
ZXcucHJvZmlsZS1sYXVuY2hlci12aWV3IGxhYmVsIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7CisgICAgbWFyZ2luOiAwOworfQorCisucHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQg
cCB7CisgICAgY29sb3I6IGdyZXk7CisgICAgbWFyZ2luLXRvcDogMXB4OworICAgIG1hcmdpbi1s
ZWZ0OiAyMnB4OworfQorCisucGFuZWwtZW5hYmxlci12aWV3LnByb2ZpbGUtbGF1bmNoZXItdmll
dyBidXR0b246bm90KC5zdGF0dXMtYmFyLWl0ZW0pIHsKKyAgICBjb2xvcjogcmdiKDYsIDYsIDYp
OworICAgIG1hcmdpbjogMTZweCAwOworfQorCisucHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRl
bnQgYnV0dG9uLnJ1bm5pbmc6bm90KC5zdGF0dXMtYmFyLWl0ZW0pIHsKKyAgICBjb2xvcjogcmVk
OworfQorCitib2R5LmluYWN0aXZlIC5wcm9maWxlLWxhdW5jaGVyLXZpZXctY29udGVudCBidXR0
b24ucnVubmluZzpub3QoLnN0YXR1cy1iYXItaXRlbSkgeworICAgIGNvbG9yOiByZ2IoMjIwLCAx
MzAsIDEzMCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNThiZjVhNzkwNzk1N2VhNDM4M2Q4NGEzNmM0ZGViNWE1NTU3
ZTNiZS4uZWIyYzQyN2FjZDI4ZTljZTE2YjQ1NWQwNWEwZjNmOTE4MjgyNTU4NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDExLTEyLTI4ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogSW50cm9kdWNlIGEgUHJvZmlsZXIg
bGF1bmNoZXIgdmlldyBzaW1pbGFyIHRvIHRoYXQgaW4gdGhlIEF1ZGl0cyBwYW5lbAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyMjgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9wcm9m
aWxlci9wcm9maWxlci10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9Qcm9maWxlclRlc3Qp
OgorCiAyMDExLTEyLTI3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCBwYXNzL2NyYXNoIGV4cGVjdGF0aW9uIGZvciBzdmcvVzNDLVNWRy0xLjEvYW5pbWF0
ZS1lbGVtLTUyLXQuc3ZnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvcHJvZmlsZXItdGVzdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9wcm9m
aWxlci10ZXN0LmpzCmluZGV4IGZkNTQ1ZDA4YmIzOTU1ZDQ2NDg3ODk5MGU1YzM0OTU0MjA0MTVj
N2YuLmNjYTQ5MmEyM2FlMjJiNTllNzlmMGI2ZDU3NDI0ZDIzNDJiYmUyNjEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9wcm9maWxlci10ZXN0LmpzCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9wcm9maWxlci10ZXN0LmpzCkBAIC03NSw3ICs3
NSw3IEBAIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUHJvZmlsZVZpZXdJc1Nob3duID0gZnVuY3Rp
b24odGl0bGUsIGNhbGxiYWNrKQogICAgIGNhbGxiYWNrID0gSW5zcGVjdG9yVGVzdC5zYWZlV3Jh
cChjYWxsYmFjayk7CiAKICAgICB2YXIgcHJvZmlsZXNQYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5l
bHMucHJvZmlsZXM7Ci0gICAgaWYgKHByb2ZpbGVzUGFuZWwudmlzaWJsZVZpZXcgJiYgcHJvZmls
ZXNQYW5lbC52aXNpYmxlVmlldy5wcm9maWxlLnRpdGxlID09PSB0aXRsZSkKKyAgICBpZiAocHJv
ZmlsZXNQYW5lbC52aXNpYmxlVmlldyAmJiBwcm9maWxlc1BhbmVsLnZpc2libGVWaWV3LnByb2Zp
bGUgJiYgcHJvZmlsZXNQYW5lbC52aXNpYmxlVmlldy5wcm9maWxlLnRpdGxlID09PSB0aXRsZSkK
ICAgICAgICAgY2FsbGJhY2socHJvZmlsZXNQYW5lbC52aXNpYmxlVmlldyk7CiAgICAgZWxzZQog
ICAgICAgICBJbnNwZWN0b3JUZXN0Ll93YWl0VW50aWxQcm9maWxlVmlld0lzU2hvd25DYWxsYmFj
ayA9IHsgdGl0bGU6IHRpdGxlLCBjYWxsYmFjazogY2FsbGJhY2sgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120664</attachid>
            <date>2011-12-28 06:40:42 -0800</date>
            <delta_ts>2011-12-28 06:56:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75228-20111228184040.patch</filename>
            <type>text/plain</type>
            <size>47242</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQwNTcyZTJmNzM0MWU3
NGZhZTM0MWM4N2MwY2JmMjIwYmJhNzBhYy4uYjcxMzRhZTRkOWVjMWE0Yzc2OGY1ODg3MDUyY2Jh
YzA3NmU5YzYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDExLTEyLTI4ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW50cm9kdWNlIGEgUHJvZmlsZXIgbGF1bmNoZXIgdmlldyBzaW1pbGFyIHRvIHRoYXQg
aW4gdGhlIEF1ZGl0cyBwYW5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzUyMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdExhdW5jaGVyVmlldy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdExhdW5jaGVyVmlldyk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRp
dHNQYW5lbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90
Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90UHJvZmlsZVR5
cGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNob3RQcm9maWxlVHlwZS5w
cm90b3R5cGUuZ2V0IHRyZWVJdGVtVGl0bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFp
bGVkSGVhcHNob3RQcm9maWxlVHlwZS5wcm90b3R5cGUuZ2V0IGRlc2NyaXB0aW9uKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVMYXVuY2hlclZpZXcuanM6IEFkZGVkLgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlLnNldFVwRXZlbnRMaXN0ZW5l
cnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBl
LmFkZFByb2ZpbGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJW
aWV3LnByb3RvdHlwZS5fY29udHJvbEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlLl91cGRhdGVDb250cm9scyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5wcm90b3R5cGUuX3Byb2ZpbGVU
eXBlQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5w
cm90b3R5cGUuX29uUHJvZmlsZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2Zp
bGVMYXVuY2hlclZpZXcucHJvdG90eXBlLl9vblByb2ZpbGVGaW5pc2hlZCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5DUFVQcm9maWxlVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUu
cHJvdG90eXBlLmdldCB0cmVlSXRlbVRpdGxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DUFVQ
cm9maWxlVHlwZS5wcm90b3R5cGUuZ2V0IGRlc2NyaXB0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJv
ZmlsZVR5cGUucHJvdG90eXBlLmdldCB0cmVlSXRlbVRpdGxlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Qcm9maWxlVHlwZS5wcm90b3R5cGUuZ2V0IGRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5nZXQgc3RhdHVzQmFySXRlbXMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnRvZ2dsZVJlY29y
ZEJ1dHRvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUu
X29uUHJvZmlsZVR5cGVTZWxlY3RlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQ
YW5lbC5wcm90b3R5cGUuX3Jlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsLnByb3RvdHlwZS5fc2hvd0xhdW5jaGVyVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3JlZ2lzdGVyUHJvZmlsZVR5cGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9hZGRQcm9maWxlSGVhZGVyKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5fdXBkYXRlSW50
ZXJmYWNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZVRyZWVFbGVtZW50KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZVRyZWVFbGVtZW50LnByb3RvdHlwZS5j
b2xsYXBzZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNTaWRlYmFyVHJlZUVsZW1l
bnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzU2lkZWJhclRyZWVFbGVtZW50LnBy
b3RvdHlwZS5vbmF0dGFjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNTaWRlYmFy
VHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Q
cm9maWxlc1NpZGViYXJUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IHNlbGVjdGFibGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZS5y
ZWZyZXNoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9XZWxjb21lVmlldy5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2F1ZGl0c1BhbmVsLmNzczoKKyAgICAgICAgKC5hdWRp
dC1sYXVuY2hlci12aWV3IC5hdWRpdC1sYXVuY2hlci12aWV3LWNvbnRlbnQpOgorICAgICAgICAo
LmF1ZGl0LWxhdW5jaGVyLXZpZXcgZGl2LmJ1dHRvbi1jb250YWluZXIpOgorICAgICAgICAoLnBh
bmVsLWVuYWJsZXItdmlldy5hdWRpdC1sYXVuY2hlci12aWV3IGxhYmVsKToKKyAgICAgICAgKC5w
YW5lbC1lbmFibGVyLXZpZXcuYXVkaXQtbGF1bmNoZXItdmlldyBsYWJlbC5kaXNhYmxlZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL3BhbmVsRW5hYmxlclZpZXcuY3NzOgorICAgICAgICAoLnBhbmVs
LWVuYWJsZXItdmlldyBpbWcpOgorICAgICAgICAoLnBhbmVsLWVuYWJsZXItdmlldyAuZmxleGli
bGUtc3BhY2UpOgorICAgICAgICAoLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246bm90KC5zdGF0
dXMtYmFyLWl0ZW0pKToKKyAgICAgICAgKGJvZHkuaW5hY3RpdmUgLnBhbmVsLWVuYWJsZXItdmll
dyBidXR0b24sIC5wYW5lbC1lbmFibGVyLXZpZXcgYnV0dG9uOmRpc2FibGVkKToKKyAgICAgICAg
KC5wYW5lbC1lbmFibGVyLXZpZXcgaW5wdXRbdHlwZT0icmFkaW8iXSk6CisgICAgICAgICgucGFu
ZWwtZW5hYmxlci12aWV3IGlucHV0W3R5cGU9InJhZGlvIl06YWN0aXZlOm5vdCg6ZGlzYWJsZWQp
KToKKyAgICAgICAgKC5wYW5lbC1lbmFibGVyLXZpZXcgaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVj
a2VkKToKKyAgICAgICAgKC5wYW5lbC1lbmFibGVyLXZpZXcgaW5wdXRbdHlwZT0icmFkaW8iXTpj
aGVja2VkOmFjdGl2ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9wcm9maWxlc1Bh
bmVsLmNzczoKKyAgICAgICAgKC5wcm9maWxlLWxhdW5jaGVyLXZpZXctdHJlZS1pdGVtID4gLmlj
b24pOgorICAgICAgICAoLnByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250ZW50KToKKyAgICAgICAg
KC5wcm9maWxlLWxhdW5jaGVyLXZpZXctY29udGVudCBoMSk6CisgICAgICAgICgucGFuZWwtZW5h
Ymxlci12aWV3LnByb2ZpbGUtbGF1bmNoZXItdmlldyBmb3JtKToKKyAgICAgICAgKC5wYW5lbC1l
bmFibGVyLXZpZXcucHJvZmlsZS1sYXVuY2hlci12aWV3IGxhYmVsKToKKyAgICAgICAgKC5wcm9m
aWxlLWxhdW5jaGVyLXZpZXctY29udGVudCBwKToKKyAgICAgICAgKC5wYW5lbC1lbmFibGVyLXZp
ZXcucHJvZmlsZS1sYXVuY2hlci12aWV3IGJ1dHRvbjpub3QoLnN0YXR1cy1iYXItaXRlbSkpOgor
ICAgICAgICAoLnByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250ZW50IGJ1dHRvbi5ydW5uaW5nOm5v
dCguc3RhdHVzLWJhci1pdGVtKSk6CisgICAgICAgIChib2R5LmluYWN0aXZlIC5wcm9maWxlLWxh
dW5jaGVyLXZpZXctY29udGVudCBidXR0b24ucnVubmluZzpub3QoLnN0YXR1cy1iYXItaXRlbSkp
OgorCiAyMDExLTEyLTI3ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBjb21wbGV0ZSBhbm5vdGF0aW5nIFNESyBjb21wb25lbnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMK
aW5kZXggMmQwMGFiYTg5MmQ5ZGVlOWQ4NmYwZGZiMmMwZmZjZWQ2MjgzM2U2ZS4uMTY0NDEzMzIy
NjgwZWE4YTJhNmI5YTZlNGE4ZTZmYzUxZjY1YWI3YSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApk
ZWx0YSA4MTMKemNtZFQ/JnIxU1A1RlNmUk5UTzhDST49XitKWEVNeUxDfmMtYk97JFMyJjc8NSVk
Qj57YndmZ2tpMEJ4fFhpMWwtCnpLPEU8SVVPUitgQFlyN3ZNQXIhVjVCZ1N2aEBmTjhWY3lLVm5R
d2w0QDczPEM0PmZERzd+dFc2aldaUVRVeThDTQp6Sys+ZDg0cHQ2VWlacUJveEBxJXN6SSNsa0hR
SD80dCRwVUpATUw1Tmh7IW0xZlpxbUFBZUFJcU1SYjYmZUNGJW4KeiFePSlxazIqT35hc09GMjgh
elBwRVdUS2M8R15rayVkWlo7QE9mTlFCK0ApYTZmdmttRDtSeCkzdDw8Um9BSXQ2CnphVmB2b2Ny
UiEoeXVyYSVlaksmKWIpPl42TX0mVWtaSzItNnU/MF5ge1ZJbTd6cTRzX3d1eDM2X3pAX0hoRk5m
Pwp6S198ZUwkKlImfFBpa2J6O08hU0NNLS1xa3NKSU5JKismOTQzMm5hQzIwUl93XnJ0Q0d2KFBm
Q0M7NnVBOy18Um4KelUoRVZgOFp4U0o/PklaNzl2MEpYZWwwbH53d3c7TFNhY1ptKHEjS2QhZnRV
fEd+VmhSeDs7T3pNPHJVdjtzVlghCmlsPEByb24jMWEqKSU/fnZgRHFjaTZBKFllNWN4SVZ0WlZG
Ri1SbUU4PSktKmcKCmRlbHRhIDUyNQp6Y21YP2hofj5+OG1KTCVoQ2VQOTBuakVKa0dKT14hQmlD
ZDtaSH49UlNeP35uXlBZMlRQQjdBN3A2dXwyZ3wmencKenBDTTsqfDY8dWwxJUBQc04oS2RuMClg
QG5SRUE8OCV3KSk4TkMlM1BGa31FbDZjfCoyVmp4d2VLIz54bHpDMGlnCnpMYyZ4TzFIfWA4eEQ9
YH41b25nKTxVfHV1Z2d4T2p2UytmUHVLd2YrUnZlckFPYndMVFEtT3w5VWBVKzJmMzw4cQp6alZ4
cilWXkNzPDE9P1pAIzdZZUF6I3N6SzNGTHUtRC1qcnczY3o1PG58eXZYRlU+ckNreVVyfG9gX1JT
bj1AakMKYnRUd2FFYU5eIVBWUjA0NWJPQ3VybWQhbkRjOWo0QzJLalp8CgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDU4ZTVjYzgzNGU1ZWM0MzFhYjdiOThiM2IxNmEwYmRmYzRlMzMxMzcuLjQ0MzMzNGJi
ZjEzNjE4OGVhNDk1ZjIzZDdiOGMwY2RjYzE2YTAyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTY0
NDYsNiArNjQ0Niw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9QbGFjYXJk
LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJlZS5qcycsCisg
ICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlTGF1bmNoZXJWaWV3LmpzJywK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUHJvcGVydGllc1NlY3Rpb24uanMnLApAQCAtNjUxMCw3
ICs2NTExLDYgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5q
cycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcycs
Ci0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9XZWxjb21lVmlldy5qcycsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRlYmFyUGFuZS5qcycsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9nb1RvTGluZURpYWxvZy5jc3MnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzZjcyYjRkNWM3YjAw
OTBjNTk5MzdmOGYyYTE0ZWRkOGI3NDc3YzExLi42ZWEwZmZjZGI4MjA2MWYzZWVkMzUwMGQ3YzE4
OWJkYmExN2U0MzZjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagpAQCAtNzE4MzcsNiArNzE4MzcsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJ
CQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcUHJvZmls
ZUxhdW5jaGVyVmlldy5qcyIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcUHJvZmlsZXNQYW5lbC5qcyIKIAkJ
CQkJPgogCQkJCTwvRmlsZT4KQEAgLTcyMTI5LDEwICs3MjEzMyw2IEBACiAJCQkJCT4KIAkJCQk8
L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQt
ZW5kXFdlbGNvbWVWaWV3LmpzIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxXb3JrZXJzU2lkZWJhclBhbmUu
anMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0F1ZGl0TGF1bmNoZXJWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BdWRpdExhdW5jaGVyVmlldy5qcwppbmRleCA4YjFiMGI2NzkxMWM5
ZThjMzZhZTFkNTk0YjI3OWYyZWFkMjVmMTY2Li45YThlOWRlZTAxYzU2MTAyNDgzOWYzNjQ1MWY1
ZjkwMDk0YWQ2MzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0TGF1bmNoZXJWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQXVkaXRMYXVuY2hlclZpZXcuanMKQEAgLTM1LDEyICszNSwxNCBAQAogV2ViSW5z
cGVjdG9yLkF1ZGl0TGF1bmNoZXJWaWV3ID0gZnVuY3Rpb24ocnVubmVyQ2FsbGJhY2ssIHN0b3BD
YWxsYmFjaykKIHsKICAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOworCiAgICAgdGhp
cy5fcnVubmVyQ2FsbGJhY2sgPSBydW5uZXJDYWxsYmFjazsKICAgICB0aGlzLl9zdG9wQ2FsbGJh
Y2sgPSBzdG9wQ2FsbGJhY2s7CiAgICAgdGhpcy5fY2F0ZWdvcnlJZFByZWZpeCA9ICJhdWRpdC1j
YXRlZ29yeS1pdGVtLSI7CiAgICAgdGhpcy5fYXVkaXRSdW5uaW5nID0gZmFsc2U7CiAKICAgICB0
aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiYXVkaXQtbGF1bmNoZXItdmlldyIpOworICAgIHRo
aXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJwYW5lbC1lbmFibGVyLXZpZXciKTsKIAogICAgIHRo
aXMuX2NvbnRlbnRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAg
dGhpcy5fY29udGVudEVsZW1lbnQuY2xhc3NOYW1lID0gImF1ZGl0LWxhdW5jaGVyLXZpZXctY29u
dGVudCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1
ZGl0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQ
YW5lbC5qcwppbmRleCAxYTMwYjhmOGUzYTViYzM1NWJkNTg1YzhjZTI1ZTZjMmM1OWExODg5Li44
ZTUxYTMyYTJmMzQ1MDNmMWFmODg3NzQwOGU1OTJkMGZlM2RjZmM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKQEAgLTM1LDYgKzM1
LDcgQEAKIFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbCA9IGZ1bmN0aW9uKCkKIHsKICAgICBXZWJJ
bnNwZWN0b3IuUGFuZWwuY2FsbCh0aGlzLCAiYXVkaXRzIik7CisgICAgdGhpcy5yZWdpc3RlclJl
cXVpcmVkQ1NTKCJwYW5lbEVuYWJsZXJWaWV3LmNzcyIpOwogICAgIHRoaXMucmVnaXN0ZXJSZXF1
aXJlZENTUygiYXVkaXRzUGFuZWwuY3NzIik7CiAKICAgICB0aGlzLmNyZWF0ZVNwbGl0Vmlld1dp
dGhTaWRlYmFyVHJlZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdFZpZXcuanMKaW5kZXggM2FmYTk3ZmQ3MWViNGJm
MTE1NmRmM2ZlYjFhOTE3MDU3ZGRjODFmNS4uOTAwYTYwNjljMmYwODgyOGMyZGIzZThkNjZlOTBi
NTM2YjdjMzFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzCkBAIC0xMjk3LDcgKzEyOTcsNyBAQCBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd0hlYXBTbmFwc2hvdE9iamVjdHNIaWRkZW5Qcm9wZXJ0
aWVzID0gV2ViSW5zcGVjdG9yLnNldAogCiBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFBy
b2ZpbGVUeXBlID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZS5j
YWxsKHRoaXMsIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlk
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkhFQVAgU05BUFNIT1RTIikpOworICAgIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlVHlwZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90
UHJvZmlsZVR5cGUuVHlwZUlkLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRha2UgSGVhcCBTbmFw
c2hvdCIpKTsKIH0KIAogV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNob3RQcm9maWxlVHlwZS5U
eXBlSWQgPSAiSEVBUCI7CkBAIC0xMzE4LDkgKzEzMTgsMTQgQEAgV2ViSW5zcGVjdG9yLkRldGFp
bGVkSGVhcHNob3RQcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIFdlYkluc3BlY3Rv
ci5wYW5lbHMucHJvZmlsZXMudGFrZUhlYXBTbmFwc2hvdCgpOwogICAgIH0sCiAKLSAgICBnZXQg
d2VsY29tZU1lc3NhZ2UoKQorICAgIGdldCB0cmVlSXRlbVRpdGxlKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkdldCBhIGhlYXAgc25hcHNob3QgYnkgcHJl
c3NpbmcgdGhlICVzIGJ1dHRvbiBvbiB0aGUgc3RhdHVzIGJhci4iKTsKKyAgICAgICAgcmV0dXJu
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiSEVBUCBTTkFQU0hPVFMiKTsKKyAgICB9LAorCisgICAg
Z2V0IGRlc2NyaXB0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkhlYXAgc25hcHNob3QgcHJvZmlsZXMgc2hvdyBtZW1vcnkgZGlzdHJpYnV0aW9uIGFt
b25nIHlvdXIgcGFnZSdzIEphdmFTY3JpcHQgb2JqZWN0cyBhbmQgcmVsYXRlZCBET00gbm9kZXMu
Iik7CiAgICAgfSwKIAogICAgIGNyZWF0ZVNpZGViYXJUcmVlRWxlbWVudEZvclByb2ZpbGU6IGZ1
bmN0aW9uKHByb2ZpbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Byb2ZpbGVMYXVuY2hlclZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Byb2ZpbGVMYXVuY2hlclZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDJhZDBmMjQxZTBk
NWViNWVhMGI3N2UzZjZlZGI1YWFlZmU5M2M5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZUxhdW5jaGVyVmlldy5qcwpAQCAtMCww
ICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9y
LlZpZXd9CisgKi8KK1dlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3ID0gZnVuY3Rpb24o
cHJvZmlsZXNQYW5lbCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOworCisg
ICAgdGhpcy5fcGFuZWwgPSBwcm9maWxlc1BhbmVsOworICAgIHRoaXMuX3Byb2ZpbGVSdW5uaW5n
ID0gZmFsc2U7CisgICAgdGhpcy5fb3B0aW9uSWRQcmVmaXggPSAicHJvZmlsZS10eXBlLSI7CisK
KyAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygicHJvZmlsZS1sYXVuY2hlci12aWV3Iik7
CisgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInBhbmVsLWVuYWJsZXItdmlldyIpOwor
CisgICAgdGhpcy5fY29udGVudEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICB0aGlzLl9jb250ZW50RWxlbWVudC5jbGFzc05hbWUgPSAicHJvZmlsZS1sYXVuY2hl
ci12aWV3LWNvbnRlbnQiOworICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9jb250
ZW50RWxlbWVudCk7CisKKyAgICB2YXIgaGVhZGVyID0gdGhpcy5fY29udGVudEVsZW1lbnQuY3Jl
YXRlQ2hpbGQoImgxIik7CisgICAgaGVhZGVyLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJTZWxlY3QgcHJvZmlsaW5nIHR5cGUiKTsKKworICAgIHRoaXMuX3Byb2ZpbGVUeXBl
U2VsZWN0b3JGb3JtID0gdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImZvcm0iKTsK
KyAgICB0aGlzLl9jb250ZW50RWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgImZsZXhpYmxlLXNw
YWNlIik7CisKKyAgICB0aGlzLl9ib3VuZFByb2ZpbGVUeXBlQ2hhbmdlTGlzdGVuZXIgPSB0aGlz
Ll9wcm9maWxlVHlwZUNoYW5nZWQuYmluZCh0aGlzKTsKKworICAgIHRoaXMuX2NvbnRyb2xCdXR0
b24gPSB0aGlzLl9jb250ZW50RWxlbWVudC5jcmVhdGVDaGlsZCgiYnV0dG9uIiwgImNvbnRyb2wt
cHJvZmlsaW5nIik7CisgICAgdGhpcy5fY29udHJvbEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJj
bGljayIsIHRoaXMuX2NvbnRyb2xCdXR0b25DbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKKyAg
ICB0aGlzLl91cGRhdGVDb250cm9scygpOworfQorCitXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5j
aGVyVmlldy5FdmVudFR5cGVzID0geworICAgIFByb2ZpbGVUeXBlU2VsZWN0ZWQ6ICJwcm9maWxl
LXR5cGUtc2VsZWN0ZWQiCit9CisKK1dlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LnBy
b3RvdHlwZSA9IHsKKyAgICBzZXRVcEV2ZW50TGlzdGVuZXJzOiBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICB0aGlzLl9wYW5lbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsLkV2ZW50VHlwZXMuUHJvZmlsZVN0YXJ0ZWQsIHRoaXMuX29uUHJvZmlsZVN0YXJ0ZWQs
IHRoaXMpOworICAgICAgICB0aGlzLl9wYW5lbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5Qcm9maWxlc1BhbmVsLkV2ZW50VHlwZXMuUHJvZmlsZUZpbmlzaGVkLCB0aGlzLl9vblByb2Zp
bGVGaW5pc2hlZCwgdGhpcyk7CisgICAgfSwKKworICAgIGFkZFByb2ZpbGVUeXBlOiBmdW5jdGlv
bihwcm9maWxlVHlwZSkKKyAgICB7CisgICAgICAgIHZhciBjaGVja2VkID0gIXRoaXMuX3Byb2Zp
bGVUeXBlU2VsZWN0b3JGb3JtLmNoaWxkcmVuLmxlbmd0aDsKKyAgICAgICAgdmFyIGxhYmVsRWxl
bWVudCA9IHRoaXMuX3Byb2ZpbGVUeXBlU2VsZWN0b3JGb3JtLmNyZWF0ZUNoaWxkKCJsYWJlbCIp
OworICAgICAgICBsYWJlbEVsZW1lbnQudGV4dENvbnRlbnQgPSBwcm9maWxlVHlwZS5uYW1lOwor
ICAgICAgICB2YXIgb3B0aW9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0
Iik7CisgICAgICAgIGxhYmVsRWxlbWVudC5pbnNlcnRCZWZvcmUob3B0aW9uRWxlbWVudCwgbGFi
ZWxFbGVtZW50LmZpcnN0Q2hpbGQpOworICAgICAgICBvcHRpb25FbGVtZW50LnR5cGUgPSAicmFk
aW8iOworICAgICAgICBvcHRpb25FbGVtZW50Lm5hbWUgPSAicHJvZmlsZS10eXBlIjsKKyAgICAg
ICAgdmFyIG9wdGlvbklkID0gdGhpcy5fb3B0aW9uSWRQcmVmaXggKyBwcm9maWxlVHlwZS5pZDsK
KyAgICAgICAgb3B0aW9uRWxlbWVudC5pZCA9IG9wdGlvbklkOworICAgICAgICBpZiAoY2hlY2tl
ZCkgeworICAgICAgICAgICAgb3B0aW9uRWxlbWVudC5jaGVja2VkID0gY2hlY2tlZDsKKyAgICAg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Qcm9maWxl
TGF1bmNoZXJWaWV3LkV2ZW50VHlwZXMuUHJvZmlsZVR5cGVTZWxlY3RlZCwgcHJvZmlsZVR5cGUp
OworICAgICAgICB9CisgICAgICAgIG9wdGlvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hh
bmdlIiwgdGhpcy5fYm91bmRQcm9maWxlVHlwZUNoYW5nZUxpc3RlbmVyLCBmYWxzZSk7CisgICAg
ICAgIHZhciBkZXNjcmlwdGlvbkVsZW1lbnQgPSBsYWJlbEVsZW1lbnQuY3JlYXRlQ2hpbGQoInAi
KTsKKyAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gcHJvZmlsZVR5cGUu
ZGVzY3JpcHRpb247CisgICAgfSwKKworICAgIF9jb250cm9sQnV0dG9uQ2xpY2tlZDogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fcGFuZWwudG9nZ2xlUmVjb3JkQnV0dG9uKCk7Cisg
ICAgfSwKKworICAgIF91cGRhdGVDb250cm9sczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
aWYgKHRoaXMuX2lzUHJvZmlsaW5nKSB7CisgICAgICAgICAgICB0aGlzLl9wcm9maWxlVHlwZVNl
bGVjdG9yRm9ybS5kaXNhYmxlZCA9IHRydWU7CisgICAgICAgICAgICB0aGlzLl9jb250cm9sQnV0
dG9uLmFkZFN0eWxlQ2xhc3MoInJ1bm5pbmciKTsKKyAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xC
dXR0b24udGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0b3AiKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlU2VsZWN0b3JGb3JtLmRp
c2FibGVkID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLl9jb250cm9sQnV0dG9uLnJlbW92ZVN0
eWxlQ2xhc3MoInJ1bm5pbmciKTsKKyAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xCdXR0b24udGV4
dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0YXJ0Iik7CisgICAgICAgIH0KKyAg
ICB9LAorCisgICAgX3Byb2ZpbGVUeXBlQ2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgewor
ICAgICAgICB2YXIgc2VsZWN0ZWRQcm9maWxlVHlwZSA9IHRoaXMuX3BhbmVsLmdldFByb2ZpbGVU
eXBlKGV2ZW50LnRhcmdldC5pZC5zdWJzdHJpbmcodGhpcy5fb3B0aW9uSWRQcmVmaXgubGVuZ3Ro
KSk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Q
cm9maWxlTGF1bmNoZXJWaWV3LkV2ZW50VHlwZXMuUHJvZmlsZVR5cGVTZWxlY3RlZCwgc2VsZWN0
ZWRQcm9maWxlVHlwZSk7CisgICAgfSwKKworICAgIF9vblByb2ZpbGVTdGFydGVkOiBmdW5jdGlv
bihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX2lzUHJvZmlsaW5nID0gdHJ1ZTsKKyAgICAg
ICAgdGhpcy5fdXBkYXRlQ29udHJvbHMoKTsKKyAgICB9LAorCisgICAgX29uUHJvZmlsZUZpbmlz
aGVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX2lzUHJvZmlsaW5nID0g
ZmFsc2U7CisgICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xzKCk7CisgICAgfQorfQorCitXZWJJ
bnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5z
cGVjdG9yLlZpZXcucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZVZpZXcuanMKaW5kZXggN2IxZGU3NGVmNDI1Yzc1YjBmNmRiNTBiMzMx
MjJhODQ5YmM2ZjEyMS4uN2VjY2JmMWFkZmI0YTUxYjU2OWY5MmU0YTA1NjIwNmVlZmJhNDNiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmll
dy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3
LmpzCkBAIC01NjksNyArNTY5LDcgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3LnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7CiAKIFdlYkluc3Bl
Y3Rvci5DUFVQcm9maWxlVHlwZSA9IGZ1bmN0aW9uKCkKIHsKLSAgICBXZWJJbnNwZWN0b3IuUHJv
ZmlsZVR5cGUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUuVHlwZUlkLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNQVSBQUk9GSUxFUyIpKTsKKyAgICBXZWJJbnNwZWN0b3Iu
UHJvZmlsZVR5cGUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUuVHlwZUlk
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbGxlY3QgSmF2YVNjcmlwdCBDUFUgUHJvZmlsZSIp
KTsKICAgICB0aGlzLl9yZWNvcmRpbmcgPSBmYWxzZTsKICAgICBXZWJJbnNwZWN0b3IuQ1BVUHJv
ZmlsZVR5cGUuaW5zdGFuY2UgPSB0aGlzOwogfQpAQCAtNTk4LDkgKzU5OCwxNCBAQCBXZWJJbnNw
ZWN0b3IuQ1BVUHJvZmlsZVR5cGUucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAot
ICAgIGdldCB3ZWxjb21lTWVzc2FnZSgpCisgICAgZ2V0IHRyZWVJdGVtVGl0bGUoKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29udHJvbCBDUFUgcHJvZmls
aW5nIGJ5IHByZXNzaW5nIHRoZSAlcyBidXR0b24gb24gdGhlIHN0YXR1cyBiYXIuIik7CisgICAg
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNQVSBQUk9GSUxFUyIpOworICAgIH0s
CisKKyAgICBnZXQgZGVzY3JpcHRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiQ1BVIHByb2ZpbGVzIHNob3cgd2hlcmUgdGhlIGV4ZWN1dGlvbiB0aW1l
IGlzIHNwZW50IGluIHlvdXIgcGFnZSdzIEphdmFTY3JpcHQgZnVuY3Rpb25zLiIpOwogICAgIH0s
CiAKICAgICBpc1JlY29yZGluZ1Byb2ZpbGU6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwppbmRleCAxMTUxMzkw
MjNhN2E2ZjA2ZmVmNmU4NzM2ZGNjNTIzOGI1ZTIyNjFiLi42ZTE0YjlkMWVkMzIxZTZhZWI5YmE5
NjdjYzY2OGM2NTZjOGEyNTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCkBAIC01NCw2ICs1NCwxMSBAQCBXZWJJbnNwZWN0
b3IuUHJvZmlsZVR5cGUucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5faWQ7CiAg
ICAgfSwKIAorICAgIGdldCB0cmVlSXRlbVRpdGxlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLl9uYW1lOworICAgIH0sCisKICAgICBnZXQgbmFtZSgpCiAgICAgewogICAgICAgICByZXR1
cm4gdGhpcy5fbmFtZTsKQEAgLTcwLDcgKzc1LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBl
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHByb2ZpbGUuX3Byb2ZpbGVWaWV3OwogICAg
IH0sCiAKLSAgICBnZXQgd2VsY29tZU1lc3NhZ2UoKQorICAgIGdldCBkZXNjcmlwdGlvbigpCiAg
ICAgewogICAgICAgICByZXR1cm4gIiI7CiAgICAgfSwKQEAgLTk5LDEzICsxMDQsMTYgQEAgV2Vi
SW5zcGVjdG9yLnJlZ2lzdGVyTGlua2lmaWVyUGx1Z2luKGZ1bmN0aW9uKHRpdGxlKQogV2ViSW5z
cGVjdG9yLlByb2ZpbGVzUGFuZWwgPSBmdW5jdGlvbigpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlBh
bmVsLmNhbGwodGhpcywgInByb2ZpbGVzIik7CisgICAgdGhpcy5yZWdpc3RlclJlcXVpcmVkQ1NT
KCJwYW5lbEVuYWJsZXJWaWV3LmNzcyIpOwogICAgIHRoaXMucmVnaXN0ZXJSZXF1aXJlZENTUygi
aGVhcFByb2ZpbGVyLmNzcyIpOwogICAgIHRoaXMucmVnaXN0ZXJSZXF1aXJlZENTUygicHJvZmls
ZXNQYW5lbC5jc3MiKTsKIAogICAgIHRoaXMuY3JlYXRlU3BsaXRWaWV3V2l0aFNpZGViYXJUcmVl
KCk7CiAKKyAgICB0aGlzLnByb2ZpbGVzSXRlbVRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rv
ci5Qcm9maWxlc1NpZGViYXJUcmVlRWxlbWVudCh0aGlzKTsKKyAgICB0aGlzLnNpZGViYXJUcmVl
LmFwcGVuZENoaWxkKHRoaXMucHJvZmlsZXNJdGVtVHJlZUVsZW1lbnQpOworCiAgICAgdGhpcy5f
cHJvZmlsZVR5cGVzQnlJZE1hcCA9IHt9OwotICAgIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5
SWRNYXAgPSB7fTsKIAogICAgIHZhciBwYW5lbEVuYWJsZXJIZWFkaW5nID0gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJZb3UgbmVlZCB0byBlbmFibGUgcHJvZmlsaW5nIGJlZm9yZSB5b3UgY2FuIHVz
ZSB0aGUgUHJvZmlsZXMgcGFuZWwuIik7CiAgICAgdmFyIHBhbmVsRW5hYmxlckRpc2NsYWltZXIg
PSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVuYWJsaW5nIHByb2ZpbGluZyB3aWxsIG1ha2Ugc2Ny
aXB0cyBydW4gc2xvd2VyLiIpOwpAQCAtMTIyLDE3ICsxMzAsMjIgQEAgV2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgaWYgKCFDYXBhYmlsaXRpZXMucHJvZmlsZXJD
YXVzZXNSZWNvbXBpbGF0aW9uKQogICAgICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi5lbGVt
ZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogCisgICAgdGhpcy5yZWNvcmRCdXR0b24gPSBu
ZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbigiIiwgInJlY29yZC1wcm9maWxlLXN0YXR1
cy1iYXItaXRlbSIpOworICAgIHRoaXMucmVjb3JkQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy50b2dnbGVSZWNvcmRCdXR0b24sIHRoaXMpOworCiAgICAgdGhpcy5jbGVhclJl
c3VsdHNCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkNsZWFyIGFsbCBwcm9maWxlcy4iKSwgImNsZWFyLXN0YXR1cy1iYXItaXRl
bSIpOwogICAgIHRoaXMuY2xlYXJSZXN1bHRzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgdGhpcy5fY2xlYXJQcm9maWxlcy5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAgICB0aGlzLnBy
b2ZpbGVWaWV3U3RhdHVzQmFySXRlbXNDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKICAgICB0aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRlbXNDb250YWluZXIuY2xh
c3NOYW1lID0gInN0YXR1cy1iYXItaXRlbXMiOwogCi0gICAgdGhpcy53ZWxjb21lVmlldyA9IG5l
dyBXZWJJbnNwZWN0b3IuV2VsY29tZVZpZXcoInByb2ZpbGVzIiwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJXZWxjb21lIHRvIHRoZSBQcm9maWxlcyBwYW5lbCIpKTsKLQogICAgIHRoaXMuX3Byb2Zp
bGVzID0gW107CiAgICAgdGhpcy5fcHJvZmlsZXJFbmFibGVkID0gIUNhcGFiaWxpdGllcy5wcm9m
aWxlckNhdXNlc1JlY29tcGlsYXRpb247CisKKyAgICB0aGlzLl9sYXVuY2hlclZpZXcgPSBuZXcg
V2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcodGhpcyk7CisgICAgdGhpcy5fbGF1bmNo
ZXJWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcu
RXZlbnRUeXBlcy5Qcm9maWxlVHlwZVNlbGVjdGVkLCB0aGlzLl9vblByb2ZpbGVUeXBlU2VsZWN0
ZWQsIHRoaXMpOwogICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgdGhpcy5fbGF1bmNoZXJWaWV3LnNl
dFVwRXZlbnRMaXN0ZW5lcnMoKTsKIAogICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3
IFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZSgpKTsKICAgICBpZiAoQ2FwYWJpbGl0aWVzLmhl
YXBQcm9maWxlclByZXNlbnQpCkBAIC0xNDQsNiArMTU3LDExIEBAIFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsID0gZnVuY3Rpb24oKQogICAgICAgICBQcm9maWxlckFnZW50LmVuYWJsZSh0aGlz
Ll9wcm9maWxlcldhc0VuYWJsZWQuYmluZCh0aGlzKSk7CiB9CiAKK1dlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsLkV2ZW50VHlwZXMgPSB7CisgICAgUHJvZmlsZVN0YXJ0ZWQ6ICJwcm9maWxlLXN0
YXJ0ZWQiLAorICAgIFByb2ZpbGVGaW5pc2hlZDogInByb2ZpbGUtZmluaXNoZWQiCit9CisKIFdl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBnZXQgdG9vbGJhckl0
ZW1MYWJlbCgpCiAgICAgewpAQCAtMTUyLDI2ICsxNzAsMTIgQEAgV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgZ2V0IHN0YXR1c0Jhckl0ZW1zKCkKICAgICB7
Ci0gICAgICAgIGZ1bmN0aW9uIGNsaWNrSGFuZGxlcihwcm9maWxlVHlwZSwgYnV0dG9uKQotICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgd2FzUHJvZmlsaW5nID0gYnV0dG9uLnRvZ2dsZWQ7Ci0g
ICAgICAgICAgICBwcm9maWxlVHlwZS5idXR0b25DbGlja2VkLmNhbGwocHJvZmlsZVR5cGUpOwot
ICAgICAgICAgICAgdGhpcy51cGRhdGVQcm9maWxlVHlwZUJ1dHRvbnMoIXdhc1Byb2ZpbGluZywg
YnV0dG9uKTsKLSAgICAgICAgfQorICAgICAgICByZXR1cm4gW3RoaXMuZW5hYmxlVG9nZ2xlQnV0
dG9uLmVsZW1lbnQsIHRoaXMucmVjb3JkQnV0dG9uLmVsZW1lbnQsIHRoaXMuY2xlYXJSZXN1bHRz
QnV0dG9uLmVsZW1lbnQsIHRoaXMucHJvZmlsZVZpZXdTdGF0dXNCYXJJdGVtc0NvbnRhaW5lcl07
CisgICAgfSwKIAotICAgICAgICB2YXIgaXRlbXMgPSBbdGhpcy5lbmFibGVUb2dnbGVCdXR0b24u
ZWxlbWVudF07Ci0gICAgICAgIC8vIEZJWE1FOiBHZW5lcmF0ZSBhIHNpbmdsZSAiY29tYm8tYnV0
dG9uIi4KLSAgICAgICAgZm9yICh2YXIgdHlwZUlkIGluIHRoaXMuX3Byb2ZpbGVUeXBlc0J5SWRN
YXApIHsKLSAgICAgICAgICAgIHZhciBwcm9maWxlVHlwZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUo
dHlwZUlkKTsKLSAgICAgICAgICAgIGlmIChwcm9maWxlVHlwZS5idXR0b25TdHlsZSkgewotICAg
ICAgICAgICAgICAgIHZhciBidXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRv
bihwcm9maWxlVHlwZS5idXR0b25Ub29sdGlwLCBwcm9maWxlVHlwZS5idXR0b25TdHlsZSk7Ci0g
ICAgICAgICAgICAgICAgdGhpcy5fcHJvZmlsZVR5cGVCdXR0b25zQnlJZE1hcFt0eXBlSWRdID0g
YnV0dG9uOwotICAgICAgICAgICAgICAgIGJ1dHRvbi5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgY2xpY2tIYW5kbGVyLmJpbmQodGhpcywgcHJvZmlsZVR5cGUsIGJ1dHRvbiksIGZh
bHNlKTsKLSAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKGJ1dHRvbi5lbGVtZW50KTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpdGVtcy5wdXNoKHRoaXMuY2xlYXJSZXN1bHRz
QnV0dG9uLmVsZW1lbnQsIHRoaXMucHJvZmlsZVZpZXdTdGF0dXNCYXJJdGVtc0NvbnRhaW5lcik7
Ci0gICAgICAgIHJldHVybiBpdGVtczsKKyAgICB0b2dnbGVSZWNvcmRCdXR0b246IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHRoaXMuX3NlbGVjdGVkUHJvZmlsZVR5cGUuYnV0dG9uQ2xpY2tl
ZCgpOwogICAgIH0sCiAKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQpAQCAtMjAxLDYgKzIwNSwx
MiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRo
aXMuX3Jlc2V0KCk7CiAgICAgfSwKIAorICAgIF9vblByb2ZpbGVUeXBlU2VsZWN0ZWQ6IGZ1bmN0
aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fc2VsZWN0ZWRQcm9maWxlVHlwZSA9IGV2
ZW50LmRhdGE7CisgICAgICAgIHRoaXMucmVjb3JkQnV0dG9uLnRpdGxlID0gdGhpcy5fc2VsZWN0
ZWRQcm9maWxlVHlwZS5idXR0b25Ub29sdGlwOworICAgIH0sCisKICAgICBfcmVzZXQ6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUucmVzZXQu
Y2FsbCh0aGlzKTsKQEAgLTIyMCw2ICsyMzAsMTIgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICBkZWxldGUgdGhpcy5jdXJyZW50UXVlcnk7CiAgICAg
ICAgIHRoaXMuc2VhcmNoQ2FuY2VsZWQoKTsKIAorICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlz
Ll9wcm9maWxlVHlwZXNCeUlkTWFwKSB7CisgICAgICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0
aGlzLl9wcm9maWxlVHlwZXNCeUlkTWFwW2lkXS50cmVlRWxlbWVudDsKKyAgICAgICAgICAgIHRy
ZWVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgICAgICB0cmVlRWxlbWVudC5oaWRk
ZW4gPSB0cnVlOworICAgICAgICB9CisKICAgICAgICAgdGhpcy5fcHJvZmlsZXMgPSBbXTsKICAg
ICAgICAgdGhpcy5fcHJvZmlsZXNJZE1hcCA9IHt9OwogICAgICAgICB0aGlzLl9wcm9maWxlR3Jv
dXBzID0ge307CkBAIC0yMjgsMTcgKzI0NCwyMyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5l
bC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5zaWRlYmFyVHJlZUVsZW1lbnQucmVtb3Zl
U3R5bGVDbGFzcygic29tZS1leHBhbmRhYmxlIik7CiAKLSAgICAgICAgZm9yICh2YXIgdHlwZUlk
IGluIHRoaXMuX3Byb2ZpbGVUeXBlc0J5SWRNYXApCi0gICAgICAgICAgICB0aGlzLmdldFByb2Zp
bGVUeXBlKHR5cGVJZCkudHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLQogICAgICAgICB0
aGlzLnByb2ZpbGVWaWV3cy5yZW1vdmVDaGlsZHJlbigpOwotCiAgICAgICAgIHRoaXMucHJvZmls
ZVZpZXdTdGF0dXNCYXJJdGVtc0NvbnRhaW5lci5yZW1vdmVDaGlsZHJlbigpOwogCiAgICAgICAg
IHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCk7CisgICAgICAgIHRoaXMuX2xhdW5jaGVyVmlldy5z
ZXRVcEV2ZW50TGlzdGVuZXJzKCk7CiAKICAgICAgICAgdGhpcy5fdXBkYXRlSW50ZXJmYWNlKCk7
Ci0gICAgICAgIHRoaXMud2VsY29tZVZpZXcuc2hvdyh0aGlzLnNwbGl0Vmlldy5tYWluRWxlbWVu
dCk7CisgICAgICAgIHRoaXMucHJvZmlsZXNJdGVtVHJlZUVsZW1lbnQuc2VsZWN0KCk7CisgICAg
ICAgIHRoaXMuX3Nob3dMYXVuY2hlclZpZXcoKTsKKyAgICB9LAorCisgICAgX3Nob3dMYXVuY2hl
clZpZXc6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuY2xvc2VWaXNpYmxlVmlldygp
OworICAgICAgICB0aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRlbXNDb250YWluZXIucmVtb3Zl
Q2hpbGRyZW4oKTsKKyAgICAgICAgdGhpcy5fbGF1bmNoZXJWaWV3LnNob3codGhpcy5zcGxpdFZp
ZXcubWFpbkVsZW1lbnQpOworICAgICAgICB0aGlzLnZpc2libGVWaWV3ID0gdGhpcy5fbGF1bmNo
ZXJWaWV3OwogICAgIH0sCiAKICAgICBfY2xlYXJQcm9maWxlczogZnVuY3Rpb24oKQpAQCAtMjUw
LDM0ICsyNzIsMTAgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewog
ICAgIF9yZWdpc3RlclByb2ZpbGVUeXBlOiBmdW5jdGlvbihwcm9maWxlVHlwZSkKICAgICB7CiAg
ICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlc0J5SWRNYXBbcHJvZmlsZVR5cGUuaWRdID0gcHJvZmls
ZVR5cGU7Ci0gICAgICAgIHByb2ZpbGVUeXBlLnRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rv
ci5TaWRlYmFyU2VjdGlvblRyZWVFbGVtZW50KHByb2ZpbGVUeXBlLm5hbWUsIG51bGwsIHRydWUp
OworICAgICAgICB0aGlzLl9sYXVuY2hlclZpZXcuYWRkUHJvZmlsZVR5cGUocHJvZmlsZVR5cGUp
OworICAgICAgICBwcm9maWxlVHlwZS50cmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuUHJv
ZmlsZVR5cGVUcmVlRWxlbWVudChwcm9maWxlVHlwZS50cmVlSXRlbVRpdGxlKTsKKyAgICAgICAg
cHJvZmlsZVR5cGUudHJlZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsKICAgICAgICAgdGhpcy5zaWRl
YmFyVHJlZS5hcHBlbmRDaGlsZChwcm9maWxlVHlwZS50cmVlRWxlbWVudCk7Ci0gICAgICAgIHBy
b2ZpbGVUeXBlLnRyZWVFbGVtZW50LmV4cGFuZCgpOwotICAgICAgICB0aGlzLl9hZGRXZWxjb21l
TWVzc2FnZShwcm9maWxlVHlwZSk7Ci0gICAgfSwKLQotICAgIF9hZGRXZWxjb21lTWVzc2FnZTog
ZnVuY3Rpb24ocHJvZmlsZVR5cGUpCi0gICAgewotICAgICAgICB2YXIgbWVzc2FnZSA9IHByb2Zp
bGVUeXBlLndlbGNvbWVNZXNzYWdlOwotICAgICAgICAvLyBNZXNzYWdlIHRleHQgaXMgc3VwcG9z
ZWQgdG8gaGF2ZSBhICclcycgc3Vic3RyaW5nIGFzIGEgcGxhY2Vob2xkZXIKLSAgICAgICAgLy8g
Zm9yIGEgc3RhdHVzIGJhciBidXR0b24uIElmIGl0IGlzIHRoZXJlLCB3ZSBzcGxpdCB0aGUgbWVz
c2FnZSBpbiB0d28KLSAgICAgICAgLy8gcGFydHMsIGFuZCBpbnNlcnQgdGhlIGJ1dHRvbiBiZXR3
ZWVuIHRoZW0uCi0gICAgICAgIHZhciBidXR0b25Qb3MgPSBtZXNzYWdlLmluZGV4T2YoIiVzIik7
Ci0gICAgICAgIGlmIChidXR0b25Qb3MgPiAtMSkgewotICAgICAgICAgICAgdmFyIGNvbnRhaW5l
ciA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgICAgICAgIHZhciBw
YXJ0MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgICAgIHBhcnQx
LnRleHRDb250ZW50ID0gbWVzc2FnZS5zdWJzdHIoMCwgYnV0dG9uUG9zKTsKLSAgICAgICAgICAg
IGNvbnRhaW5lci5hcHBlbmRDaGlsZChwYXJ0MSk7Ci0KLSAgICAgICAgICAgIHZhciBidXR0b24g
PSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihwcm9maWxlVHlwZS5idXR0b25Ub29s
dGlwLCBwcm9maWxlVHlwZS5idXR0b25TdHlsZSwgcHJvZmlsZVR5cGUuYnV0dG9uQ2FwdGlvbik7
Ci0gICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoYnV0dG9uLmVsZW1lbnQpOwotCi0g
ICAgICAgICAgICB2YXIgcGFydDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci0g
ICAgICAgICAgICBwYXJ0Mi50ZXh0Q29udGVudCA9IG1lc3NhZ2Uuc3Vic3RyKGJ1dHRvblBvcyAr
IDIpOwotICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHBhcnQyKTsKLSAgICAgICAg
ICAgIHRoaXMud2VsY29tZVZpZXcuYWRkTWVzc2FnZShjb250YWluZXIpOwotICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIHRoaXMud2VsY29tZVZpZXcuYWRkTWVzc2FnZShtZXNzYWdlKTsKICAg
ICB9LAogCiAgICAgX21ha2VLZXk6IGZ1bmN0aW9uKHRleHQsIHByb2ZpbGVUeXBlSWQpCkBAIC0y
OTMsNiArMjkxLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICB2YXIgdHlwZUlkID0gcHJvZmlsZS50eXBlSWQ7CiAgICAgICAgIHZhciBwcm9maWxl
VHlwZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUodHlwZUlkKTsKICAgICAgICAgdmFyIHNpZGViYXJQ
YXJlbnQgPSBwcm9maWxlVHlwZS50cmVlRWxlbWVudDsKKyAgICAgICAgc2lkZWJhclBhcmVudC5o
aWRkZW4gPSBmYWxzZTsKICAgICAgICAgdmFyIHNtYWxsID0gZmFsc2U7CiAgICAgICAgIHZhciBh
bHRlcm5hdGVUaXRsZTsKIApAQCAtMzQ1LDEyICszNDQsMTggQEAgV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIHNpZGViYXJQYXJlbnQuYXBwZW5kQ2hp
bGQocHJvZmlsZVRyZWVFbGVtZW50KTsKICAgICAgICAgaWYgKCFwcm9maWxlLmlzVGVtcG9yYXJ5
KSB7Ci0gICAgICAgICAgICB0aGlzLndlbGNvbWVWaWV3LmRldGFjaCgpOwogICAgICAgICAgICAg
aWYgKCF0aGlzLnZpc2libGVWaWV3KQogICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Byb2ZpbGUo
cHJvZmlsZSk7CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygicHJv
ZmlsZSBhZGRlZCIpOwotICAgICAgICAgICAgdGhpcy51cGRhdGVQcm9maWxlVHlwZUJ1dHRvbnMo
ZmFsc2UsIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXBbdHlwZUlkXSk7CisgICAgICAg
ICAgICBkZWxldGUgdGhpcy5fdGVtcG9yYXJ5UmVjb3JkaW5nUHJvZmlsZTsKKyAgICAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVs
LkV2ZW50VHlwZXMuUHJvZmlsZUZpbmlzaGVkKTsKKyAgICAgICAgICAgIHRoaXMucmVjb3JkQnV0
dG9uLnRvZ2dsZWQgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLkV2ZW50
VHlwZXMuUHJvZmlsZVN0YXJ0ZWQpOworICAgICAgICAgICAgdGhpcy5yZWNvcmRCdXR0b24udG9n
Z2xlZCA9IHRydWU7CiAgICAgICAgIH0KKworICAgICAgICB0aGlzLnJlY29yZEJ1dHRvbi50aXRs
ZSA9IHRoaXMuX3NlbGVjdGVkUHJvZmlsZVR5cGUuYnV0dG9uVG9vbHRpcDsKICAgICB9LAogCiAg
ICAgX3JlbW92ZVByb2ZpbGVIZWFkZXI6IGZ1bmN0aW9uKHByb2ZpbGUpCkBAIC01MDMsMjcgKzUw
OCw2IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5zaG93UHJvZmlsZSh0aGlzLl9wcm9maWxlc0lkTWFwW3RoaXMuX21ha2VLZXkobWF0Y2hb
M10sIG1hdGNoWzFdKV0pOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Jvb2xl
YW59IGlzUHJvZmlsaW5nCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0
dG9uPX0gZWZmZWN0QnV0dG9uCi0gICAgICovCi0gICAgdXBkYXRlUHJvZmlsZVR5cGVCdXR0b25z
OiBmdW5jdGlvbihpc1Byb2ZpbGluZywgZWZmZWN0QnV0dG9uKQotICAgIHsKLSAgICAgICAgZm9y
ICh2YXIgdHlwZUlkIGluIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXApIHsKLSAgICAg
ICAgICAgIHZhciBidXR0b24gPSB0aGlzLl9wcm9maWxlVHlwZUJ1dHRvbnNCeUlkTWFwW3R5cGVJ
ZF07Ci0gICAgICAgICAgICB2YXIgcHJvZmlsZVR5cGUgPSB0aGlzLmdldFByb2ZpbGVUeXBlKHR5
cGVJZCk7Ci0gICAgICAgICAgICBidXR0b24uZWxlbWVudC5jbGFzc05hbWUgPSBwcm9maWxlVHlw
ZS5idXR0b25TdHlsZTsKLSAgICAgICAgICAgIGJ1dHRvbi5lbGVtZW50LnRpdGxlID0gcHJvZmls
ZVR5cGUuYnV0dG9uVG9vbHRpcDsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBBcHBseSBwcm9maWxl
VHlwZS5idXR0b25DYXB0aW9uIG9uY2UgY2FwdGlvbnMgYXJlIGFkZGVkIHRvIGJ1dHRvbiBjb250
cm9scy4KLSAgICAgICAgICAgIGlmICghaXNQcm9maWxpbmcpCi0gICAgICAgICAgICAgICAgYnV0
dG9uLmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAg
ICBpZiAoZWZmZWN0QnV0dG9uICYmIGJ1dHRvbiAhPT0gZWZmZWN0QnV0dG9uKQotICAgICAgICAg
ICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgfSwKLQogICAgIGNsb3NlVmlzaWJsZVZpZXc6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIGlmICh0aGlzLnZpc2libGVWaWV3KQpAQCAtNzU5LDE2ICs3NDMsMTQgQEAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy5fcHJv
ZmlsZXJFbmFibGVkKSB7CiAgICAgICAgICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi50aXRs
ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvZmlsaW5nIGVuYWJsZWQuIENsaWNrIHRvIGRp
c2FibGUuIik7CiAgICAgICAgICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi50b2dnbGVkID0g
dHJ1ZTsKLSAgICAgICAgICAgIGZvciAodmFyIHR5cGVJZCBpbiB0aGlzLl9wcm9maWxlVHlwZUJ1
dHRvbnNCeUlkTWFwKQotICAgICAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5
SWRNYXBbdHlwZUlkXS52aXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRoaXMucmVjb3JkQnV0
dG9uLnZpc2libGUgPSB0cnVlOwogICAgICAgICAgICAgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jh
ckl0ZW1zQ29udGFpbmVyLnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAgICAg
dGhpcy5jbGVhclJlc3VsdHNCdXR0b24uZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4i
KTsKICAgICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy5kZXRhY2goKTsKICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLnRpdGxlID0gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9maWxpbmcgZGlzYWJsZWQuIENsaWNrIHRvIGVuYWJsZS4i
KTsKICAgICAgICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsK
LSAgICAgICAgICAgIGZvciAodmFyIHR5cGVJZCBpbiB0aGlzLl9wcm9maWxlVHlwZUJ1dHRvbnNC
eUlkTWFwKQotICAgICAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXBb
dHlwZUlkXS52aXNpYmxlID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLnJlY29yZEJ1dHRvbi52
aXNpYmxlID0gZmFsc2U7CiAgICAgICAgICAgICB0aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRl
bXNDb250YWluZXIuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAgICB0aGlzLmNs
ZWFyUmVzdWx0c0J1dHRvbi5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAg
ICAgICAgdGhpcy5wYW5lbEVuYWJsZXJWaWV3LnNob3codGhpcy5lbGVtZW50KTsKQEAgLTkyMyw2
ICs5MDUsMjEgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7
CiAgICAgfQogfQogCitXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGVUcmVlRWxlbWVudCA9IGZ1bmN0
aW9uKHRpdGxlKQoreworICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyU2VjdGlvblRyZWVFbGVtZW50
LmNhbGwodGhpcywgdGl0bGUsIG51bGwsIHRydWUpOworICAgIHRoaXMuZXhwYW5kKCk7Cit9CisK
K1dlYkluc3BlY3Rvci5Qcm9maWxlVHlwZVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKKyAgICBj
b2xsYXBzZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgLy8gU2hvdWxkIG5vdCBjb2xsYXBz
ZS4KKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5Qcm9maWxlVHlwZVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU2lkZWJhclNlY3Rpb25UcmVlRWxlbWVudC5w
cm90b3R5cGU7CisKIFdlYkluc3BlY3Rvci5Qcm9maWxlU2lkZWJhclRyZWVFbGVtZW50ID0gZnVu
Y3Rpb24ocHJvZmlsZSwgdGl0bGVGb3JtYXQsIGNsYXNzTmFtZSkKIHsKICAgICB0aGlzLnByb2Zp
bGUgPSBwcm9maWxlOwpAQCAtOTk1LDMgKzk5MiwyOSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZUdy
b3VwU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIH0KIAogV2ViSW5zcGVjdG9yLlBy
b2ZpbGVHcm91cFNpZGViYXJUcmVlRWxlbWVudC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5z
cGVjdG9yLlNpZGViYXJUcmVlRWxlbWVudC5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVj
dG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNpZGViYXJUcmVlRWxlbWVudH0KKyAqLwor
V2ViSW5zcGVjdG9yLlByb2ZpbGVzU2lkZWJhclRyZWVFbGVtZW50ID0gZnVuY3Rpb24ocGFuZWwp
Cit7CisgICAgdGhpcy5fcGFuZWwgPSBwYW5lbDsKKyAgICB0aGlzLnNtYWxsID0gZmFsc2U7CisK
KyAgICBXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVtZW50LmNhbGwodGhpcywgInByb2ZpbGUt
bGF1bmNoZXItdmlldy10cmVlLWl0ZW0iLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2ZpbGVz
IiksICIiLCBudWxsLCBmYWxzZSk7Cit9CisKK1dlYkluc3BlY3Rvci5Qcm9maWxlc1NpZGViYXJU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CisgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHRoaXMuX3BhbmVsLl9zaG93TGF1bmNoZXJWaWV3KCk7CisgICAgfSwKKworICAg
IGdldCBzZWxlY3RhYmxlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30K
KworV2ViSW5zcGVjdG9yLlByb2ZpbGVzU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZS5fX3By
b3RvX18gPSBXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclRyZWVFbGVt
ZW50LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyVHJlZUVs
ZW1lbnQuanMKaW5kZXggMjExMzI1ODBhM2FmMDRlZGM0ZDA0YzcyNGM1NDA2MmJmZTk4YTFlNy4u
ZTc5YzFmNTVmN2M1MjI3ZWU5ZmI5ZDhlNGIyYTJhMzdjYWE3YTk0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyVHJlZUVsZW1lbnQuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyVHJlZUVsZW1lbnQu
anMKQEAgLTE3MSw3ICsxNzEsNyBAQCBXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVtZW50LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2Rl
LnJlbW92ZVN0eWxlQ2xhc3MoIndhaXQiKTsKICAgICB9LAotCisgICAgCiAgICAgcmVmcmVzaFRp
dGxlczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIG1haW5UaXRsZSA9IHRoaXMubWFp
blRpdGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9X
ZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJj
CmluZGV4IGM2ZTVkNDQ4YmVlNDdjMTJiN2IxYmEzOThiZTIxMTMxYjU4NWZmMTMuLjY3NDJiZjk2
ZTAwYTk1NDE1ZjMzY2I2YTZhZWEwZDgzZTk1N2Q0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTg5LDYgKzg5LDcgQEAKICAgICA8Zmls
ZT5QbGFjYXJkLmpzPC9maWxlPgogICAgIDxmaWxlPlBvcG92ZXIuanM8L2ZpbGU+CiAgICAgPGZp
bGU+UHJvZmlsZURhdGFHcmlkVHJlZS5qczwvZmlsZT4KKyAgICA8ZmlsZT5Qcm9maWxlTGF1bmNo
ZXJWaWV3LmpzPC9maWxlPgogICAgIDxmaWxlPlByb2ZpbGVzUGFuZWwuanM8L2ZpbGU+CiAgICAg
PGZpbGU+UHJvZmlsZVZpZXcuanM8L2ZpbGU+CiAgICAgPGZpbGU+UHJvcGVydGllc1NlY3Rpb24u
anM8L2ZpbGU+CkBAIC0xNTMsNyArMTU0LDYgQEAKICAgICA8ZmlsZT51dGlsaXRpZXMuanM8L2Zp
bGU+CiAgICAgPGZpbGU+Vmlldy5qczwvZmlsZT4KICAgICA8ZmlsZT5XYXRjaEV4cHJlc3Npb25z
U2lkZWJhclBhbmUuanM8L2ZpbGU+Ci0gICAgPGZpbGU+V2VsY29tZVZpZXcuanM8L2ZpbGU+CiAg
ICAgPGZpbGU+V29ya2VyTWFuYWdlci5qczwvZmlsZT4KICAgICA8ZmlsZT5Xb3JrZXJzU2lkZWJh
clBhbmUuanM8L2ZpbGU+CiAgICAgPGZpbGU+VWdsaWZ5SlMvcGFyc2UtanMuanM8L2ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlbGNvbWVWaWV3
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWxjb21lVmlldy5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE5Nzg5MjEzNjJkOGU4NjIyYmFjZmIzNzlh
YWY4ZjIxYmI2NzVkNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlbGNvbWVWaWV3LmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0vKioKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0
b3IuVmlld30KLSAqIEBjb25zdHJ1Y3RvcgotICovCi1XZWJJbnNwZWN0b3IuV2VsY29tZVZpZXcg
PSBmdW5jdGlvbihpZGVudGlmaWVyLCBoZWFkaW5nVGV4dCwgaW5zdHJ1Y3Rpb25zVGV4dCkKLXsK
LSAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOwotICAgIHRoaXMucmVnaXN0ZXJSZXF1
aXJlZENTUygicGFuZWxFbmFibGVyVmlldy5jc3MiKTsKLQotICAgIHRoaXMuZWxlbWVudC5hZGRT
dHlsZUNsYXNzKCJwYW5lbC1lbmFibGVyLXZpZXciKTsKLSAgICB0aGlzLmVsZW1lbnQuYWRkU3R5
bGVDbGFzcyhpZGVudGlmaWVyKTsKLSAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygid2Vs
Y29tZSIpOwotCi0gICAgdGhpcy5jb250ZW50RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwotICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NOYW1lID0gInBhbmVsLWVu
YWJsZXItdmlldy1jb250ZW50IjsKLSAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5j
b250ZW50RWxlbWVudCk7Ci0KLSAgICB0aGlzLmFsaWduZXJFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy5hbGlnbmVyRWxlbWVudC5jbGFzc05hbWUgPSAi
d2VsY29tZS1pbnN0cnVjdGlvbnMtYWxpZ25lciI7Ci0gICAgdGhpcy5jb250ZW50RWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLmFsaWduZXJFbGVtZW50KTsKLQotICAgIHRoaXMuaW5zdHJ1Y3Rpb25z
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMuaW5zdHJ1
Y3Rpb25zRWxlbWVudC5jbGFzc05hbWUgPSAiaW5zdHJ1Y3Rpb25zIjsKLSAgICB0aGlzLmNvbnRl
bnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuaW5zdHJ1Y3Rpb25zRWxlbWVudCk7Ci0KLSAgICB0
aGlzLmhlYWRlckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoMSIpOwotICAgIHRo
aXMuaGVhZGVyRWxlbWVudC50ZXh0Q29udGVudCA9IGhlYWRpbmdUZXh0OwotICAgIHRoaXMuaW5z
dHJ1Y3Rpb25zRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmhlYWRlckVsZW1lbnQpOwotCi0gICAg
aWYgKGluc3RydWN0aW9uc1RleHQpCi0gICAgICAgIHRoaXMuYWRkTWVzc2FnZShpbnN0cnVjdGlv
bnNUZXh0KTsKLX0KLQotV2ViSW5zcGVjdG9yLldlbGNvbWVWaWV3LnByb3RvdHlwZSA9IHsKLSAg
ICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ3xFbGVtZW50fSBtZXNzYWdlCi0gICAgICovCi0g
ICAgYWRkTWVzc2FnZTogZnVuY3Rpb24obWVzc2FnZSkKLSAgICB7Ci0gICAgICAgIHZhciBtZXNz
YWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICBtZXNz
YWdlRWxlbWVudC5jbGFzc05hbWUgPSAibWVzc2FnZSI7Ci0gICAgICAgIGlmICh0eXBlb2YgbWVz
c2FnZSA9PT0gInN0cmluZyIpCi0gICAgICAgICAgICBtZXNzYWdlRWxlbWVudC50ZXh0Q29udGVu
dCA9IG1lc3NhZ2U7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1lc3NhZ2VFbGVtZW50LmFw
cGVuZENoaWxkKG1lc3NhZ2UpOwotICAgICAgICB0aGlzLmluc3RydWN0aW9uc0VsZW1lbnQuYXBw
ZW5kQ2hpbGQobWVzc2FnZUVsZW1lbnQpOwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9yLldlbGNv
bWVWaWV3LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2F1ZGl0c1Bh
bmVsLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvYXVkaXRzUGFuZWwu
Y3NzCmluZGV4IDRjZWFiYjc1ODExYzEyZjlkYmQ4MmVhMmNlODlkYWFkNTFhZmVjNWMuLjEyMWJh
ZmY2MjE1YzZmOTgwODQzMGU5YWQzM2ZhNDNlYTEzM2EzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvYXVkaXRzUGFuZWwuY3NzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvYXVkaXRzUGFuZWwuY3NzCkBAIC02NCwxNCArNjQs
MTEgQEAKICAgICBwYWRkaW5nOiAwIDAgMCAxNnB4OwogICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7
CiAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAt
d2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogfQogCiAuYXVkaXQtbGF1bmNoZXItdmlldyBo
MSB7Ci0gICAgY29sb3I6IHJnYigxMTAsIDExNiwgMTI4KTsKLSAgICBmb250LXNpemU6IDE2cHg7
Ci0gICAgbGluZS1oZWlnaHQ6IDIwcHg7Ci0gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICBw
YWRkaW5nLXRvcDogMTVweDsKIH0KIApAQCAtODgsOSArODUsNiBAQAogICAgIHdpZHRoOiAxMDAl
OwogICAgIHBhZGRpbmc6IDE2cHggMDsKIH0KLS5hdWRpdC1sYXVuY2hlci12aWV3IC5mbGV4aWJs
ZS1zcGFjZSB7Ci0gICAgLXdlYmtpdC1ib3gtZmxleDogMTsKLX0KIAogLmF1ZGl0LWxhdW5jaGVy
LXZpZXcgZGl2LmF1ZGl0LWNhdGVnb3JpZXMtY29udGFpbmVyIHsKICAgICBwb3NpdGlvbjogcmVs
YXRpdmU7CkBAIC0xMDEsMTkgKzk1LDYgQEAKIH0KIAogLmF1ZGl0LWxhdW5jaGVyLXZpZXcgYnV0
dG9uIHsKLSAgICBjb2xvcjogcmdiKDYsIDYsIDYpOwotICAgIGJhY2tncm91bmQtY29sb3I6IHRy
YW5zcGFyZW50OwotICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNjUsIDE2NSwgMTY1KTsKLSAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM3LCAyMzcsIDIzNyk7Ci0gICAgYmFja2dyb3VuZC1p
bWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJv
bShyZ2IoMjUyLCAyNTIsIDI1MikpLCB0byhyZ2IoMjIzLCAyMjMsIDIyMykpKTsKLSAgICAtd2Vi
a2l0LWJvcmRlci1yYWRpdXM6IDEycHg7Ci0gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwot
fQotCi0uYXVkaXQtbGF1bmNoZXItdmlldyBidXR0b24gewotICAgIGZvbnQtc2l6ZTogMTNweDsK
LSAgICBwYWRkaW5nOiAzcHggMjBweDsKLSAgICBoZWlnaHQ6IDI0cHg7CiAgICAgbWFyZ2luOiAw
IDVweCAwIDA7CiB9CiAKQEAgLTEyMiwyMiArMTAzLDEyIEBACiAgICAgYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShy
Z2IoMTk0LCAxOTQsIDE5NCkpLCB0byhyZ2IoMjM5LCAyMzksIDIzOSkpKTsKIH0KIAotYm9keS5p
bmFjdGl2ZSAuYXVkaXQtbGF1bmNoZXItdmlldyBidXR0b24sIC5hdWRpdC1sYXVuY2hlci12aWV3
IGJ1dHRvbjpkaXNhYmxlZCB7Ci0gICAgY29sb3I6IHJnYigxMzAsIDEzMCwgMTMwKTsKLSAgICBi
b3JkZXItY29sb3I6IHJnYigyMTIsIDIxMiwgMjEyKTsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
Z2IoMjM5LCAyMzksIDIzOSk7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVu
dChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMjUwLCAyNTAsIDI1MCkp
LCB0byhyZ2IoMjM1LCAyMzUsIDIzNSkpKTsKLX0KLQotLmF1ZGl0LWxhdW5jaGVyLXZpZXcgbGFi
ZWwgewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICB0
ZXh0LWFsaWduOiBsZWZ0OwotICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CisucGFuZWwtZW5h
Ymxlci12aWV3LmF1ZGl0LWxhdW5jaGVyLXZpZXcgbGFiZWwgewogICAgIHBhZGRpbmc6IDAgMCA1
cHggMDsKKyAgICBtYXJnaW46IDA7CiB9CiAKLS5hdWRpdC1sYXVuY2hlci12aWV3IGxhYmVsLmRp
c2FibGVkIHsKKy5wYW5lbC1lbmFibGVyLXZpZXcuYXVkaXQtbGF1bmNoZXItdmlldyBsYWJlbC5k
aXNhYmxlZCB7CiAgICAgY29sb3I6IHJnYigxMzAsIDEzMCwgMTMwKTsKIH0KIApAQCAtMTQ1LDI2
ICsxMTYsNiBAQCBib2R5LmluYWN0aXZlIC5hdWRpdC1sYXVuY2hlci12aWV3IGJ1dHRvbiwgLmF1
ZGl0LWxhdW5jaGVyLXZpZXcgYnV0dG9uOmRpc2FibGVkCiAgICAgbWFyZ2luLWxlZnQ6IDA7CiB9
CiAKLS5hdWRpdC1sYXVuY2hlci12aWV3IGlucHV0W3R5cGU9InJhZGlvIl0gewotICAgIGhlaWdo
dDogMTdweDsKLSAgICB3aWR0aDogMTdweDsKLSAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTY1
LCAxNjUsIDE2NSk7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5l
YXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMjUyLCAyNTIsIDI1MikpLCB0byhy
Z2IoMjIzLCAyMjMsIDIyMykpKTsKLSAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDhweDsKLSAg
ICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci0gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsK
LSAgICBtYXJnaW46IDAgNXB4IDVweCAwOwotfQotCi0uYXVkaXQtbGF1bmNoZXItdmlldyBpbnB1
dFt0eXBlPSJyYWRpbyJdOmFjdGl2ZTpub3QoOmRpc2FibGVkKSB7Ci0gICAgYmFja2dyb3VuZC1p
bWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJv
bShyZ2IoMTk0LCAxOTQsIDE5NCkpLCB0byhyZ2IoMjM5LCAyMzksIDIzOSkpKTsKLX0KLQotLmF1
ZGl0LWxhdW5jaGVyLXZpZXcgaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2VkOm5vdCg6ZGlzYWJs
ZWQpLCAuYXVkaXQtbGF1bmNoZXItdmlldyBpbnB1dFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQ6ZGlz
YWJsZWQgewotICAgIGJhY2tncm91bmQ6IHVybChJbWFnZXMvcmFkaW9Eb3QucG5nKSBjZW50ZXIg
bm8tcmVwZWF0LAotICAgICAgICAgICAgICAgIC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0
IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiKDI1MiwgMjUyLCAyNTIpKSwgdG8ocmdiKDIyMywg
MjIzLCAyMjMpKSk7Ci19Ci0KIC5hdWRpdC1sYXVuY2hlci12aWV3IC5yZXNvdXJjZS1wcm9ncmVz
cyA+IGltZyB7CiAgICAgY29udGVudDogdXJsKEltYWdlcy9zcGlubmVyLmdpZik7CiAgICAgdmVy
dGljYWwtYWxpZ246IHRleHQtdG9wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggMTVkNTJmOWUzMmEyNjVkYjQxOTMxMDhjNGY5
NmE1YjU5MjhjNjQzYS4uMmY0NGE0ZjhmYzZiNjUwYmMyYTIwNjdlMjBmM2Y5Mzc2ZWQxZGQxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
aHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5o
dG1sCkBAIC0xMDUsNyArMTA1LDYgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJDU1NLZXl3b3JkQ29tcGxldGlvbnMuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlN0eWxlc1NpZGViYXJQYW5lLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJQYW5l
bEVuYWJsZXJWaWV3LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJXZWxjb21lVmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iU3RhdHVzQmFyQnV0dG9uLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJFbGVtZW50c1BhbmVsLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJOZXR3b3JrUGFu
ZWwuanMiPjwvc2NyaXB0PgpAQCAtMTUzLDYgKzE1Miw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSW1hZ2VWaWV3LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJEYXRhYmFzZVRhYmxlVmlldy5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRGF0
YWJhc2VRdWVyeVZpZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IlByb2ZpbGVMYXVuY2hlclZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlByb2ZpbGVEYXRhR3JpZFRyZWUuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkJvdHRvbVVw
UHJvZmlsZURhdGFHcmlkVHJlZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iVG9wRG93blByb2ZpbGVEYXRhR3JpZFRyZWUuanMiPjwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9wYW5lbEVu
YWJsZXJWaWV3LmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvcGFuZWxF
bmFibGVyVmlldy5jc3MKaW5kZXggZDczYzZjYmZjMmI5NWRlMGE3ODlhYWQ0NjNjOWExZWYyMmFh
NTAyMC4uNGE5NWI0MTEzNGE0ODZiOTk4OTVmZDQ0Mzk4Y2I3OGRjZmU1NzRlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9wYW5lbEVuYWJsZXJWaWV3LmNz
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3BhbmVsRW5hYmxlclZp
ZXcuY3NzCkBAIC03Niw3ICs3Niw3IEBACiAgICAgZGlzcGxheTogbm9uZTsKIH0KIAotLnBhbmVs
LWVuYWJsZXItdmlldyBpbWcsIGRpdi53ZWxjb21lLWluc3RydWN0aW9ucy1hbGlnbmVyIHsKKy5w
YW5lbC1lbmFibGVyLXZpZXcgaW1nIHsKICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgbWluLWhlaWdo
dDogMjAwcHg7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwpAQCAtOTIsNiArOTIsMTAgQEAKICAgICB3
aWR0aDogMDsKIH0KIAorLnBhbmVsLWVuYWJsZXItdmlldyAuZmxleGlibGUtc3BhY2UgeworICAg
IC13ZWJraXQtYm94LWZsZXg6IDE7Cit9CisKIC5wYW5lbC1lbmFibGVyLXZpZXcgZm9ybSB7CiAg
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CkBA
IC0xMTQsMzUgKzExOCwyMyBAQAogICAgIG1hcmdpbjogNnB4IDAgMCAwOwogICAgIHBhZGRpbmc6
IDNweCAyMHB4OwogICAgIGhlaWdodDogMjRweDsKKyAgICBjb2xvcjogcmdiKDYsIDYsIDYpOwor
ICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OworICAgIGJvcmRlcjogMXB4IHNvbGlk
IHJnYigxNjUsIDE2NSwgMTY1KTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM3LCAyMzcs
IDIzNyk7CisgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxl
ZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMjUyLCAyNTIsIDI1MikpLCB0byhyZ2IoMjIz
LCAyMjMsIDIyMykpKTsKKyAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEycHg7CisgICAgLXdl
YmtpdC1hcHBlYXJhbmNlOiBub25lOwogfQogCi0ucGFuZWwtZW5hYmxlci12aWV3LndlbGNvbWUg
ewotICAgIHotaW5kZXg6IGF1dG87Ci19Ci0KLS5wYW5lbC1lbmFibGVyLXZpZXcud2VsY29tZSBk
aXYud2VsY29tZS1pbnN0cnVjdGlvbnMtYWxpZ25lciB7Ci0gICAgZGlzcGxheTogaW5saW5lLWJs
b2NrOwotICAgIHdpZHRoOiAwOwotfQotCi0ucGFuZWwtZW5hYmxlci12aWV3LndlbGNvbWUgLmlu
c3RydWN0aW9ucyB7Ci0gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgIHZlcnRpY2FsLWFs
aWduOiBtaWRkbGU7Ci0gICAgbWFyZ2luOiAwOwotICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7Ci0g
ICAgbGluZS1oZWlnaHQ6IDE3NSU7Ci19Ci0KLS5wYW5lbC1lbmFibGVyLXZpZXcud2VsY29tZSAu
bWVzc2FnZSB7Ci0gICAgbWFyZ2luLWJvdHRvbTogMmV4OwotfQotCi0ucGFuZWwtZW5hYmxlci12
aWV3LndlbGNvbWUgYnV0dG9uLnN0YXR1cy1iYXItaXRlbSB7Ci0gICAgYmFja2dyb3VuZC1pbWFn
ZTogbm9uZTsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworYm9keS5pbmFjdGl2ZSAucGFuZWwt
ZW5hYmxlci12aWV3IGJ1dHRvbiwgLnBhbmVsLWVuYWJsZXItdmlldyBidXR0b246ZGlzYWJsZWQg
eworICAgIGNvbG9yOiByZ2IoMTMwLCAxMzAsIDEzMCk7CisgICAgYm9yZGVyLWNvbG9yOiByZ2Io
MjEyLCAyMTIsIDIxMik7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOSwgMjM5LCAyMzkp
OworICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRv
cCwgbGVmdCBib3R0b20sIGZyb20ocmdiKDI1MCwgMjUwLCAyNTApKSwgdG8ocmdiKDIzNSwgMjM1
LCAyMzUpKSk7CiB9CiAKLS5wYW5lbC1lbmFibGVyLXZpZXcgaW5wdXQgeworLnBhbmVsLWVuYWJs
ZXItdmlldyBpbnB1dFt0eXBlPSJyYWRpbyJdIHsKICAgICBoZWlnaHQ6IDE3cHg7CiAgICAgd2lk
dGg6IDE3cHg7CiAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDE2NSwgMTY1LCAxNjUpOwpAQCAt
MTUzLDE1ICsxNDUsMjAgQEAKICAgICBtYXJnaW46IDAgNXB4IDVweCAwOwogfQogCi0ucGFuZWwt
ZW5hYmxlci12aWV3IGlucHV0OmFjdGl2ZSB7CisucGFuZWwtZW5hYmxlci12aWV3IGlucHV0W3R5
cGU9InJhZGlvIl06YWN0aXZlOm5vdCg6ZGlzYWJsZWQpIHsKICAgICBiYWNrZ3JvdW5kLWltYWdl
OiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJn
YigxOTQsIDE5NCwgMTk0KSksIHRvKHJnYigyMzksIDIzOSwgMjM5KSkpOwogfQogCi0ucGFuZWwt
ZW5hYmxlci12aWV3IGlucHV0OmNoZWNrZWQgeworLnBhbmVsLWVuYWJsZXItdmlldyBpbnB1dFt0
eXBlPSJyYWRpbyJdOmNoZWNrZWQgewogICAgIGJhY2tncm91bmQ6IHVybChJbWFnZXMvcmFkaW9E
b3QucG5nKSBjZW50ZXIgbm8tcmVwZWF0LAogICAgICAgICAgICAgICAgIC13ZWJraXQtZ3JhZGll
bnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiKDI1MiwgMjUyLCAyNTIp
KSwgdG8ocmdiKDIyMywgMjIzLCAyMjMpKSk7CiB9CiAKKy5wYW5lbC1lbmFibGVyLXZpZXcgaW5w
dXRbdHlwZT0icmFkaW8iXTpjaGVja2VkOmFjdGl2ZSB7CisgICAgYmFja2dyb3VuZDogdXJsKElt
YWdlcy9yYWRpb0RvdC5wbmcpIGNlbnRlciBuby1yZXBlYXQsCisgICAgICAgICAgICAgICAgLXdl
YmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMTk0
LCAxOTQsIDE5NCkpLCB0byhyZ2IoMjM5LCAyMzksIDIzOSkpKTsKK30KKwogLnBhbmVsLWVuYWJs
ZXItdmlldy5zY3JpcHRzIGltZyB7CiAgICAgY29udGVudDogdXJsKEltYWdlcy9zY3JpcHRzU2ls
aG91ZXR0ZS5wbmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9wcm9maWxlc1BhbmVsLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvcHJvZmlsZXNQYW5lbC5jc3MKaW5kZXggZmFlMjk5YjRjMjBjNjY4NjkxYjdjMWZmM2Vl
N2M1MjVjYjYyZTYzMS4uNjk1MjFmYmM3ZWVkMjFmNjhiZWU1MGQxOGQyM2MzNDQ0ZmRiZGYxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9wcm9maWxlc1Bh
bmVsLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Byb2ZpbGVz
UGFuZWwuY3NzCkBAIC00Nyw2ICs0NywxMiBAQAogICAgIG1hcmdpbi1sZWZ0OiAtMXB4OwogfQog
CisucHJvZmlsZS1sYXVuY2hlci12aWV3LXRyZWUtaXRlbSA+IC5pY29uIHsKKyAgICBwYWRkaW5n
OiAxNXB4OworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFnZXMvdG9vbGJhckljb25zLnBu
Zyk7CisgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiAtMTYwcHg7Cit9CisKIC5wcm9maWxlLXNp
ZGViYXItdHJlZS1pdGVtIC5pY29uIHsKICAgICBjb250ZW50OiB1cmwoSW1hZ2VzL3Byb2ZpbGVJ
Y29uLnBuZyk7CiB9CkBAIC0xNDAsMyArMTQ2LDQ4IEBACiAucmVzZXQtcHJvZmlsZS1zdGF0dXMt
YmFyLWl0ZW0gLmdseXBoIHsKICAgICAtd2Via2l0LW1hc2stcG9zaXRpb246IDAgMDsKIH0KKwor
LnByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250ZW50IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgdG9wOiAwOworICAgIHJpZ2h0OiAwOworICAgIGJvdHRvbTogMDsKKyAgICBsZWZ0OiAw
OworICAgIHBhZGRpbmc6IDAgMCAwIDE2cHg7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7Cisg
ICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwor
fQorCisucHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQgaDEgeworICAgIHBhZGRpbmc6IDE1
cHggMCAxMHB4OworfQorCisucGFuZWwtZW5hYmxlci12aWV3LnByb2ZpbGUtbGF1bmNoZXItdmll
dyBmb3JtIHsKKyAgICBwYWRkaW5nOiAwOworICAgIGZvbnQtc2l6ZTogMTNweDsKKyAgICB3aWR0
aDogMTAwJTsKK30KKworLnBhbmVsLWVuYWJsZXItdmlldy5wcm9maWxlLWxhdW5jaGVyLXZpZXcg
bGFiZWwgeworICAgIG1hcmdpbjogMDsKK30KKworLnByb2ZpbGUtbGF1bmNoZXItdmlldy1jb250
ZW50IHAgeworICAgIGNvbG9yOiBncmV5OworICAgIG1hcmdpbi10b3A6IDFweDsKKyAgICBtYXJn
aW4tbGVmdDogMjJweDsKK30KKworLnBhbmVsLWVuYWJsZXItdmlldy5wcm9maWxlLWxhdW5jaGVy
LXZpZXcgYnV0dG9uOm5vdCguc3RhdHVzLWJhci1pdGVtKSB7CisgICAgY29sb3I6IHJnYig2LCA2
LCA2KTsKKyAgICBtYXJnaW46IDE2cHggMDsKK30KKworLnByb2ZpbGUtbGF1bmNoZXItdmlldy1j
b250ZW50IGJ1dHRvbi5ydW5uaW5nOm5vdCguc3RhdHVzLWJhci1pdGVtKSB7CisgICAgY29sb3I6
IHJlZDsKK30KKworYm9keS5pbmFjdGl2ZSAucHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQg
YnV0dG9uLnJ1bm5pbmc6bm90KC5zdGF0dXMtYmFyLWl0ZW0pIHsKKyAgICBjb2xvcjogcmdiKDIy
MCwgMTMwLCAxMzApOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU4YmY1YTc5MDc5NTdlYTQzODNkODRhMzZjNGRlYjVh
NTU1N2UzYmUuLmViMmM0MjdhY2QyOGU5Y2UxNmI0NTVkMDVhMGYzZjkxODI4MjU1ODYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMi0yOCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEludHJvZHVjZSBhIFByb2Zp
bGVyIGxhdW5jaGVyIHZpZXcgc2ltaWxhciB0byB0aGF0IGluIHRoZSBBdWRpdHMgcGFuZWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjI4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
cHJvZmlsZXIvcHJvZmlsZXItdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfUHJvZmlsZXJU
ZXN0KToKKwogMjAxMS0xMi0yNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBBZGQgcGFzcy9jcmFzaCBleHBlY3RhdGlvbiBmb3Igc3ZnL1czQy1TVkctMS4xL2Fu
aW1hdGUtZWxlbS01Mi10LnN2ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL3Byb2ZpbGVyLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
cHJvZmlsZXItdGVzdC5qcwppbmRleCBmZDU0NWQwOGJiMzk1NWQ0NjQ4Nzg5OTBlNWMzNDk1NDIw
NDE1YzdmLi5jY2E0OTJhMjNhZTIyYjU5ZTc5ZjBiNmQ1NzQyNGQyMzQyYmJlMjYxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvcHJvZmlsZXItdGVzdC5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvcHJvZmlsZXItdGVzdC5qcwpAQCAtNzUs
NyArNzUsNyBAQCBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFByb2ZpbGVWaWV3SXNTaG93biA9IGZ1
bmN0aW9uKHRpdGxlLCBjYWxsYmFjaykKICAgICBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Quc2Fm
ZVdyYXAoY2FsbGJhY2spOwogCiAgICAgdmFyIHByb2ZpbGVzUGFuZWwgPSBXZWJJbnNwZWN0b3Iu
cGFuZWxzLnByb2ZpbGVzOwotICAgIGlmIChwcm9maWxlc1BhbmVsLnZpc2libGVWaWV3ICYmIHBy
b2ZpbGVzUGFuZWwudmlzaWJsZVZpZXcucHJvZmlsZS50aXRsZSA9PT0gdGl0bGUpCisgICAgaWYg
KHByb2ZpbGVzUGFuZWwudmlzaWJsZVZpZXcgJiYgcHJvZmlsZXNQYW5lbC52aXNpYmxlVmlldy5w
cm9maWxlICYmIHByb2ZpbGVzUGFuZWwudmlzaWJsZVZpZXcucHJvZmlsZS50aXRsZSA9PT0gdGl0
bGUpCiAgICAgICAgIGNhbGxiYWNrKHByb2ZpbGVzUGFuZWwudmlzaWJsZVZpZXcpOwogICAgIGVs
c2UKICAgICAgICAgSW5zcGVjdG9yVGVzdC5fd2FpdFVudGlsUHJvZmlsZVZpZXdJc1Nob3duQ2Fs
bGJhY2sgPSB7IHRpdGxlOiB0aXRsZSwgY2FsbGJhY2s6IGNhbGxiYWNrIH07Cg==
</data>
<flag name="review"
          id="120976"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>