<?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>176936</bug_id>
          
          <creation_ts>2017-09-14 11:51:52 -0700</creation_ts>
          <short_desc>Web Inspector: make recording swizzle async</short_desc>
          <delta_ts>2017-09-27 12:28:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>173807</blocked>
    
    <blocked>176441</blocked>
    
    <blocked>176988</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1348905</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-09-14 11:51:52 -0700</bug_when>
    <thetext>In the case that we need to swizzle a CanvasPattern, we need to wait for the required Image (first argument) to have loaded before we attempt to create the pattern.  The current swizzle logic is such that even though we use a dataURL, it is still possible for the Image to not have loaded by the time we want to create the CanvasPattern.  As such, we should make the entire the swizzle system async so that we can wait to create the CanvasPattern until the required Image has loaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348907</commentid>
    <comment_count>1</comment_count>
      <attachid>320799</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-09-14 11:54:32 -0700</bug_when>
    <thetext>Created attachment 320799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348972</commentid>
    <comment_count>2</comment_count>
      <attachid>320799</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-09-14 13:38:54 -0700</bug_when>
    <thetext>Comment on attachment 320799
Patch

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

r=me

&gt; Source/WebCore/ChangeLog:8
&gt; +        Modified existing tests.  No change in functionality.

Two spaces after a period is so 90&apos;s.  See what I did there? That said I don&apos;t find these kinds of lines particularly useful and can just be dropped.

&gt; Source/WebInspectorUI/ChangeLog:10
&gt; +        necessary primarily for swizzling Image values, as it is not able to be used (such as for

Replace &quot;it&quot; with &quot;the Image&quot;

&gt; Source/WebInspectorUI/UserInterface/Models/Recording.js:231
&gt; +                    var loadPromise = new WI.WrappedPromise;
&gt; +                    function resolveWithImage(event) {
&gt; +                        loadPromise.resolve(image);
&gt; +                    }
&gt; +                    image.addEventListener(&quot;load&quot;, resolveWithImage);
&gt; +                    image.addEventListener(&quot;error&quot;, resolveWithImage);
&gt; +
&gt; +                    image.src = data;
&gt; +
&gt; +                    this._swizzle[index][type] = await loadPromise.promise;

Lets avoid WI.WrappedPromise here. It is only useful when someone else wants to resolve the promise. Here everything is self contained and fits on a few lines:

    this._swizzle[index][type] = new Promise((resolve, reject) =&gt; {
        let image = new Image;
        let resolveWithImage = () =&gt; { resolve(image); }
        image.addEventListener(&quot;load&quot;, resolveWithImage);
        image.addEventListener(&quot;error&quot;, resolveWithImage);
        image.src = data;
    });
    break;

&gt; Source/WebInspectorUI/UserInterface/Models/Recording.js:256
&gt; +                    var image = await this.swizzle(data[0], WI.Recording.Swizzle.Image);
&gt; +                    var repeat = await this.swizzle(data[1], WI.Recording.Swizzle.String);

While there is no issue right now, we have to be careful we don&apos;t fall into a trap here.

If a future swizzle takes _multiple_ images / or simply has _multiple_ swizzles which we expect to do work asynchronously then we should be sure to start both operations before awaiting.

For example this:

    // serial
    var image1 = await this.swizzle(data[0], WI.Recording.Swizzle.Image);
    var image2 = await this.swizzle(data[1], WI.Recording.Swizzle.Image);

Will start image1 load =&gt; wait for image1 =&gt; start image2 load =&gt; wait for image2. Effectively it loads both images in serial.

While this:

    // parallel
    var [image1, image2] = await Promise.all([
        this.swizzle(data[0], WI.Recording.Swizzle.Image),
        this.swizzle(data[1], WI.Recording.Swizzle.Image),
    ]);

Will start image1 load =&gt; start image 2 load =&gt; wait for both to complete. Effectively it loads both images in parallel.

I searched around and I think may cover it:
https://ponyfoo.com/articles/understanding-javascript-async-await#fork-in-the-road

---

So it might be worthwhile to switch to the parallel syntax now to avoid a potential mishap in the future.

&gt; Source/WebInspectorUI/UserInterface/Models/RecordingAction.js:120
&gt; +        this._name = await recording.swizzle(this._payloadName, WI.Recording.Swizzle.String);

FWIW I think all of these are fine. Because where it really counts is parallel, and where it doesn&apos;t really matter (None / String) its serial. And it reads nicely.

&gt; Source/WebInspectorUI/UserInterface/Views/RecordingContentView.js:313
&gt;                      case &quot;fillStyle&quot;:
&gt;                      case &quot;strokeStyle&quot;:

This one may be a small concern since it is doing things serially instead of in parallel, however maybe we can assume the swizzle here will be an immediate result?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348977</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-09-14 13:39:44 -0700</bug_when>
    <thetext>&gt;         let resolveWithImage = () =&gt; { resolve(image); }

Obviously with a semicolon at the end. Never just copy and paste code from me =P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348986</commentid>
    <comment_count>4</comment_count>
      <attachid>320799</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-09-14 13:50:20 -0700</bug_when>
    <thetext>Comment on attachment 320799
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Modified existing tests.  No change in functionality.
&gt; 
&gt; Two spaces after a period is so 90&apos;s.  See what I did there? That said I don&apos;t find these kinds of lines particularly useful and can just be dropped.

As in the 1890s!

With the advent of the computer age, typographers began deprecating double spacing, even in monospaced text. In 1989, Desktop Publishing by Design stated that &quot;typesetting requires only one space after periods, question marks, exclamation points, and colons&quot;, and identified single sentence spacing as a typographic convention.

- &lt;https://en.wikipedia.org/wiki/Sentence_spacing&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349014</commentid>
    <comment_count>5</comment_count>
      <attachid>320799</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-09-14 14:30:41 -0700</bug_when>
    <thetext>Comment on attachment 320799
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/RecordingContentView.js:313
&gt;&gt;                      case &quot;strokeStyle&quot;:
&gt; 
&gt; This one may be a small concern since it is doing things serially instead of in parallel, however maybe we can assume the swizzle here will be an immediate result?

Everything that doesn&apos;t involve an Image should be an immediate result.  Also, this will only happen once per recording (initial state), and its a fairly small amount of data, so I think it&apos;s fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349017</commentid>
    <comment_count>6</comment_count>
      <attachid>320825</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-09-14 14:32:09 -0700</bug_when>
    <thetext>Created attachment 320825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349051</commentid>
    <comment_count>7</comment_count>
      <attachid>320825</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-14 15:43:49 -0700</bug_when>
    <thetext>Comment on attachment 320825
Patch

Clearing flags on attachment: 320825

Committed r222057: &lt;http://trac.webkit.org/changeset/222057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349052</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-14 15:43:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353411</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:28:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693338&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320799</attachid>
            <date>2017-09-14 11:54:32 -0700</date>
            <delta_ts>2017-09-14 14:32:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176936-20170914115420.patch</filename>
            <type>text/plain</type>
            <size>48982</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiODRhZWNiYzMxNDJmY2M5YTEzYzBmNDNjMzRhZWMyODMxZjE0Yzc2Li43
MmQ2ZWNjNzhiYjZiODUyM2U2NDYyMThiMTkyMTdmMWIyYzk4MTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTctMDktMTQgIERldmluIFJvdXNzbyAgPHdlYmtpdEBkZXZpbnJvdXNz
by5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbWFrZSByZWNvcmRpbmcgc3dpenpsZSBh
c3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2
OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9k
aWZpZWQgZXhpc3RpbmcgdGVzdHMuICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ2FudmFzOjpidWlsZEFycmF5Rm9yQ2FudmFzUGF0dGVybik6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDYW52YXM6OmJ1aWxkQWN0aW9uKToKKyAgICAgICAgRm9yIG9iamVj
dHMgdGhhdCBhcmUgbm90IGFibGUgdG8gYmUgc3RyaW5naWZpZWQgKGUuZy4gZWxlbWVudHMpLCBz
ZW5kIGEgZGVkdXBsaWNhdGVkIHN0cmluZworICAgICAgICB3aXRoIHRoZSBuYW1lIG9mIHRoZSBv
YmplY3QgYXMgYSBwbGFjZWhvbGRlciB2YWx1ZSAoZS5nLiAiRWxlbWVudCIpLgorCiAyMDE3LTA5
LTEzICBEZXZpbiBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IEV2ZW50IExpc3RlbmVycyBzZWN0aW9uIGRvZXMgbm90IHVwZGF0ZSB3aGVu
IGxpc3RlbmVycyBhcmUgYWRkZWQvcmVtb3ZlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXgg
YjhiZWU3MjYyMjFlODY2NWEzYTJjYzk0ODNjZGYxZDBjNTU3ZjYxZC4uNDAwZjlkZTM0NGIxMWFj
OGM0MDAxNTExOGVhODBiZjM4NGIyNTgyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTkgQEAKKzIwMTctMDktMTQgIERldmluIFJvdXNzbyAgPHdlYmtpdEBkZXZpbnJvdXNz
by5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbWFrZSByZWNvcmRpbmcgc3dpenpsZSBh
c3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2
OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92
ZSBhbGwgc3dpenpsZSBmdW5jdGlvbnMsIGFuZCBhbGwgbG9naWMgdGhhdCBkZXBlbmRzIG9uIHN3
aXp6bGVkIHZhbHVlcywgdG8gYXN5bmMKKyAgICAgICAgZnVuY3Rpb25zIHNvIHRoYXQgYXdhaXQg
Y2FuIGJlIHVzZWQgdG8gcGF1c2UgZXhlY3V0aW9uIHdoaWxlIG9iamVjdHMgbG9hZC4gVGhpcyB3
YXMKKyAgICAgICAgbmVjZXNzYXJ5IHByaW1hcmlseSBmb3Igc3dpenpsaW5nIEltYWdlIHZhbHVl
cywgYXMgaXQgaXMgbm90IGFibGUgdG8gYmUgdXNlZCAoc3VjaCBhcyBmb3IKKyAgICAgICAgY3Jl
YXRpbmcgYSBDYW52YXNQYXR0ZXJuKSB1bnRpbCBpdHMgImxvYWQiIGV2ZW50IGhhcyBmaXJlZC4g
QW55IGNhbGxlcnMgb2YgYSBSZWNvcmRpbmcncworICAgICAgICBhY3Rpb25zIGdldHRlciBtdXN0
IG5vdyBhZGFwdCB0byB3b3JraW5nIHdpdGggYSBwcm9taXNlIHRoYXQgd2lsbCByZXNvbHZlIG9u
Y2UgYWxsIHN3aXp6bGluZworICAgICAgICBoYXMgZmluaXNoZWQgYWNyb3NzIGFsbCBhY3Rpb25z
IHdpdGhpbiB0aGF0IHJlY29yZGluZy4KKworICAgICAgICAqIC5lc2xpbnRyYzoKKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qczoKKyAgICAgICAgKFdJLlJlY29y
ZGluZyk6CisgICAgICAgIChXSS5SZWNvcmRpbmcucHJvdG90eXBlLmFzeW5jIHN3aXp6bGUpOgor
ICAgICAgICAoV0kuUmVjb3JkaW5nLnByb3RvdHlwZS5zd2l6emxlKTogRGVsZXRlZC4KKyAgICAg
ICAgRHJpdmUtYnk6IGN1cnJlbnRseSwgbm8gZGF0YSBpcyBhZGRlZCB0byB0aGUgSlNPTiBmb3Ig
V2ViR0wgb2JqZWN0cywgc28gZG9uJ3QgdHJ5IHRvIHN3aXp6bGUKKyAgICAgICAgdGhlbSBhbmQg
cmV0dXJuIHRoZSBwbGFjZWhvbGRlciB2YWx1ZSAoMCkgaW5zdGVhZC4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZ0FjdGlvbi5qczoKKyAgICAgICAgKFdJLlJlY29y
ZGluZ0FjdGlvbik6CisgICAgICAgIChXSS5SZWNvcmRpbmdBY3Rpb24ucHJvdG90eXBlLnN3aXp6
bGUpOgorICAgICAgICAoV0kuUmVjb3JkaW5nQWN0aW9uLnByb3RvdHlwZS50b0pTT04pOgorICAg
ICAgICAoV0kuUmVjb3JkaW5nQWN0aW9uLnByb3RvdHlwZS5hc3luYyBfc3dpenpsZSk6CisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmdJbml0aWFsU3RhdGVBY3Rpb24u
anM6CisgICAgICAgIChXSS5SZWNvcmRpbmdJbml0aWFsU3RhdGVBY3Rpb24pOgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5qczoKKyAgICAgICAg
KFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS51cGRhdGVBY3Rpb25JbmRleCk6Cisg
ICAgICAgIChXSS5SZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5cGUuYXN5bmMgX2dlbmVyYXRl
Q29udGVudENhbnZhczJEKToKKyAgICAgICAgKFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3Rv
dHlwZS5hc3luYyBfZ2VuZXJhdGVDb250ZW50Q2FudmFzV2ViR0wpOgorICAgICAgICAoV0kuUmVj
b3JkaW5nQ29udGVudFZpZXcucHJvdG90eXBlLl91cGRhdGVDYW52YXNQYXRoKToKKyAgICAgICAg
KFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fZ2VuZXJhdGVDb250ZW50Q2FudmFz
MkQpOiBEZWxldGVkLgorICAgICAgICAoV0kuUmVjb3JkaW5nQ29udGVudFZpZXcucHJvdG90eXBl
Ll9nZW5lcmF0ZUNvbnRlbnRDYW52YXNXZWJHTCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanM6CisgICAg
ICAgIChXSS5SZWNvcmRpbmdOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnByb3RvdHlwZS5zZXQgcmVj
b3JkaW5nKToKKyAgICAgICAgKFdJLlJlY29yZGluZ05hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJv
dG90eXBlLnVwZGF0ZUFjdGlvbkluZGV4KToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvUmVjb3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV0kuUmVj
b3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJhclBhbmVsKToKKyAgICAgICAgKFdJLlJlY29yZGluZ1N0
YXRlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUudXBkYXRlQWN0aW9uSW5kZXgpOgorICAg
ICAgICAoV0kuUmVjb3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fZ2Vu
ZXJhdGVEZXRhaWxzQ2FudmFzMkQpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9S
ZWNvcmRpbmdUYWJDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLlJlY29yZGluZ1RhYkNvbnRl
bnRWaWV3LnByb3RvdHlwZS5zaG93UmVwcmVzZW50ZWRPYmplY3QpOgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwuanM6Cisg
ICAgICAgIChXSS5SZWNvcmRpbmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwpOgorICAgICAgICAo
V0kuUmVjb3JkaW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS51cGRhdGVBY3Rp
b25JbmRleCk6CisKIDIwMTctMDktMTMgIERldmluIFJvdXNzbyAgPHdlYmtpdEBkZXZpbnJvdXNz
by5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgcmVjb3JkaW5ncyB0byBiZSBz
YXZlZCB2aWEg4oyYLVMgaW4gdGhlIFJlY29yZGluZyB0YWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNhbnZhcy5jcHAKaW5kZXggMmI2MjYxMThlYjAzZDZhZmQ3OThlMTBk
MjJmMzIyYjM3ZjE2Y2EzNS4uY2M4NTEyOTg5NTBiMTc3NjM4MjI4NzEzOGEyODBjYzM0MjJjYjAz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5jcHAKQEAg
LTUxMiw3ICs1MTIsNyBAQCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVj
dG9yOjpJbnNwZWN0b3JWYWx1ZT4+IEluc3BlY3RvckNhbnZhczo6YgogICAgICAgICAgICAgWyZd
IChjb25zdCBFbGVtZW50KikgewogICAgICAgICAgICAgICAgIC8vIEVsZW1lbnRzIGFyZSBub3Qg
c2VyaWFsaXphYmxlLCBzbyBhZGQgYSBzdHJpbmcgYXMgYSBwbGFjZWhvbGRlciBzaW5jZSB0aGUg
YWN0dWFsCiAgICAgICAgICAgICAgICAgLy8gZWxlbWVudCBjYW5ub3QgYmUgcmVjb25zdHJ1Y3Rl
ZCBpbiB0aGUgZnJvbnRlbmQuCi0gICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKDAsIFJlY29y
ZGluZ1N3aXp6bGVUeXBlczo6Tm9uZSk7CisgICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKGlu
ZGV4Rm9yRGF0YSgiRWxlbWVudCIpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6Ok5vbmUpOwogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgIFsmXSAoSFRNTEltYWdlRWxlbWVudCogdmFsdWUpIHsg
YWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSh2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6
SW1hZ2UpOyB9LAogICAgICAgICAgICAgWyZdIChJbWFnZURhdGEqIHZhbHVlKSB7IGFkZFBhcmFt
ZXRlcihpbmRleEZvckRhdGEodmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkltYWdlRGF0
YSk7IH0sCkBAIC02MjksNyArNjI5LDYgQEAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFy
cmF5PEluc3BlY3RvclZhbHVlPj4gSW5zcGVjdG9yQ2FudmFzOjpidWlsZEFycmF5Rm8KICAgICAg
ICAgcmVwZWF0ID0gQVNDSUlMaXRlcmFsKCJuby1yZXBlYXQiKTsKIAogICAgIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6Okluc3BlY3RvclZhbHVlPj4gYXJyYXkg
PSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6Okluc3BlY3RvclZhbHVlPjo6
Y3JlYXRlKCk7Ci0gICAgYXJyYXktPmFkZEl0ZW0oaW5kZXhGb3JEYXRhKCJwYXR0ZXJuIikpOwog
ICAgIGFycmF5LT5hZGRJdGVtKGluZGV4Rm9yRGF0YShpbWFnZUJ1ZmZlci0+dG9EYXRhVVJMKCJp
bWFnZS9wbmciKSkpOwogICAgIGFycmF5LT5hZGRJdGVtKGluZGV4Rm9yRGF0YShyZXBlYXQpKTsK
ICAgICByZXR1cm4gYXJyYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvLmVz
bGludHJjIGIvU291cmNlL1dlYkluc3BlY3RvclVJLy5lc2xpbnRyYwppbmRleCA2NjQ3MjI5NDNl
OGY0ODg4NmU3MmNmMjRlMGM3MjQzOTQ2NjQ3YzVkLi5kNGMwMjA0YjA4NjE5YzgzZjJlNzU2Yjc2
NjUzMTJkZmU5Mzg4ZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvLmVzbGlu
dHJjCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS8uZXNsaW50cmMKQEAgLTI3LDggKzI3LDgg
QEAKICAgICAiZXh0ZW5kcyI6ICJlc2xpbnQ6cmVjb21tZW5kZWQiLAogICAgICJlbnYiOiB7CiAg
ICAgICAgICJicm93c2VyIjogdHJ1ZSwKLSAgICAgICAgImVzNiI6IHRydWUsCiAgICAgICAgICJ3
b3JrZXIiOiB0cnVlLAorICAgICAgICAiZWNtYVZlcnNpb24iOiAyMDE3LAogICAgIH0sCiAgICAg
Imdsb2JhbHMiOiB7CiAgICAgICAgIC8vIEFnZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKaW5kZXggNTJiMWVk
NzBlMGJiMmE2NDc2MmQ5MWFlNWM1ZTc1ODEzZWU0ZjRlZi4uYmJlZGIwYTBlZTAxMDQxYmViMzkx
MTRiOGM4ZDAyNjVmOTc1ZTlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nLmpzCkBAIC0zMywxMyArMzMsMTQgQEAg
V0kuUmVjb3JkaW5nID0gY2xhc3MgUmVjb3JkaW5nCiAgICAgICAgIHRoaXMuX2ZyYW1lcyA9IGZy
YW1lczsKICAgICAgICAgdGhpcy5fZGF0YSA9IGRhdGE7CiAKLSAgICAgICAgdGhpcy5fYWN0aW9u
cyA9IFtuZXcgV0kuUmVjb3JkaW5nSW5pdGlhbFN0YXRlQWN0aW9uXS5jb25jYXQoLi4udGhpcy5f
ZnJhbWVzLm1hcCgoZnJhbWUpID0+IGZyYW1lLmFjdGlvbnMpKTsKICAgICAgICAgdGhpcy5fc3dp
enpsZSA9IFtdOwogICAgICAgICB0aGlzLl9zb3VyY2UgPSBudWxsOwogCi0gICAgICAgIGZvciAo
bGV0IGZyYW1lIG9mIHRoaXMuX2ZyYW1lcykgewotICAgICAgICAgICAgZm9yIChsZXQgYWN0aW9u
IG9mIGZyYW1lLmFjdGlvbnMpIHsKLSAgICAgICAgICAgICAgICBhY3Rpb24uc3dpenpsZSh0aGlz
KTsKKyAgICAgICAgbGV0IGFjdGlvbnMgPSBbbmV3IFdJLlJlY29yZGluZ0luaXRpYWxTdGF0ZUFj
dGlvbl0uY29uY2F0KC4uLnRoaXMuX2ZyYW1lcy5tYXAoKGZyYW1lKSA9PiBmcmFtZS5hY3Rpb25z
KSk7CisgICAgICAgIHRoaXMuX2FjdGlvbnMgPSBQcm9taXNlLmFsbChhY3Rpb25zLm1hcCgoYWN0
aW9uKSA9PiBhY3Rpb24uc3dpenpsZSh0aGlzKSkpLnRoZW4oKCkgPT4geworICAgICAgICAgICAg
Zm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWFjdGlv
bi52YWxpZCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICAg
ICBsZXQgcHJvdG90eXBlID0gbnVsbDsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5fdHlwZSA9
PT0gV0kuUmVjb3JkaW5nLlR5cGUuQ2FudmFzMkQpCkBAIC01Nyw3ICs1OCw5IEBAIFdJLlJlY29y
ZGluZyA9IGNsYXNzIFJlY29yZGluZwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBh
Y3Rpb25zOworICAgICAgICB9KTsKICAgICB9CiAKICAgICAvLyBTdGF0aWMKQEAgLTE3Miw3ICsx
NzUsNyBAQCBXSS5SZWNvcmRpbmcgPSBjbGFzcyBSZWNvcmRpbmcKICAgICBnZXQgc291cmNlKCkg
eyByZXR1cm4gdGhpcy5fc291cmNlOyB9CiAgICAgc2V0IHNvdXJjZShzb3VyY2UpIHsgdGhpcy5f
c291cmNlID0gc291cmNlOyB9CiAKLSAgICBzd2l6emxlKGluZGV4LCB0eXBlKQorICAgIGFzeW5j
IHN3aXp6bGUoaW5kZXgsIHR5cGUpCiAgICAgewogICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3N3
aXp6bGVbaW5kZXhdICE9PSAib2JqZWN0IikKICAgICAgICAgICAgIHRoaXMuX3N3aXp6bGVbaW5k
ZXhdID0ge307CkBAIC0xODksNiArMTkyLDE4IEBAIFdJLlJlY29yZGluZyA9IGNsYXNzIFJlY29y
ZGluZwogICAgICAgICBpZiAodHlwZSA9PT0gV0kuUmVjb3JkaW5nLlN3aXp6bGUuRE9NTWF0cml4
KQogICAgICAgICAgICAgcmV0dXJuIG5ldyBET01NYXRyaXgoaW5kZXgpOwogCisgICAgICAgIC8v
IEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc2MDA5PiBXZWIgSW5zcGVjdG9yOiBzZW5k
IGRhdGEgZm9yIFdlYkdMIG9iamVjdHMgZHVyaW5nIGEgcmVjb3JkaW5nIGluc3RlYWQgb2YgYSBw
bGFjZWhvbGRlciBzdHJpbmcKKyAgICAgICAgaWYgKHR5cGUgPT09IFdJLlJlY29yZGluZy5Td2l6
emxlLlR5cGVkQXJyYXkKKyAgICAgICAgICAgIHx8IHR5cGUgPT09IFdJLlJlY29yZGluZy5Td2l6
emxlLldlYkdMQnVmZmVyCisgICAgICAgICAgICB8fCB0eXBlID09PSBXSS5SZWNvcmRpbmcuU3dp
enpsZS5XZWJHTEZyYW1lYnVmZmVyCisgICAgICAgICAgICB8fCB0eXBlID09PSBXSS5SZWNvcmRp
bmcuU3dpenpsZS5XZWJHTFJlbmRlcmJ1ZmZlcgorICAgICAgICAgICAgfHwgdHlwZSA9PT0gV0ku
UmVjb3JkaW5nLlN3aXp6bGUuV2ViR0xUZXh0dXJlCisgICAgICAgICAgICB8fCB0eXBlID09PSBX
SS5SZWNvcmRpbmcuU3dpenpsZS5XZWJHTFNoYWRlcgorICAgICAgICAgICAgfHwgdHlwZSA9PT0g
V0kuUmVjb3JkaW5nLlN3aXp6bGUuV2ViR0xQcm9ncmFtCisgICAgICAgICAgICB8fCB0eXBlID09
PSBXSS5SZWNvcmRpbmcuU3dpenpsZS5XZWJHTFVuaWZvcm1Mb2NhdGlvbikgeworICAgICAgICAg
ICAgcmV0dXJuIGluZGV4OworICAgICAgICB9CisKICAgICAgICAgaWYgKCEodHlwZSBpbiB0aGlz
Ll9zd2l6emxlW2luZGV4XSkpIHsKICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAg
bGV0IGRhdGEgPSB0aGlzLl9kYXRhW2luZGV4XTsKQEAgLTIwMiw4ICsyMTcsMTggQEAgV0kuUmVj
b3JkaW5nID0gY2xhc3MgUmVjb3JkaW5nCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAg
ICAgICAgICAgICAgICAgY2FzZSBXSS5SZWNvcmRpbmcuU3dpenpsZS5JbWFnZToKLSAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fc3dpenpsZVtpbmRleF1bdHlwZV0gPSBuZXcgSW1hZ2U7Ci0gICAg
ICAgICAgICAgICAgICAgIHRoaXMuX3N3aXp6bGVbaW5kZXhdW3R5cGVdLnNyYyA9IGRhdGE7Cisg
ICAgICAgICAgICAgICAgICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZTsKKworICAgICAgICAgICAg
ICAgICAgICB2YXIgbG9hZFByb21pc2UgPSBuZXcgV0kuV3JhcHBlZFByb21pc2U7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIHJlc29sdmVXaXRoSW1hZ2UoZXZlbnQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxvYWRQcm9taXNlLnJlc29sdmUoaW1hZ2UpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCByZXNvbHZlV2l0aEltYWdlKTsKKyAgICAgICAgICAgICAgICAgICAgaW1hZ2UuYWRkRXZl
bnRMaXN0ZW5lcigiZXJyb3IiLCByZXNvbHZlV2l0aEltYWdlKTsKKworICAgICAgICAgICAgICAg
ICAgICBpbWFnZS5zcmMgPSBkYXRhOworCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N3aXp6
bGVbaW5kZXhdW3R5cGVdID0gYXdhaXQgbG9hZFByb21pc2UucHJvbWlzZTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgICAgICBjYXNlIFdJLlJlY29yZGluZy5Td2l6
emxlLkltYWdlRGF0YToKQEAgLTIxNSwzMyArMjQwLDI0IEBAIFdJLlJlY29yZGluZyA9IGNsYXNz
IFJlY29yZGluZwogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAg
IGNhc2UgV0kuUmVjb3JkaW5nLlN3aXp6bGUuQ2FudmFzR3JhZGllbnQ6CisgICAgICAgICAgICAg
ICAgICAgIHZhciBncmFkaWVudFR5cGUgPSBhd2FpdCB0aGlzLnN3aXp6bGUoZGF0YVswXSwgV0ku
UmVjb3JkaW5nLlN3aXp6bGUuU3RyaW5nKTsKKwogICAgICAgICAgICAgICAgICAgICB2YXIgY29u
dGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7
Ci0gICAgICAgICAgICAgICAgICAgIHZhciBncmFkaWVudFR5cGUgPSB0aGlzLnN3aXp6bGUoZGF0
YVswXSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuU3RyaW5nKTsKICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fc3dpenpsZVtpbmRleF1bdHlwZV0gPSBncmFkaWVudFR5cGUgPT09ICJyYWRpYWwtZ3Jh
ZGllbnQiID8gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudCguLi5kYXRhWzFdKSA6IGNvbnRl
eHQuY3JlYXRlTGluZWFyR3JhZGllbnQoLi4uZGF0YVsxXSk7CisKICAgICAgICAgICAgICAgICAg
ICAgZm9yIChsZXQgc3RvcCBvZiBkYXRhWzJdKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgY29sb3IgPSB0aGlzLnN3aXp6bGUoc3RvcFsxXSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuU3Ry
aW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvciA9IGF3YWl0IHRoaXMuc3dp
enpsZShzdG9wWzFdLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fc3dpenpsZVtpbmRleF1bdHlwZV0uYWRkQ29sb3JTdG9wKHN0b3Bb
MF0sIGNvbG9yKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKIAogICAgICAgICAgICAgICAgIGNhc2UgV0kuUmVjb3JkaW5nLlN3aXp6bGUuQ2FudmFz
UGF0dGVybjoKKyAgICAgICAgICAgICAgICAgICAgdmFyIGltYWdlID0gYXdhaXQgdGhpcy5zd2l6
emxlKGRhdGFbMF0sIFdJLlJlY29yZGluZy5Td2l6emxlLkltYWdlKTsKKyAgICAgICAgICAgICAg
ICAgICAgdmFyIHJlcGVhdCA9IGF3YWl0IHRoaXMuc3dpenpsZShkYXRhWzFdLCBXSS5SZWNvcmRp
bmcuU3dpenpsZS5TdHJpbmcpOworCiAgICAgICAgICAgICAgICAgICAgIHZhciBjb250ZXh0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKLSAgICAg
ICAgICAgICAgICAgICAgdmFyIGltYWdlID0gdGhpcy5zd2l6emxlKGRhdGFbMV0sIFdJLlJlY29y
ZGluZy5Td2l6emxlLkltYWdlKTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHJlcGVhdCA9IHRo
aXMuc3dpenpsZShkYXRhWzJdLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcpOwogICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9zd2l6emxlW2luZGV4XVt0eXBlXSA9IGNvbnRleHQuY3JlYXRl
UGF0dGVybihpbWFnZSwgcmVwZWF0KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3NjAwOT4gV2Vi
IEluc3BlY3Rvcjogc2VuZCBkYXRhIGZvciBXZWJHTCBvYmplY3RzIGR1cmluZyBhIHJlY29yZGlu
ZyBpbnN0ZWFkIG9mIGEgcGxhY2Vob2xkZXIgc3RyaW5nCi0gICAgICAgICAgICAgICAgY2FzZSBX
SS5SZWNvcmRpbmcuU3dpenpsZS5UeXBlZEFycmF5OgotICAgICAgICAgICAgICAgIGNhc2UgV0ku
UmVjb3JkaW5nLlN3aXp6bGUuV2ViR0xCdWZmZXI6Ci0gICAgICAgICAgICAgICAgY2FzZSBXSS5S
ZWNvcmRpbmcuU3dpenpsZS5XZWJHTEZyYW1lYnVmZmVyOgotICAgICAgICAgICAgICAgIGNhc2Ug
V0kuUmVjb3JkaW5nLlN3aXp6bGUuV2ViR0xSZW5kZXJidWZmZXI6Ci0gICAgICAgICAgICAgICAg
Y2FzZSBXSS5SZWNvcmRpbmcuU3dpenpsZS5XZWJHTFRleHR1cmU6Ci0gICAgICAgICAgICAgICAg
Y2FzZSBXSS5SZWNvcmRpbmcuU3dpenpsZS5XZWJHTFNoYWRlcjoKLSAgICAgICAgICAgICAgICBj
YXNlIFdJLlJlY29yZGluZy5Td2l6emxlLldlYkdMUHJvZ3JhbToKLSAgICAgICAgICAgICAgICBj
YXNlIFdJLlJlY29yZGluZy5Td2l6emxlLldlYkdMVW5pZm9ybUxvY2F0aW9uOgotICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9zd2l6emxlW2luZGV4XVt0eXBlXSA9IFN0cmluZyhkYXRhKTsKLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fSBjYXRjaCB7IH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZ0FjdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmdBY3Rpb24uanMKaW5kZXggNjIy
YzFlMWI5ZTYxOGIzM2Q2Zjc5YjdkY2IyODQ5MTU4YmU0ZTgxNC4uMjllMTI0M2I0N2YzOWI0MjAy
MDAxMGM4ZTQyNDM2M2Q5NGNlMmY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZ0FjdGlvbi5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nQWN0aW9uLmpzCkBAIC0z
OSw2ICszOSw3IEBAIFdJLlJlY29yZGluZ0FjdGlvbiA9IGNsYXNzIFJlY29yZGluZ0FjdGlvbgog
ICAgICAgICB0aGlzLl9zbmFwc2hvdCA9ICIiOwogCiAgICAgICAgIHRoaXMuX3ZhbGlkID0gdHJ1
ZTsKKyAgICAgICAgdGhpcy5fc3dpenpsZWRQcm9taXNlID0gbnVsbDsKIAogICAgICAgICB0aGlz
Ll9pc0Z1bmN0aW9uID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2lzR2V0dGVyID0gZmFsc2U7CkBA
IC05OSwyMiArMTAwLDM1IEBAIFdJLlJlY29yZGluZ0FjdGlvbiA9IGNsYXNzIFJlY29yZGluZ0Fj
dGlvbgogCiAgICAgc3dpenpsZShyZWNvcmRpbmcpCiAgICAgewotICAgICAgICB0aGlzLl9uYW1l
ID0gcmVjb3JkaW5nLnN3aXp6bGUodGhpcy5fcGF5bG9hZE5hbWUsIFdJLlJlY29yZGluZy5Td2l6
emxlLlN0cmluZyk7CisgICAgICAgIGlmICghdGhpcy5fc3dpenpsZWRQcm9taXNlKQorICAgICAg
ICAgICAgdGhpcy5fc3dpenpsZWRQcm9taXNlID0gdGhpcy5fc3dpenpsZShyZWNvcmRpbmcpOwor
ICAgICAgICByZXR1cm4gdGhpcy5fc3dpenpsZWRQcm9taXNlOworICAgIH0KKworICAgIHRvSlNP
TigpCisgICAgeworICAgICAgICBsZXQganNvbiA9IFt0aGlzLl9wYXlsb2FkTmFtZSwgdGhpcy5f
cGF5bG9hZFBhcmFtZXRlcnMsIHRoaXMuX3BheWxvYWRTd2l6emxlVHlwZXMsIHRoaXMuX3BheWxv
YWRUcmFjZV07CisgICAgICAgIGlmICh0aGlzLl9wYXlsb2FkU25hcHNob3QgPj0gMCkKKyAgICAg
ICAgICAgIGpzb24ucHVzaCh0aGlzLl9wYXlsb2FkU25hcHNob3QpOworICAgICAgICByZXR1cm4g
anNvbjsKKyAgICB9CiAKLSAgICAgICAgdGhpcy5fcGFyYW1ldGVycyA9IHRoaXMuX3BheWxvYWRQ
YXJhbWV0ZXJzLm1hcCgoaXRlbSwgaSkgPT4gewotICAgICAgICAgICAgbGV0IHN3aXp6bGVkSXRl
bSA9IHJlY29yZGluZy5zd2l6emxlKGl0ZW0sIHRoaXMuX3BheWxvYWRTd2l6emxlVHlwZXNbaV0p
OwotICAgICAgICAgICAgaWYgKHRoaXMuX3BheWxvYWRTd2l6emxlVHlwZXNbaV0gPT09IFdJLlJl
Y29yZGluZy5Td2l6emxlLk5vbmUgfHwgc3dpenpsZWRJdGVtID09PSB1bmRlZmluZWQpCi0gICAg
ICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSBmYWxzZTsKKyAgICAvLyBQcml2YXRlCiAKLSAgICAg
ICAgICAgIHJldHVybiBzd2l6emxlZEl0ZW07Ci0gICAgICAgIH0pOworICAgIGFzeW5jIF9zd2l6
emxlKHJlY29yZGluZykKKyAgICB7CisgICAgICAgIHRoaXMuX25hbWUgPSBhd2FpdCByZWNvcmRp
bmcuc3dpenpsZSh0aGlzLl9wYXlsb2FkTmFtZSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuU3RyaW5n
KTsKKworICAgICAgICB0aGlzLl9wYXJhbWV0ZXJzID0gYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5f
cGF5bG9hZFBhcmFtZXRlcnMubWFwKChpdGVtLCBpKSA9PiByZWNvcmRpbmcuc3dpenpsZShpdGVt
LCB0aGlzLl9wYXlsb2FkU3dpenpsZVR5cGVzW2ldKSkpOworICAgICAgICBpZiAodGhpcy5fdmFs
aWQpCisgICAgICAgICAgICB0aGlzLl92YWxpZCA9IHRoaXMuX3BhcmFtZXRlcnMuZXZlcnkoKHBh
cmFtZXRlcikgPT4gcGFyYW1ldGVyICE9PSB1bmRlZmluZWQpICYmIHRoaXMuX3BheWxvYWRTd2l6
emxlVHlwZXMuZXZlcnkoKHN3aXp6bGVUeXBlKSA9PiBzd2l6emxlVHlwZSAhPT0gV0kuUmVjb3Jk
aW5nLlN3aXp6bGUuTm9uZSk7CiAKICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLl9wYXls
b2FkVHJhY2UpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgbGV0IGFycmF5
ID0gcmVjb3JkaW5nLnN3aXp6bGUoaXRlbSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuTm9uZSk7Cisg
ICAgICAgICAgICAgICAgbGV0IGFycmF5ID0gYXdhaXQgcmVjb3JkaW5nLnN3aXp6bGUoaXRlbSwg
V0kuUmVjb3JkaW5nLlN3aXp6bGUuTm9uZSk7CiAgICAgICAgICAgICAgICAgbGV0IGNhbGxGcmFt
ZSA9IFdJLkNhbGxGcmFtZS5mcm9tUGF5bG9hZChXSS5tYWluVGFyZ2V0LCB7Ci0gICAgICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uTmFtZTogcmVjb3JkaW5nLnN3aXp6bGUoYXJyYXlbMF0sIFdJLlJl
Y29yZGluZy5Td2l6emxlLlN0cmluZyksCi0gICAgICAgICAgICAgICAgICAgIHVybDogcmVjb3Jk
aW5nLnN3aXp6bGUoYXJyYXlbMV0sIFdJLlJlY29yZGluZy5Td2l6emxlLlN0cmluZyksCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uTmFtZTogYXdhaXQgcmVjb3JkaW5nLnN3aXp6bGUoYXJy
YXlbMF0sIFdJLlJlY29yZGluZy5Td2l6emxlLlN0cmluZyksCisgICAgICAgICAgICAgICAgICAg
IHVybDogYXdhaXQgcmVjb3JkaW5nLnN3aXp6bGUoYXJyYXlbMV0sIFdJLlJlY29yZGluZy5Td2l6
emxlLlN0cmluZyksCiAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGFycmF5WzJdLAog
ICAgICAgICAgICAgICAgICAgICBjb2x1bW5OdW1iZXI6IGFycmF5WzNdLAogICAgICAgICAgICAg
ICAgIH0pOwpAQCAtMTIzLDcgKzEzNyw3IEBAIFdJLlJlY29yZGluZ0FjdGlvbiA9IGNsYXNzIFJl
Y29yZGluZ0FjdGlvbgogICAgICAgICB9CiAKICAgICAgICAgaWYgKHRoaXMuX3BheWxvYWRTbmFw
c2hvdCA+PSAwKQotICAgICAgICAgICAgdGhpcy5fc25hcHNob3QgPSByZWNvcmRpbmcuc3dpenps
ZSh0aGlzLl9wYXlsb2FkU25hcHNob3QsIFdJLlJlY29yZGluZy5Td2l6emxlLlN0cmluZyk7Cisg
ICAgICAgICAgICB0aGlzLl9zbmFwc2hvdCA9IGF3YWl0IHJlY29yZGluZy5zd2l6emxlKHRoaXMu
X3BheWxvYWRTbmFwc2hvdCwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuU3RyaW5nKTsKIAogICAgICAg
ICB0aGlzLl9pc0Z1bmN0aW9uID0gV0kuUmVjb3JkaW5nQWN0aW9uLmlzRnVuY3Rpb25Gb3JUeXBl
KHJlY29yZGluZy50eXBlLCB0aGlzLl9uYW1lKTsKICAgICAgICAgdGhpcy5faXNHZXR0ZXIgPSAh
dGhpcy5faXNGdW5jdGlvbiAmJiAhdGhpcy5fcGFyYW1ldGVycy5sZW5ndGg7CkBAIC0xMzksMTQg
KzE1Myw2IEBAIFdJLlJlY29yZGluZ0FjdGlvbiA9IGNsYXNzIFJlY29yZGluZ0FjdGlvbgogICAg
ICAgICAgICAgICAgIHRoaXMuX3N0YXRlTW9kaWZpZXJzLmFkZChpdGVtKTsKICAgICAgICAgfQog
ICAgIH0KLQotICAgIHRvSlNPTigpCi0gICAgewotICAgICAgICBsZXQganNvbiA9IFt0aGlzLl9w
YXlsb2FkTmFtZSwgdGhpcy5fcGF5bG9hZFBhcmFtZXRlcnMsIHRoaXMuX3BheWxvYWRTd2l6emxl
VHlwZXMsIHRoaXMuX3BheWxvYWRUcmFjZV07Ci0gICAgICAgIGlmICh0aGlzLl9wYXlsb2FkU25h
cHNob3QgPj0gMCkKLSAgICAgICAgICAgIGpzb24ucHVzaCh0aGlzLl9wYXlsb2FkU25hcHNob3Qp
OwotICAgICAgICByZXR1cm4ganNvbjsKLSAgICB9CiB9OwogCiBXSS5SZWNvcmRpbmdBY3Rpb24u
X2Z1bmN0aW9uTmFtZXMgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nSW5pdGlhbFN0YXRlQWN0aW9uLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZ0luaXRpYWxTdGF0
ZUFjdGlvbi5qcwppbmRleCBkNTQ5ODU0MjI0NmY4Yzc3Y2RjZTkxMjgyYjY0NDc1MWNhMTY0ZjBj
Li44YmM1MThlNjM3MzMwNDhjZTg0ZDZhNmE5OTM4MTM5YTM0MTRiZmIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVjb3JkaW5nSW5pdGlh
bFN0YXRlQWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9SZWNvcmRpbmdJbml0aWFsU3RhdGVBY3Rpb24uanMKQEAgLTMyLDUgKzMyLDYgQEAg
V0kuUmVjb3JkaW5nSW5pdGlhbFN0YXRlQWN0aW9uID0gY2xhc3MgUmVjb3JkaW5nSW5pdGlhbFN0
YXRlQWN0aW9uIGV4dGVuZHMgV0kuUmUKICAgICAgICAgdGhpcy5fbmFtZSA9IFdJLlVJU3RyaW5n
KCJJbml0aWFsIFN0YXRlIik7CiAKICAgICAgICAgdGhpcy5fdmFsaWQgPSBmYWxzZTsKKyAgICAg
ICAgdGhpcy5fc3dpenpsZWRQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgfQogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
Y29yZGluZ0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuanMKaW5kZXggOWI4MjdhNWI1Yjc0YjY3Y2M5
NWQ4MzZhODE3NTAzOTI3OTJkN2Q5YS4uMjQzMzY2YWYyOTI5NDdhMDExODE1MWU2MjgyOWYwMTNl
NjNiYmYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuanMKQEAgLTEwMSwxNiAr
MTAxLDIxIEBAIFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgUmVjb3JkaW5nQ29udGVu
dFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgdXBkYXRlQWN0aW9uSW5kZXgoaW5k
ZXgsIG9wdGlvbnMgPSB7fSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLnJl
cHJlc2VudGVkT2JqZWN0IHx8IChpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5hY3Rpb25zLmxlbmd0aCkpOwotICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRP
YmplY3QgfHwgaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWN0
aW9ucy5sZW5ndGggfHwgaW5kZXggPT09IHRoaXMuX2luZGV4KQorICAgICAgICBpZiAoIXRoaXMu
cmVwcmVzZW50ZWRPYmplY3QpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5f
aW5kZXggPSBpbmRleDsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hY3Rpb25zLnRo
ZW4oKGFjdGlvbnMpID0+IHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGluZGV4ID49IDAg
JiYgaW5kZXggPCBhY3Rpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAoaW5kZXggPCAwIHx8
IGluZGV4ID49IGFjdGlvbnMubGVuZ3RoIHx8IGluZGV4ID09PSB0aGlzLl9pbmRleCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CiAK
LSAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3QudHlwZSA9PT0gV0kuUmVjb3JkaW5n
LlR5cGUuQ2FudmFzMkQpCi0gICAgICAgICAgICB0aGlzLl9nZW5lcmF0ZUNvbnRlbnRDYW52YXMy
RChpbmRleCwgb3B0aW9ucyk7Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QudHlwZSA9PT0gV0kuUmVjb3JkaW5nLlR5cGUuQ2FudmFzV2ViR0wpCi0gICAgICAgICAgICB0
aGlzLl9nZW5lcmF0ZUNvbnRlbnRDYW52YXNXZWJHTChpbmRleCwgb3B0aW9ucyk7CisgICAgICAg
ICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC50eXBlID09PSBXSS5SZWNvcmRpbmcuVHlw
ZS5DYW52YXMyRCkKKyAgICAgICAgICAgICAgICB0aGlzLl9nZW5lcmF0ZUNvbnRlbnRDYW52YXMy
RChpbmRleCwgYWN0aW9ucywgb3B0aW9ucyk7CisgICAgICAgICAgICBlbHNlIGlmICh0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LnR5cGUgPT09IFdJLlJlY29yZGluZy5UeXBlLkNhbnZhc1dlYkdMKQor
ICAgICAgICAgICAgICAgIHRoaXMuX2dlbmVyYXRlQ29udGVudENhbnZhc1dlYkdMKGluZGV4LCBh
Y3Rpb25zLCBvcHRpb25zKTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVk
CkBAIC0xNTIsMTQgKzE1NywxNCBAQCBXSS5SZWNvcmRpbmdDb250ZW50VmlldyA9IGNsYXNzIFJl
Y29yZGluZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgIC8vIFByaXZh
dGUKIAotICAgIF9nZW5lcmF0ZUNvbnRlbnRDYW52YXMyRChpbmRleCwgb3B0aW9ucyA9IHt9KQor
ICAgIGFzeW5jIF9nZW5lcmF0ZUNvbnRlbnRDYW52YXMyRChpbmRleCwgYWN0aW9ucywgb3B0aW9u
cyA9IHt9KQogICAgIHsKICAgICAgICAgbGV0IGltYWdlTG9hZCA9IChldmVudCkgPT4gewogICAg
ICAgICAgICAgLy8gTG9hZGluZyB0b29rIHRvbyBsb25nIGFuZCB0aGUgY3VycmVudCBhY3Rpb24g
aW5kZXggaGFzIGFscmVhZHkgY2hhbmdlZC4KICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gdGhp
cy5faW5kZXgpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICB0aGlzLl9n
ZW5lcmF0ZUNvbnRlbnRDYW52YXMyRChpbmRleCwgb3B0aW9ucyk7CisgICAgICAgICAgICB0aGlz
Ll9nZW5lcmF0ZUNvbnRlbnRDYW52YXMyRChpbmRleCwgYWN0aW9ucywgb3B0aW9ucyk7CiAgICAg
ICAgIH07CiAKICAgICAgICAgbGV0IGluaXRpYWxTdGF0ZSA9IHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QuaW5pdGlhbFN0YXRlOwpAQCAtMTc2LDcgKzE4MSw2IEBAIFdJLlJlY29yZGluZ0NvbnRlbnRW
aWV3ID0gY2xhc3MgUmVjb3JkaW5nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vmlldwog
ICAgICAgICBsZXQgc2hvd0NhbnZhc1BhdGggPSBXSS5SZWNvcmRpbmdDb250ZW50Vmlldy5zdXBw
b3J0c0NhbnZhc1BhdGhEZWJ1Z2dpbmcoKSAmJiBXSS5zZXR0aW5ncy5zaG93Q2FudmFzUGF0aC52
YWx1ZTsKICAgICAgICAgbGV0IGluZGV4T2ZMYXN0QmVnaW5QYXRoQWN0aW9uID0gSW5maW5pdHk7
CiAKLSAgICAgICAgbGV0IGFjdGlvbnMgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFjdGlvbnM7
CiAgICAgICAgIGxldCBhcHBseUFjdGlvbnMgPSAoZnJvbSwgdG8sIGNhbGxiYWNrKSA9PiB7CiAg
ICAgICAgICAgICBsZXQgc2F2ZUNvdW50ID0gMDsKICAgICAgICAgICAgIHNuYXBzaG90LmNvbnRl
eHQuc2F2ZSgpOwpAQCAtMzAyLDE5ICszMDYsMTkgQEAgV0kuUmVjb3JkaW5nQ29udGVudFZpZXcg
PSBjbGFzcyBSZWNvcmRpbmdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAg
ICAgICAgICAgICAgICAgICAgc3dpdGNoIChrZXkpIHsKICAgICAgICAgICAgICAgICAgICAgY2Fz
ZSAic2V0VHJhbnNmb3JtIjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gW3RoaXMu
cmVwcmVzZW50ZWRPYmplY3Quc3dpenpsZSh2YWx1ZSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuRE9N
TWF0cml4KV07CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IFthd2FpdCB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0LnN3aXp6bGUodmFsdWUsIFdJLlJlY29yZGluZy5Td2l6emxlLkRPTU1h
dHJpeCldOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgICAg
ICAgICAgY2FzZSAiZmlsbFN0eWxlIjoKICAgICAgICAgICAgICAgICAgICAgY2FzZSAic3Ryb2tl
U3R5bGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUp
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNhbnZhc1N0eWxlID0gdGhpcy5z
d2l6emxlKHZhbHVlWzBdLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBjYW52YXNTdHlsZSA9IGF3YWl0IHRoaXMucmVwcmVzZW50
ZWRPYmplY3Quc3dpenpsZSh2YWx1ZVswXSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuU3RyaW5nKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FudmFzU3R5bGUuaW5jbHVkZXMoImdy
YWRpZW50IikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5zd2l6emxlKHZhbHVlLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5DYW52
YXNHcmFkaWVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gYXdh
aXQgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zd2l6emxlKHZhbHVlLCBXSS5SZWNvcmRpbmcuU3dp
enpsZS5DYW52YXNHcmFkaWVudCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBp
ZiAoY2FudmFzU3R5bGUgPT09ICJwYXR0ZXJuIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsdWUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnN3aXp6bGUodmFsdWUsIFdJLlJl
Y29yZGluZy5Td2l6emxlLkNhbnZhc1BhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc3dpenpsZSh2YWx1
ZSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuQ2FudmFzUGF0dGVybik7CiAgICAgICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMu
cmVwcmVzZW50ZWRPYmplY3Quc3dpenpsZSh2YWx1ZSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuU3Ry
aW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMucmVw
cmVzZW50ZWRPYmplY3Quc3dpenpsZSh2YWx1ZSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuU3RyaW5n
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgICAg
IGNhc2UgImRpcmVjdGlvbiI6CkBAIC0zMjcsMTEgKzMzMSwxMSBAQCBXSS5SZWNvcmRpbmdDb250
ZW50VmlldyA9IGNsYXNzIFJlY29yZGluZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZp
ZXcKICAgICAgICAgICAgICAgICAgICAgY2FzZSAic2hhZG93Q29sb3IiOgogICAgICAgICAgICAg
ICAgICAgICBjYXNlICJ0ZXh0QWxpZ24iOgogICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0
QmFzZWxpbmUiOgotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0LnN3aXp6bGUodmFsdWUsIFdJLlJlY29yZGluZy5Td2l6emxlLlN0cmluZyk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3Quc3dpenpsZSh2YWx1ZSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuU3RyaW5nKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgICAgIGNhc2UgInNldFBh
dGgiOgotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBbdGhpcy5yZXByZXNlbnRlZE9i
amVjdC5zd2l6emxlKHZhbHVlWzBdLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5QYXRoMkQpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gW2F3YWl0IHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3Quc3dpenpsZSh2YWx1ZVswXSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuUGF0aDJEKV07CiAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQogCkBAIC00
MDEsMTQgKzQwNSwxNCBAQCBXSS5SZWNvcmRpbmdDb250ZW50VmlldyA9IGNsYXNzIFJlY29yZGlu
Z0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fdXBkYXRl
SW1hZ2VHcmlkKCk7CiAgICAgfQogCi0gICAgX2dlbmVyYXRlQ29udGVudENhbnZhc1dlYkdMKGlu
ZGV4LCBvcHRpb25zID0ge30pCisgICAgYXN5bmMgX2dlbmVyYXRlQ29udGVudENhbnZhc1dlYkdM
KGluZGV4LCBhY3Rpb25zLCBvcHRpb25zID0ge30pCiAgICAgewogICAgICAgICBsZXQgaW1hZ2VM
b2FkID0gKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAvLyBMb2FkaW5nIHRvb2sgdG9vIGxvbmcg
YW5kIHRoZSBjdXJyZW50IGFjdGlvbiBpbmRleCBoYXMgYWxyZWFkeSBjaGFuZ2VkLgogICAgICAg
ICAgICAgaWYgKGluZGV4ICE9PSB0aGlzLl9pbmRleCkKICAgICAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgICAgIHRoaXMuX2dlbmVyYXRlQ29udGVudENhbnZhc1dlYkdMKGluZGV4LCBv
cHRpb25zKTsKKyAgICAgICAgICAgIHRoaXMuX2dlbmVyYXRlQ29udGVudENhbnZhc1dlYkdMKGlu
ZGV4LCBhY3Rpb25zLCBvcHRpb25zKTsKICAgICAgICAgfTsKIAogICAgICAgICBsZXQgaW5pdGlh
bFN0YXRlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5pbml0aWFsU3RhdGU7CkBAIC00MTksOCAr
NDIzLDYgQEAgV0kuUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBSZWNvcmRpbmdDb250ZW50
VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICBsZXQgYWN0aW9ucyA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWN0aW9u
czsKLQogICAgICAgICBsZXQgdmlzdWFsSW5kZXggPSBpbmRleDsKICAgICAgICAgd2hpbGUgKCFh
Y3Rpb25zW3Zpc3VhbEluZGV4XS5pc1Zpc3VhbCAmJiAhKGFjdGlvbnNbdmlzdWFsSW5kZXhdIGlu
c3RhbmNlb2YgV0kuUmVjb3JkaW5nSW5pdGlhbFN0YXRlQWN0aW9uKSkKICAgICAgICAgICAgIHZp
c3VhbEluZGV4LS07CkBAIC00NzQsOCArNDc2LDExIEBAIFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3
ID0gY2xhc3MgUmVjb3JkaW5nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAg
IF91cGRhdGVDYW52YXNQYXRoKCkKICAgICB7CiAgICAgICAgIGxldCBhY3RpdmF0ZWQgPSBXSS5z
ZXR0aW5ncy5zaG93Q2FudmFzUGF0aC52YWx1ZTsKLSAgICAgICAgaWYgKHRoaXMuX3Nob3dQYXRo
QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVkICE9PSBhY3RpdmF0ZWQpCi0gICAgICAgICAg
ICB0aGlzLl9nZW5lcmF0ZUNvbnRlbnRDYW52YXMyRCh0aGlzLl9pbmRleCk7CisgICAgICAgIGlm
ICh0aGlzLl9zaG93UGF0aEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZCAhPT0gYWN0aXZh
dGVkKSB7CisgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFjdGlvbnMudGhlbigo
YWN0aW9ucykgPT4geworICAgICAgICAgICAgICAgIHRoaXMuX2dlbmVyYXRlQ29udGVudENhbnZh
czJEKHRoaXMuX2luZGV4LCBhY3Rpb25zKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAK
ICAgICAgICAgdGhpcy5fc2hvd1BhdGhCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgPSBh
Y3RpdmF0ZWQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ05hdmlnYXRpb25T
aWRlYmFyUGFuZWwuanMKaW5kZXggNzY0NzZmMjNhYmMzODg1MTZkN2ViMzJkZDQ5ZjRlNDJmOTEx
MzdmMS4uZjNlYjI2NDI5MmU5Y2JiY2I1Mjg4ODM0OWZmOTJlNGE3ODU4ZjIwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nTmF2
aWdhdGlvblNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCkBAIC01Nywy
NiArNTcsMjggQEAgV0kuUmVjb3JkaW5nTmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIFJl
Y29yZGluZ05hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW4KICAgICAgICAgdGhpcy5fcmVjb3Jk
aW5nID0gcmVjb3JkaW5nOwogCiAgICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmcpIHsKLSAgICAg
ICAgICAgIHRoaXMuY29udGVudFRyZWVPdXRsaW5lLmVsZW1lbnQuZGF0YXNldC5pbmRlbnQgPSBO
dW1iZXIuY291bnREaWdpdHModGhpcy5fcmVjb3JkaW5nLmFjdGlvbnMubGVuZ3RoKTsKKyAgICAg
ICAgICAgIHRoaXMuX3JlY29yZGluZy5hY3Rpb25zLnRoZW4oKGFjdGlvbnMpID0+IHsKKyAgICAg
ICAgICAgICAgICB0aGlzLmNvbnRlbnRUcmVlT3V0bGluZS5lbGVtZW50LmRhdGFzZXQuaW5kZW50
ID0gTnVtYmVyLmNvdW50RGlnaXRzKGFjdGlvbnMubGVuZ3RoKTsKIAotICAgICAgICAgICAgaWYg
KHRoaXMuX3JlY29yZGluZy5hY3Rpb25zWzBdIGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nSW5pdGlh
bFN0YXRlQWN0aW9uKQotICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFRyZWVPdXRsaW5lLmFw
cGVuZENoaWxkKG5ldyBXSS5SZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudCh0aGlzLl9yZWNvcmRp
bmcuYWN0aW9uc1swXSwgMCwgdGhpcy5fcmVjb3JkaW5nLnR5cGUpKTsKKyAgICAgICAgICAgICAg
ICBpZiAoYWN0aW9uc1swXSBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0luaXRpYWxTdGF0ZUFjdGlv
bikKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VHJlZU91dGxpbmUuYXBwZW5kQ2hp
bGQobmV3IFdJLlJlY29yZGluZ0FjdGlvblRyZWVFbGVtZW50KGFjdGlvbnNbMF0sIDAsIHRoaXMu
X3JlY29yZGluZy50eXBlKSk7CiAKLSAgICAgICAgICAgIGxldCBjdW11bGF0aXZlQWN0aW9uSW5k
ZXggPSAxOwotICAgICAgICAgICAgdGhpcy5fcmVjb3JkaW5nLmZyYW1lcy5mb3JFYWNoKChmcmFt
ZSwgZnJhbWVJbmRleCkgPT4gewotICAgICAgICAgICAgICAgIGxldCBmb2xkZXIgPSBuZXcgV0ku
Rm9sZGVyVHJlZUVsZW1lbnQoV0kuVUlTdHJpbmcoIkZyYW1lICVkIikuZm9ybWF0KChmcmFtZUlu
ZGV4ICsgMSkudG9Mb2NhbGVTdHJpbmcoKSkpOwotICAgICAgICAgICAgICAgIHRoaXMuY29udGVu
dFRyZWVPdXRsaW5lLmFwcGVuZENoaWxkKGZvbGRlcik7CisgICAgICAgICAgICAgICAgbGV0IGN1
bXVsYXRpdmVBY3Rpb25JbmRleCA9IDE7CisgICAgICAgICAgICAgICAgdGhpcy5fcmVjb3JkaW5n
LmZyYW1lcy5mb3JFYWNoKChmcmFtZSwgZnJhbWVJbmRleCkgPT4geworICAgICAgICAgICAgICAg
ICAgICBsZXQgZm9sZGVyID0gbmV3IFdJLkZvbGRlclRyZWVFbGVtZW50KFdJLlVJU3RyaW5nKCJG
cmFtZSAlZCIpLmZvcm1hdCgoZnJhbWVJbmRleCArIDEpLnRvTG9jYWxlU3RyaW5nKCkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQoZm9s
ZGVyKTsKIAotICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZnJhbWUuYWN0aW9u
cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgZm9sZGVyLmFwcGVuZENoaWxkKG5l
dyBXSS5SZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudChmcmFtZS5hY3Rpb25zW2ldLCBjdW11bGF0
aXZlQWN0aW9uSW5kZXggKyBpLCB0aGlzLl9yZWNvcmRpbmcudHlwZSkpOworICAgICAgICAgICAg
ICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZyYW1lLmFjdGlvbnMubGVuZ3RoOyArK2kpCisg
ICAgICAgICAgICAgICAgICAgICAgICBmb2xkZXIuYXBwZW5kQ2hpbGQobmV3IFdJLlJlY29yZGlu
Z0FjdGlvblRyZWVFbGVtZW50KGZyYW1lLmFjdGlvbnNbaV0sIGN1bXVsYXRpdmVBY3Rpb25JbmRl
eCArIGksIHRoaXMuX3JlY29yZGluZy50eXBlKSk7CiAKLSAgICAgICAgICAgICAgICBpZiAoZnJh
bWUuaW5jb21wbGV0ZSkKLSAgICAgICAgICAgICAgICAgICAgZm9sZGVyLnN1YnRpdGxlID0gV0ku
VUlTdHJpbmcoIkluY29tcGxldGUiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZyYW1lLmlu
Y29tcGxldGUpCisgICAgICAgICAgICAgICAgICAgICAgICBmb2xkZXIuc3VidGl0bGUgPSBXSS5V
SVN0cmluZygiSW5jb21wbGV0ZSIpOwogCi0gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3JlY29y
ZGluZy5mcmFtZXMubGVuZ3RoID09PSAxKQotICAgICAgICAgICAgICAgICAgICBmb2xkZXIuZXhw
YW5kKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmcuZnJhbWVzLmxl
bmd0aCA9PT0gMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvbGRlci5leHBhbmQoKTsKIAot
ICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVBY3Rpb25JbmRleCArPSBmcmFtZS5hY3Rpb25zLmxl
bmd0aDsKKyAgICAgICAgICAgICAgICAgICAgY3VtdWxhdGl2ZUFjdGlvbkluZGV4ICs9IGZyYW1l
LmFjdGlvbnMubGVuZ3RoOworICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0KIApAQCAtODgsMzEgKzkwLDM2IEBAIFdJLlJlY29yZGluZ05hdmlnYXRpb25TaWRl
YmFyUGFuZWwgPSBjbGFzcyBSZWNvcmRpbmdOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuCiAK
ICAgICB1cGRhdGVBY3Rpb25JbmRleChpbmRleCwgb3B0aW9ucyA9IHt9KQogICAgIHsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX3JlY29yZGluZyB8fCAoaW5kZXggPj0gMCAmJiBpbmRl
eCA8IHRoaXMuX3JlY29yZGluZy5hY3Rpb25zLmxlbmd0aCkpOwotICAgICAgICBpZiAoIXRoaXMu
X3JlY29yZGluZyB8fCBpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5fcmVjb3JkaW5nLmFjdGlv
bnMubGVuZ3RoKQorICAgICAgICBpZiAoIXRoaXMuX3JlY29yZGluZykKICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBsZXQgdHJlZU91dGxpbmUgPSB0aGlzLmNvbnRlbnRUcmVlT3V0bGlu
ZTsKLSAgICAgICAgaWYgKCEodGhpcy5fcmVjb3JkaW5nLmFjdGlvbnNbMF0gaW5zdGFuY2VvZiBX
SS5SZWNvcmRpbmdJbml0aWFsU3RhdGVBY3Rpb24pIHx8IGluZGV4KSB7Ci0gICAgICAgICAgICB0
cmVlT3V0bGluZSA9IHRyZWVPdXRsaW5lLmNoaWxkcmVuWzBdOwotICAgICAgICAgICAgd2hpbGUg
KGluZGV4ID4gdHJlZU91dGxpbmUuY2hpbGRyZW4ubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAg
aW5kZXggLT0gdHJlZU91dGxpbmUuY2hpbGRyZW4ubGVuZ3RoOwotICAgICAgICAgICAgICAgIHRy
ZWVPdXRsaW5lID0gdHJlZU91dGxpbmUubmV4dFNpYmxpbmc7Ci0gICAgICAgICAgICB9CisgICAg
ICAgIHRoaXMuX3JlY29yZGluZy5hY3Rpb25zLnRoZW4oKGFjdGlvbnMpID0+IHsKKyAgICAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGluZGV4ID49IDAgJiYgaW5kZXggPCBhY3Rpb25zLmxlbmd0aCk7
CisgICAgICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IGFjdGlvbnMubGVuZ3RoKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgLy8gTXVzdCBzdWJ0cmFjdCBv
bmUgZnJvbSB0aGUgZmluYWwgcmVzdWx0IHNpbmNlIHRoZSBpbml0aWFsIHN0YXRlIGlzIGNvbnNp
ZGVyZWQgaW5kZXggMC4KLSAgICAgICAgICAgIC0taW5kZXg7Ci0gICAgICAgIH0KKyAgICAgICAg
ICAgIGxldCB0cmVlT3V0bGluZSA9IHRoaXMuY29udGVudFRyZWVPdXRsaW5lOworICAgICAgICAg
ICAgaWYgKCEoYWN0aW9uc1swXSBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0luaXRpYWxTdGF0ZUFj
dGlvbikgfHwgaW5kZXgpIHsKKyAgICAgICAgICAgICAgICB0cmVlT3V0bGluZSA9IHRyZWVPdXRs
aW5lLmNoaWxkcmVuWzBdOworICAgICAgICAgICAgICAgIHdoaWxlIChpbmRleCA+IHRyZWVPdXRs
aW5lLmNoaWxkcmVuLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBpbmRleCAtPSB0cmVl
T3V0bGluZS5jaGlsZHJlbi5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIHRyZWVPdXRsaW5l
ID0gdHJlZU91dGxpbmUubmV4dFNpYmxpbmc7CisgICAgICAgICAgICAgICAgfQogCi0gICAgICAg
IGxldCB0cmVlRWxlbWVudFRvU2VsZWN0ID0gdHJlZU91dGxpbmUuY2hpbGRyZW5baW5kZXhdOwot
ICAgICAgICBpZiAodHJlZUVsZW1lbnRUb1NlbGVjdC5wYXJlbnQgJiYgIXRyZWVFbGVtZW50VG9T
ZWxlY3QucGFyZW50LmV4cGFuZGVkKQotICAgICAgICAgICAgdHJlZUVsZW1lbnRUb1NlbGVjdCA9
IHRyZWVFbGVtZW50VG9TZWxlY3QucGFyZW50OworICAgICAgICAgICAgICAgIC8vIE11c3Qgc3Vi
dHJhY3Qgb25lIGZyb20gdGhlIGZpbmFsIHJlc3VsdCBzaW5jZSB0aGUgaW5pdGlhbCBzdGF0ZSBp
cyBjb25zaWRlcmVkIGluZGV4IDAuCisgICAgICAgICAgICAgICAgLS1pbmRleDsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgbGV0IHRyZWVFbGVtZW50VG9TZWxlY3QgPSB0cmVlT3V0bGlu
ZS5jaGlsZHJlbltpbmRleF07CisgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnRUb1NlbGVjdC5w
YXJlbnQgJiYgIXRyZWVFbGVtZW50VG9TZWxlY3QucGFyZW50LmV4cGFuZGVkKQorICAgICAgICAg
ICAgICAgIHRyZWVFbGVtZW50VG9TZWxlY3QgPSB0cmVlRWxlbWVudFRvU2VsZWN0LnBhcmVudDsK
IAotICAgICAgICBjb25zdCBvbWl0Rm9jdXMgPSBmYWxzZTsKLSAgICAgICAgY29uc3Qgc2VsZWN0
ZWRCeVVzZXIgPSBmYWxzZTsKLSAgICAgICAgbGV0IHN1cHByZXNzT25TZWxlY3QgPSAhKHRyZWVF
bGVtZW50VG9TZWxlY3QgaW5zdGFuY2VvZiBXSS5Gb2xkZXJUcmVlRWxlbWVudCk7Ci0gICAgICAg
IGNvbnN0IHN1cHByZXNzT25EZXNlbGVjdCA9IHRydWU7Ci0gICAgICAgIHRyZWVFbGVtZW50VG9T
ZWxlY3QucmV2ZWFsQW5kU2VsZWN0KG9taXRGb2N1cywgc2VsZWN0ZWRCeVVzZXIsIHN1cHByZXNz
T25TZWxlY3QsIHN1cHByZXNzT25EZXNlbGVjdCk7CisgICAgICAgICAgICBjb25zdCBvbWl0Rm9j
dXMgPSBmYWxzZTsKKyAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQnlVc2VyID0gZmFsc2U7Cisg
ICAgICAgICAgICBsZXQgc3VwcHJlc3NPblNlbGVjdCA9ICEodHJlZUVsZW1lbnRUb1NlbGVjdCBp
bnN0YW5jZW9mIFdJLkZvbGRlclRyZWVFbGVtZW50KTsKKyAgICAgICAgICAgIGNvbnN0IHN1cHBy
ZXNzT25EZXNlbGVjdCA9IHRydWU7CisgICAgICAgICAgICB0cmVlRWxlbWVudFRvU2VsZWN0LnJl
dmVhbEFuZFNlbGVjdChvbWl0Rm9jdXMsIHNlbGVjdGVkQnlVc2VyLCBzdXBwcmVzc09uU2VsZWN0
LCBzdXBwcmVzc09uRGVzZWxlY3QpOworICAgICAgICB9KTsKICAgICB9CiAKICAgICAvLyBQcm90
ZWN0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1JlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQ
YW5lbC5qcwppbmRleCA2ZmJhYTU4OGQ3OTlhM2NiZjgxMWQwNDEwMzZmMzdmY2I4Yzc1YmYyLi5l
MjU1M2ZlMTc4NTQ1M2U4ZGQ4OWJkZDM2ZjIyODQwMmQ1YTUyNmFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdTdGF0ZURldGFp
bHNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUmVjb3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBAIC02OCwyMSAr
NjgsMjYgQEAgV0kuUmVjb3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgUmVj
b3JkaW5nU3RhdGVEZXRhaWxzU2lkZWJhclBhbmVsIGUKIAogICAgIHVwZGF0ZUFjdGlvbkluZGV4
KGluZGV4LCBjb250ZXh0LCBvcHRpb25zID0ge30pCiAgICAgewotICAgICAgICBjb25zb2xlLmFz
c2VydCghdGhpcy5fcmVjb3JkaW5nIHx8IChpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy5fcmVj
b3JkaW5nLmFjdGlvbnMubGVuZ3RoKSk7Ci0gICAgICAgIGlmICghdGhpcy5fcmVjb3JkaW5nIHx8
IGluZGV4IDwgMCB8fCBpbmRleCA+IHRoaXMuX3JlY29yZGluZy5hY3Rpb25zLmxlbmd0aCB8fCBp
bmRleCA9PT0gdGhpcy5faW5kZXgpCisgICAgICAgIGlmICghdGhpcy5fcmVjb3JkaW5nKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CisgICAgICAg
IHRoaXMuX3JlY29yZGluZy5hY3Rpb25zLnRoZW4oKGFjdGlvbnMpID0+IHsKKyAgICAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGluZGV4ID49IDAgJiYgaW5kZXggPCBhY3Rpb25zLmxlbmd0aCk7Cisg
ICAgICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gYWN0aW9ucy5sZW5ndGggfHwgaW5k
ZXggPT09IHRoaXMuX2luZGV4KQorICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBp
ZiAodGhpcy5fcmVjb3JkaW5nLnR5cGUgPT09IFdJLlJlY29yZGluZy5UeXBlLkNhbnZhczJEKQot
ICAgICAgICAgICAgdGhpcy5fZ2VuZXJhdGVEZXRhaWxzQ2FudmFzMkQoY29udGV4dCwgb3B0aW9u
cyk7CisgICAgICAgICAgICB0aGlzLl9pbmRleCA9IGluZGV4OwogCi0gICAgICAgIHRoaXMudXBk
YXRlTGF5b3V0SWZOZWVkZWQoKTsKKyAgICAgICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmcudHlw
ZSA9PT0gV0kuUmVjb3JkaW5nLlR5cGUuQ2FudmFzMkQpCisgICAgICAgICAgICAgICAgdGhpcy5f
Z2VuZXJhdGVEZXRhaWxzQ2FudmFzMkQoY29udGV4dCwgYWN0aW9ucywgb3B0aW9ucyk7CisKKyAg
ICAgICAgICAgIHRoaXMudXBkYXRlTGF5b3V0SWZOZWVkZWQoKTsKKyAgICAgICAgfSk7CiAgICAg
fQogCiAgICAgLy8gUHJpdmF0ZQogCi0gICAgX2dlbmVyYXRlRGV0YWlsc0NhbnZhczJEKGNvbnRl
eHQsIG9wdGlvbnMgPSB7fSkKKyAgICBfZ2VuZXJhdGVEZXRhaWxzQ2FudmFzMkQoY29udGV4dCwg
YWN0aW9ucywgb3B0aW9ucyA9IHt9KQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3Jp
ZCkgewogICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQgPSBuZXcgV0kuRGF0YUdyaWQoewpAQCAt
MTMwLDcgKzEzNSw3IEBAIFdJLlJlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNs
YXNzIFJlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbCBlCiAgICAgICAgIHN0YXRlLndl
YmtpdExpbmVEYXNoID0gY29udGV4dC53ZWJraXRMaW5lRGFzaDsKICAgICAgICAgc3RhdGUud2Vi
a2l0TGluZURhc2hPZmZzZXQgPSBjb250ZXh0LndlYmtpdExpbmVEYXNoT2Zmc2V0OwogCi0gICAg
ICAgIGxldCBhY3Rpb24gPSB0aGlzLl9yZWNvcmRpbmcuYWN0aW9uc1t0aGlzLl9pbmRleF07Cisg
ICAgICAgIGxldCBhY3Rpb24gPSBhY3Rpb25zW3RoaXMuX2luZGV4XTsKICAgICAgICAgZm9yIChs
ZXQgbmFtZSBpbiBzdGF0ZSkgewogICAgICAgICAgICAgbGV0IHZhbHVlID0gc3RhdGVbbmFtZV07
CiAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAib2JqZWN0IikgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nVGFi
Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9SZWNvcmRpbmdUYWJDb250ZW50Vmlldy5qcwppbmRleCA5NmEyNDk2OTE3OTZlMzY4MmQzYzMy
OWZmZmQ4NGMzMDBhZGM1NjQ4Li5jNTIxODE2Y2M5MGRiM2JhODE5MTY3YWZhODgxNzAwMmI4ZmQ2
MjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9SZWNvcmRpbmdUYWJDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdUYWJDb250ZW50Vmlldy5qcwpAQCAtODYsMjEg
Kzg2LDIyIEBAIFdJLlJlY29yZGluZ1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgUmVjb3JkaW5nVGFi
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvCiAgICAgICAgIHN1cGVyLnNob3dSZXBy
ZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCwgY29va2llKTsKIAogICAgICAgICB0aGlz
Ll9yZWNvcmRpbmcgPSByZXByZXNlbnRlZE9iamVjdDsKKyAgICAgICAgdGhpcy5fcmVjb3JkaW5n
LmFjdGlvbnMudGhlbigoYWN0aW9ucykgPT4geworICAgICAgICAgICAgdGhpcy5fdmlzdWFsQWN0
aW9uSW5kZXhlcyA9IFtdOworICAgICAgICAgICAgYWN0aW9ucy5mb3JFYWNoKChhY3Rpb24sIGkp
ID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoYWN0aW9uLmlzVmlzdWFsKQorICAgICAgICAgICAg
ICAgICAgICB0aGlzLl92aXN1YWxBY3Rpb25JbmRleGVzLnB1c2goaSk7CisgICAgICAgICAgICB9
KTsKIAotICAgICAgICB0aGlzLl92aXN1YWxBY3Rpb25JbmRleGVzID0gW107Ci0gICAgICAgIHJl
cHJlc2VudGVkT2JqZWN0LmFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uLCBpKSA9PiB7Ci0gICAgICAg
ICAgICBpZiAoYWN0aW9uLmlzVmlzdWFsKQotICAgICAgICAgICAgICAgIHRoaXMuX3Zpc3VhbEFj
dGlvbkluZGV4ZXMucHVzaChpKTsKLSAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9zY3J1
YmJlck5hdmlnYXRpb25JdGVtLnZhbHVlID0gMDsKKyAgICAgICAgICAgIHRoaXMuX3NjcnViYmVy
TmF2aWdhdGlvbkl0ZW0ubWluID0gMDsKKyAgICAgICAgICAgIHRoaXMuX3NjcnViYmVyTmF2aWdh
dGlvbkl0ZW0ubWF4ID0gYWN0aW9ucy5sZW5ndGggLSAxOworICAgICAgICAgICAgdGhpcy5fc2Ny
dWJiZXJOYXZpZ2F0aW9uSXRlbS5kaXNhYmxlZCA9IGZhbHNlOwogCi0gICAgICAgIHRoaXMuX3Nj
cnViYmVyTmF2aWdhdGlvbkl0ZW0udmFsdWUgPSAwOwotICAgICAgICB0aGlzLl9zY3J1YmJlck5h
dmlnYXRpb25JdGVtLm1pbiA9IDA7Ci0gICAgICAgIHRoaXMuX3NjcnViYmVyTmF2aWdhdGlvbkl0
ZW0ubWF4ID0gcmVwcmVzZW50ZWRPYmplY3QuYWN0aW9ucy5sZW5ndGggLSAxOwotICAgICAgICB0
aGlzLl9zY3J1YmJlck5hdmlnYXRpb25JdGVtLmRpc2FibGVkID0gZmFsc2U7CisgICAgICAgICAg
ICB0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWwucmVjb3JkaW5nID0gdGhpcy5fcmVjb3JkaW5n
OwogCi0gICAgICAgIHRoaXMubmF2aWdhdGlvblNpZGViYXJQYW5lbC5yZWNvcmRpbmcgPSByZXBy
ZXNlbnRlZE9iamVjdDsKLQotICAgICAgICB0aGlzLl91cGRhdGVBY3Rpb25JbmRleCh0aGlzLl9z
Y3J1YmJlck5hdmlnYXRpb25JdGVtLnZhbHVlKTsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUFj
dGlvbkluZGV4KHRoaXMuX3NjcnViYmVyTmF2aWdhdGlvbkl0ZW0udmFsdWUpOworICAgICAgICB9
KTsKICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ1RyYWNlRGV0YWlsc1NpZGViYXJQ
YW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29y
ZGluZ1RyYWNlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCBmYmZhMWU2M2FmNTRkN2Y1NTdk
MjU3MGI1OWQ3YmVkOTEwNTU5ZDc4Li42N2E4NGQ1OTRmYzQ1MDc2MWNiMGQ4NjcwZTE5NzY4YTlk
MGU5NjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9SZWNvcmRpbmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nVHJhY2VEZXRhaWxzU2lk
ZWJhclBhbmVsLmpzCkBAIC02NSwyNyArNjUsMzIgQEAgV0kuUmVjb3JkaW5nVHJhY2VEZXRhaWxz
U2lkZWJhclBhbmVsID0gY2xhc3MgUmVjb3JkaW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVsIGUK
IAogICAgIHVwZGF0ZUFjdGlvbkluZGV4KGluZGV4LCBjb250ZXh0LCBvcHRpb25zID0ge30pCiAg
ICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fcmVjb3JkaW5nIHx8IChpbmRleCA+
PSAwICYmIGluZGV4IDwgdGhpcy5fcmVjb3JkaW5nLmFjdGlvbnMubGVuZ3RoKSk7Ci0gICAgICAg
IGlmICghdGhpcy5fcmVjb3JkaW5nIHx8IGluZGV4IDwgMCB8fCBpbmRleCA+IHRoaXMuX3JlY29y
ZGluZy5hY3Rpb25zLmxlbmd0aCB8fCBpbmRleCA9PT0gdGhpcy5faW5kZXgpCisgICAgICAgIGlm
ICghdGhpcy5fcmVjb3JkaW5nKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMu
X2luZGV4ID0gaW5kZXg7CisgICAgICAgIHRoaXMuX3JlY29yZGluZy5hY3Rpb25zLnRoZW4oKGFj
dGlvbnMpID0+IHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGluZGV4ID49IDAgJiYgaW5k
ZXggPCBhY3Rpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4
ID4gYWN0aW9ucy5sZW5ndGggfHwgaW5kZXggPT09IHRoaXMuX2luZGV4KQorICAgICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQucmVtb3ZlQ2hp
bGRyZW4oKTsKKyAgICAgICAgICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CiAKLSAgICAgICAgbGV0
IHRyYWNlID0gdGhpcy5fcmVjb3JkaW5nLmFjdGlvbnNbdGhpcy5faW5kZXhdLnRyYWNlOwotICAg
ICAgICBpZiAoIXRyYWNlLmxlbmd0aCkgewotICAgICAgICAgICAgbGV0IG5vVHJhY2VEYXRhRWxl
bWVudCA9IHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKSk7Ci0gICAgICAgICAgICBub1RyYWNlRGF0YUVsZW1lbnQuY2xhc3NM
aXN0LmFkZCgibm8tdHJhY2UtZGF0YSIpOworICAgICAgICAgICAgdGhpcy5jb250ZW50Vmlldy5l
bGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAKLSAgICAgICAgICAgIGxldCBub1RyYWNlRGF0YU1l
c3NhZ2VFbGVtZW50ID0gbm9UcmFjZURhdGFFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpKTsKLSAgICAgICAgICAgIG5vVHJhY2VEYXRhTWVzc2FnZUVsZW1l
bnQuY2xhc3NMaXN0LmFkZCgibWVzc2FnZSIpOwotICAgICAgICAgICAgbm9UcmFjZURhdGFNZXNz
YWdlRWxlbWVudC50ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJObyBUcmFjZSBEYXRhIik7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgICAgIGxldCB0cmFjZSA9IGFj
dGlvbnNbdGhpcy5faW5kZXhdLnRyYWNlOworICAgICAgICAgICAgaWYgKCF0cmFjZS5sZW5ndGgp
IHsKKyAgICAgICAgICAgICAgICBsZXQgbm9UcmFjZURhdGFFbGVtZW50ID0gdGhpcy5jb250ZW50
Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsK
KyAgICAgICAgICAgICAgICBub1RyYWNlRGF0YUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibm8tdHJh
Y2UtZGF0YSIpOworCisgICAgICAgICAgICAgICAgbGV0IG5vVHJhY2VEYXRhTWVzc2FnZUVsZW1l
bnQgPSBub1RyYWNlRGF0YUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2IikpOworICAgICAgICAgICAgICAgIG5vVHJhY2VEYXRhTWVzc2FnZUVsZW1lbnQuY2xh
c3NMaXN0LmFkZCgibWVzc2FnZSIpOworICAgICAgICAgICAgICAgIG5vVHJhY2VEYXRhTWVzc2Fn
ZUVsZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiTm8gVHJhY2UgRGF0YSIpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAotICAgICAgICBjb25zdCBzaG93
RnVuY3Rpb25OYW1lID0gdHJ1ZTsKLSAgICAgICAgZm9yIChsZXQgY2FsbEZyYW1lIG9mIHRyYWNl
KQotICAgICAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKG5ldyBX
SS5DYWxsRnJhbWVWaWV3KGNhbGxGcmFtZSwgc2hvd0Z1bmN0aW9uTmFtZSkpOworICAgICAgICAg
ICAgY29uc3Qgc2hvd0Z1bmN0aW9uTmFtZSA9IHRydWU7CisgICAgICAgICAgICBmb3IgKGxldCBj
YWxsRnJhbWUgb2YgdHJhY2UpCisgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVt
ZW50LmFwcGVuZENoaWxkKG5ldyBXSS5DYWxsRnJhbWVWaWV3KGNhbGxGcmFtZSwgc2hvd0Z1bmN0
aW9uTmFtZSkpOworICAgICAgICB9KTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZiZDFlNmUxMDU2ZDhm
MzcwMTFmMTNmZjBmMDQxYTJmMTRiMTYxOTkuLjA4NjQwYTgxZGEwZmQ1OTNkMDE5MTBlM2VmNTVl
NmVhMjJjNTA1NTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wOS0xNCAgRGV2aW4gUm91
c3NvICA8d2Via2l0QGRldmlucm91c3NvLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBt
YWtlIHJlY29yZGluZyBzd2l6emxlIGFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLTJkLWV4cGVj
dGVkLnR4dDoKKwogMjAxNy0wOS0xMyAgRGV2aW4gUm91c3NvICA8d2Via2l0QGRldmlucm91c3Nv
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFdmVudCBMaXN0ZW5lcnMgc2VjdGlvbiBk
b2VzIG5vdCB1cGRhdGUgd2hlbiBsaXN0ZW5lcnMgYXJlIGFkZGVkL3JlbW92ZWQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLTJkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLTJkLWV4cGVjdGVkLnR4
dAppbmRleCA2NTE1MjQ3NGY1M2JiMTIzMGRkZGIzMzVjMDY4MGUyNjQ2MGUxMWJmLi5hZWMzYTZl
NDFkMjU5ZjlkYzIzMjcwM2VkODllMmUyMjdiYjg3MjViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy0yZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctMmQtZXhwZWN0ZWQudHh0CkBAIC02NTEs
MTMgKzY1MSwxMyBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBh
Y3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICBbCiAgICAgICAgICAg
ODEsCiAgICAgICAgICAgWwotICAgICAgICAgICAgMAorICAgICAgICAgICAgODIKICAgICAgICAg
ICBdLAogICAgICAgICAgIFsKICAgICAgICAgICAgIDAKICAgICAgICAgICBdLAogICAgICAgICAg
IFsKLSAgICAgICAgICAgIDgyLAorICAgICAgICAgICAgODMsCiAgICAgICAgICAgICAxOAogICAg
ICAgICAgIF0KICAgICAgICAgXSwKQEAgLTY2NSwxNCArNjY1LDE0IEBAIFRlc3QgdGhhdCBDYW52
YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29u
dGV4dHMuCiAgICAgICAgICAgODEsCiAgICAgICAgICAgWwogICAgICAgICAgICAgNDgsCi0gICAg
ICAgICAgICAwCisgICAgICAgICAgICA4MgogICAgICAgICAgIF0sCiAgICAgICAgICAgWwogICAg
ICAgICAgICAgOSwKICAgICAgICAgICAgIDAKICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAg
ICAgICAgICAgIDgzLAorICAgICAgICAgICAgODQsCiAgICAgICAgICAgICAxOAogICAgICAgICAg
IF0KICAgICAgICAgXQpAQCAtNjgxLDcgKzY4MSw3IEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2Vy
IGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAg
ICAgewogICAgICAgImFjdGlvbnMiOiBbCiAgICAgICAgIFsKLSAgICAgICAgICA4NCwKKyAgICAg
ICAgICA4NSwKICAgICAgICAgICBbCiAgICAgICAgICAgICA2NCwKICAgICAgICAgICAgIDEsCkBA
IC02OTMsMTQgKzY5MywxNCBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJl
Y29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICAgICAgMQog
ICAgICAgICAgIF0sCiAgICAgICAgICAgWwotICAgICAgICAgICAgODUsCi0gICAgICAgICAgICAx
NSwKICAgICAgICAgICAgIDg2LAorICAgICAgICAgICAgMTUsCisgICAgICAgICAgICA4NywKICAg
ICAgICAgICAgIDE4CiAgICAgICAgICAgXQogICAgICAgICBdLAogICAgICAgICBbCi0gICAgICAg
ICAgODQsCisgICAgICAgICAgODUsCiAgICAgICAgICAgWwogICAgICAgICAgICAgNjgsCiAgICAg
ICAgICAgICAzLApAQCAtNzEyLDE0ICs3MTIsMTQgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIg
aXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAg
ICAgICAgICAgIDEKICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDg3LAot
ICAgICAgICAgICAgMTUsCiAgICAgICAgICAgICA4OCwKKyAgICAgICAgICAgIDE1LAorICAgICAg
ICAgICAgODksCiAgICAgICAgICAgICAxOAogICAgICAgICAgIF0KICAgICAgICAgXSwKICAgICAg
ICAgWwotICAgICAgICAgIDg0LAorICAgICAgICAgIDg1LAogICAgICAgICAgIFsKICAgICAgICAg
ICAgIDcyLAogICAgICAgICAgICAgNSwKQEAgLTczMSwxNCArNzMxLDE0IEBAIFRlc3QgdGhhdCBD
YW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMg
Y29udGV4dHMuCiAgICAgICAgICAgICAxCiAgICAgICAgICAgXSwKICAgICAgICAgICBbCi0gICAg
ICAgICAgICA4OSwKLSAgICAgICAgICAgIDE1LAogICAgICAgICAgICAgOTAsCisgICAgICAgICAg
ICAxNSwKKyAgICAgICAgICAgIDkxLAogICAgICAgICAgICAgMTgKICAgICAgICAgICBdCiAgICAg
ICAgIF0sCiAgICAgICAgIFsKLSAgICAgICAgICA4NCwKKyAgICAgICAgICA4NSwKICAgICAgICAg
ICBbCiAgICAgICAgICAgICA2NCwKICAgICAgICAgICAgIDcsCkBAIC03NTQsMTQgKzc1NCwxNCBA
QCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUg
dG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICAgICAgMQogICAgICAgICAgIF0sCiAgICAg
ICAgICAgWwotICAgICAgICAgICAgOTEsCi0gICAgICAgICAgICAxNSwKICAgICAgICAgICAgIDky
LAorICAgICAgICAgICAgMTUsCisgICAgICAgICAgICA5MywKICAgICAgICAgICAgIDE4CiAgICAg
ICAgICAgXQogICAgICAgICBdLAogICAgICAgICBbCi0gICAgICAgICAgODQsCisgICAgICAgICAg
ODUsCiAgICAgICAgICAgWwogICAgICAgICAgICAgNjgsCiAgICAgICAgICAgICAxMSwKQEAgLTc3
NywxNCArNzc3LDE0IEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3Jk
IGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAgICAgICAgICAxCiAgICAg
ICAgICAgXSwKICAgICAgICAgICBbCi0gICAgICAgICAgICA5MywKLSAgICAgICAgICAgIDE1LAog
ICAgICAgICAgICAgOTQsCisgICAgICAgICAgICAxNSwKKyAgICAgICAgICAgIDk1LAogICAgICAg
ICAgICAgMTgKICAgICAgICAgICBdCiAgICAgICAgIF0sCiAgICAgICAgIFsKLSAgICAgICAgICA4
NCwKKyAgICAgICAgICA4NSwKICAgICAgICAgICBbCiAgICAgICAgICAgICA3MiwKICAgICAgICAg
ICAgIDE1LApAQCAtODAwLDE0ICs4MDAsMTQgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMg
YWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAg
ICAgICAgIDEKICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDk1LAotICAg
ICAgICAgICAgMTUsCiAgICAgICAgICAgICA5NiwKKyAgICAgICAgICAgIDE1LAorICAgICAgICAg
ICAgOTcsCiAgICAgICAgICAgICAxOAogICAgICAgICAgIF0KICAgICAgICAgXSwKICAgICAgICAg
WwotICAgICAgICAgIDg0LAorICAgICAgICAgIDg1LAogICAgICAgICAgIFsKICAgICAgICAgICAg
IDY0LAogICAgICAgICAgICAgMTksCkBAIC04MzEsMTQgKzgzMSwxNCBAQCBUZXN0IHRoYXQgQ2Fu
dmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNv
bnRleHRzLgogICAgICAgICAgICAgMQogICAgICAgICAgIF0sCiAgICAgICAgICAgWwotICAgICAg
ICAgICAgOTcsCi0gICAgICAgICAgICAxNSwKICAgICAgICAgICAgIDk4LAorICAgICAgICAgICAg
MTUsCisgICAgICAgICAgICA5OSwKICAgICAgICAgICAgIDE4CiAgICAgICAgICAgXQogICAgICAg
ICBdLAogICAgICAgICBbCi0gICAgICAgICAgODQsCisgICAgICAgICAgODUsCiAgICAgICAgICAg
WwogICAgICAgICAgICAgNjgsCiAgICAgICAgICAgICAyNywKQEAgLTg2MiwxNCArODYyLDE0IEBA
IFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0
byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAgICAgICAgICAxCiAgICAgICAgICAgXSwKICAgICAg
ICAgICBbCi0gICAgICAgICAgICA5OSwKLSAgICAgICAgICAgIDE1LAogICAgICAgICAgICAgMTAw
LAorICAgICAgICAgICAgMTUsCisgICAgICAgICAgICAxMDEsCiAgICAgICAgICAgICAxOAogICAg
ICAgICAgIF0KICAgICAgICAgXSwKICAgICAgICAgWwotICAgICAgICAgIDg0LAorICAgICAgICAg
IDg1LAogICAgICAgICAgIFsKICAgICAgICAgICAgIDcyLAogICAgICAgICAgICAgMzUsCkBAIC04
OTMsOSArODkzLDkgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQg
YWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgICAgIDEKICAgICAg
ICAgICBdLAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDEwMSwKLSAgICAgICAgICAgIDE1LAog
ICAgICAgICAgICAgMTAyLAorICAgICAgICAgICAgMTUsCisgICAgICAgICAgICAxMDMsCiAgICAg
ICAgICAgICAxOAogICAgICAgICAgIF0KICAgICAgICAgXQpAQCAtOTA0LDcgKzkwNCw3IEBAIFRl
c3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAy
RCBjYW52YXMgY29udGV4dHMuCiAgICAgewogICAgICAgImFjdGlvbnMiOiBbCiAgICAgICAgIFsK
LSAgICAgICAgICAxMDMsCisgICAgICAgICAgMTA0LAogICAgICAgICAgIFsKICAgICAgICAgICAg
IDY0LAogICAgICAgICAgICAgMSwKQEAgLTkzMCwxMiArOTMwLDEyIEBAIFRlc3QgdGhhdCBDYW52
YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29u
dGV4dHMuCiAgICAgICAgICAgICAzCiAgICAgICAgICAgXSwKICAgICAgICAgICBbCi0gICAgICAg
ICAgICAxMDQsCisgICAgICAgICAgICAxMDUsCiAgICAgICAgICAgICAxOAogICAgICAgICAgIF0K
ICAgICAgICAgXSwKICAgICAgICAgWwotICAgICAgICAgIDEwMywKKyAgICAgICAgICAxMDQsCiAg
ICAgICAgICAgWwogICAgICAgICAgICAgNjQsCiAgICAgICAgICAgICA5LApAQCAtOTQ2LDcgKzk0
Niw3IEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMg
bWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAgICAgICAgICAxNCwKICAgICAgICAgICAg
IDE1LAogICAgICAgICAgICAgMTYsCi0gICAgICAgICAgICAxMDUKKyAgICAgICAgICAgIDEwNgog
ICAgICAgICAgIF0sCiAgICAgICAgICAgWwogICAgICAgICAgICAgNiwKQEAgLTk2MSw3ICs5NjEs
NyBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1h
ZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICAgICAgMwogICAgICAgICAgIF0sCiAg
ICAgICAgICAgWwotICAgICAgICAgICAgMTA2LAorICAgICAgICAgICAgMTA3LAogICAgICAgICAg
ICAgMTgKICAgICAgICAgICBdCiAgICAgICAgIF0KQEAgLTk3MCw3ICs5NzAsNyBAQCBUZXN0IHRo
YXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2Fu
dmFzIGNvbnRleHRzLgogICAgIHsKICAgICAgICJhY3Rpb25zIjogWwogICAgICAgICBbCi0gICAg
ICAgICAgMTA3LAorICAgICAgICAgIDEwOCwKICAgICAgICAgICBbCiAgICAgICAgICAgICAxLAog
ICAgICAgICAgICAgMiwKQEAgLTk5MiwxNCArOTkyLDE0IEBAIFRlc3QgdGhhdCBDYW52YXNNYW5h
Z2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMu
CiAgICAgICAgICAgICAyCiAgICAgICAgICAgXSwKICAgICAgICAgICBbCi0gICAgICAgICAgICAx
MDgsCi0gICAgICAgICAgICAxNSwKICAgICAgICAgICAgIDEwOSwKKyAgICAgICAgICAgIDE1LAor
ICAgICAgICAgICAgMTEwLAogICAgICAgICAgICAgMTgKICAgICAgICAgICBdCiAgICAgICAgIF0s
CiAgICAgICAgIFsKLSAgICAgICAgICAxMDcsCisgICAgICAgICAgMTA4LAogICAgICAgICAgIFsK
ICAgICAgICAgICAgIDgsCiAgICAgICAgICAgICA5LApAQCAtMTAyMSw5ICsxMDIxLDkgQEAgVGVz
dCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJE
IGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgICAgIDIKICAgICAgICAgICBdLAogICAgICAgICAg
IFsKLSAgICAgICAgICAgIDExMCwKLSAgICAgICAgICAgIDE1LAogICAgICAgICAgICAgMTExLAor
ICAgICAgICAgICAgMTUsCisgICAgICAgICAgICAxMTIsCiAgICAgICAgICAgICAxOAogICAgICAg
ICAgIF0KICAgICAgICAgXQpAQCAtMTAzMiw3ICsxMDMyLDcgQEAgVGVzdCB0aGF0IENhbnZhc01h
bmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0
cy4KICAgICB7CiAgICAgICAiYWN0aW9ucyI6IFsKICAgICAgICAgWwotICAgICAgICAgIDExMiwK
KyAgICAgICAgICAxMTMsCiAgICAgICAgICAgWwogICAgICAgICAgICAgNDQKICAgICAgICAgICBd
LApAQCAtMTA0MCwxMiArMTA0MCwxMiBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxl
IHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICAg
ICAgMwogICAgICAgICAgIF0sCiAgICAgICAgICAgWwotICAgICAgICAgICAgMTEzLAorICAgICAg
ICAgICAgMTE0LAogICAgICAgICAgICAgMTgKICAgICAgICAgICBdCiAgICAgICAgIF0sCiAgICAg
ICAgIFsKLSAgICAgICAgICAxMTIsCisgICAgICAgICAgMTEzLAogICAgICAgICAgIFsKICAgICAg
ICAgICAgIDQ2CiAgICAgICAgICAgXSwKQEAgLTEwNTMsMTIgKzEwNTMsMTIgQEAgVGVzdCB0aGF0
IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZh
cyBjb250ZXh0cy4KICAgICAgICAgICAgIDMKICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAg
ICAgICAgICAgIDExNCwKKyAgICAgICAgICAgIDExNSwKICAgICAgICAgICAgIDE4CiAgICAgICAg
ICAgXQogICAgICAgICBdLAogICAgICAgICBbCi0gICAgICAgICAgMTEyLAorICAgICAgICAgIDEx
MywKICAgICAgICAgICBbCiAgICAgICAgICAgICA0OCwKICAgICAgICAgICAgIDQ0CkBAIC0xMDY4
LDEyICsxMDY4LDEyIEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3Jk
IGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAgICAgICAgICAzCiAgICAg
ICAgICAgXSwKICAgICAgICAgICBbCi0gICAgICAgICAgICAxMTUsCisgICAgICAgICAgICAxMTYs
CiAgICAgICAgICAgICAxOAogICAgICAgICAgIF0KICAgICAgICAgXSwKICAgICAgICAgWwotICAg
ICAgICAgIDExMiwKKyAgICAgICAgICAxMTMsCiAgICAgICAgICAgWwogICAgICAgICAgICAgNTAs
CiAgICAgICAgICAgICA0NgpAQCAtMTA4Myw3ICsxMDgzLDcgQEAgVGVzdCB0aGF0IENhbnZhc01h
bmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0
cy4KICAgICAgICAgICAgIDMKICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAgICAgICAgICAg
IDExNiwKKyAgICAgICAgICAgIDExNywKICAgICAgICAgICAgIDE4CiAgICAgICAgICAgXQogICAg
ICAgICBdCkBAIC0xMDkyLDcgKzEwOTIsNyBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBh
YmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgIHsK
ICAgICAgICJhY3Rpb25zIjogWwogICAgICAgICBbCi0gICAgICAgICAgMTE3LAorICAgICAgICAg
IDExOCwKICAgICAgICAgICBbCiAgICAgICAgICAgICAxLAogICAgICAgICAgICAgMiwKQEAgLTEx
MDYsNyArMTEwNiw3IEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3Jk
IGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAgICAgICAgICAxCiAgICAg
ICAgICAgXSwKICAgICAgICAgICBbCi0gICAgICAgICAgICAxMTgsCisgICAgICAgICAgICAxMTks
CiAgICAgICAgICAgICAxOAogICAgICAgICAgIF0KICAgICAgICAgXQpAQCAtMTExNSw1NSArMTEx
NSw1NSBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25z
IG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgIHsKICAgICAgICJhY3Rpb25zIjogWwog
ICAgICAgICBbCi0gICAgICAgICAgMTE5LAorICAgICAgICAgIDEyMCwKICAgICAgICAgICBbXSwK
ICAgICAgICAgICBbXSwKICAgICAgICAgICBbCi0gICAgICAgICAgICAxMjAsCisgICAgICAgICAg
ICAxMjEsCiAgICAgICAgICAgICAxOAogICAgICAgICAgIF0KICAgICAgICAgXSwKICAgICAgICAg
WwotICAgICAgICAgIDExOSwKKyAgICAgICAgICAxMjAsCiAgICAgICAgICAgWwotICAgICAgICAg
ICAgMTA1CisgICAgICAgICAgICAxMDYKICAgICAgICAgICBdLAogICAgICAgICAgIFsKICAgICAg
ICAgICAgIDMKICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDEyMSwKKyAg
ICAgICAgICAgIDEyMiwKICAgICAgICAgICAgIDE4CiAgICAgICAgICAgXQogICAgICAgICBdLAog
ICAgICAgICBbCi0gICAgICAgICAgMTE5LAorICAgICAgICAgIDEyMCwKICAgICAgICAgICBbCi0g
ICAgICAgICAgICAxMjMKKyAgICAgICAgICAgIDEyNAogICAgICAgICAgIF0sCiAgICAgICAgICAg
WwogICAgICAgICAgICAgMTAKICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAgICAgICAgICAg
IDEyNCwKKyAgICAgICAgICAgIDEyNSwKICAgICAgICAgICAgIDE4CiAgICAgICAgICAgXQogICAg
ICAgICBdLAogICAgICAgICBbCi0gICAgICAgICAgMTE5LAorICAgICAgICAgIDEyMCwKICAgICAg
ICAgICBbCi0gICAgICAgICAgICAxMjYKKyAgICAgICAgICAgIDEyNwogICAgICAgICAgIF0sCiAg
ICAgICAgICAgWwogICAgICAgICAgICAgMTAKICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAg
ICAgICAgICAgIDEyNywKKyAgICAgICAgICAgIDEyOCwKICAgICAgICAgICAgIDE4CiAgICAgICAg
ICAgXQogICAgICAgICBdLAogICAgICAgICBbCi0gICAgICAgICAgMTE5LAorICAgICAgICAgIDEy
MCwKICAgICAgICAgICBbCiAgICAgICAgICAgICAxMzEKICAgICAgICAgICBdLApAQCAtMTIzMSw3
ICsxMjMxLDcgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0
aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgWwogICAgICAgICAgIDEz
NiwKICAgICAgICAgICBbCi0gICAgICAgICAgICAxMDUKKyAgICAgICAgICAgIDEwNgogICAgICAg
ICAgIF0sCiAgICAgICAgICAgWwogICAgICAgICAgICAgMwpAQCAtMTMzNCw3ICsxMzM0LDcgQEAg
VGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRv
IDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgWwogICAgICAgICAgIDE0OSwKICAgICAgICAg
ICBbCi0gICAgICAgICAgICAxMDUKKyAgICAgICAgICAgIDEwNgogICAgICAgICAgIF0sCiAgICAg
ICAgICAgWwogICAgICAgICAgICAgMwpAQCAtMTYxMiw3ICsxNjEyLDcgQEAgVGVzdCB0aGF0IENh
bnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBj
b250ZXh0cy4KICAgICAgICAgWwogICAgICAgICAgIDE3OCwKICAgICAgICAgICBbCi0gICAgICAg
ICAgICAxMDUKKyAgICAgICAgICAgIDEwNgogICAgICAgICAgIF0sCiAgICAgICAgICAgWwogICAg
ICAgICAgICAgMwpAQCAtMTg4NCw3ICsxODg0LDcgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIg
aXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAg
ICAgICAgWwogICAgICAgICAgIDIwNiwKICAgICAgICAgICBbCi0gICAgICAgICAgICAxMDUKKyAg
ICAgICAgICAgIDEwNgogICAgICAgICAgIF0sCiAgICAgICAgICAgWwogICAgICAgICAgICAgMwpA
QCAtMjAxNiw3ICsyMDE2LDcgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byBy
ZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgWwogICAg
ICAgICAgIDIxNywKICAgICAgICAgICBbCi0gICAgICAgICAgICAxMDUKKyAgICAgICAgICAgIDEw
NgogICAgICAgICAgIF0sCiAgICAgICAgICAgWwogICAgICAgICAgICAgMwpAQCAtMjA2Niw3ICsy
MDY2LDcgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9u
cyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgWwogICAgICAgICAgIDIyMiwK
ICAgICAgICAgICBbCi0gICAgICAgICAgICAxMDUKKyAgICAgICAgICAgIDEwNgogICAgICAgICAg
IF0sCiAgICAgICAgICAgWwogICAgICAgICAgICAgMwpAQCAtMjE2NSw3ICsyMTY1LDcgQEAgVGVz
dCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJE
IGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgICAgIDQsCiAgICAgICAgICAgICA1LAogICAgICAg
ICAgICAgNiwKLSAgICAgICAgICAgIDEwNSwKKyAgICAgICAgICAgIDEwNiwKICAgICAgICAgICAg
IDcKICAgICAgICAgICBdLAogICAgICAgICAgIFsKQEAgLTI0ODksNyArMjQ4OSw3IEBAIFRlc3Qg
dGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBj
YW52YXMgY29udGV4dHMuCiAgICAgICAgIFsKICAgICAgICAgICAyNTUsCiAgICAgICAgICAgWwot
ICAgICAgICAgICAgMTA1CisgICAgICAgICAgICAxMDYKICAgICAgICAgICBdLAogICAgICAgICAg
IFsKICAgICAgICAgICAgIDMKQEAgLTI2MTYsNyArMjYxNiw3IEBAIFRlc3QgdGhhdCBDYW52YXNN
YW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4
dHMuCiAgICAgICAgIFsKICAgICAgICAgICAyNjksCiAgICAgICAgICAgWwotICAgICAgICAgICAg
MTA1CisgICAgICAgICAgICAxMDYKICAgICAgICAgICBdLAogICAgICAgICAgIFsKICAgICAgICAg
ICAgIDMKQEAgLTI2MjksNyArMjYyOSw3IEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFi
bGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAgICAg
IFsKICAgICAgICAgICAyNjksCiAgICAgICAgICAgWwotICAgICAgICAgICAgMTIzCisgICAgICAg
ICAgICAxMjQKICAgICAgICAgICBdLAogICAgICAgICAgIFsKICAgICAgICAgICAgIDEwCkBAIC0y
NjQyLDcgKzI2NDIsNyBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29y
ZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICBbCiAgICAgICAg
ICAgMjY5LAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDEyNgorICAgICAgICAgICAgMTI3CiAg
ICAgICAgICAgXSwKICAgICAgICAgICBbCiAgICAgICAgICAgICAxMApAQCAtMzIyMSw2ICszMjIx
LDcgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBt
YWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgIDE2CiAgICAgXSwKICAgICAiZHJhd0Zv
Y3VzSWZOZWVkZWQiLAorICAgICJFbGVtZW50IiwKICAgICBbCiAgICAgICAxMCwKICAgICAgIDEy
LApAQCAtMzQyOCw3ICszNDI5LDcgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0
byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICBdLAogICAg
ICJsaW5lYXItZ3JhZGllbnQiLAogICAgIFsKLSAgICAgIDEyMiwKKyAgICAgIDEyMywKICAgICAg
IFsKICAgICAgICAgMSwKICAgICAgICAgMiwKQEAgLTM0NDUsNyArMzQ0Niw3IEBAIFRlc3QgdGhh
dCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52
YXMgY29udGV4dHMuCiAgICAgXSwKICAgICAicmFkaWFsLWdyYWRpZW50IiwKICAgICBbCi0gICAg
ICAxMjUsCisgICAgICAxMjYsCiAgICAgICBbCiAgICAgICAgIDEsCiAgICAgICAgIDIsCkBAIC0z
NDYyLDExICszNDYzLDkgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNv
cmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgIDE1OSwKICAgICAg
IDE2CiAgICAgXSwKLSAgICAicGF0dGVybiIsCiAgICAgImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxp
VkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUlBQUFBQ0NBWUFBQUJ5dGcwa0FBQUFBWE5TUjBJQXJz
NGM2UUFBQUJOSlJFRlVDQjFqL00vQUFFUU1ERXdnQWdRQUh4Y0NBbXRBbS9zQUFBQUFTVVZPUks1
Q1lJST0iLAogICAgICJuby1yZXBlYXQiLAogICAgIFsKLSAgICAgIDEyOCwKICAgICAgIDEyOSwK
ICAgICAgIDEzMAogICAgIF0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320825</attachid>
            <date>2017-09-14 14:32:09 -0700</date>
            <delta_ts>2017-09-14 15:43:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176936-20170914143208.patch</filename>
            <type>text/plain</type>
            <size>49842</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiODRhZWNiYzMxNDJmY2M5YTEzYzBmNDNjMzRhZWMyODMxZjE0Yzc2Li44
Yzc1MzZmOGJlZjM5M2Y5MGVjYjZmMDg0NzE5NGM4MzYyYTA1ZGFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTctMDktMTQgIERldmluIFJvdXNzbyAgPHdlYmtpdEBkZXZpbnJvdXNz
by5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbWFrZSByZWNvcmRpbmcgc3dpenpsZSBh
c3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2
OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDYW52YXM6OmJ1aWxkQXJyYXlGb3JDYW52YXNQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNhbnZhczo6YnVpbGRBY3Rpb24pOgorICAgICAgICBGb3Igb2JqZWN0cyB0aGF0
IGFyZSBub3QgYWJsZSB0byBiZSBzdHJpbmdpZmllZCAoZS5nLiBlbGVtZW50cyksIHNlbmQgYSBk
ZWR1cGxpY2F0ZWQgc3RyaW5nCisgICAgICAgIHdpdGggdGhlIG5hbWUgb2YgdGhlIG9iamVjdCBh
cyBhIHBsYWNlaG9sZGVyIHZhbHVlIChlLmcuICJFbGVtZW50IikuCisKIDIwMTctMDktMTMgIERl
dmluIFJvdXNzbyAgPHdlYmtpdEBkZXZpbnJvdXNzby5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogRXZlbnQgTGlzdGVuZXJzIHNlY3Rpb24gZG9lcyBub3QgdXBkYXRlIHdoZW4gbGlzdGVu
ZXJzIGFyZSBhZGRlZC9yZW1vdmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBiOGJlZTcy
NjIyMWU4NjY1YTNhMmNjOTQ4M2NkZjFkMGM1NTdmNjFkLi5mOGZkMzQ4MWZjYTE2NjVjNjk5MWEz
MjA4MGJkM2E4MDRjNTMwN2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2
MSBAQAorMjAxNy0wOS0xNCAgRGV2aW4gUm91c3NvICA8d2Via2l0QGRldmlucm91c3NvLmNvbT4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBtYWtlIHJlY29yZGluZyBzd2l6emxlIGFzeW5jCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY5MzYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgTW92ZSBhbGwg
c3dpenpsZSBmdW5jdGlvbnMsIGFuZCBhbGwgbG9naWMgdGhhdCBkZXBlbmRzIG9uIHN3aXp6bGVk
IHZhbHVlcywgdG8gYXN5bmMKKyAgICAgICAgZnVuY3Rpb25zIHNvIHRoYXQgYXdhaXQgY2FuIGJl
IHVzZWQgdG8gcGF1c2UgZXhlY3V0aW9uIHdoaWxlIG9iamVjdHMgbG9hZC4gVGhpcyB3YXMKKyAg
ICAgICAgbmVjZXNzYXJ5IHByaW1hcmlseSBmb3Igc3dpenpsaW5nIEltYWdlIHZhbHVlcywgYXMg
dGhlIEltYWdlIGlzIG5vdCBhYmxlIHRvIGJlIHVzZWQgKHN1Y2ggYXMKKyAgICAgICAgZm9yIGNy
ZWF0aW5nIGEgQ2FudmFzUGF0dGVybikgdW50aWwgaXRzICJsb2FkIiBldmVudCBoYXMgZmlyZWQu
IEFueSBjYWxsZXJzIG9mIGEgUmVjb3JkaW5nJ3MKKyAgICAgICAgYWN0aW9ucyBnZXR0ZXIgbXVz
dCBub3cgYWRhcHQgdG8gd29ya2luZyB3aXRoIGEgcHJvbWlzZSB0aGF0IHdpbGwgcmVzb2x2ZSBv
bmNlIGFsbCBzd2l6emxpbmcKKyAgICAgICAgaGFzIGZpbmlzaGVkIGFjcm9zcyBhbGwgYWN0aW9u
cyB3aXRoaW4gdGhhdCByZWNvcmRpbmcuCisKKyAgICAgICAgKiAuZXNsaW50cmM6CisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanM6CisgICAgICAgIChXSS5SZWNv
cmRpbmcpOgorICAgICAgICAoV0kuUmVjb3JkaW5nLnByb3RvdHlwZS5hc3luYyBzd2l6emxlKToK
KyAgICAgICAgKFdJLlJlY29yZGluZy5wcm90b3R5cGUuc3dpenpsZSk6IERlbGV0ZWQuCisgICAg
ICAgIERyaXZlLWJ5OiBjdXJyZW50bHksIG5vIGRhdGEgaXMgYWRkZWQgdG8gdGhlIEpTT04gZm9y
IFdlYkdMIG9iamVjdHMsIHNvIGRvbid0IHRyeSB0byBzd2l6emxlCisgICAgICAgIHRoZW0gYW5k
IHJldHVybiB0aGUgcGxhY2Vob2xkZXIgdmFsdWUgKDApIGluc3RlYWQuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmdBY3Rpb24uanM6CisgICAgICAgIChXSS5SZWNv
cmRpbmdBY3Rpb24pOgorICAgICAgICAoV0kuUmVjb3JkaW5nQWN0aW9uLnByb3RvdHlwZS5zd2l6
emxlKToKKyAgICAgICAgKFdJLlJlY29yZGluZ0FjdGlvbi5wcm90b3R5cGUudG9KU09OKToKKyAg
ICAgICAgKFdJLlJlY29yZGluZ0FjdGlvbi5wcm90b3R5cGUuYXN5bmMgX3N3aXp6bGUuc3dpenps
ZVBhcmFtZXRlcik6CisgICAgICAgIChXSS5SZWNvcmRpbmdBY3Rpb24ucHJvdG90eXBlLmFzeW5j
IF9zd2l6emxlLmFzeW5jIHN3aXp6bGVDYWxsRnJhbWUpOgorICAgICAgICAoV0kuUmVjb3JkaW5n
QWN0aW9uLnByb3RvdHlwZS5hc3luYyBfc3dpenpsZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9SZWNvcmRpbmdJbml0aWFsU3RhdGVBY3Rpb24uanM6CisgICAgICAgIChXSS5S
ZWNvcmRpbmdJbml0aWFsU3RhdGVBY3Rpb24pOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLlJlY29yZGluZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS51cGRhdGVBY3Rpb25JbmRleCk6CisgICAgICAgIChXSS5SZWNvcmRp
bmdDb250ZW50Vmlldy5wcm90b3R5cGUuYXN5bmMgX2dlbmVyYXRlQ29udGVudENhbnZhczJEKToK
KyAgICAgICAgKFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5hc3luYyBfZ2VuZXJh
dGVDb250ZW50Q2FudmFzV2ViR0wpOgorICAgICAgICAoV0kuUmVjb3JkaW5nQ29udGVudFZpZXcu
cHJvdG90eXBlLl91cGRhdGVDYW52YXNQYXRoKToKKyAgICAgICAgKFdJLlJlY29yZGluZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5fZ2VuZXJhdGVDb250ZW50Q2FudmFzMkQpOiBEZWxldGVkLgorICAg
ICAgICAoV0kuUmVjb3JkaW5nQ29udGVudFZpZXcucHJvdG90eXBlLl9nZW5lcmF0ZUNvbnRlbnRD
YW52YXNXZWJHTCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
Y29yZGluZ05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXSS5SZWNvcmRpbmdO
YXZpZ2F0aW9uU2lkZWJhclBhbmVsLnByb3RvdHlwZS5zZXQgcmVjb3JkaW5nKToKKyAgICAgICAg
KFdJLlJlY29yZGluZ05hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90eXBlLnVwZGF0ZUFjdGlv
bkluZGV4KToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nU3RhdGVE
ZXRhaWxzU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV0kuUmVjb3JkaW5nU3RhdGVEZXRhaWxz
U2lkZWJhclBhbmVsKToKKyAgICAgICAgKFdJLlJlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQ
YW5lbC5wcm90b3R5cGUudXBkYXRlQWN0aW9uSW5kZXgpOgorICAgICAgICAoV0kuUmVjb3JkaW5n
U3RhdGVEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fZ2VuZXJhdGVEZXRhaWxzQ2FudmFz
MkQpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdUYWJDb250ZW50
Vmlldy5qczoKKyAgICAgICAgKFdJLlJlY29yZGluZ1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5z
aG93UmVwcmVzZW50ZWRPYmplY3QpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9S
ZWNvcmRpbmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXSS5SZWNvcmRp
bmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwpOgorICAgICAgICAoV0kuUmVjb3JkaW5nVHJhY2VE
ZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS51cGRhdGVBY3Rpb25JbmRleCk6CisKIDIwMTct
MDktMTMgIERldmluIFJvdXNzbyAgPHdlYmtpdEBkZXZpbnJvdXNzby5jb20+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogYWxsb3cgcmVjb3JkaW5ncyB0byBiZSBzYXZlZCB2aWEg4oyYLVMgaW4g
dGhlIFJlY29yZGluZyB0YWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNh
bnZhcy5jcHAKaW5kZXggMmI2MjYxMThlYjAzZDZhZmQ3OThlMTBkMjJmMzIyYjM3ZjE2Y2EzNS4u
Y2M4NTEyOTg5NTBiMTc3NjM4MjI4NzEzOGEyODBjYzM0MjJjYjAzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5jcHAKQEAgLTUxMiw3ICs1MTIsNyBAQCBS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpJbnNwZWN0b3JWYWx1
ZT4+IEluc3BlY3RvckNhbnZhczo6YgogICAgICAgICAgICAgWyZdIChjb25zdCBFbGVtZW50Kikg
ewogICAgICAgICAgICAgICAgIC8vIEVsZW1lbnRzIGFyZSBub3Qgc2VyaWFsaXphYmxlLCBzbyBh
ZGQgYSBzdHJpbmcgYXMgYSBwbGFjZWhvbGRlciBzaW5jZSB0aGUgYWN0dWFsCiAgICAgICAgICAg
ICAgICAgLy8gZWxlbWVudCBjYW5ub3QgYmUgcmVjb25zdHJ1Y3RlZCBpbiB0aGUgZnJvbnRlbmQu
Ci0gICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKDAsIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6
Tm9uZSk7CisgICAgICAgICAgICAgICAgYWRkUGFyYW1ldGVyKGluZGV4Rm9yRGF0YSgiRWxlbWVu
dCIpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6Ok5vbmUpOwogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgIFsmXSAoSFRNTEltYWdlRWxlbWVudCogdmFsdWUpIHsgYWRkUGFyYW1ldGVyKGluZGV4
Rm9yRGF0YSh2YWx1ZSksIFJlY29yZGluZ1N3aXp6bGVUeXBlczo6SW1hZ2UpOyB9LAogICAgICAg
ICAgICAgWyZdIChJbWFnZURhdGEqIHZhbHVlKSB7IGFkZFBhcmFtZXRlcihpbmRleEZvckRhdGEo
dmFsdWUpLCBSZWNvcmRpbmdTd2l6emxlVHlwZXM6OkltYWdlRGF0YSk7IH0sCkBAIC02MjksNyAr
NjI5LDYgQEAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3RvclZhbHVl
Pj4gSW5zcGVjdG9yQ2FudmFzOjpidWlsZEFycmF5Rm8KICAgICAgICAgcmVwZWF0ID0gQVNDSUlM
aXRlcmFsKCJuby1yZXBlYXQiKTsKIAogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpB
cnJheTxJbnNwZWN0b3I6Okluc3BlY3RvclZhbHVlPj4gYXJyYXkgPSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBcnJheTxJbnNwZWN0b3I6Okluc3BlY3RvclZhbHVlPjo6Y3JlYXRlKCk7Ci0gICAgYXJy
YXktPmFkZEl0ZW0oaW5kZXhGb3JEYXRhKCJwYXR0ZXJuIikpOwogICAgIGFycmF5LT5hZGRJdGVt
KGluZGV4Rm9yRGF0YShpbWFnZUJ1ZmZlci0+dG9EYXRhVVJMKCJpbWFnZS9wbmciKSkpOwogICAg
IGFycmF5LT5hZGRJdGVtKGluZGV4Rm9yRGF0YShyZXBlYXQpKTsKICAgICByZXR1cm4gYXJyYXk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvLmVzbGludHJjIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJLy5lc2xpbnRyYwppbmRleCA2NjQ3MjI5NDNlOGY0ODg4NmU3MmNmMjRlMGM3
MjQzOTQ2NjQ3YzVkLi5kNGMwMjA0YjA4NjE5YzgzZjJlNzU2Yjc2NjUzMTJkZmU5Mzg4ZGQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvLmVzbGludHJjCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS8uZXNsaW50cmMKQEAgLTI3LDggKzI3LDggQEAKICAgICAiZXh0ZW5kcyI6
ICJlc2xpbnQ6cmVjb21tZW5kZWQiLAogICAgICJlbnYiOiB7CiAgICAgICAgICJicm93c2VyIjog
dHJ1ZSwKLSAgICAgICAgImVzNiI6IHRydWUsCiAgICAgICAgICJ3b3JrZXIiOiB0cnVlLAorICAg
ICAgICAiZWNtYVZlcnNpb24iOiAyMDE3LAogICAgIH0sCiAgICAgImdsb2JhbHMiOiB7CiAgICAg
ICAgIC8vIEFnZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL1JlY29yZGluZy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9SZWNvcmRpbmcuanMKaW5kZXggNTJiMWVkNzBlMGJiMmE2NDc2MmQ5MWFl
NWM1ZTc1ODEzZWU0ZjRlZi4uNmZmNzBkMTllMGMwOGU2MmZhMTMzMGU4YjMyYTE4OGZjNWVkMWQw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1JlY29yZGluZy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvUmVjb3JkaW5nLmpzCkBAIC0zMywxMyArMzMsMTQgQEAgV0kuUmVjb3JkaW5nID0gY2xh
c3MgUmVjb3JkaW5nCiAgICAgICAgIHRoaXMuX2ZyYW1lcyA9IGZyYW1lczsKICAgICAgICAgdGhp
cy5fZGF0YSA9IGRhdGE7CiAKLSAgICAgICAgdGhpcy5fYWN0aW9ucyA9IFtuZXcgV0kuUmVjb3Jk
aW5nSW5pdGlhbFN0YXRlQWN0aW9uXS5jb25jYXQoLi4udGhpcy5fZnJhbWVzLm1hcCgoZnJhbWUp
ID0+IGZyYW1lLmFjdGlvbnMpKTsKICAgICAgICAgdGhpcy5fc3dpenpsZSA9IFtdOwogICAgICAg
ICB0aGlzLl9zb3VyY2UgPSBudWxsOwogCi0gICAgICAgIGZvciAobGV0IGZyYW1lIG9mIHRoaXMu
X2ZyYW1lcykgewotICAgICAgICAgICAgZm9yIChsZXQgYWN0aW9uIG9mIGZyYW1lLmFjdGlvbnMp
IHsKLSAgICAgICAgICAgICAgICBhY3Rpb24uc3dpenpsZSh0aGlzKTsKKyAgICAgICAgbGV0IGFj
dGlvbnMgPSBbbmV3IFdJLlJlY29yZGluZ0luaXRpYWxTdGF0ZUFjdGlvbl0uY29uY2F0KC4uLnRo
aXMuX2ZyYW1lcy5tYXAoKGZyYW1lKSA9PiBmcmFtZS5hY3Rpb25zKSk7CisgICAgICAgIHRoaXMu
X2FjdGlvbnMgPSBQcm9taXNlLmFsbChhY3Rpb25zLm1hcCgoYWN0aW9uKSA9PiBhY3Rpb24uc3dp
enpsZSh0aGlzKSkpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgZm9yIChsZXQgYWN0aW9uIG9m
IGFjdGlvbnMpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWFjdGlvbi52YWxpZCkKKyAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICAgICBsZXQgcHJvdG90eXBlID0g
bnVsbDsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5fdHlwZSA9PT0gV0kuUmVjb3JkaW5nLlR5
cGUuQ2FudmFzMkQpCkBAIC01Nyw3ICs1OCw5IEBAIFdJLlJlY29yZGluZyA9IGNsYXNzIFJlY29y
ZGluZwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQotICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBhY3Rpb25zOworICAgICAgICB9
KTsKICAgICB9CiAKICAgICAvLyBTdGF0aWMKQEAgLTE3Miw3ICsxNzUsNyBAQCBXSS5SZWNvcmRp
bmcgPSBjbGFzcyBSZWNvcmRpbmcKICAgICBnZXQgc291cmNlKCkgeyByZXR1cm4gdGhpcy5fc291
cmNlOyB9CiAgICAgc2V0IHNvdXJjZShzb3VyY2UpIHsgdGhpcy5fc291cmNlID0gc291cmNlOyB9
CiAKLSAgICBzd2l6emxlKGluZGV4LCB0eXBlKQorICAgIGFzeW5jIHN3aXp6bGUoaW5kZXgsIHR5
cGUpCiAgICAgewogICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3N3aXp6bGVbaW5kZXhdICE9PSAi
b2JqZWN0IikKICAgICAgICAgICAgIHRoaXMuX3N3aXp6bGVbaW5kZXhdID0ge307CkBAIC0xODks
NiArMTkyLDE4IEBAIFdJLlJlY29yZGluZyA9IGNsYXNzIFJlY29yZGluZwogICAgICAgICBpZiAo
dHlwZSA9PT0gV0kuUmVjb3JkaW5nLlN3aXp6bGUuRE9NTWF0cml4KQogICAgICAgICAgICAgcmV0
dXJuIG5ldyBET01NYXRyaXgoaW5kZXgpOwogCisgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMTc2MDA5PiBXZWIgSW5zcGVjdG9yOiBzZW5kIGRhdGEgZm9yIFdlYkdMIG9i
amVjdHMgZHVyaW5nIGEgcmVjb3JkaW5nIGluc3RlYWQgb2YgYSBwbGFjZWhvbGRlciBzdHJpbmcK
KyAgICAgICAgaWYgKHR5cGUgPT09IFdJLlJlY29yZGluZy5Td2l6emxlLlR5cGVkQXJyYXkKKyAg
ICAgICAgICAgIHx8IHR5cGUgPT09IFdJLlJlY29yZGluZy5Td2l6emxlLldlYkdMQnVmZmVyCisg
ICAgICAgICAgICB8fCB0eXBlID09PSBXSS5SZWNvcmRpbmcuU3dpenpsZS5XZWJHTEZyYW1lYnVm
ZmVyCisgICAgICAgICAgICB8fCB0eXBlID09PSBXSS5SZWNvcmRpbmcuU3dpenpsZS5XZWJHTFJl
bmRlcmJ1ZmZlcgorICAgICAgICAgICAgfHwgdHlwZSA9PT0gV0kuUmVjb3JkaW5nLlN3aXp6bGUu
V2ViR0xUZXh0dXJlCisgICAgICAgICAgICB8fCB0eXBlID09PSBXSS5SZWNvcmRpbmcuU3dpenps
ZS5XZWJHTFNoYWRlcgorICAgICAgICAgICAgfHwgdHlwZSA9PT0gV0kuUmVjb3JkaW5nLlN3aXp6
bGUuV2ViR0xQcm9ncmFtCisgICAgICAgICAgICB8fCB0eXBlID09PSBXSS5SZWNvcmRpbmcuU3dp
enpsZS5XZWJHTFVuaWZvcm1Mb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIGluZGV4Owor
ICAgICAgICB9CisKICAgICAgICAgaWYgKCEodHlwZSBpbiB0aGlzLl9zd2l6emxlW2luZGV4XSkp
IHsKICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB0aGlzLl9k
YXRhW2luZGV4XTsKQEAgLTIwMiw4ICsyMTcsMTMgQEAgV0kuUmVjb3JkaW5nID0gY2xhc3MgUmVj
b3JkaW5nCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgY2Fz
ZSBXSS5SZWNvcmRpbmcuU3dpenpsZS5JbWFnZToKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5f
c3dpenpsZVtpbmRleF1bdHlwZV0gPSBuZXcgSW1hZ2U7Ci0gICAgICAgICAgICAgICAgICAgIHRo
aXMuX3N3aXp6bGVbaW5kZXhdW3R5cGVdLnNyYyA9IGRhdGE7CisgICAgICAgICAgICAgICAgICAg
IHRoaXMuX3N3aXp6bGVbaW5kZXhdW3R5cGVdID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUs
IHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGltYWdlID0gbmV3IElt
YWdlOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc29sdmVXaXRoSW1hZ2UgPSAoKSA9
PiB7IHJlc29sdmUoaW1hZ2UpOyB9OworICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UuYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsIHJlc29sdmVXaXRoSW1hZ2UpOworICAgICAgICAgICAgICAg
ICAgICAgICAgaW1hZ2UuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCByZXNvbHZlV2l0aEltYWdl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlLnNyYyA9IGRhdGE7CisgICAgICAgICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAg
ICAgIGNhc2UgV0kuUmVjb3JkaW5nLlN3aXp6bGUuSW1hZ2VEYXRhOgpAQCAtMjE1LDMzICsyMzUs
MjYgQEAgV0kuUmVjb3JkaW5nID0gY2xhc3MgUmVjb3JkaW5nCiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogCiAgICAgICAgICAgICAgICAgY2FzZSBXSS5SZWNvcmRpbmcuU3dpenpsZS5DYW52
YXNHcmFkaWVudDoKKyAgICAgICAgICAgICAgICAgICAgdmFyIGdyYWRpZW50VHlwZSA9IGF3YWl0
IHRoaXMuc3dpenpsZShkYXRhWzBdLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcpOworCiAg
ICAgICAgICAgICAgICAgICAgIHZhciBjb250ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
Y2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGdyYWRp
ZW50VHlwZSA9IHRoaXMuc3dpenpsZShkYXRhWzBdLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5TdHJp
bmcpOwogICAgICAgICAgICAgICAgICAgICB0aGlzLl9zd2l6emxlW2luZGV4XVt0eXBlXSA9IGdy
YWRpZW50VHlwZSA9PT0gInJhZGlhbC1ncmFkaWVudCIgPyBjb250ZXh0LmNyZWF0ZVJhZGlhbEdy
YWRpZW50KC4uLmRhdGFbMV0pIDogY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCguLi5kYXRh
WzFdKTsKKwogICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBzdG9wIG9mIGRhdGFbMl0pIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvciA9IHRoaXMuc3dpenpsZShzdG9wWzFd
LCBXSS5SZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGNvbG9yID0gYXdhaXQgdGhpcy5zd2l6emxlKHN0b3BbMV0sIFdJLlJlY29yZGluZy5Td2l6
emxlLlN0cmluZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zd2l6emxlW2luZGV4
XVt0eXBlXS5hZGRDb2xvclN0b3Aoc3RvcFswXSwgY29sb3IpOwogICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgY2FzZSBX
SS5SZWNvcmRpbmcuU3dpenpsZS5DYW52YXNQYXR0ZXJuOgorICAgICAgICAgICAgICAgICAgICB2
YXIgW2ltYWdlLCByZXBlYXRdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5zd2l6emxlKGRhdGFbMF0sIFdJLlJlY29yZGluZy5Td2l6emxlLkltYWdl
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3dpenpsZShkYXRhWzFdLCBXSS5SZWNv
cmRpbmcuU3dpenpsZS5TdHJpbmcpLAorICAgICAgICAgICAgICAgICAgICBdKTsKKwogICAgICAg
ICAgICAgICAgICAgICB2YXIgY29udGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZh
cyIpLmdldENvbnRleHQoIjJkIik7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBpbWFnZSA9IHRo
aXMuc3dpenpsZShkYXRhWzFdLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5JbWFnZSk7Ci0gICAgICAg
ICAgICAgICAgICAgIHZhciByZXBlYXQgPSB0aGlzLnN3aXp6bGUoZGF0YVsyXSwgV0kuUmVjb3Jk
aW5nLlN3aXp6bGUuU3RyaW5nKTsKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3dpenpsZVtp
bmRleF1bdHlwZV0gPSBjb250ZXh0LmNyZWF0ZVBhdHRlcm4oaW1hZ2UsIHJlcGVhdCk7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgLy8gRklYTUU6IDxodHRw
czovL3dlYmtpdC5vcmcvYi8xNzYwMDk+IFdlYiBJbnNwZWN0b3I6IHNlbmQgZGF0YSBmb3IgV2Vi
R0wgb2JqZWN0cyBkdXJpbmcgYSByZWNvcmRpbmcgaW5zdGVhZCBvZiBhIHBsYWNlaG9sZGVyIHN0
cmluZwotICAgICAgICAgICAgICAgIGNhc2UgV0kuUmVjb3JkaW5nLlN3aXp6bGUuVHlwZWRBcnJh
eToKLSAgICAgICAgICAgICAgICBjYXNlIFdJLlJlY29yZGluZy5Td2l6emxlLldlYkdMQnVmZmVy
OgotICAgICAgICAgICAgICAgIGNhc2UgV0kuUmVjb3JkaW5nLlN3aXp6bGUuV2ViR0xGcmFtZWJ1
ZmZlcjoKLSAgICAgICAgICAgICAgICBjYXNlIFdJLlJlY29yZGluZy5Td2l6emxlLldlYkdMUmVu
ZGVyYnVmZmVyOgotICAgICAgICAgICAgICAgIGNhc2UgV0kuUmVjb3JkaW5nLlN3aXp6bGUuV2Vi
R0xUZXh0dXJlOgotICAgICAgICAgICAgICAgIGNhc2UgV0kuUmVjb3JkaW5nLlN3aXp6bGUuV2Vi
R0xTaGFkZXI6Ci0gICAgICAgICAgICAgICAgY2FzZSBXSS5SZWNvcmRpbmcuU3dpenpsZS5XZWJH
TFByb2dyYW06Ci0gICAgICAgICAgICAgICAgY2FzZSBXSS5SZWNvcmRpbmcuU3dpenpsZS5XZWJH
TFVuaWZvcm1Mb2NhdGlvbjoKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3dpenpsZVtpbmRl
eF1bdHlwZV0gPSBTdHJpbmcoZGF0YSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gY2F0Y2ggeyB9CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRp
bmdBY3Rpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
UmVjb3JkaW5nQWN0aW9uLmpzCmluZGV4IDYyMmMxZTFiOWU2MThiMzNkNmY3OWI3ZGNiMjg0OTE1
OGJlNGU4MTQuLjEzNDI5YjQ2MWNmNWZlNmY0MGVhZTkwZGE2ZTY2ZjVhZGYzMTU4N2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRp
bmdBY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL1JlY29yZGluZ0FjdGlvbi5qcwpAQCAtMzksNiArMzksNyBAQCBXSS5SZWNvcmRpbmdBY3Rp
b24gPSBjbGFzcyBSZWNvcmRpbmdBY3Rpb24KICAgICAgICAgdGhpcy5fc25hcHNob3QgPSAiIjsK
IAogICAgICAgICB0aGlzLl92YWxpZCA9IHRydWU7CisgICAgICAgIHRoaXMuX3N3aXp6bGVkUHJv
bWlzZSA9IG51bGw7CiAKICAgICAgICAgdGhpcy5faXNGdW5jdGlvbiA9IGZhbHNlOwogICAgICAg
ICB0aGlzLl9pc0dldHRlciA9IGZhbHNlOwpAQCAtOTksMzEgKzEwMCw1OCBAQCBXSS5SZWNvcmRp
bmdBY3Rpb24gPSBjbGFzcyBSZWNvcmRpbmdBY3Rpb24KIAogICAgIHN3aXp6bGUocmVjb3JkaW5n
KQogICAgIHsKLSAgICAgICAgdGhpcy5fbmFtZSA9IHJlY29yZGluZy5zd2l6emxlKHRoaXMuX3Bh
eWxvYWROYW1lLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcpOwotCi0gICAgICAgIHRoaXMu
X3BhcmFtZXRlcnMgPSB0aGlzLl9wYXlsb2FkUGFyYW1ldGVycy5tYXAoKGl0ZW0sIGkpID0+IHsK
LSAgICAgICAgICAgIGxldCBzd2l6emxlZEl0ZW0gPSByZWNvcmRpbmcuc3dpenpsZShpdGVtLCB0
aGlzLl9wYXlsb2FkU3dpenpsZVR5cGVzW2ldKTsKLSAgICAgICAgICAgIGlmICh0aGlzLl9wYXls
b2FkU3dpenpsZVR5cGVzW2ldID09PSBXSS5SZWNvcmRpbmcuU3dpenpsZS5Ob25lIHx8IHN3aXp6
bGVkSXRlbSA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gZmFs
c2U7Ci0KLSAgICAgICAgICAgIHJldHVybiBzd2l6emxlZEl0ZW07Ci0gICAgICAgIH0pOwotCi0g
ICAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5fcGF5bG9hZFRyYWNlKSB7Ci0gICAgICAgICAg
ICB0cnkgewotICAgICAgICAgICAgICAgIGxldCBhcnJheSA9IHJlY29yZGluZy5zd2l6emxlKGl0
ZW0sIFdJLlJlY29yZGluZy5Td2l6emxlLk5vbmUpOwotICAgICAgICAgICAgICAgIGxldCBjYWxs
RnJhbWUgPSBXSS5DYWxsRnJhbWUuZnJvbVBheWxvYWQoV0kubWFpblRhcmdldCwgewotICAgICAg
ICAgICAgICAgICAgICBmdW5jdGlvbk5hbWU6IHJlY29yZGluZy5zd2l6emxlKGFycmF5WzBdLCBX
SS5SZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcpLAotICAgICAgICAgICAgICAgICAgICB1cmw6IHJl
Y29yZGluZy5zd2l6emxlKGFycmF5WzFdLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcpLAot
ICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBhcnJheVsyXSwKLSAgICAgICAgICAgICAg
ICAgICAgY29sdW1uTnVtYmVyOiBhcnJheVszXSwKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgICAgICB0aGlzLl90cmFjZS5wdXNoKGNhbGxGcmFtZSk7Ci0gICAgICAgICAgICB9IGNh
dGNoIHsgfQotICAgICAgICB9CisgICAgICAgIGlmICghdGhpcy5fc3dpenpsZWRQcm9taXNlKQor
ICAgICAgICAgICAgdGhpcy5fc3dpenpsZWRQcm9taXNlID0gdGhpcy5fc3dpenpsZShyZWNvcmRp
bmcpOworICAgICAgICByZXR1cm4gdGhpcy5fc3dpenpsZWRQcm9taXNlOworICAgIH0KIAorICAg
IHRvSlNPTigpCisgICAgeworICAgICAgICBsZXQganNvbiA9IFt0aGlzLl9wYXlsb2FkTmFtZSwg
dGhpcy5fcGF5bG9hZFBhcmFtZXRlcnMsIHRoaXMuX3BheWxvYWRTd2l6emxlVHlwZXMsIHRoaXMu
X3BheWxvYWRUcmFjZV07CiAgICAgICAgIGlmICh0aGlzLl9wYXlsb2FkU25hcHNob3QgPj0gMCkK
LSAgICAgICAgICAgIHRoaXMuX3NuYXBzaG90ID0gcmVjb3JkaW5nLnN3aXp6bGUodGhpcy5fcGF5
bG9hZFNuYXBzaG90LCBXSS5SZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcpOworICAgICAgICAgICAg
anNvbi5wdXNoKHRoaXMuX3BheWxvYWRTbmFwc2hvdCk7CisgICAgICAgIHJldHVybiBqc29uOwor
ICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIGFzeW5jIF9zd2l6emxlKHJlY29yZGluZykK
KyAgICB7CisgICAgICAgIGxldCBzd2l6emxlUGFyYW1ldGVyID0gKGl0ZW0sIGluZGV4KSA9PiB7
CisgICAgICAgICAgICByZXR1cm4gcmVjb3JkaW5nLnN3aXp6bGUoaXRlbSwgdGhpcy5fcGF5bG9h
ZFN3aXp6bGVUeXBlc1tpbmRleF0pOworICAgICAgICB9OworCisgICAgICAgIGxldCBzd2l6emxl
Q2FsbEZyYW1lID0gYXN5bmMgKGl0ZW0sIGluZGV4KSA9PiB7CisgICAgICAgICAgICBsZXQgYXJy
YXkgPSBhd2FpdCByZWNvcmRpbmcuc3dpenpsZShpdGVtLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5O
b25lKTsKKyAgICAgICAgICAgIGxldCBbZnVuY3Rpb25OYW1lLCB1cmxdID0gYXdhaXQgUHJvbWlz
ZS5hbGwoWworICAgICAgICAgICAgICAgIHJlY29yZGluZy5zd2l6emxlKGFycmF5WzBdLCBXSS5S
ZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcpLAorICAgICAgICAgICAgICAgIHJlY29yZGluZy5zd2l6
emxlKGFycmF5WzFdLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcpLAorICAgICAgICAgICAg
XSk7CisgICAgICAgICAgICByZXR1cm4gV0kuQ2FsbEZyYW1lLmZyb21QYXlsb2FkKFdJLm1haW5U
YXJnZXQsIHsKKyAgICAgICAgICAgICAgICBmdW5jdGlvbk5hbWUsCisgICAgICAgICAgICAgICAg
dXJsLAorICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGFycmF5WzJdLAorICAgICAgICAgICAg
ICAgIGNvbHVtbk51bWJlcjogYXJyYXlbM10sCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfTsK
KworICAgICAgICBsZXQgc3dpenpsZVByb21pc2VzID0gWworICAgICAgICAgICAgcmVjb3JkaW5n
LnN3aXp6bGUodGhpcy5fcGF5bG9hZE5hbWUsIFdJLlJlY29yZGluZy5Td2l6emxlLlN0cmluZyks
CisgICAgICAgICAgICBQcm9taXNlLmFsbCh0aGlzLl9wYXlsb2FkUGFyYW1ldGVycy5tYXAoc3dp
enpsZVBhcmFtZXRlcikpLAorICAgICAgICAgICAgUHJvbWlzZS5hbGwodGhpcy5fcGF5bG9hZFRy
YWNlLm1hcChzd2l6emxlQ2FsbEZyYW1lKSksCisgICAgICAgIF07CisgICAgICAgIGlmICh0aGlz
Ll9wYXlsb2FkU25hcHNob3QgPj0gMCkKKyAgICAgICAgICAgIHN3aXp6bGVQcm9taXNlcy5wdXNo
KHJlY29yZGluZy5zd2l6emxlKHRoaXMuX3BheWxvYWRTbmFwc2hvdCwgV0kuUmVjb3JkaW5nLlN3
aXp6bGUuU3RyaW5nKSk7CisKKyAgICAgICAgbGV0IFtuYW1lLCBwYXJhbWV0ZXJzLCBjYWxsRnJh
bWVzLCBzbmFwc2hvdF0gPSBhd2FpdCBQcm9taXNlLmFsbChzd2l6emxlUHJvbWlzZXMpOworICAg
ICAgICB0aGlzLl9uYW1lID0gbmFtZTsKKyAgICAgICAgdGhpcy5fcGFyYW1ldGVycyA9IHBhcmFt
ZXRlcnM7CisgICAgICAgIHRoaXMuX3RyYWNlID0gY2FsbEZyYW1lczsKKyAgICAgICAgaWYgKHRo
aXMuX3BheWxvYWRTbmFwc2hvdCA+PSAwKQorICAgICAgICAgICAgdGhpcy5fc25hcHNob3QgPSBz
bmFwc2hvdDsKKworICAgICAgICBpZiAodGhpcy5fdmFsaWQpCisgICAgICAgICAgICB0aGlzLl92
YWxpZCA9IHRoaXMuX3BhcmFtZXRlcnMuZXZlcnkoKHBhcmFtZXRlcikgPT4gcGFyYW1ldGVyICE9
PSB1bmRlZmluZWQpICYmIHRoaXMuX3BheWxvYWRTd2l6emxlVHlwZXMuZXZlcnkoKHN3aXp6bGVU
eXBlKSA9PiBzd2l6emxlVHlwZSAhPT0gV0kuUmVjb3JkaW5nLlN3aXp6bGUuTm9uZSk7CiAKICAg
ICAgICAgdGhpcy5faXNGdW5jdGlvbiA9IFdJLlJlY29yZGluZ0FjdGlvbi5pc0Z1bmN0aW9uRm9y
VHlwZShyZWNvcmRpbmcudHlwZSwgdGhpcy5fbmFtZSk7CiAgICAgICAgIHRoaXMuX2lzR2V0dGVy
ID0gIXRoaXMuX2lzRnVuY3Rpb24gJiYgIXRoaXMuX3BhcmFtZXRlcnMubGVuZ3RoOwpAQCAtMTM5
LDE0ICsxNjcsNiBAQCBXSS5SZWNvcmRpbmdBY3Rpb24gPSBjbGFzcyBSZWNvcmRpbmdBY3Rpb24K
ICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZU1vZGlmaWVycy5hZGQoaXRlbSk7CiAgICAgICAg
IH0KICAgICB9Ci0KLSAgICB0b0pTT04oKQotICAgIHsKLSAgICAgICAgbGV0IGpzb24gPSBbdGhp
cy5fcGF5bG9hZE5hbWUsIHRoaXMuX3BheWxvYWRQYXJhbWV0ZXJzLCB0aGlzLl9wYXlsb2FkU3dp
enpsZVR5cGVzLCB0aGlzLl9wYXlsb2FkVHJhY2VdOwotICAgICAgICBpZiAodGhpcy5fcGF5bG9h
ZFNuYXBzaG90ID49IDApCi0gICAgICAgICAgICBqc29uLnB1c2godGhpcy5fcGF5bG9hZFNuYXBz
aG90KTsKLSAgICAgICAgcmV0dXJuIGpzb247Ci0gICAgfQogfTsKIAogV0kuUmVjb3JkaW5nQWN0
aW9uLl9mdW5jdGlvbk5hbWVzID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZ0luaXRpYWxTdGF0ZUFjdGlvbi5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZWNvcmRpbmdJbml0aWFs
U3RhdGVBY3Rpb24uanMKaW5kZXggZDU0OTg1NDIyNDZmOGM3N2NkY2U5MTI4MmI2NDQ3NTFjYTE2
NGYwYy4uOGJjNTE4ZTYzNzMzMDQ4Y2U4NGQ2YTZhOTkzODEzOWEzNDE0YmZiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlY29yZGluZ0lu
aXRpYWxTdGF0ZUFjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvUmVjb3JkaW5nSW5pdGlhbFN0YXRlQWN0aW9uLmpzCkBAIC0zMiw1ICszMiw2
IEBAIFdJLlJlY29yZGluZ0luaXRpYWxTdGF0ZUFjdGlvbiA9IGNsYXNzIFJlY29yZGluZ0luaXRp
YWxTdGF0ZUFjdGlvbiBleHRlbmRzIFdJLlJlCiAgICAgICAgIHRoaXMuX25hbWUgPSBXSS5VSVN0
cmluZygiSW5pdGlhbCBTdGF0ZSIpOwogCiAgICAgICAgIHRoaXMuX3ZhbGlkID0gZmFsc2U7Cisg
ICAgICAgIHRoaXMuX3N3aXp6bGVkUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOwogICAgIH0K
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9SZWNvcmRpbmdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmpzCmluZGV4IDliODI3YTViNWI3NGI2
N2NjOTVkODM2YTgxNzUwMzkyNzkyZDdkOWEuLjI0MzM2NmFmMjkyOTQ3YTAxMTgxNTFlNjI4Mjlm
MDEzZTYzYmJmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmpzCkBAIC0xMDEs
MTYgKzEwMSwyMSBAQCBXSS5SZWNvcmRpbmdDb250ZW50VmlldyA9IGNsYXNzIFJlY29yZGluZ0Nv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgIHVwZGF0ZUFjdGlvbkluZGV4
KGluZGV4LCBvcHRpb25zID0ge30pCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghdGhp
cy5yZXByZXNlbnRlZE9iamVjdCB8fCAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMucmVwcmVz
ZW50ZWRPYmplY3QuYWN0aW9ucy5sZW5ndGgpKTsKLSAgICAgICAgaWYgKCF0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0IHx8IGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LmFjdGlvbnMubGVuZ3RoIHx8IGluZGV4ID09PSB0aGlzLl9pbmRleCkKKyAgICAgICAgaWYgKCF0
aGlzLnJlcHJlc2VudGVkT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRo
aXMuX2luZGV4ID0gaW5kZXg7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYWN0aW9u
cy50aGVuKChhY3Rpb25zKSA9PiB7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChpbmRleCA+
PSAwICYmIGluZGV4IDwgYWN0aW9ucy5sZW5ndGgpOworICAgICAgICAgICAgaWYgKGluZGV4IDwg
MCB8fCBpbmRleCA+PSBhY3Rpb25zLmxlbmd0aCB8fCBpbmRleCA9PT0gdGhpcy5faW5kZXgpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB0aGlzLl9pbmRleCA9IGluZGV4
OwogCi0gICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnR5cGUgPT09IFdJLlJlY29y
ZGluZy5UeXBlLkNhbnZhczJEKQotICAgICAgICAgICAgdGhpcy5fZ2VuZXJhdGVDb250ZW50Q2Fu
dmFzMkQoaW5kZXgsIG9wdGlvbnMpOwotICAgICAgICBlbHNlIGlmICh0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnR5cGUgPT09IFdJLlJlY29yZGluZy5UeXBlLkNhbnZhc1dlYkdMKQotICAgICAgICAg
ICAgdGhpcy5fZ2VuZXJhdGVDb250ZW50Q2FudmFzV2ViR0woaW5kZXgsIG9wdGlvbnMpOworICAg
ICAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3QudHlwZSA9PT0gV0kuUmVjb3JkaW5n
LlR5cGUuQ2FudmFzMkQpCisgICAgICAgICAgICAgICAgdGhpcy5fZ2VuZXJhdGVDb250ZW50Q2Fu
dmFzMkQoaW5kZXgsIGFjdGlvbnMsIG9wdGlvbnMpOworICAgICAgICAgICAgZWxzZSBpZiAodGhp
cy5yZXByZXNlbnRlZE9iamVjdC50eXBlID09PSBXSS5SZWNvcmRpbmcuVHlwZS5DYW52YXNXZWJH
TCkKKyAgICAgICAgICAgICAgICB0aGlzLl9nZW5lcmF0ZUNvbnRlbnRDYW52YXNXZWJHTChpbmRl
eCwgYWN0aW9ucywgb3B0aW9ucyk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIC8vIFByb3Rl
Y3RlZApAQCAtMTUyLDE0ICsxNTcsMTQgQEAgV0kuUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFz
cyBSZWNvcmRpbmdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAvLyBQ
cml2YXRlCiAKLSAgICBfZ2VuZXJhdGVDb250ZW50Q2FudmFzMkQoaW5kZXgsIG9wdGlvbnMgPSB7
fSkKKyAgICBhc3luYyBfZ2VuZXJhdGVDb250ZW50Q2FudmFzMkQoaW5kZXgsIGFjdGlvbnMsIG9w
dGlvbnMgPSB7fSkKICAgICB7CiAgICAgICAgIGxldCBpbWFnZUxvYWQgPSAoZXZlbnQpID0+IHsK
ICAgICAgICAgICAgIC8vIExvYWRpbmcgdG9vayB0b28gbG9uZyBhbmQgdGhlIGN1cnJlbnQgYWN0
aW9uIGluZGV4IGhhcyBhbHJlYWR5IGNoYW5nZWQuCiAgICAgICAgICAgICBpZiAoaW5kZXggIT09
IHRoaXMuX2luZGV4KQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgdGhp
cy5fZ2VuZXJhdGVDb250ZW50Q2FudmFzMkQoaW5kZXgsIG9wdGlvbnMpOworICAgICAgICAgICAg
dGhpcy5fZ2VuZXJhdGVDb250ZW50Q2FudmFzMkQoaW5kZXgsIGFjdGlvbnMsIG9wdGlvbnMpOwog
ICAgICAgICB9OwogCiAgICAgICAgIGxldCBpbml0aWFsU3RhdGUgPSB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LmluaXRpYWxTdGF0ZTsKQEAgLTE3Niw3ICsxODEsNiBAQCBXSS5SZWNvcmRpbmdDb250
ZW50VmlldyA9IGNsYXNzIFJlY29yZGluZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZp
ZXcKICAgICAgICAgbGV0IHNob3dDYW52YXNQYXRoID0gV0kuUmVjb3JkaW5nQ29udGVudFZpZXcu
c3VwcG9ydHNDYW52YXNQYXRoRGVidWdnaW5nKCkgJiYgV0kuc2V0dGluZ3Muc2hvd0NhbnZhc1Bh
dGgudmFsdWU7CiAgICAgICAgIGxldCBpbmRleE9mTGFzdEJlZ2luUGF0aEFjdGlvbiA9IEluZmlu
aXR5OwogCi0gICAgICAgIGxldCBhY3Rpb25zID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hY3Rp
b25zOwogICAgICAgICBsZXQgYXBwbHlBY3Rpb25zID0gKGZyb20sIHRvLCBjYWxsYmFjaykgPT4g
ewogICAgICAgICAgICAgbGV0IHNhdmVDb3VudCA9IDA7CiAgICAgICAgICAgICBzbmFwc2hvdC5j
b250ZXh0LnNhdmUoKTsKQEAgLTMwMiwxOSArMzA2LDE5IEBAIFdJLlJlY29yZGluZ0NvbnRlbnRW
aWV3ID0gY2xhc3MgUmVjb3JkaW5nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vmlldwog
CiAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoa2V5KSB7CiAgICAgICAgICAgICAgICAgICAg
IGNhc2UgInNldFRyYW5zZm9ybSI6Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IFt0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnN3aXp6bGUodmFsdWUsIFdJLlJlY29yZGluZy5Td2l6emxl
LkRPTU1hdHJpeCldOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBbYXdhaXQgdGhp
cy5yZXByZXNlbnRlZE9iamVjdC5zd2l6emxlKHZhbHVlLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5E
T01NYXRyaXgpXTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAg
ICAgICAgICAgIGNhc2UgImZpbGxTdHlsZSI6CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgInN0
cm9rZVN0eWxlIjoKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZh
bHVlKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjYW52YXNTdHlsZSA9IHRo
aXMuc3dpenpsZSh2YWx1ZVswXSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuU3RyaW5nKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2FudmFzU3R5bGUgPSBhd2FpdCB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LnN3aXp6bGUodmFsdWVbMF0sIFdJLlJlY29yZGluZy5Td2l6emxlLlN0cmlu
Zyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhbnZhc1N0eWxlLmluY2x1ZGVz
KCJncmFkaWVudCIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRo
aXMucmVwcmVzZW50ZWRPYmplY3Quc3dpenpsZSh2YWx1ZSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUu
Q2FudmFzR3JhZGllbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9
IGF3YWl0IHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc3dpenpsZSh2YWx1ZSwgV0kuUmVjb3JkaW5n
LlN3aXp6bGUuQ2FudmFzR3JhZGllbnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVs
c2UgaWYgKGNhbnZhc1N0eWxlID09PSAicGF0dGVybiIpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhbHVlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zd2l6emxlKHZhbHVlLCBX
SS5SZWNvcmRpbmcuU3dpenpsZS5DYW52YXNQYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdmFsdWUgPSBhd2FpdCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnN3aXp6bGUo
dmFsdWUsIFdJLlJlY29yZGluZy5Td2l6emxlLkNhbnZhc1BhdHRlcm4pOwogICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnN3aXp6bGUodmFsdWUsIFdJLlJlY29yZGluZy5Td2l6emxl
LlN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBhd2FpdCB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0LnN3aXp6bGUodmFsdWUsIFdJLlJlY29yZGluZy5Td2l6emxlLlN0
cmluZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAg
ICAgICBjYXNlICJkaXJlY3Rpb24iOgpAQCAtMzI3LDExICszMzEsMTEgQEAgV0kuUmVjb3JkaW5n
Q29udGVudFZpZXcgPSBjbGFzcyBSZWNvcmRpbmdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRl
bnRWaWV3CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgInNoYWRvd0NvbG9yIjoKICAgICAgICAg
ICAgICAgICAgICAgY2FzZSAidGV4dEFsaWduIjoKICAgICAgICAgICAgICAgICAgICAgY2FzZSAi
dGV4dEJhc2VsaW5lIjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5zd2l6emxlKHZhbHVlLCBXSS5SZWNvcmRpbmcuU3dpenpsZS5TdHJpbmcp
OworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBhd2FpdCB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnN3aXp6bGUodmFsdWUsIFdJLlJlY29yZGluZy5Td2l6emxlLlN0cmluZyk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAgICAgICBjYXNlICJz
ZXRQYXRoIjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gW3RoaXMucmVwcmVzZW50
ZWRPYmplY3Quc3dpenpsZSh2YWx1ZVswXSwgV0kuUmVjb3JkaW5nLlN3aXp6bGUuUGF0aDJEKV07
CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IFthd2FpdCB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnN3aXp6bGUodmFsdWVbMF0sIFdJLlJlY29yZGluZy5Td2l6emxlLlBhdGgyRCldOwog
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KIApA
QCAtNDAxLDE0ICs0MDUsMTQgQEAgV0kuUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBSZWNv
cmRpbmdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIHRoaXMuX3Vw
ZGF0ZUltYWdlR3JpZCgpOwogICAgIH0KIAotICAgIF9nZW5lcmF0ZUNvbnRlbnRDYW52YXNXZWJH
TChpbmRleCwgb3B0aW9ucyA9IHt9KQorICAgIGFzeW5jIF9nZW5lcmF0ZUNvbnRlbnRDYW52YXNX
ZWJHTChpbmRleCwgYWN0aW9ucywgb3B0aW9ucyA9IHt9KQogICAgIHsKICAgICAgICAgbGV0IGlt
YWdlTG9hZCA9IChldmVudCkgPT4gewogICAgICAgICAgICAgLy8gTG9hZGluZyB0b29rIHRvbyBs
b25nIGFuZCB0aGUgY3VycmVudCBhY3Rpb24gaW5kZXggaGFzIGFscmVhZHkgY2hhbmdlZC4KICAg
ICAgICAgICAgIGlmIChpbmRleCAhPT0gdGhpcy5faW5kZXgpCiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgICAgICB0aGlzLl9nZW5lcmF0ZUNvbnRlbnRDYW52YXNXZWJHTChpbmRl
eCwgb3B0aW9ucyk7CisgICAgICAgICAgICB0aGlzLl9nZW5lcmF0ZUNvbnRlbnRDYW52YXNXZWJH
TChpbmRleCwgYWN0aW9ucywgb3B0aW9ucyk7CiAgICAgICAgIH07CiAKICAgICAgICAgbGV0IGlu
aXRpYWxTdGF0ZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaW5pdGlhbFN0YXRlOwpAQCAtNDE5
LDggKzQyMyw2IEBAIFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgUmVjb3JkaW5nQ29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKLSAgICAgICAgbGV0IGFjdGlvbnMgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFj
dGlvbnM7Ci0KICAgICAgICAgbGV0IHZpc3VhbEluZGV4ID0gaW5kZXg7CiAgICAgICAgIHdoaWxl
ICghYWN0aW9uc1t2aXN1YWxJbmRleF0uaXNWaXN1YWwgJiYgIShhY3Rpb25zW3Zpc3VhbEluZGV4
XSBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0luaXRpYWxTdGF0ZUFjdGlvbikpCiAgICAgICAgICAg
ICB2aXN1YWxJbmRleC0tOwpAQCAtNDc0LDggKzQ3NiwxMSBAQCBXSS5SZWNvcmRpbmdDb250ZW50
VmlldyA9IGNsYXNzIFJlY29yZGluZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcK
ICAgICBfdXBkYXRlQ2FudmFzUGF0aCgpCiAgICAgewogICAgICAgICBsZXQgYWN0aXZhdGVkID0g
V0kuc2V0dGluZ3Muc2hvd0NhbnZhc1BhdGgudmFsdWU7Ci0gICAgICAgIGlmICh0aGlzLl9zaG93
UGF0aEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFjdGl2YXRlZCAhPT0gYWN0aXZhdGVkKQotICAgICAg
ICAgICAgdGhpcy5fZ2VuZXJhdGVDb250ZW50Q2FudmFzMkQodGhpcy5faW5kZXgpOworICAgICAg
ICBpZiAodGhpcy5fc2hvd1BhdGhCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0ZWQgIT09IGFj
dGl2YXRlZCkgeworICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hY3Rpb25zLnRo
ZW4oKGFjdGlvbnMpID0+IHsKKyAgICAgICAgICAgICAgICB0aGlzLl9nZW5lcmF0ZUNvbnRlbnRD
YW52YXMyRCh0aGlzLl9pbmRleCwgYWN0aW9ucyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQogCiAgICAgICAgIHRoaXMuX3Nob3dQYXRoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWN0aXZhdGVk
ID0gYWN0aXZhdGVkOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdOYXZpZ2F0
aW9uU2lkZWJhclBhbmVsLmpzCmluZGV4IDc2NDc2ZjIzYWJjMzg4NTE2ZDdlYjMyZGQ0OWY0ZTQy
ZjkxMTM3ZjEuLmYzZWIyNjQyOTJlOWNiYmNiNTI4ODgzNDlmZjkyZTRhNzg1OGYyMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGlu
Z05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwpAQCAt
NTcsMjYgKzU3LDI4IEBAIFdJLlJlY29yZGluZ05hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSBjbGFz
cyBSZWNvcmRpbmdOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuCiAgICAgICAgIHRoaXMuX3Jl
Y29yZGluZyA9IHJlY29yZGluZzsKIAogICAgICAgICBpZiAodGhpcy5fcmVjb3JkaW5nKSB7Ci0g
ICAgICAgICAgICB0aGlzLmNvbnRlbnRUcmVlT3V0bGluZS5lbGVtZW50LmRhdGFzZXQuaW5kZW50
ID0gTnVtYmVyLmNvdW50RGlnaXRzKHRoaXMuX3JlY29yZGluZy5hY3Rpb25zLmxlbmd0aCk7Cisg
ICAgICAgICAgICB0aGlzLl9yZWNvcmRpbmcuYWN0aW9ucy50aGVuKChhY3Rpb25zKSA9PiB7Cisg
ICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VHJlZU91dGxpbmUuZWxlbWVudC5kYXRhc2V0Lmlu
ZGVudCA9IE51bWJlci5jb3VudERpZ2l0cyhhY3Rpb25zLmxlbmd0aCk7CiAKLSAgICAgICAgICAg
IGlmICh0aGlzLl9yZWNvcmRpbmcuYWN0aW9uc1swXSBpbnN0YW5jZW9mIFdJLlJlY29yZGluZ0lu
aXRpYWxTdGF0ZUFjdGlvbikKLSAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUcmVlT3V0bGlu
ZS5hcHBlbmRDaGlsZChuZXcgV0kuUmVjb3JkaW5nQWN0aW9uVHJlZUVsZW1lbnQodGhpcy5fcmVj
b3JkaW5nLmFjdGlvbnNbMF0sIDAsIHRoaXMuX3JlY29yZGluZy50eXBlKSk7CisgICAgICAgICAg
ICAgICAgaWYgKGFjdGlvbnNbMF0gaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmdJbml0aWFsU3RhdGVB
Y3Rpb24pCisgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFRyZWVPdXRsaW5lLmFwcGVu
ZENoaWxkKG5ldyBXSS5SZWNvcmRpbmdBY3Rpb25UcmVlRWxlbWVudChhY3Rpb25zWzBdLCAwLCB0
aGlzLl9yZWNvcmRpbmcudHlwZSkpOwogCi0gICAgICAgICAgICBsZXQgY3VtdWxhdGl2ZUFjdGlv
bkluZGV4ID0gMTsKLSAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZy5mcmFtZXMuZm9yRWFjaCgo
ZnJhbWUsIGZyYW1lSW5kZXgpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgZm9sZGVyID0gbmV3
IFdJLkZvbGRlclRyZWVFbGVtZW50KFdJLlVJU3RyaW5nKCJGcmFtZSAlZCIpLmZvcm1hdCgoZnJh
bWVJbmRleCArIDEpLnRvTG9jYWxlU3RyaW5nKCkpKTsKLSAgICAgICAgICAgICAgICB0aGlzLmNv
bnRlbnRUcmVlT3V0bGluZS5hcHBlbmRDaGlsZChmb2xkZXIpOworICAgICAgICAgICAgICAgIGxl
dCBjdW11bGF0aXZlQWN0aW9uSW5kZXggPSAxOworICAgICAgICAgICAgICAgIHRoaXMuX3JlY29y
ZGluZy5mcmFtZXMuZm9yRWFjaCgoZnJhbWUsIGZyYW1lSW5kZXgpID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgbGV0IGZvbGRlciA9IG5ldyBXSS5Gb2xkZXJUcmVlRWxlbWVudChXSS5VSVN0cmlu
ZygiRnJhbWUgJWQiKS5mb3JtYXQoKGZyYW1lSW5kZXggKyAxKS50b0xvY2FsZVN0cmluZygpKSk7
CisgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFRyZWVPdXRsaW5lLmFwcGVuZENoaWxk
KGZvbGRlcik7CiAKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZyYW1lLmFj
dGlvbnMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgICAgIGZvbGRlci5hcHBlbmRDaGls
ZChuZXcgV0kuUmVjb3JkaW5nQWN0aW9uVHJlZUVsZW1lbnQoZnJhbWUuYWN0aW9uc1tpXSwgY3Vt
dWxhdGl2ZUFjdGlvbkluZGV4ICsgaSwgdGhpcy5fcmVjb3JkaW5nLnR5cGUpKTsKKyAgICAgICAg
ICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmcmFtZS5hY3Rpb25zLmxlbmd0aDsgKytp
KQorICAgICAgICAgICAgICAgICAgICAgICAgZm9sZGVyLmFwcGVuZENoaWxkKG5ldyBXSS5SZWNv
cmRpbmdBY3Rpb25UcmVlRWxlbWVudChmcmFtZS5hY3Rpb25zW2ldLCBjdW11bGF0aXZlQWN0aW9u
SW5kZXggKyBpLCB0aGlzLl9yZWNvcmRpbmcudHlwZSkpOwogCi0gICAgICAgICAgICAgICAgaWYg
KGZyYW1lLmluY29tcGxldGUpCi0gICAgICAgICAgICAgICAgICAgIGZvbGRlci5zdWJ0aXRsZSA9
IFdJLlVJU3RyaW5nKCJJbmNvbXBsZXRlIik7CisgICAgICAgICAgICAgICAgICAgIGlmIChmcmFt
ZS5pbmNvbXBsZXRlKQorICAgICAgICAgICAgICAgICAgICAgICAgZm9sZGVyLnN1YnRpdGxlID0g
V0kuVUlTdHJpbmcoIkluY29tcGxldGUiKTsKIAotICAgICAgICAgICAgICAgIGlmICh0aGlzLl9y
ZWNvcmRpbmcuZnJhbWVzLmxlbmd0aCA9PT0gMSkKLSAgICAgICAgICAgICAgICAgICAgZm9sZGVy
LmV4cGFuZCgpOworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcmVjb3JkaW5nLmZyYW1l
cy5sZW5ndGggPT09IDEpCisgICAgICAgICAgICAgICAgICAgICAgICBmb2xkZXIuZXhwYW5kKCk7
CiAKLSAgICAgICAgICAgICAgICBjdW11bGF0aXZlQWN0aW9uSW5kZXggKz0gZnJhbWUuYWN0aW9u
cy5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVBY3Rpb25JbmRleCArPSBm
cmFtZS5hY3Rpb25zLmxlbmd0aDsKKyAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9CiAKQEAgLTg4LDMxICs5MCwzNiBAQCBXSS5SZWNvcmRpbmdOYXZpZ2F0aW9u
U2lkZWJhclBhbmVsID0gY2xhc3MgUmVjb3JkaW5nTmF2aWdhdGlvblNpZGViYXJQYW5lbCBleHRl
bgogCiAgICAgdXBkYXRlQWN0aW9uSW5kZXgoaW5kZXgsIG9wdGlvbnMgPSB7fSkKICAgICB7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9yZWNvcmRpbmcgfHwgKGluZGV4ID49IDAgJiYg
aW5kZXggPCB0aGlzLl9yZWNvcmRpbmcuYWN0aW9ucy5sZW5ndGgpKTsKLSAgICAgICAgaWYgKCF0
aGlzLl9yZWNvcmRpbmcgfHwgaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMuX3JlY29yZGluZy5h
Y3Rpb25zLmxlbmd0aCkKKyAgICAgICAgaWYgKCF0aGlzLl9yZWNvcmRpbmcpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgbGV0IHRyZWVPdXRsaW5lID0gdGhpcy5jb250ZW50VHJlZU91
dGxpbmU7Ci0gICAgICAgIGlmICghKHRoaXMuX3JlY29yZGluZy5hY3Rpb25zWzBdIGluc3RhbmNl
b2YgV0kuUmVjb3JkaW5nSW5pdGlhbFN0YXRlQWN0aW9uKSB8fCBpbmRleCkgewotICAgICAgICAg
ICAgdHJlZU91dGxpbmUgPSB0cmVlT3V0bGluZS5jaGlsZHJlblswXTsKLSAgICAgICAgICAgIHdo
aWxlIChpbmRleCA+IHRyZWVPdXRsaW5lLmNoaWxkcmVuLmxlbmd0aCkgewotICAgICAgICAgICAg
ICAgIGluZGV4IC09IHRyZWVPdXRsaW5lLmNoaWxkcmVuLmxlbmd0aDsKLSAgICAgICAgICAgICAg
ICB0cmVlT3V0bGluZSA9IHRyZWVPdXRsaW5lLm5leHRTaWJsaW5nOwotICAgICAgICAgICAgfQor
ICAgICAgICB0aGlzLl9yZWNvcmRpbmcuYWN0aW9ucy50aGVuKChhY3Rpb25zKSA9PiB7CisgICAg
ICAgICAgICBjb25zb2xlLmFzc2VydChpbmRleCA+PSAwICYmIGluZGV4IDwgYWN0aW9ucy5sZW5n
dGgpOworICAgICAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBhY3Rpb25zLmxlbmd0
aCkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIC8vIE11c3Qgc3VidHJh
Y3Qgb25lIGZyb20gdGhlIGZpbmFsIHJlc3VsdCBzaW5jZSB0aGUgaW5pdGlhbCBzdGF0ZSBpcyBj
b25zaWRlcmVkIGluZGV4IDAuCi0gICAgICAgICAgICAtLWluZGV4OwotICAgICAgICB9CisgICAg
ICAgICAgICBsZXQgdHJlZU91dGxpbmUgPSB0aGlzLmNvbnRlbnRUcmVlT3V0bGluZTsKKyAgICAg
ICAgICAgIGlmICghKGFjdGlvbnNbMF0gaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmdJbml0aWFsU3Rh
dGVBY3Rpb24pIHx8IGluZGV4KSB7CisgICAgICAgICAgICAgICAgdHJlZU91dGxpbmUgPSB0cmVl
T3V0bGluZS5jaGlsZHJlblswXTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaW5kZXggPiB0cmVl
T3V0bGluZS5jaGlsZHJlbi5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggLT0g
dHJlZU91dGxpbmUuY2hpbGRyZW4ubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB0cmVlT3V0
bGluZSA9IHRyZWVPdXRsaW5lLm5leHRTaWJsaW5nOworICAgICAgICAgICAgICAgIH0KIAotICAg
ICAgICBsZXQgdHJlZUVsZW1lbnRUb1NlbGVjdCA9IHRyZWVPdXRsaW5lLmNoaWxkcmVuW2luZGV4
XTsKLSAgICAgICAgaWYgKHRyZWVFbGVtZW50VG9TZWxlY3QucGFyZW50ICYmICF0cmVlRWxlbWVu
dFRvU2VsZWN0LnBhcmVudC5leHBhbmRlZCkKLSAgICAgICAgICAgIHRyZWVFbGVtZW50VG9TZWxl
Y3QgPSB0cmVlRWxlbWVudFRvU2VsZWN0LnBhcmVudDsKKyAgICAgICAgICAgICAgICAvLyBNdXN0
IHN1YnRyYWN0IG9uZSBmcm9tIHRoZSBmaW5hbCByZXN1bHQgc2luY2UgdGhlIGluaXRpYWwgc3Rh
dGUgaXMgY29uc2lkZXJlZCBpbmRleCAwLgorICAgICAgICAgICAgICAgIC0taW5kZXg7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGxldCB0cmVlRWxlbWVudFRvU2VsZWN0ID0gdHJlZU91
dGxpbmUuY2hpbGRyZW5baW5kZXhdOworICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50VG9TZWxl
Y3QucGFyZW50ICYmICF0cmVlRWxlbWVudFRvU2VsZWN0LnBhcmVudC5leHBhbmRlZCkKKyAgICAg
ICAgICAgICAgICB0cmVlRWxlbWVudFRvU2VsZWN0ID0gdHJlZUVsZW1lbnRUb1NlbGVjdC5wYXJl
bnQ7CiAKLSAgICAgICAgY29uc3Qgb21pdEZvY3VzID0gZmFsc2U7Ci0gICAgICAgIGNvbnN0IHNl
bGVjdGVkQnlVc2VyID0gZmFsc2U7Ci0gICAgICAgIGxldCBzdXBwcmVzc09uU2VsZWN0ID0gISh0
cmVlRWxlbWVudFRvU2VsZWN0IGluc3RhbmNlb2YgV0kuRm9sZGVyVHJlZUVsZW1lbnQpOwotICAg
ICAgICBjb25zdCBzdXBwcmVzc09uRGVzZWxlY3QgPSB0cnVlOwotICAgICAgICB0cmVlRWxlbWVu
dFRvU2VsZWN0LnJldmVhbEFuZFNlbGVjdChvbWl0Rm9jdXMsIHNlbGVjdGVkQnlVc2VyLCBzdXBw
cmVzc09uU2VsZWN0LCBzdXBwcmVzc09uRGVzZWxlY3QpOworICAgICAgICAgICAgY29uc3Qgb21p
dEZvY3VzID0gZmFsc2U7CisgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEJ5VXNlciA9IGZhbHNl
OworICAgICAgICAgICAgbGV0IHN1cHByZXNzT25TZWxlY3QgPSAhKHRyZWVFbGVtZW50VG9TZWxl
Y3QgaW5zdGFuY2VvZiBXSS5Gb2xkZXJUcmVlRWxlbWVudCk7CisgICAgICAgICAgICBjb25zdCBz
dXBwcmVzc09uRGVzZWxlY3QgPSB0cnVlOworICAgICAgICAgICAgdHJlZUVsZW1lbnRUb1NlbGVj
dC5yZXZlYWxBbmRTZWxlY3Qob21pdEZvY3VzLCBzZWxlY3RlZEJ5VXNlciwgc3VwcHJlc3NPblNl
bGVjdCwgc3VwcHJlc3NPbkRlc2VsZWN0KTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAgICAgLy8g
UHJvdGVjdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9SZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRl
YmFyUGFuZWwuanMKaW5kZXggNmZiYWE1ODhkNzk5YTNjYmY4MTFkMDQxMDM2ZjM3ZmNiOGM3NWJm
Mi4uZTI1NTNmZTE3ODU0NTNlOGRkODliZGQzNmYyMjg0MDJkNWE1MjZhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nU3RhdGVE
ZXRhaWxzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpAQCAtNjgs
MjEgKzY4LDI2IEBAIFdJLlJlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNz
IFJlY29yZGluZ1N0YXRlRGV0YWlsc1NpZGViYXJQYW5lbCBlCiAKICAgICB1cGRhdGVBY3Rpb25J
bmRleChpbmRleCwgY29udGV4dCwgb3B0aW9ucyA9IHt9KQogICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoIXRoaXMuX3JlY29yZGluZyB8fCAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMu
X3JlY29yZGluZy5hY3Rpb25zLmxlbmd0aCkpOwotICAgICAgICBpZiAoIXRoaXMuX3JlY29yZGlu
ZyB8fCBpbmRleCA8IDAgfHwgaW5kZXggPiB0aGlzLl9yZWNvcmRpbmcuYWN0aW9ucy5sZW5ndGgg
fHwgaW5kZXggPT09IHRoaXMuX2luZGV4KQorICAgICAgICBpZiAoIXRoaXMuX3JlY29yZGluZykK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl9pbmRleCA9IGluZGV4OworICAg
ICAgICB0aGlzLl9yZWNvcmRpbmcuYWN0aW9ucy50aGVuKChhY3Rpb25zKSA9PiB7CisgICAgICAg
ICAgICBjb25zb2xlLmFzc2VydChpbmRleCA+PSAwICYmIGluZGV4IDwgYWN0aW9ucy5sZW5ndGgp
OworICAgICAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IGFjdGlvbnMubGVuZ3RoIHx8
IGluZGV4ID09PSB0aGlzLl9pbmRleCkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgaWYgKHRoaXMuX3JlY29yZGluZy50eXBlID09PSBXSS5SZWNvcmRpbmcuVHlwZS5DYW52YXMy
RCkKLSAgICAgICAgICAgIHRoaXMuX2dlbmVyYXRlRGV0YWlsc0NhbnZhczJEKGNvbnRleHQsIG9w
dGlvbnMpOworICAgICAgICAgICAgdGhpcy5faW5kZXggPSBpbmRleDsKIAotICAgICAgICB0aGlz
LnVwZGF0ZUxheW91dElmTmVlZGVkKCk7CisgICAgICAgICAgICBpZiAodGhpcy5fcmVjb3JkaW5n
LnR5cGUgPT09IFdJLlJlY29yZGluZy5UeXBlLkNhbnZhczJEKQorICAgICAgICAgICAgICAgIHRo
aXMuX2dlbmVyYXRlRGV0YWlsc0NhbnZhczJEKGNvbnRleHQsIGFjdGlvbnMsIG9wdGlvbnMpOwor
CisgICAgICAgICAgICB0aGlzLnVwZGF0ZUxheW91dElmTmVlZGVkKCk7CisgICAgICAgIH0pOwog
ICAgIH0KIAogICAgIC8vIFByaXZhdGUKIAotICAgIF9nZW5lcmF0ZURldGFpbHNDYW52YXMyRChj
b250ZXh0LCBvcHRpb25zID0ge30pCisgICAgX2dlbmVyYXRlRGV0YWlsc0NhbnZhczJEKGNvbnRl
eHQsIGFjdGlvbnMsIG9wdGlvbnMgPSB7fSkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fZGF0
YUdyaWQpIHsKICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkID0gbmV3IFdJLkRhdGFHcmlkKHsK
QEAgLTEzMCw3ICsxMzUsNyBAQCBXSS5SZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRlYmFyUGFuZWwg
PSBjbGFzcyBSZWNvcmRpbmdTdGF0ZURldGFpbHNTaWRlYmFyUGFuZWwgZQogICAgICAgICBzdGF0
ZS53ZWJraXRMaW5lRGFzaCA9IGNvbnRleHQud2Via2l0TGluZURhc2g7CiAgICAgICAgIHN0YXRl
LndlYmtpdExpbmVEYXNoT2Zmc2V0ID0gY29udGV4dC53ZWJraXRMaW5lRGFzaE9mZnNldDsKIAot
ICAgICAgICBsZXQgYWN0aW9uID0gdGhpcy5fcmVjb3JkaW5nLmFjdGlvbnNbdGhpcy5faW5kZXhd
OworICAgICAgICBsZXQgYWN0aW9uID0gYWN0aW9uc1t0aGlzLl9pbmRleF07CiAgICAgICAgIGZv
ciAobGV0IG5hbWUgaW4gc3RhdGUpIHsKICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHN0YXRlW25h
bWVdOwogICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGlu
Z1RhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVjb3JkaW5nVGFiQ29udGVudFZpZXcuanMKaW5kZXggOTZhMjQ5NjkxNzk2ZTM2ODJk
M2MzMjlmZmZkODRjMzAwYWRjNTY0OC4uYzUyMTgxNmNjOTBkYjNiYTgxOTE2N2FmYTg4MTcwMDJi
OGZkNjI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVjb3JkaW5nVGFiQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nVGFiQ29udGVudFZpZXcuanMKQEAgLTg2
LDIxICs4NiwyMiBAQCBXSS5SZWNvcmRpbmdUYWJDb250ZW50VmlldyA9IGNsYXNzIFJlY29yZGlu
Z1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudEJybwogICAgICAgICBzdXBlci5zaG93
UmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QsIGNvb2tpZSk7CiAKICAgICAgICAg
dGhpcy5fcmVjb3JkaW5nID0gcmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIHRoaXMuX3JlY29y
ZGluZy5hY3Rpb25zLnRoZW4oKGFjdGlvbnMpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX3Zpc3Vh
bEFjdGlvbkluZGV4ZXMgPSBbXTsKKyAgICAgICAgICAgIGFjdGlvbnMuZm9yRWFjaCgoYWN0aW9u
LCBpKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGFjdGlvbi5pc1Zpc3VhbCkKKyAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fdmlzdWFsQWN0aW9uSW5kZXhlcy5wdXNoKGkpOworICAgICAgICAg
ICAgfSk7CiAKLSAgICAgICAgdGhpcy5fdmlzdWFsQWN0aW9uSW5kZXhlcyA9IFtdOwotICAgICAg
ICByZXByZXNlbnRlZE9iamVjdC5hY3Rpb25zLmZvckVhY2goKGFjdGlvbiwgaSkgPT4gewotICAg
ICAgICAgICAgaWYgKGFjdGlvbi5pc1Zpc3VhbCkKLSAgICAgICAgICAgICAgICB0aGlzLl92aXN1
YWxBY3Rpb25JbmRleGVzLnB1c2goaSk7Ci0gICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
c2NydWJiZXJOYXZpZ2F0aW9uSXRlbS52YWx1ZSA9IDA7CisgICAgICAgICAgICB0aGlzLl9zY3J1
YmJlck5hdmlnYXRpb25JdGVtLm1pbiA9IDA7CisgICAgICAgICAgICB0aGlzLl9zY3J1YmJlck5h
dmlnYXRpb25JdGVtLm1heCA9IGFjdGlvbnMubGVuZ3RoIC0gMTsKKyAgICAgICAgICAgIHRoaXMu
X3NjcnViYmVyTmF2aWdhdGlvbkl0ZW0uZGlzYWJsZWQgPSBmYWxzZTsKIAotICAgICAgICB0aGlz
Ll9zY3J1YmJlck5hdmlnYXRpb25JdGVtLnZhbHVlID0gMDsKLSAgICAgICAgdGhpcy5fc2NydWJi
ZXJOYXZpZ2F0aW9uSXRlbS5taW4gPSAwOwotICAgICAgICB0aGlzLl9zY3J1YmJlck5hdmlnYXRp
b25JdGVtLm1heCA9IHJlcHJlc2VudGVkT2JqZWN0LmFjdGlvbnMubGVuZ3RoIC0gMTsKLSAgICAg
ICAgdGhpcy5fc2NydWJiZXJOYXZpZ2F0aW9uSXRlbS5kaXNhYmxlZCA9IGZhbHNlOworICAgICAg
ICAgICAgdGhpcy5uYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnJlY29yZGluZyA9IHRoaXMuX3JlY29y
ZGluZzsKIAotICAgICAgICB0aGlzLm5hdmlnYXRpb25TaWRlYmFyUGFuZWwucmVjb3JkaW5nID0g
cmVwcmVzZW50ZWRPYmplY3Q7Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlQWN0aW9uSW5kZXgodGhp
cy5fc2NydWJiZXJOYXZpZ2F0aW9uSXRlbS52YWx1ZSk7CisgICAgICAgICAgICB0aGlzLl91cGRh
dGVBY3Rpb25JbmRleCh0aGlzLl9zY3J1YmJlck5hdmlnYXRpb25JdGVtLnZhbHVlKTsKKyAgICAg
ICAgfSk7CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdUcmFjZURldGFpbHNTaWRl
YmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9S
ZWNvcmRpbmdUcmFjZURldGFpbHNTaWRlYmFyUGFuZWwuanMKaW5kZXggZmJmYTFlNjNhZjU0ZDdm
NTU3ZDI1NzBiNTlkN2JlZDkxMDU1OWQ3OC4uNjdhODRkNTk0ZmM0NTA3NjFjYjBkODY3MGUxOTc2
OGE5ZDBlOTY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUmVjb3JkaW5nVHJhY2VEZXRhaWxzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ1RyYWNlRGV0YWls
c1NpZGViYXJQYW5lbC5qcwpAQCAtNjUsMjcgKzY1LDMyIEBAIFdJLlJlY29yZGluZ1RyYWNlRGV0
YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIFJlY29yZGluZ1RyYWNlRGV0YWlsc1NpZGViYXJQYW5l
bCBlCiAKICAgICB1cGRhdGVBY3Rpb25JbmRleChpbmRleCwgY29udGV4dCwgb3B0aW9ucyA9IHt9
KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX3JlY29yZGluZyB8fCAoaW5k
ZXggPj0gMCAmJiBpbmRleCA8IHRoaXMuX3JlY29yZGluZy5hY3Rpb25zLmxlbmd0aCkpOwotICAg
ICAgICBpZiAoIXRoaXMuX3JlY29yZGluZyB8fCBpbmRleCA8IDAgfHwgaW5kZXggPiB0aGlzLl9y
ZWNvcmRpbmcuYWN0aW9ucy5sZW5ndGggfHwgaW5kZXggPT09IHRoaXMuX2luZGV4KQorICAgICAg
ICBpZiAoIXRoaXMuX3JlY29yZGluZykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0
aGlzLl9pbmRleCA9IGluZGV4OworICAgICAgICB0aGlzLl9yZWNvcmRpbmcuYWN0aW9ucy50aGVu
KChhY3Rpb25zKSA9PiB7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChpbmRleCA+PSAwICYm
IGluZGV4IDwgYWN0aW9ucy5sZW5ndGgpOworICAgICAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBp
bmRleCA+IGFjdGlvbnMubGVuZ3RoIHx8IGluZGV4ID09PSB0aGlzLl9pbmRleCkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5jb250ZW50Vmlldy5lbGVtZW50LnJlbW92
ZUNoaWxkcmVuKCk7CisgICAgICAgICAgICB0aGlzLl9pbmRleCA9IGluZGV4OwogCi0gICAgICAg
IGxldCB0cmFjZSA9IHRoaXMuX3JlY29yZGluZy5hY3Rpb25zW3RoaXMuX2luZGV4XS50cmFjZTsK
LSAgICAgICAgaWYgKCF0cmFjZS5sZW5ndGgpIHsKLSAgICAgICAgICAgIGxldCBub1RyYWNlRGF0
YUVsZW1lbnQgPSB0aGlzLmNvbnRlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2IikpOwotICAgICAgICAgICAgbm9UcmFjZURhdGFFbGVtZW50LmNs
YXNzTGlzdC5hZGQoIm5vLXRyYWNlLWRhdGEiKTsKKyAgICAgICAgICAgIHRoaXMuY29udGVudFZp
ZXcuZWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwogCi0gICAgICAgICAgICBsZXQgbm9UcmFjZURh
dGFNZXNzYWdlRWxlbWVudCA9IG5vVHJhY2VEYXRhRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7Ci0gICAgICAgICAgICBub1RyYWNlRGF0YU1lc3NhZ2VF
bGVtZW50LmNsYXNzTGlzdC5hZGQoIm1lc3NhZ2UiKTsKLSAgICAgICAgICAgIG5vVHJhY2VEYXRh
TWVzc2FnZUVsZW1lbnQudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiTm8gVHJhY2UgRGF0YSIp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgICAgICBsZXQgdHJhY2Ug
PSBhY3Rpb25zW3RoaXMuX2luZGV4XS50cmFjZTsKKyAgICAgICAgICAgIGlmICghdHJhY2UubGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgbGV0IG5vVHJhY2VEYXRhRWxlbWVudCA9IHRoaXMuY29u
dGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KSk7CisgICAgICAgICAgICAgICAgbm9UcmFjZURhdGFFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm5v
LXRyYWNlLWRhdGEiKTsKKworICAgICAgICAgICAgICAgIGxldCBub1RyYWNlRGF0YU1lc3NhZ2VF
bGVtZW50ID0gbm9UcmFjZURhdGFFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpKTsKKyAgICAgICAgICAgICAgICBub1RyYWNlRGF0YU1lc3NhZ2VFbGVtZW50
LmNsYXNzTGlzdC5hZGQoIm1lc3NhZ2UiKTsKKyAgICAgICAgICAgICAgICBub1RyYWNlRGF0YU1l
c3NhZ2VFbGVtZW50LnRleHRDb250ZW50ID0gV0kuVUlTdHJpbmcoIk5vIFRyYWNlIERhdGEiKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKLSAgICAgICAgY29uc3Qg
c2hvd0Z1bmN0aW9uTmFtZSA9IHRydWU7Ci0gICAgICAgIGZvciAobGV0IGNhbGxGcmFtZSBvZiB0
cmFjZSkKLSAgICAgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChu
ZXcgV0kuQ2FsbEZyYW1lVmlldyhjYWxsRnJhbWUsIHNob3dGdW5jdGlvbk5hbWUpKTsKKyAgICAg
ICAgICAgIGNvbnN0IHNob3dGdW5jdGlvbk5hbWUgPSB0cnVlOworICAgICAgICAgICAgZm9yIChs
ZXQgY2FsbEZyYW1lIG9mIHRyYWNlKQorICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFZpZXcu
ZWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV0kuQ2FsbEZyYW1lVmlldyhjYWxsRnJhbWUsIHNob3dG
dW5jdGlvbk5hbWUpKTsKKyAgICAgICAgfSk7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YmQxZTZlMTA1
NmQ4ZjM3MDExZjEzZmYwZjA0MWEyZjE0YjE2MTk5Li45NzQ5ZjZlMTM2MjU5OGVkYzhjMDQxMGNi
MDVkMTBiOTFhNjUyOTllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDktMTQgIERldmlu
IFJvdXNzbyAgPHdlYmtpdEBkZXZpbnJvdXNzby5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogbWFrZSByZWNvcmRpbmcgc3dpenpsZSBhc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9z
ZXBoIFBlY29yYXJvLgorCisgICAgICAgICogaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctMmQt
ZXhwZWN0ZWQudHh0OgorCiAyMDE3LTA5LTEzICBEZXZpbiBSb3Vzc28gIDx3ZWJraXRAZGV2aW5y
b3Vzc28uY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEV2ZW50IExpc3RlbmVycyBzZWN0
aW9uIGRvZXMgbm90IHVwZGF0ZSB3aGVuIGxpc3RlbmVycyBhcmUgYWRkZWQvcmVtb3ZlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctMmQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctMmQtZXhwZWN0
ZWQudHh0CmluZGV4IDY1MTUyNDc0ZjUzYmIxMjMwZGRkYjMzNWMwNjgwZTI2NDYwZTExYmYuLmFl
YzNhNmU0MWQyNTlmOWRjMjMyNzAzZWQ4OWUyZTIyN2JiODcyNWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVjb3JkaW5nLTJkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy0yZC1leHBlY3RlZC50eHQKQEAg
LTY1MSwxMyArNjUxLDEzIEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVj
b3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAgICAgIFsKICAgICAg
ICAgICA4MSwKICAgICAgICAgICBbCi0gICAgICAgICAgICAwCisgICAgICAgICAgICA4MgogICAg
ICAgICAgIF0sCiAgICAgICAgICAgWwogICAgICAgICAgICAgMAogICAgICAgICAgIF0sCiAgICAg
ICAgICAgWwotICAgICAgICAgICAgODIsCisgICAgICAgICAgICA4MywKICAgICAgICAgICAgIDE4
CiAgICAgICAgICAgXQogICAgICAgICBdLApAQCAtNjY1LDE0ICs2NjUsMTQgQEAgVGVzdCB0aGF0
IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZh
cyBjb250ZXh0cy4KICAgICAgICAgICA4MSwKICAgICAgICAgICBbCiAgICAgICAgICAgICA0OCwK
LSAgICAgICAgICAgIDAKKyAgICAgICAgICAgIDgyCiAgICAgICAgICAgXSwKICAgICAgICAgICBb
CiAgICAgICAgICAgICA5LAogICAgICAgICAgICAgMAogICAgICAgICAgIF0sCiAgICAgICAgICAg
WwotICAgICAgICAgICAgODMsCisgICAgICAgICAgICA4NCwKICAgICAgICAgICAgIDE4CiAgICAg
ICAgICAgXQogICAgICAgICBdCkBAIC02ODEsNyArNjgxLDcgQEAgVGVzdCB0aGF0IENhbnZhc01h
bmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0
cy4KICAgICB7CiAgICAgICAiYWN0aW9ucyI6IFsKICAgICAgICAgWwotICAgICAgICAgIDg0LAor
ICAgICAgICAgIDg1LAogICAgICAgICAgIFsKICAgICAgICAgICAgIDY0LAogICAgICAgICAgICAg
MSwKQEAgLTY5MywxNCArNjkzLDE0IEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUg
dG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAgICAgICAg
ICAxCiAgICAgICAgICAgXSwKICAgICAgICAgICBbCi0gICAgICAgICAgICA4NSwKLSAgICAgICAg
ICAgIDE1LAogICAgICAgICAgICAgODYsCisgICAgICAgICAgICAxNSwKKyAgICAgICAgICAgIDg3
LAogICAgICAgICAgICAgMTgKICAgICAgICAgICBdCiAgICAgICAgIF0sCiAgICAgICAgIFsKLSAg
ICAgICAgICA4NCwKKyAgICAgICAgICA4NSwKICAgICAgICAgICBbCiAgICAgICAgICAgICA2OCwK
ICAgICAgICAgICAgIDMsCkBAIC03MTIsMTQgKzcxMiwxNCBAQCBUZXN0IHRoYXQgQ2FudmFzTWFu
YWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRz
LgogICAgICAgICAgICAgMQogICAgICAgICAgIF0sCiAgICAgICAgICAgWwotICAgICAgICAgICAg
ODcsCi0gICAgICAgICAgICAxNSwKICAgICAgICAgICAgIDg4LAorICAgICAgICAgICAgMTUsCisg
ICAgICAgICAgICA4OSwKICAgICAgICAgICAgIDE4CiAgICAgICAgICAgXQogICAgICAgICBdLAog
ICAgICAgICBbCi0gICAgICAgICAgODQsCisgICAgICAgICAgODUsCiAgICAgICAgICAgWwogICAg
ICAgICAgICAgNzIsCiAgICAgICAgICAgICA1LApAQCAtNzMxLDE0ICs3MzEsMTQgQEAgVGVzdCB0
aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNh
bnZhcyBjb250ZXh0cy4KICAgICAgICAgICAgIDEKICAgICAgICAgICBdLAogICAgICAgICAgIFsK
LSAgICAgICAgICAgIDg5LAotICAgICAgICAgICAgMTUsCiAgICAgICAgICAgICA5MCwKKyAgICAg
ICAgICAgIDE1LAorICAgICAgICAgICAgOTEsCiAgICAgICAgICAgICAxOAogICAgICAgICAgIF0K
ICAgICAgICAgXSwKICAgICAgICAgWwotICAgICAgICAgIDg0LAorICAgICAgICAgIDg1LAogICAg
ICAgICAgIFsKICAgICAgICAgICAgIDY0LAogICAgICAgICAgICAgNywKQEAgLTc1NCwxNCArNzU0
LDE0IEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMg
bWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAgICAgICAgICAxCiAgICAgICAgICAgXSwK
ICAgICAgICAgICBbCi0gICAgICAgICAgICA5MSwKLSAgICAgICAgICAgIDE1LAogICAgICAgICAg
ICAgOTIsCisgICAgICAgICAgICAxNSwKKyAgICAgICAgICAgIDkzLAogICAgICAgICAgICAgMTgK
ICAgICAgICAgICBdCiAgICAgICAgIF0sCiAgICAgICAgIFsKLSAgICAgICAgICA4NCwKKyAgICAg
ICAgICA4NSwKICAgICAgICAgICBbCiAgICAgICAgICAgICA2OCwKICAgICAgICAgICAgIDExLApA
QCAtNzc3LDE0ICs3NzcsMTQgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byBy
ZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgICAgIDEK
ICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDkzLAotICAgICAgICAgICAg
MTUsCiAgICAgICAgICAgICA5NCwKKyAgICAgICAgICAgIDE1LAorICAgICAgICAgICAgOTUsCiAg
ICAgICAgICAgICAxOAogICAgICAgICAgIF0KICAgICAgICAgXSwKICAgICAgICAgWwotICAgICAg
ICAgIDg0LAorICAgICAgICAgIDg1LAogICAgICAgICAgIFsKICAgICAgICAgICAgIDcyLAogICAg
ICAgICAgICAgMTUsCkBAIC04MDAsMTQgKzgwMCwxNCBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdl
ciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgog
ICAgICAgICAgICAgMQogICAgICAgICAgIF0sCiAgICAgICAgICAgWwotICAgICAgICAgICAgOTUs
Ci0gICAgICAgICAgICAxNSwKICAgICAgICAgICAgIDk2LAorICAgICAgICAgICAgMTUsCisgICAg
ICAgICAgICA5NywKICAgICAgICAgICAgIDE4CiAgICAgICAgICAgXQogICAgICAgICBdLAogICAg
ICAgICBbCi0gICAgICAgICAgODQsCisgICAgICAgICAgODUsCiAgICAgICAgICAgWwogICAgICAg
ICAgICAgNjQsCiAgICAgICAgICAgICAxOSwKQEAgLTgzMSwxNCArODMxLDE0IEBAIFRlc3QgdGhh
dCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52
YXMgY29udGV4dHMuCiAgICAgICAgICAgICAxCiAgICAgICAgICAgXSwKICAgICAgICAgICBbCi0g
ICAgICAgICAgICA5NywKLSAgICAgICAgICAgIDE1LAogICAgICAgICAgICAgOTgsCisgICAgICAg
ICAgICAxNSwKKyAgICAgICAgICAgIDk5LAogICAgICAgICAgICAgMTgKICAgICAgICAgICBdCiAg
ICAgICAgIF0sCiAgICAgICAgIFsKLSAgICAgICAgICA4NCwKKyAgICAgICAgICA4NSwKICAgICAg
ICAgICBbCiAgICAgICAgICAgICA2OCwKICAgICAgICAgICAgIDI3LApAQCAtODYyLDE0ICs4NjIs
MTQgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBt
YWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgICAgIDEKICAgICAgICAgICBdLAog
ICAgICAgICAgIFsKLSAgICAgICAgICAgIDk5LAotICAgICAgICAgICAgMTUsCiAgICAgICAgICAg
ICAxMDAsCisgICAgICAgICAgICAxNSwKKyAgICAgICAgICAgIDEwMSwKICAgICAgICAgICAgIDE4
CiAgICAgICAgICAgXQogICAgICAgICBdLAogICAgICAgICBbCi0gICAgICAgICAgODQsCisgICAg
ICAgICAgODUsCiAgICAgICAgICAgWwogICAgICAgICAgICAgNzIsCiAgICAgICAgICAgICAzNSwK
QEAgLTg5Myw5ICs4OTMsOSBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJl
Y29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICAgICAgMQog
ICAgICAgICAgIF0sCiAgICAgICAgICAgWwotICAgICAgICAgICAgMTAxLAotICAgICAgICAgICAg
MTUsCiAgICAgICAgICAgICAxMDIsCisgICAgICAgICAgICAxNSwKKyAgICAgICAgICAgIDEwMywK
ICAgICAgICAgICAgIDE4CiAgICAgICAgICAgXQogICAgICAgICBdCkBAIC05MDQsNyArOTA0LDcg
QEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRl
IHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICB7CiAgICAgICAiYWN0aW9ucyI6IFsKICAgICAg
ICAgWwotICAgICAgICAgIDEwMywKKyAgICAgICAgICAxMDQsCiAgICAgICAgICAgWwogICAgICAg
ICAgICAgNjQsCiAgICAgICAgICAgICAxLApAQCAtOTMwLDEyICs5MzAsMTIgQEAgVGVzdCB0aGF0
IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZh
cyBjb250ZXh0cy4KICAgICAgICAgICAgIDMKICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAg
ICAgICAgICAgIDEwNCwKKyAgICAgICAgICAgIDEwNSwKICAgICAgICAgICAgIDE4CiAgICAgICAg
ICAgXQogICAgICAgICBdLAogICAgICAgICBbCi0gICAgICAgICAgMTAzLAorICAgICAgICAgIDEw
NCwKICAgICAgICAgICBbCiAgICAgICAgICAgICA2NCwKICAgICAgICAgICAgIDksCkBAIC05NDYs
NyArOTQ2LDcgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0
aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgICAgIDE0LAogICAgICAg
ICAgICAgMTUsCiAgICAgICAgICAgICAxNiwKLSAgICAgICAgICAgIDEwNQorICAgICAgICAgICAg
MTA2CiAgICAgICAgICAgXSwKICAgICAgICAgICBbCiAgICAgICAgICAgICA2LApAQCAtOTYxLDcg
Kzk2MSw3IEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlv
bnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAgICAgICAgICAzCiAgICAgICAgICAg
XSwKICAgICAgICAgICBbCi0gICAgICAgICAgICAxMDYsCisgICAgICAgICAgICAxMDcsCiAgICAg
ICAgICAgICAxOAogICAgICAgICAgIF0KICAgICAgICAgXQpAQCAtOTcwLDcgKzk3MCw3IEBAIFRl
c3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAy
RCBjYW52YXMgY29udGV4dHMuCiAgICAgewogICAgICAgImFjdGlvbnMiOiBbCiAgICAgICAgIFsK
LSAgICAgICAgICAxMDcsCisgICAgICAgICAgMTA4LAogICAgICAgICAgIFsKICAgICAgICAgICAg
IDEsCiAgICAgICAgICAgICAyLApAQCAtOTkyLDE0ICs5OTIsMTQgQEAgVGVzdCB0aGF0IENhbnZh
c01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250
ZXh0cy4KICAgICAgICAgICAgIDIKICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAgICAgICAg
ICAgIDEwOCwKLSAgICAgICAgICAgIDE1LAogICAgICAgICAgICAgMTA5LAorICAgICAgICAgICAg
MTUsCisgICAgICAgICAgICAxMTAsCiAgICAgICAgICAgICAxOAogICAgICAgICAgIF0KICAgICAg
ICAgXSwKICAgICAgICAgWwotICAgICAgICAgIDEwNywKKyAgICAgICAgICAxMDgsCiAgICAgICAg
ICAgWwogICAgICAgICAgICAgOCwKICAgICAgICAgICAgIDksCkBAIC0xMDIxLDkgKzEwMjEsOSBA
QCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUg
dG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICAgICAgMgogICAgICAgICAgIF0sCiAgICAg
ICAgICAgWwotICAgICAgICAgICAgMTEwLAotICAgICAgICAgICAgMTUsCiAgICAgICAgICAgICAx
MTEsCisgICAgICAgICAgICAxNSwKKyAgICAgICAgICAgIDExMiwKICAgICAgICAgICAgIDE4CiAg
ICAgICAgICAgXQogICAgICAgICBdCkBAIC0xMDMyLDcgKzEwMzIsNyBAQCBUZXN0IHRoYXQgQ2Fu
dmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNv
bnRleHRzLgogICAgIHsKICAgICAgICJhY3Rpb25zIjogWwogICAgICAgICBbCi0gICAgICAgICAg
MTEyLAorICAgICAgICAgIDExMywKICAgICAgICAgICBbCiAgICAgICAgICAgICA0NAogICAgICAg
ICAgIF0sCkBAIC0xMDQwLDEyICsxMDQwLDEyIEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlz
IGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAg
ICAgICAgICAzCiAgICAgICAgICAgXSwKICAgICAgICAgICBbCi0gICAgICAgICAgICAxMTMsCisg
ICAgICAgICAgICAxMTQsCiAgICAgICAgICAgICAxOAogICAgICAgICAgIF0KICAgICAgICAgXSwK
ICAgICAgICAgWwotICAgICAgICAgIDExMiwKKyAgICAgICAgICAxMTMsCiAgICAgICAgICAgWwog
ICAgICAgICAgICAgNDYKICAgICAgICAgICBdLApAQCAtMTA1MywxMiArMTA1MywxMiBAQCBUZXN0
IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQg
Y2FudmFzIGNvbnRleHRzLgogICAgICAgICAgICAgMwogICAgICAgICAgIF0sCiAgICAgICAgICAg
WwotICAgICAgICAgICAgMTE0LAorICAgICAgICAgICAgMTE1LAogICAgICAgICAgICAgMTgKICAg
ICAgICAgICBdCiAgICAgICAgIF0sCiAgICAgICAgIFsKLSAgICAgICAgICAxMTIsCisgICAgICAg
ICAgMTEzLAogICAgICAgICAgIFsKICAgICAgICAgICAgIDQ4LAogICAgICAgICAgICAgNDQKQEAg
LTEwNjgsMTIgKzEwNjgsMTIgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byBy
ZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgICAgIDMK
ICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDExNSwKKyAgICAgICAgICAg
IDExNiwKICAgICAgICAgICAgIDE4CiAgICAgICAgICAgXQogICAgICAgICBdLAogICAgICAgICBb
Ci0gICAgICAgICAgMTEyLAorICAgICAgICAgIDExMywKICAgICAgICAgICBbCiAgICAgICAgICAg
ICA1MCwKICAgICAgICAgICAgIDQ2CkBAIC0xMDgzLDcgKzEwODMsNyBAQCBUZXN0IHRoYXQgQ2Fu
dmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNv
bnRleHRzLgogICAgICAgICAgICAgMwogICAgICAgICAgIF0sCiAgICAgICAgICAgWwotICAgICAg
ICAgICAgMTE2LAorICAgICAgICAgICAgMTE3LAogICAgICAgICAgICAgMTgKICAgICAgICAgICBd
CiAgICAgICAgIF0KQEAgLTEwOTIsNyArMTA5Miw3IEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2Vy
IGlzIGFibGUgdG8gcmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAg
ICAgewogICAgICAgImFjdGlvbnMiOiBbCiAgICAgICAgIFsKLSAgICAgICAgICAxMTcsCisgICAg
ICAgICAgMTE4LAogICAgICAgICAgIFsKICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAyLApA
QCAtMTEwNiw3ICsxMTA2LDcgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byBy
ZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgICAgIDEK
ICAgICAgICAgICBdLAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDExOCwKKyAgICAgICAgICAg
IDExOSwKICAgICAgICAgICAgIDE4CiAgICAgICAgICAgXQogICAgICAgICBdCkBAIC0xMTE1LDU1
ICsxMTE1LDU1IEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8gcmVjb3JkIGFj
dGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAgewogICAgICAgImFjdGlvbnMi
OiBbCiAgICAgICAgIFsKLSAgICAgICAgICAxMTksCisgICAgICAgICAgMTIwLAogICAgICAgICAg
IFtdLAogICAgICAgICAgIFtdLAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDEyMCwKKyAgICAg
ICAgICAgIDEyMSwKICAgICAgICAgICAgIDE4CiAgICAgICAgICAgXQogICAgICAgICBdLAogICAg
ICAgICBbCi0gICAgICAgICAgMTE5LAorICAgICAgICAgIDEyMCwKICAgICAgICAgICBbCi0gICAg
ICAgICAgICAxMDUKKyAgICAgICAgICAgIDEwNgogICAgICAgICAgIF0sCiAgICAgICAgICAgWwog
ICAgICAgICAgICAgMwogICAgICAgICAgIF0sCiAgICAgICAgICAgWwotICAgICAgICAgICAgMTIx
LAorICAgICAgICAgICAgMTIyLAogICAgICAgICAgICAgMTgKICAgICAgICAgICBdCiAgICAgICAg
IF0sCiAgICAgICAgIFsKLSAgICAgICAgICAxMTksCisgICAgICAgICAgMTIwLAogICAgICAgICAg
IFsKLSAgICAgICAgICAgIDEyMworICAgICAgICAgICAgMTI0CiAgICAgICAgICAgXSwKICAgICAg
ICAgICBbCiAgICAgICAgICAgICAxMAogICAgICAgICAgIF0sCiAgICAgICAgICAgWwotICAgICAg
ICAgICAgMTI0LAorICAgICAgICAgICAgMTI1LAogICAgICAgICAgICAgMTgKICAgICAgICAgICBd
CiAgICAgICAgIF0sCiAgICAgICAgIFsKLSAgICAgICAgICAxMTksCisgICAgICAgICAgMTIwLAog
ICAgICAgICAgIFsKLSAgICAgICAgICAgIDEyNgorICAgICAgICAgICAgMTI3CiAgICAgICAgICAg
XSwKICAgICAgICAgICBbCiAgICAgICAgICAgICAxMAogICAgICAgICAgIF0sCiAgICAgICAgICAg
WwotICAgICAgICAgICAgMTI3LAorICAgICAgICAgICAgMTI4LAogICAgICAgICAgICAgMTgKICAg
ICAgICAgICBdCiAgICAgICAgIF0sCiAgICAgICAgIFsKLSAgICAgICAgICAxMTksCisgICAgICAg
ICAgMTIwLAogICAgICAgICAgIFsKICAgICAgICAgICAgIDEzMQogICAgICAgICAgIF0sCkBAIC0x
MjMxLDcgKzEyMzEsNyBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29y
ZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICBbCiAgICAgICAg
ICAgMTM2LAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDEwNQorICAgICAgICAgICAgMTA2CiAg
ICAgICAgICAgXSwKICAgICAgICAgICBbCiAgICAgICAgICAgICAzCkBAIC0xMzM0LDcgKzEzMzQs
NyBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1h
ZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICBbCiAgICAgICAgICAgMTQ5LAogICAg
ICAgICAgIFsKLSAgICAgICAgICAgIDEwNQorICAgICAgICAgICAgMTA2CiAgICAgICAgICAgXSwK
ICAgICAgICAgICBbCiAgICAgICAgICAgICAzCkBAIC0xNjEyLDcgKzE2MTIsNyBAQCBUZXN0IHRo
YXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2Fu
dmFzIGNvbnRleHRzLgogICAgICAgICBbCiAgICAgICAgICAgMTc4LAogICAgICAgICAgIFsKLSAg
ICAgICAgICAgIDEwNQorICAgICAgICAgICAgMTA2CiAgICAgICAgICAgXSwKICAgICAgICAgICBb
CiAgICAgICAgICAgICAzCkBAIC0xODg0LDcgKzE4ODQsNyBAQCBUZXN0IHRoYXQgQ2FudmFzTWFu
YWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRz
LgogICAgICAgICBbCiAgICAgICAgICAgMjA2LAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDEw
NQorICAgICAgICAgICAgMTA2CiAgICAgICAgICAgXSwKICAgICAgICAgICBbCiAgICAgICAgICAg
ICAzCkBAIC0yMDE2LDcgKzIwMTYsNyBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxl
IHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICBb
CiAgICAgICAgICAgMjE3LAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDEwNQorICAgICAgICAg
ICAgMTA2CiAgICAgICAgICAgXSwKICAgICAgICAgICBbCiAgICAgICAgICAgICAzCkBAIC0yMDY2
LDcgKzIwNjYsNyBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBh
Y3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICBbCiAgICAgICAgICAg
MjIyLAogICAgICAgICAgIFsKLSAgICAgICAgICAgIDEwNQorICAgICAgICAgICAgMTA2CiAgICAg
ICAgICAgXSwKICAgICAgICAgICBbCiAgICAgICAgICAgICAzCkBAIC0yMTY1LDcgKzIxNjUsNyBA
QCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUg
dG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgICAgICAgNCwKICAgICAgICAgICAgIDUsCiAg
ICAgICAgICAgICA2LAotICAgICAgICAgICAgMTA1LAorICAgICAgICAgICAgMTA2LAogICAgICAg
ICAgICAgNwogICAgICAgICAgIF0sCiAgICAgICAgICAgWwpAQCAtMjQ4OSw3ICsyNDg5LDcgQEAg
VGVzdCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRv
IDJEIGNhbnZhcyBjb250ZXh0cy4KICAgICAgICAgWwogICAgICAgICAgIDI1NSwKICAgICAgICAg
ICBbCi0gICAgICAgICAgICAxMDUKKyAgICAgICAgICAgIDEwNgogICAgICAgICAgIF0sCiAgICAg
ICAgICAgWwogICAgICAgICAgICAgMwpAQCAtMjYxNiw3ICsyNjE2LDcgQEAgVGVzdCB0aGF0IENh
bnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBj
b250ZXh0cy4KICAgICAgICAgWwogICAgICAgICAgIDI2OSwKICAgICAgICAgICBbCi0gICAgICAg
ICAgICAxMDUKKyAgICAgICAgICAgIDEwNgogICAgICAgICAgIF0sCiAgICAgICAgICAgWwogICAg
ICAgICAgICAgMwpAQCAtMjYyOSw3ICsyNjI5LDcgQEAgVGVzdCB0aGF0IENhbnZhc01hbmFnZXIg
aXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJEIGNhbnZhcyBjb250ZXh0cy4KICAg
ICAgICAgWwogICAgICAgICAgIDI2OSwKICAgICAgICAgICBbCi0gICAgICAgICAgICAxMjMKKyAg
ICAgICAgICAgIDEyNAogICAgICAgICAgIF0sCiAgICAgICAgICAgWwogICAgICAgICAgICAgMTAK
QEAgLTI2NDIsNyArMjY0Miw3IEBAIFRlc3QgdGhhdCBDYW52YXNNYW5hZ2VyIGlzIGFibGUgdG8g
cmVjb3JkIGFjdGlvbnMgbWFkZSB0byAyRCBjYW52YXMgY29udGV4dHMuCiAgICAgICAgIFsKICAg
ICAgICAgICAyNjksCiAgICAgICAgICAgWwotICAgICAgICAgICAgMTI2CisgICAgICAgICAgICAx
MjcKICAgICAgICAgICBdLAogICAgICAgICAgIFsKICAgICAgICAgICAgIDEwCkBAIC0zMjIxLDYg
KzMyMjEsNyBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRvIHJlY29yZCBhY3Rp
b25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgMTYKICAgICBdLAogICAgICJk
cmF3Rm9jdXNJZk5lZWRlZCIsCisgICAgIkVsZW1lbnQiLAogICAgIFsKICAgICAgIDEwLAogICAg
ICAgMTIsCkBAIC0zNDI4LDcgKzM0MjksNyBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBh
YmxlIHRvIHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgIF0s
CiAgICAgImxpbmVhci1ncmFkaWVudCIsCiAgICAgWwotICAgICAgMTIyLAorICAgICAgMTIzLAog
ICAgICAgWwogICAgICAgICAxLAogICAgICAgICAyLApAQCAtMzQ0NSw3ICszNDQ2LDcgQEAgVGVz
dCB0aGF0IENhbnZhc01hbmFnZXIgaXMgYWJsZSB0byByZWNvcmQgYWN0aW9ucyBtYWRlIHRvIDJE
IGNhbnZhcyBjb250ZXh0cy4KICAgICBdLAogICAgICJyYWRpYWwtZ3JhZGllbnQiLAogICAgIFsK
LSAgICAgIDEyNSwKKyAgICAgIDEyNiwKICAgICAgIFsKICAgICAgICAgMSwKICAgICAgICAgMiwK
QEAgLTM0NjIsMTEgKzM0NjMsOSBAQCBUZXN0IHRoYXQgQ2FudmFzTWFuYWdlciBpcyBhYmxlIHRv
IHJlY29yZCBhY3Rpb25zIG1hZGUgdG8gMkQgY2FudmFzIGNvbnRleHRzLgogICAgICAgMTU5LAog
ICAgICAgMTYKICAgICBdLAotICAgICJwYXR0ZXJuIiwKICAgICAiZGF0YTppbWFnZS9wbmc7YmFz
ZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBSUFBQUFDQ0FZQUFBQnl0ZzBrQUFBQUFYTlNS
MElBcnM0YzZRQUFBQk5KUkVGVUNCMWovTS9BQUVRTURFd2dBZ1FBSHhjQ0FtdEFtL3NBQUFBQVNV
Vk9SSzVDWUlJPSIsCiAgICAgIm5vLXJlcGVhdCIsCiAgICAgWwotICAgICAgMTI4LAogICAgICAg
MTI5LAogICAgICAgMTMwCiAgICAgXSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>