<?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>138356</bug_id>
          
          <creation_ts>2014-11-04 08:13:29 -0800</creation_ts>
          <short_desc>Converting time, angle and frequency units in CSS calc() function</short_desc>
          <delta_ts>2015-01-17 09:18:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tibor Mészáros">mtiborinf</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1046075</commentid>
    <comment_count>0</comment_count>
    <who name="Tibor Mészáros">mtiborinf</who>
    <bug_when>2014-11-04 08:13:29 -0800</bug_when>
    <thetext>According to the standard, calc() should be able to handle angle, time and frequency values as well: http://www.w3.org/TR/css3-values/#calc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046101</commentid>
    <comment_count>1</comment_count>
      <attachid>240930</attachid>
    <who name="Tibor Mészáros">mtiborinf</who>
    <bug_when>2014-11-04 09:59:21 -0800</bug_when>
    <thetext>Created attachment 240930
Patch

This patch will merge Blink commit https://codereview.chromium.org/345903005/ (Patch by Renata Hodovan) which is based on http://trac.webkit.org/changeset/168685, http://trac.webkit.org/changeset/170544 (Patch by Martin Hodovan).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049441</commentid>
    <comment_count>2</comment_count>
    <who name="Tibor Mészáros">mtiborinf</who>
    <bug_when>2014-11-18 03:16:07 -0800</bug_when>
    <thetext>Could you possibly have a little bit of free time to review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055998</commentid>
    <comment_count>3</comment_count>
    <who name="Tibor Mészáros">mtiborinf</who>
    <bug_when>2014-12-16 10:30:00 -0800</bug_when>
    <thetext>ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058985</commentid>
    <comment_count>4</comment_count>
    <who name="Tibor Mészáros">mtiborinf</who>
    <bug_when>2015-01-06 04:05:37 -0800</bug_when>
    <thetext>Could you have a little free time to review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059040</commentid>
    <comment_count>5</comment_count>
      <attachid>240930</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-06 09:54:39 -0800</bug_when>
    <thetext>Comment on attachment 240930
Patch

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

&gt; LayoutTests/ChangeLog:11
&gt; +        * css3/calc/calc-errors-expected.txt:

Most of these tests are passing without your change. This only one that doesn&apos;t is:
FAIL Tests calc() with time units. assert_equals: calc(4s + 1s) should equal to 5s expected &quot;5s&quot; but got &quot;0.005s&quot;

This does look like a bug. But otherwise, converting time, angle and frequency units in CSS calc() function is already working. Right now, it is not really clear what this patch is doing.
I would focus on fixing what actually doesn&apos;t work (e.g. the case above) instead of refactoring.

&gt; LayoutTests/css3/calc/calc-errors-expected.txt:1
&gt; +unclosed calc

Could you explain what changes you did to this test and why? It is not in the Changelog and not obvious to me at least.

&gt; Source/WebCore/css/CSSCalculationValue.h:97
&gt; +    unsigned short primitiveType() const { return m_expression-&gt;primitiveType(); }

Do we really need this? CSSPrimitiveValue::primitiveType() already handles calculated values.

&gt; Source/WebCore/css/CSSPrimitiveValue.cpp:540
&gt; +    switch (isCalculated() ? cssCalcValue()-&gt;primitiveType() : m_primitiveUnitType) {

Can&apos;t you call CSSPrimitiveValue::primitiveType() here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059194</commentid>
    <comment_count>6</comment_count>
      <attachid>240930</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-06 15:50:34 -0800</bug_when>
    <thetext>Comment on attachment 240930
Patch

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

&gt; LayoutTests/css3/calc/calc-with-time-angle-and-frequency-values-expected.txt:2
&gt; +PASS Tests calc() with time units. 

We need more example that are currently failing. As I said before, most of these seem to be passing without fix.

&gt;&gt; Source/WebCore/css/CSSCalculationValue.h:97
&gt;&gt; +    unsigned short primitiveType() const { return m_expression-&gt;primitiveType(); }
&gt; 
&gt; Do we really need this? CSSPrimitiveValue::primitiveType() already handles calculated values.

It seems this is needed after call, but it should probably be called from CSSPrimitiveValue::primitiveType().

&gt;&gt; Source/WebCore/css/CSSPrimitiveValue.cpp:540
&gt;&gt; +    switch (isCalculated() ? cssCalcValue()-&gt;primitiveType() : m_primitiveUnitType) {
&gt; 
&gt; Can&apos;t you call CSSPrimitiveValue::primitiveType() here?

Hmm, ok, so CSSPrimitiveValue::primitiveType()&apos;s handling of calculated values is actually not great. It does not really check the unit inside the calculated expression. Instead, it relies on the category and returns CSS_MS if category is CalcTime. We should fix CSSPrimitiveValue::primitiveType().

&gt; Source/WebCore/css/CSSPrimitiveValue.h:-262
&gt; -        if (timeUnit == Seconds &amp;&amp; m_primitiveUnitType == CSS_S)

We could potentially keep the same implementation if we call primitiveType() instead of accessing m_primitiveUnitType directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059936</commentid>
    <comment_count>7</comment_count>
      <attachid>240930</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-08 13:25:54 -0800</bug_when>
    <thetext>Comment on attachment 240930
Patch

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

&gt; LayoutTests/ChangeLog:3
&gt; +        Converting time, angle and frequency units in CSS calc() function

What part of the change fixes frequency unit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062029</commentid>
    <comment_count>8</comment_count>
      <attachid>244818</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-16 16:34:51 -0800</bug_when>
    <thetext>Created attachment 244818
Alternative patch

As there was no activity for a while, I am uploading another patch with more failing test cases and that updates CSSPrimitiveValue::primitiveType() instead of updating call sites to use CSSCalcValue::primitiveType() directly (more robust this way).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062112</commentid>
    <comment_count>9</comment_count>
      <attachid>244818</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-17 09:18:22 -0800</bug_when>
    <thetext>Comment on attachment 244818
Alternative patch

Clearing flags on attachment: 244818

Committed r178627: &lt;http://trac.webkit.org/changeset/178627&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062113</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-17 09:18:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240930</attachid>
            <date>2014-11-04 09:59:21 -0800</date>
            <delta_ts>2015-01-17 08:54:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch_V7.patch</filename>
            <type>text/plain</type>
            <size>32807</size>
            <attacher name="Tibor Mészáros">mtiborinf</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NDBlMjFiLi41NWRhYjg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMTEt
MDQgIFRpYm9yIE1lc3phcm9zICA8dG1lc3phcm9zLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgQ29udmVydGluZyB0aW1lLCBhbmdsZSBhbmQgZnJlcXVlbmN5IHVuaXRz
IGluIENTUyBjYWxjKCkgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzODM1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1lcmdlZCBmcm9tIEJsaW5rIChQYXRjaCBieSBSZW5hdGEgSG9kb3Zh
bik6CisgICAgICAgIGh0dHBzOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvMzQ1OTAzMDA1Lwor
CisgICAgICAgICogY3NzMy9jYWxjL2NhbGMtZXJyb3JzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBjc3MzL2NhbGMvY2FsYy1lcnJvcnMuaHRtbDoKKyAgICAgICAgKiBjc3MzL2NhbGMvY2FsYy13
aXRoLXRpbWUtYW5nbGUtYW5kLWZyZXF1ZW5jeS12YWx1ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2NhbGMvY2FsYy13aXRoLXRpbWUtYW5nbGUtYW5kLWZyZXF1ZW5jeS12
YWx1ZXMuaHRtbDogQWRkZWQuCisKIDIwMTQtMTEtMDQgIE5pa29zIEFuZHJrb3MgQW5kcm9uaWtv
cyAgPG5pa29zLmFuZHJvbmlrb3Mtd2Via2l0QGNpc3JhLmNhbm9uLmNvbS5hdT4KIAogICAgICAg
ICBGaXggYW5pbWF0aW9uIG9mIG9yaWVudCBhdHRyaWJ1dGUgb24gbWFya2VyIGVsZW1lbnQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvY2FsYy9jYWxjLWVycm9ycy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY2FsYy1lcnJvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGVj
ODE0ZjQuLjFiOWRiN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMvY2FsYy9jYWxjLWVy
cm9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL2NhbGMtZXJyb3Jz
LWV4cGVjdGVkLnR4dApAQCAtMSw1MyArMSwxMjcgQEAKLUFsbCBib3hlcyBiZWxvdyBzaG91bGQg
YmUgMTAwcHggKiAxMDBweCBhbmQgZ3JlZW4uCit1bmNsb3NlZCBjYWxjCit1bmNsb3NlZCBjYWxj
IHdpdGggZ2FyYmFnZQorZ2FyYmFnZQorZ2FyYmFnZQorZHBpCitkcGkgLyBudW1iZXIKK2RwaSAr
IGRwaQorZnIKK3plcm8gZGl2aXNpb24KK21vZDEwCisxbW9kCis3MHB4KzQwcHggbm8gd2hpdGVz
cGFjZSBhcm91bmQgKworNzBweCArNDBweCBubyB3aGl0ZXNwYWNlIG9uIHJpZ2h0IG9mICsKKzcw
cHgrIDQwcHggbm8gd2hpdGVzcGFjZSBvbiBsZWZ0IG9mICsKKzcwcHgrLTQwcHggbm8gd2hpdGVz
cGFjZSBhcm91bmQgKworNzBweC00MHB4IG5vIHdoaXRlc3BhY2UgYXJvdW5kIC0KKzcwcHggLTQw
cHggbm8gd2hpdGVzcGFjZSBvbiByaWdodCBvZiAtCis3MHB4LSA0MHB4IG5vIHdoaXRlc3BhY2Ug
b24gbGVmdCBvZiAtCis3MHB4LSs0MHB4IG5vIHdoaXRlc3BhY2UgYXJvdW5kIC0KK3RvbyBtYW55
IG5lc3RzCitlbmQgd2l0aCBvcGVyYXRvcgorc3RhcnQgd2l0aCBvcGVyYXRvcgorbm8gZXhwcmVz
c2lvbnMKK3RvbyBtYW55IHBsdXNlcworbm8gYmluYXJ5IG9wZXJhdG9yCit0d28gYmluYXJ5IG9w
ZXJhdG9ycworaW52YWxpZCBvcGVyYXRvciAnQCcKK2ludmFsaWQgb3BlcmF0b3IgJ2ZsaW0nCitp
bnZhbGlkIG9wZXJhdG9yICdAJworaW52YWxpZCBvcGVyYXRvciAnZmxpbScKK2ludmFsaWQgb3Bl
cmF0b3IgJ2ZsaW0nIHdpdGggcGFyZW5zCitub24gbGVuZ3RoCitudW1iZXIgKyBsZW5ndGgKK2xl
bmd0aCArIG51bWJlcgorcGVyY2VudCArIG51bWJlcgorbnVtYmVyICsgcGVyY2VudAorYW5nbGUg
KyBudW1iZXIKK251bWJlciArIGFuZ2xlCithbmdsZSArIGxlbmd0aAorbGVuZ3RoICsgYW5nbGUK
K2FuZ2xlICsgcGVyY2VudAorcGVyY2VudCArIGFuZ2xlCithbmdsZSArIHRpbWUKK3RpbWUgKyBh
bmdsZQorYW5nbGUgKyBmcmVxdWVuY3kKK2ZyZXF1ZW5jeSArIGFuZ2xlCit0aW1lICsgbnVtYmVy
CitudW1iZXIgKyB0aW1lCit0aW1lICsgbGVuZ3RoCitsZW5ndGggKyB0aW1lCit0aW1lICsgcGVy
Y2VudAorcGVyY2VudCArIHRpbWUKK3RpbWUgKyBhbmdsZQorYW5nbGUgKyB0aW1lCit0aW1lICsg
ZnJlcXVlbmN5CitmcmVxdWVuY3kgKyB0aW1lCitsZW5ndGggLSBudW1iZXIKK251bWJlciAtIGxl
bmd0aAorcGVyY2VudCAtIG51bWJlcgorbnVtYmVyIC0gcGVyY2VudAorYW5nbGUgLSBudW1iZXIK
K251bWJlciAtIGFuZ2xlCithbmdsZSAtIGxlbmd0aAorbGVuZ3RoIC0gYW5nbGUKK2FuZ2xlIC0g
cGVyY2VudAorcGVyY2VudCAtIGFuZ2xlCithbmdsZSAtIHRpbWUKK3RpbWUgLSBhbmdsZQorYW5n
bGUgLSBmcmVxdWVuY3kKK2ZyZXF1ZW5jeSAtIGFuZ2xlCit0aW1lIC0gbnVtYmVyCitudW1iZXIg
LSB0aW1lCit0aW1lIC0gbGVuZ3RoCitsZW5ndGggLSB0aW1lCit0aW1lIC0gcGVyY2VudAorcGVy
Y2VudCAtIHRpbWUKK3RpbWUgLSBhbmdsZQorYW5nbGUgLSB0aW1lCit0aW1lIC0gZnJlcXVlbmN5
CitmcmVxdWVuY3kgLSB0aW1lCitsZW5ndGggKiBsZW5ndGgKK2xlbmd0aCAqIHBlcmNlbnQKK3Bl
cmNlbnQgKiBsZW5ndGgKK3BlcmNlbnQgKiBwZXJjZW50CithbmdsZSAqIGxlbmd0aAorbGVuZ3Ro
ICogYW5nbGUKK2FuZ2xlICogcGVyY2VudAorcGVyY2VudCAqIGFuZ2xlCithbmdsZSAqIHRpbWUK
K3RpbWUgKiBhbmdsZQorYW5nbGUgKiBmcmVxdWVuY3kKK2ZyZXF1ZW5jeSAqIGFuZ2xlCit0aW1l
ICogbGVuZ3RoCitsZW5ndGggKiB0aW1lCit0aW1lICogcGVyY2VudAorcGVyY2VudCAqIHRpbWUK
K3RpbWUgKiBhbmdsZQorYW5nbGUgKiB0aW1lCit0aW1lICogZnJlcXVlbmN5CitmcmVxdWVuY3kg
KiB0aW1lCitudW1iZXIgLyBsZW5ndGgKK251bWJlciAvIHBlcmNlbnQKK2xlbmd0aCAvIGxlbmd0
aAorbGVuZ3RoIC8gcGVyY2VudAorcGVyY2VudCAvIGxlbmd0aAorcGVyY2VudCAvIHBlcmNlbnQK
K251bWJlciAvIGFuZ2xlCithbmdsZSAvIGxlbmd0aAorbGVuZ3RoIC8gYW5nbGUKK2FuZ2xlIC8g
cGVyY2VudAorcGVyY2VudCAvIGFuZ2xlCithbmdsZSAvIHRpbWUKK3RpbWUgLyBhbmdsZQorYW5n
bGUgLyBmcmVxdWVuY3kKK2ZyZXF1ZW5jeSAvIGFuZ2xlCitudW1iZXIgLyB0aW1lCit0aW1lIC8g
bGVuZ3RoCitsZW5ndGggLyB0aW1lCit0aW1lIC8gcGVyY2VudAorcGVyY2VudCAvIHRpbWUKK3Rp
bWUgLyBhbmdsZQorYW5nbGUgLyB0aW1lCit0aW1lIC8gZnJlcXVlbmN5CitmcmVxdWVuY3kgLyB0
aW1lCisKK1BBU1MgVGVzdHMgaW52YWxpZCBjYWxjKCkgZXhwcmVzc2lvbiBoYW5kbGluZy4gCiAK
LXVuY2xvc2VkIGNhbGMgPT4gUEFTUwotdW5jbG9zZWQgY2FsYyB3aXRoIGdhcmJhZ2UgPT4gUEFT
UwotZ2FyYmFnZSA9PiBQQVNTCi16ZXJvIGRpdmlzaW9uID0+IFBBU1MKLW5vbiBsZW5ndGggPT4g
UEFTUwotbnVtYmVyICsgbGVuZ3RoID0+IFBBU1MKLWxlbmd0aCArIG51bWJlciA9PiBQQVNTCi1w
ZXJjZW50ICsgbnVtYmVyID0+IFBBU1MKLW51bWJlciArIHBlcmNlbnQgPT4gUEFTUwotbGVuZ3Ro
IC0gbnVtYmVyID0+IFBBU1MKLW51bWJlciAtIGxlbmd0aCA9PiBQQVNTCi1wZXJjZW50IC0gbnVt
YmVyID0+IFBBU1MKLW51bWJlciAtIHBlcmNlbnQgPT4gUEFTUwotbGVuZ3RoICogbGVuZ3RoID0+
IFBBU1MKLWxlbmd0aCAqIHBlcmNlbnQgPT4gUEFTUwotcGVyY2VudCAqIGxlbmd0aCA9PiBQQVNT
Ci1wZXJjZW50ICogcGVyY2VudCA9PiBQQVNTCi1udW1iZXIgLyBsZW5ndGggPT4gUEFTUwotbnVt
YmVyIC8gcGVyY2VudCA9PiBQQVNTCi1sZW5ndGggLyBsZW5ndGggPT4gUEFTUwotbGVuZ3RoIC8g
cGVyY2VudCA9PiBQQVNTCi1wZXJjZW50IC8gbGVuZ3RoID0+IFBBU1MKLXBlcmNlbnQgLyBwZXJj
ZW50ID0+IFBBU1MKLW51bWJlciBtb2QgbGVuZ3RoID0+IFBBU1MKLW51bWJlciBtb2QgcGVyY2Vu
dCA9PiBQQVNTCi1sZW5ndGggbW9kIGxlbmd0aCA9PiBQQVNTCi1sZW5ndGggbW9kIHBlcmNlbnQg
PT4gUEFTUwotcGVyY2VudCBtb2QgbGVuZ3RoID0+IFBBU1MKLXBlcmNlbnQgbW9kIHBlcmNlbnQg
PT4gUEFTUwotbW9kMTAgPT4gUEFTUwotMW1vZCA9PiBQQVNTCi03MHB4KzQwcHggbm8gd2hpdGVz
cGFjZSBhcm91bmQgKyA9PiBQQVNTCi03MHB4ICs0MHB4IG5vIHdoaXRlc3BhY2Ugb24gcmlnaHQg
b2YgKyA9PiBQQVNTCi03MHB4KyA0MHB4IG5vIHdoaXRlc3BhY2Ugb24gbGVmdCBvZiArID0+IFBB
U1MKLTcwcHgrLTQwcHggbm8gd2hpdGVzcGFjZSBhcm91bmQgKyA9PiBQQVNTCi03MHB4LTQwcHgg
bm8gd2hpdGVzcGFjZSBhcm91bmQgLSA9PiBQQVNTCi03MHB4IC00MHB4IG5vIHdoaXRlc3BhY2Ug
b24gcmlnaHQgb2YgLSA9PiBQQVNTCi03MHB4LSA0MHB4IG5vIHdoaXRlc3BhY2Ugb24gbGVmdCBv
ZiAtID0+IFBBU1MKLTcwcHgtKzQwcHggbm8gd2hpdGVzcGFjZSBhcm91bmQgLSA9PiBQQVNTCi10
b28gbWFueSBuZXN0cyA9PiBQQVNTCi1lbmQgd2l0aCBvcGVyYXRvciA9PiBQQVNTCi1zdGFydCB3
aXRoIG9wZXJhdG9yID0+IFBBU1MKLW5vIGV4cHJlc3Npb25zID0+IFBBU1MKLXRvbyBtYW55IHBs
dXNlcyA9PiBQQVNTCi1ubyBiaW5hcnkgb3BlcmF0b3IgPT4gUEFTUwotdHdvIGJpbmFyeSBvcGVy
YXRvcnMgPT4gUEFTUwotaW52YWxpZCBvcGVyYXRvciAnQCcgPT4gUEFTUwotaW52YWxpZCBvcGVy
YXRvciAnZmxpbScgPT4gUEFTUwotaW52YWxpZCBvcGVyYXRvciAnQCcgPT4gUEFTUwotaW52YWxp
ZCBvcGVyYXRvciAnZmxpbScgPT4gUEFTUwotaW52YWxpZCBvcGVyYXRvciAnZmxpbScgd2l0aCBw
YXJlbnMgPT4gUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL2NhbGMtZXJy
b3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY2FsYy1lcnJvcnMuaHRtbAppbmRleCA2
N2RjZWQ4Li45OWNhZjQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY2FsYy1l
cnJvcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY2FsYy1lcnJvcnMuaHRtbApA
QCAtMSwxMDcgKzEsMTc1IEBACiA8IURPQ1RZUEUgSFRNTD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c3R5bGU+Ci0jdGVzdCBk
aXYgeworZGl2IHsKICAgICBoZWlnaHQ6IDEwMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IHJl
ZDsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgLXdlYmtpdC10cmFuc2Zvcm06IG1hdHJpeCgxLCAw
LCAwLCAxLCAwLCAwKTsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMTAwczsKIH0KIDwv
c3R5bGU+CiAKLTxwPgotICBBbGwgYm94ZXMgYmVsb3cgc2hvdWxkIGJlIDEwMHB4ICogMTAwcHgg
YW5kIGdyZWVuLgotPC9wPgotCi08ZGl2IGlkPSJ0ZXN0Ij4KLQogPCEtLSBqdXN0IHBsYWluIGJh
ZCAtLT4KLTxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoOyI+dW5jbG9zZWQg
Y2FsYzwvZGl2PgotPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2FsYyggZmxpbTsi
PnVuY2xvc2VkIGNhbGMgd2l0aCBnYXJiYWdlPC9kaXY+Ci08ZGl2IHN0eWxlPSJ3aWR0aDogMTAw
cHg7IHdpZHRoOiBjYWxjKCBmbGltICk7Ij5nYXJiYWdlPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0
aDogY2FsYyg7Ij51bmNsb3NlZCBjYWxjPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogY2FsYygg
ZmxpbTsiPnVuY2xvc2VkIGNhbGMgd2l0aCBnYXJiYWdlPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0
aDogY2FsYyggZmxpbSApOyI+Z2FyYmFnZTwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IGNhbGMo
IGF1dG8gKTsiPmdhcmJhZ2U8L2Rpdj4KIAorPCEtLSB1bnN1cHBvcnRlZCB1bml0cyAtLT4KKzxk
aXYgc3R5bGU9IndpZHRoOiBjYWxjKDEwZHBpKTsiPmRwaTwvZGl2PgorPGRpdiBzdHlsZT0id2lk
dGg6IGNhbGMoMTBkcGkgLyA0KTsiPmRwaSAvIG51bWJlcjwvZGl2PgorPGRpdiBzdHlsZT0id2lk
dGg6IGNhbGMoNWRwaSArIDVkcGkpOyI+ZHBpICsgZHBpPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0
aDogY2FsYyg0MmZyKTsiPmZyPC9kaXY+CiAKIDwhLS0gemVybyBkaXZpc2lvbiAtLT4KLTxkaXYg
c3R5bGU9IndpZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoMWV4IC8gMCk7Ij56ZXJvIGRpdmlzaW9u
PC9kaXY+Ci0KLTwhLS0gd3JvbmcgY29tYmluYXRpb24gLS0+Ci08ZGl2IHN0eWxlPSJ3aWR0aDog
MTAwcHg7IHdpZHRoOiBjYWxjKDIwMCk7Ij5ub24gbGVuZ3RoPC9kaXY+Ci08ZGl2IHN0eWxlPSJ3
aWR0aDogMTAwcHg7IHdpZHRoOiBjYWxjKDEwICsgMTBweCk7Ij5udW1iZXIgKyBsZW5ndGg8L2Rp
dj4KLTxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoMTBweCArIDEwKTsiPmxl
bmd0aCArIG51bWJlcjwvZGl2PgotPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2Fs
YygxMCUgKyAxMDApOyI+cGVyY2VudCArIG51bWJlcjwvZGl2PgotPGRpdiBzdHlsZT0id2lkdGg6
IDEwMHB4OyB3aWR0aDogY2FsYygxMDAgKyAxMCUpOyI+bnVtYmVyICsgcGVyY2VudDwvZGl2Pgot
Ci08ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IHdpZHRoOiBjYWxjKDMwMHB4IC0gMTAwKTsiPmxl
bmd0aCAtIG51bWJlcjwvZGl2PgotPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2Fs
YygzMDAgLSAxMDBweCk7Ij5udW1iZXIgLSBsZW5ndGg8L2Rpdj4KLTxkaXYgc3R5bGU9IndpZHRo
OiAxMDBweDsgd2lkdGg6IGNhbGMoMTAwJSAtIDEwKTsiPnBlcmNlbnQgLSBudW1iZXI8L2Rpdj4K
LTxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoMTAwIC0gMTAlKTsiPm51bWJl
ciAtIHBlcmNlbnQ8L2Rpdj4KLQotPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2Fs
YygxMHB4KjEwMHB4KTsiPmxlbmd0aCAqIGxlbmd0aDwvZGl2PgotPGRpdiBzdHlsZT0id2lkdGg6
IDEwMHB4OyB3aWR0aDogY2FsYygxMHB4KjEwMCUpOyI+bGVuZ3RoICogcGVyY2VudDwvZGl2Pgot
PGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2FsYygxMCUqMTAwcHgpOyI+cGVyY2Vu
dCAqIGxlbmd0aDwvZGl2PgotPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2FsYygx
MCUqMTAwJSk7Ij5wZXJjZW50ICogcGVyY2VudDwvZGl2PgotCi08ZGl2IHN0eWxlPSJ3aWR0aDog
MTAwcHg7IHdpZHRoOiBjYWxjKDEwMC8xMHB4KTsiPm51bWJlciAvIGxlbmd0aDwvZGl2PgotPGRp
diBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2FsYygxMDAvMTAlKTsiPm51bWJlciAvIHBl
cmNlbnQ8L2Rpdj4KLTxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoMTAwcHgv
MTBweCk7Ij5sZW5ndGggLyBsZW5ndGg8L2Rpdj4KLTxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsg
d2lkdGg6IGNhbGMoMTAwcHgvMTAlKTsiPmxlbmd0aCAvIHBlcmNlbnQ8L2Rpdj4KLTxkaXYgc3R5
bGU9IndpZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoMTAwJS8xMHB4KTsiPnBlcmNlbnQgLyBsZW5n
dGg8L2Rpdj4KLTxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoMTAwJS8xMCUp
OyI+cGVyY2VudCAvIHBlcmNlbnQ8L2Rpdj4KLQotPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3
aWR0aDogY2FsYygxMDAgbW9kIDEwcHgpOyI+bnVtYmVyIG1vZCBsZW5ndGg8L2Rpdj4KLTxkaXYg
c3R5bGU9IndpZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoMTAwIG1vZCAxMCUpOyI+bnVtYmVyIG1v
ZCBwZXJjZW50PC9kaXY+Ci08ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IHdpZHRoOiBjYWxjKDEw
MHB4IG1vZCAxMHB4KTsiPmxlbmd0aCBtb2QgbGVuZ3RoPC9kaXY+Ci08ZGl2IHN0eWxlPSJ3aWR0
aDogMTAwcHg7IHdpZHRoOiBjYWxjKDEwMHB4IG1vZCAxMCUpOyI+bGVuZ3RoIG1vZCBwZXJjZW50
PC9kaXY+Ci08ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IHdpZHRoOiBjYWxjKDEwMCUgbW9kIDEw
cHgpOyI+cGVyY2VudCBtb2QgbGVuZ3RoPC9kaXY+Ci08ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7
IHdpZHRoOiBjYWxjKDEwMCUgbW9kIDEwJSk7Ij5wZXJjZW50IG1vZCBwZXJjZW50PC9kaXY+Cis8
ZGl2IHN0eWxlPSJ3aWR0aDogY2FsYygxZXggLyAwKTsiPnplcm8gZGl2aXNpb248L2Rpdj4KIAog
PCEtLSBtb2QsICssIC0gcmVxdWlyZSB3aGl0ZXNwYWNlcyBhcm91bmQgdGhlIG9wZXJhdG9yIC0t
PgotPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2FsYygxIG1vZDEwICogMjAwcHgp
OyI+bW9kMTAgPC9kaXY+Ci08ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IHdpZHRoOiBjYWxjKDFt
b2QgMTAgKiAyMDBweCk7Ij4xbW9kPC9kaXY+Ci08ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IHdp
ZHRoOiBjYWxjKDcwcHgrNDBweCk7Ij43MHB4KzQwcHggbm8gd2hpdGVzcGFjZSBhcm91bmQgKyA8
L2Rpdj4KLTxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoNzBweCArNDBweCk7
Ij43MHB4ICs0MHB4IG5vIHdoaXRlc3BhY2Ugb24gcmlnaHQgb2YgKzwvZGl2PgotPGRpdiBzdHls
ZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2FsYyg3MHB4KyA0MHB4KTsiPjcwcHgrIDQwcHggbm8g
d2hpdGVzcGFjZSBvbiBsZWZ0IG9mICs8L2Rpdj4KLTxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsg
d2lkdGg6IGNhbGMoNzBweCstNDBweCk7Ij43MHB4Ky00MHB4IG5vIHdoaXRlc3BhY2UgYXJvdW5k
ICsgPC9kaXY+Ci08ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IHdpZHRoOiBjYWxjKDcwcHgtNDBw
eCk7Ij43MHB4LTQwcHggbm8gd2hpdGVzcGFjZSBhcm91bmQgLSA8L2Rpdj4KLTxkaXYgc3R5bGU9
IndpZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoNzBweCAtNDBweCk7Ij43MHB4IC00MHB4IG5vIHdo
aXRlc3BhY2Ugb24gcmlnaHQgb2YgLTwvZGl2PgotPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3
aWR0aDogY2FsYyg3MHB4LSA0MHB4KTsiPjcwcHgtIDQwcHggbm8gd2hpdGVzcGFjZSBvbiBsZWZ0
IG9mIC08L2Rpdj4KLTxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoNzBweC0r
NDBweCk7Ij43MHB4LSs0MHB4IG5vIHdoaXRlc3BhY2UgYXJvdW5kIC0gPC9kaXY+Cis8ZGl2IHN0
eWxlPSJ3aWR0aDogY2FsYygxIG1vZDEwICogMjAwcHgpOyI+bW9kMTAgPC9kaXY+Cis8ZGl2IHN0
eWxlPSJ3aWR0aDogY2FsYygxbW9kIDEwICogMjAwcHgpOyI+MW1vZDwvZGl2PgorPGRpdiBzdHls
ZT0id2lkdGg6IGNhbGMoNzBweCs0MHB4KTsiPjcwcHgrNDBweCBubyB3aGl0ZXNwYWNlIGFyb3Vu
ZCArIDwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IGNhbGMoNzBweCArNDBweCk7Ij43MHB4ICs0
MHB4IG5vIHdoaXRlc3BhY2Ugb24gcmlnaHQgb2YgKzwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6
IGNhbGMoNzBweCsgNDBweCk7Ij43MHB4KyA0MHB4IG5vIHdoaXRlc3BhY2Ugb24gbGVmdCBvZiAr
PC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogY2FsYyg3MHB4Ky00MHB4KTsiPjcwcHgrLTQwcHgg
bm8gd2hpdGVzcGFjZSBhcm91bmQgKyA8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiBjYWxjKDcw
cHgtNDBweCk7Ij43MHB4LTQwcHggbm8gd2hpdGVzcGFjZSBhcm91bmQgLSA8L2Rpdj4KKzxkaXYg
c3R5bGU9IndpZHRoOiBjYWxjKDcwcHggLTQwcHgpOyI+NzBweCAtNDBweCBubyB3aGl0ZXNwYWNl
IG9uIHJpZ2h0IG9mIC08L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiBjYWxjKDcwcHgtIDQwcHgp
OyI+NzBweC0gNDBweCBubyB3aGl0ZXNwYWNlIG9uIGxlZnQgb2YgLTwvZGl2PgorPGRpdiBzdHls
ZT0id2lkdGg6IGNhbGMoNzBweC0rNDBweCk7Ij43MHB4LSs0MHB4IG5vIHdoaXRlc3BhY2UgYXJv
dW5kIC0gPC9kaXY+CiAKIDwhLS0gdG9vIG1hbnkgbmVzdHMgc2hvdWxkIGJlIHJlamVjdGVkIHRv
IGF2b2lkIHN0YWNrIG92ZXJmbG93IC0tPgotPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0
aDogY2FsYygoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKDIwMHB4KSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkp
KSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkp
KSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpOyI+dG9vIG1hbnkgbmVz
dHM8L2Rpdj4KLSAKKzxkaXYgc3R5bGU9IndpZHRoOiBjYWxjKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoMjAwcHgp
KSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkp
KSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkp
KSkpKSkpKSkpKSkpKSk7Ij50b28gbWFueSBuZXN0czwvZGl2PgorCiA8IS0tIGludmFsaWQgZm9y
bXVsYXMgLS0+Ci08ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IHdpZHRoOiBjYWxjKDIwMHB4Kik7
Ij5lbmQgd2l0aCBvcGVyYXRvcjwvZGl2PgotPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0
aDogY2FsYygrICsyMDBweCk7Ij5zdGFydCB3aXRoIG9wZXJhdG9yPC9kaXY+Ci08ZGl2IHN0eWxl
PSJ3aWR0aDogMTAwcHg7IHdpZHRoOiBjYWxjKCk7Ij5ubyBleHByZXNzaW9uczwvZGl2PgotPGRp
diBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2FsYygxMDBweCArICsgKzEwMHB4KTsiPnRv
byBtYW55IHBsdXNlczwvZGl2PgotPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2Fs
YygyMDBweCAyMDBweCk7Ij5ubyBiaW5hcnkgb3BlcmF0b3I8L2Rpdj4KLTxkaXYgc3R5bGU9Indp
ZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoMTAwcHggKiAqIDIpOyI+dHdvIGJpbmFyeSBvcGVyYXRv
cnM8L2Rpdj4KLTxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgd2lkdGg6IGNhbGMoMTAwcHggQCAy
KTsiPmludmFsaWQgb3BlcmF0b3IgJ0AnPC9kaXY+Ci08ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7
IHdpZHRoOiBjYWxjKDEgZmxpbSAyKTsiPmludmFsaWQgb3BlcmF0b3IgJ2ZsaW0nPC9kaXY+Ci08
ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IHdpZHRoOiBjYWxjKDEwMHB4IEAgMik7Ij5pbnZhbGlk
IG9wZXJhdG9yICdAJzwvZGl2PgotPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2Fs
YygxIGZsaW0gMik7Ij5pbnZhbGlkIG9wZXJhdG9yICdmbGltJzwvZGl2PgotPGRpdiBzdHlsZT0i
d2lkdGg6IDEwMHB4OyB3aWR0aDogY2FsYygxIGZsaW0gKDIpKTsiPmludmFsaWQgb3BlcmF0b3Ig
J2ZsaW0nIHdpdGggcGFyZW5zPC9kaXY+Ci0gCi0gCi08L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRo
OiBjYWxjKDIwMHB4Kik7Ij5lbmQgd2l0aCBvcGVyYXRvcjwvZGl2PgorPGRpdiBzdHlsZT0id2lk
dGg6IGNhbGMoKyArMjAwcHgpOyI+c3RhcnQgd2l0aCBvcGVyYXRvcjwvZGl2PgorPGRpdiBzdHls
ZT0id2lkdGg6IGNhbGMoKTsiPm5vIGV4cHJlc3Npb25zPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0
aDogY2FsYygxMDBweCArICsgKzEwMHB4KTsiPnRvbyBtYW55IHBsdXNlczwvZGl2PgorPGRpdiBz
dHlsZT0id2lkdGg6IGNhbGMoMjAwcHggMjAwcHgpOyI+bm8gYmluYXJ5IG9wZXJhdG9yPC9kaXY+
Cis8ZGl2IHN0eWxlPSJ3aWR0aDogY2FsYygxMDBweCAqICogMik7Ij50d28gYmluYXJ5IG9wZXJh
dG9yczwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IGNhbGMoMTAwcHggQCAyKTsiPmludmFsaWQg
b3BlcmF0b3IgJ0AnPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogY2FsYygxIGZsaW0gMik7Ij5p
bnZhbGlkIG9wZXJhdG9yICdmbGltJzwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IGNhbGMoMTAw
cHggQCAyKTsiPmludmFsaWQgb3BlcmF0b3IgJ0AnPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDog
Y2FsYygxIGZsaW0gMik7Ij5pbnZhbGlkIG9wZXJhdG9yICdmbGltJzwvZGl2PgorPGRpdiBzdHls
ZT0id2lkdGg6IGNhbGMoMSBmbGltICgyKSk7Ij5pbnZhbGlkIG9wZXJhdG9yICdmbGltJyB3aXRo
IHBhcmVuczwvZGl2PgorCis8IS0tIFNpbmdsZSB1bml0bGVzcyBub24gbGVuZ3RoIHZhbHVlIC0t
PgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyB3aWR0aDogY2FsYygyMDApOyI+bm9uIGxlbmd0
aDwvZGl2PgorCis8IS0tIFdyb25nIGNvbWJpbmF0aW9ucyAtLT4KKzxkaXYgc3R5bGU9IndpZHRo
OiBjYWxjKDEwICsgMTBweCk7Ij5udW1iZXIgKyBsZW5ndGg8L2Rpdj4KKzxkaXYgc3R5bGU9Indp
ZHRoOiBjYWxjKDEwcHggKyAxMCk7Ij5sZW5ndGggKyBudW1iZXI8L2Rpdj4KKzxkaXYgc3R5bGU9
IndpZHRoOiBjYWxjKDEwJSArIDEwMCk7Ij5wZXJjZW50ICsgbnVtYmVyPC9kaXY+Cis8ZGl2IHN0
eWxlPSJ3aWR0aDogY2FsYygxMDAgKyAxMCUpOyI+bnVtYmVyICsgcGVyY2VudDwvZGl2PgorCis8
ZGl2IHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKGNhbGMoNDJkZWcgKyAxMCkpIj5h
bmdsZSArIG51bWJlcjwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0
ZShjYWxjKDEwICsgNDJyYWQpKSI+bnVtYmVyICsgYW5nbGU8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13
ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoY2FsYyg0MmRlZyArIDEwcHgpKSI+YW5nbGUgKyBsZW5n
dGg8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoY2FsYygxMHB4
ICsgNDJyYWQpKSI+bGVuZ3RoICsgYW5nbGU8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtdHJh
bnNmb3JtOiByb3RhdGUoY2FsYyg0MnJhZCArIDEwJSkpIj5hbmdsZSArIHBlcmNlbnQ8L2Rpdj4K
KzxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoY2FsYygxMCUgKyA0MnJhZCkp
Ij5wZXJjZW50ICsgYW5nbGU8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiBy
b3RhdGUoY2FsYyg0MmdyYWQgKyAxMG1zKSkiPmFuZ2xlICsgdGltZTwvZGl2PgorPGRpdiBzdHls
ZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShjYWxjKDEwcyArIDQyZ3JhZCkpIj50aW1lICsg
YW5nbGU8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoY2FsYyg0
MnR1cm4gKyAxMEh6KSkiPmFuZ2xlICsgZnJlcXVlbmN5PC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Vi
a2l0LXRyYW5zZm9ybTogcm90YXRlKGNhbGMoMTBrSHogKyA0MnR1cm4pKSI+ZnJlcXVlbmN5ICsg
YW5nbGU8L2Rpdj4KKworPGRpdiBzdHlsZT0iLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IHJvdGF0
ZShjYWxjKDEwbXMgKyAxMCkiPnRpbWUgKyBudW1iZXI8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJr
aXQtYW5pbWF0aW9uLWRlbGF5OiByb3RhdGUoY2FsYygxMCArIDEwcykpIj5udW1iZXIgKyB0aW1l
PC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFuaW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMo
MTBtcyArIDEwcHgpIj50aW1lICsgbGVuZ3RoPC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFu
aW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMoMTBweCArIDEwcykpIj5sZW5ndGggKyB0aW1lPC9k
aXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFuaW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMoMTBt
cyArIDEwJSkpIj50aW1lICsgcGVyY2VudDwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC1hbmlt
YXRpb24tZGVsYXk6IHJvdGF0ZShjYWxjKDEwJSArIDEwcykpIj5wZXJjZW50ICsgdGltZTwvZGl2
PgorPGRpdiBzdHlsZT0iLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IHJvdGF0ZShjYWxjKDEwbXMg
KyAxMHJhZCkpIj50aW1lICsgYW5nbGU8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtYW5pbWF0
aW9uLWRlbGF5OiByb3RhdGUoY2FsYygxMGRlZyArIDEwcykpIj5hbmdsZSArIHRpbWU8L2Rpdj4K
KzxkaXYgc3R5bGU9Ii13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiByb3RhdGUoY2FsYygxMG1zICsg
MTBIeikpIj50aW1lICsgZnJlcXVlbmN5PC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFuaW1h
dGlvbi1kZWxheTogcm90YXRlKGNhbGMoMTBrSHogKyAxMHMpKSI+ZnJlcXVlbmN5ICsgdGltZTwv
ZGl2PgorCisKKzxkaXYgc3R5bGU9IndpZHRoOiBjYWxjKDMwMHB4IC0gMTAwKTsiPmxlbmd0aCAt
IG51bWJlcjwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IGNhbGMoMzAwIC0gMTAwcHgpOyI+bnVt
YmVyIC0gbGVuZ3RoPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogY2FsYygxMDAlIC0gMTApOyI+
cGVyY2VudCAtIG51bWJlcjwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IGNhbGMoMTAwIC0gMTAl
KTsiPm51bWJlciAtIHBlcmNlbnQ8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3Jt
OiByb3RhdGUoY2FsYyg0MmRlZyAtIDEwKSkiPmFuZ2xlIC0gbnVtYmVyPC9kaXY+Cis8ZGl2IHN0
eWxlPSItd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKGNhbGMoMTAgLSA0MnJhZCkpIj5udW1iZXIg
LSBhbmdsZTwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShjYWxj
KDQyZGVnIC0gMTBweCkpIj5hbmdsZSAtIGxlbmd0aDwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtp
dC10cmFuc2Zvcm06IHJvdGF0ZShjYWxjKDEwcHggLSA0MnJhZCkpIj5sZW5ndGggLSBhbmdsZTwv
ZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShjYWxjKDQycmFkIC0g
MTAlKSkiPmFuZ2xlIC0gcGVyY2VudDwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zv
cm06IHJvdGF0ZShjYWxjKDEwJSAtIDQycmFkKSkiPnBlcmNlbnQgLSBhbmdsZTwvZGl2PgorPGRp
diBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShjYWxjKDQyZ3JhZCAtIDEwbXMpKSI+
YW5nbGUgLSB0aW1lPC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogcm90YXRl
KGNhbGMoMTBzIC0gNDJncmFkKSkiPnRpbWUgLSBhbmdsZTwvZGl2PgorPGRpdiBzdHlsZT0iLXdl
YmtpdC10cmFuc2Zvcm06IHJvdGF0ZShjYWxjKDQydHVybiAtIDEwSHopKSI+YW5nbGUgLSBmcmVx
dWVuY3k8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoY2FsYygx
MGtIeiAtIDQydHVybikpIj5mcmVxdWVuY3kgLSBhbmdsZTwvZGl2PgorCis8ZGl2IHN0eWxlPSIt
d2Via2l0LWFuaW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMoMTBtcyAtIDEwKSI+dGltZSAtIG51
bWJlcjwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IHJvdGF0ZShj
YWxjKDEwIC0gMTBzKSkiPm51bWJlciAtIHRpbWU8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQt
YW5pbWF0aW9uLWRlbGF5OiByb3RhdGUoY2FsYygxMG1zIC0gMTBweCkpIj50aW1lIC0gbGVuZ3Ro
PC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFuaW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMo
MTBweCAtIDEwcykpIj5sZW5ndGggLSB0aW1lPC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFu
aW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMoMTBtcyAtIDEwJSkpIj50aW1lIC0gcGVyY2VudDwv
ZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IHJvdGF0ZShjYWxjKDEw
JSAtIDEwcykpIj5wZXJjZW50IC0gdGltZTwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC1hbmlt
YXRpb24tZGVsYXk6IHJvdGF0ZShjYWxjKDEwbXMgLSAxMHR1cm4pKSI+dGltZSAtIGFuZ2xlPC9k
aXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFuaW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMoMTBy
YWQgLSAxMHMpKSI+YW5nbGUgLSB0aW1lPC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFuaW1h
dGlvbi1kZWxheTogcm90YXRlKGNhbGMoMTBtcyAtIDEwSHopKSI+dGltZSAtIGZyZXF1ZW5jeTwv
ZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IHJvdGF0ZShjYWxjKDEw
a0h6IC0gMTBzKSkiPmZyZXF1ZW5jeSAtIHRpbWU8L2Rpdj4KKworCis8ZGl2IHN0eWxlPSJ3aWR0
aDogY2FsYygxMHB4ICogMTAwcHgpOyI+bGVuZ3RoICogbGVuZ3RoPC9kaXY+Cis8ZGl2IHN0eWxl
PSJ3aWR0aDogY2FsYygxMHB4ICogMTAwJSk7Ij5sZW5ndGggKiBwZXJjZW50PC9kaXY+Cis8ZGl2
IHN0eWxlPSJ3aWR0aDogY2FsYygxMCUgKiAxMDBweCk7Ij5wZXJjZW50ICogbGVuZ3RoPC9kaXY+
Cis8ZGl2IHN0eWxlPSJ3aWR0aDogY2FsYygxMCUgKiAxMDAlKTsiPnBlcmNlbnQgKiBwZXJjZW50
PC9kaXY+CisKKzxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoY2FsYyg0MmRl
ZyAqIDEwcHgpKSI+YW5nbGUgKiBsZW5ndGg8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtdHJh
bnNmb3JtOiByb3RhdGUoY2FsYygxMHB4ICogNDJyYWQpKSI+bGVuZ3RoICogYW5nbGU8L2Rpdj4K
KzxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoY2FsYyg0MnJhZCAqIDEwJSkp
Ij5hbmdsZSAqIHBlcmNlbnQ8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiBy
b3RhdGUoY2FsYygxMCUgKiA0MnJhZCkpIj5wZXJjZW50ICogYW5nbGU8L2Rpdj4KKzxkaXYgc3R5
bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoY2FsYyg0MmdyYWQgKiAxMG1zKSkiPmFuZ2xl
ICogdGltZTwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShjYWxj
KDEwcyAqIDQyZ3JhZCkpIj50aW1lICogYW5nbGU8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQt
dHJhbnNmb3JtOiByb3RhdGUoY2FsYyg0MnR1cm4gKiAxMEh6KSkiPmFuZ2xlICogZnJlcXVlbmN5
PC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKGNhbGMoMTBrSHog
KiA0MnR1cm4pKSI+ZnJlcXVlbmN5ICogYW5nbGU8L2Rpdj4KKworPGRpdiBzdHlsZT0iLXdlYmtp
dC1hbmltYXRpb24tZGVsYXk6IHJvdGF0ZShjYWxjKDEwbXMgKiAxMHB4KSkiPnRpbWUgKiBsZW5n
dGg8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiByb3RhdGUoY2Fs
YygxMHB4ICogMTBzKSkiPmxlbmd0aCAqIHRpbWU8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQt
YW5pbWF0aW9uLWRlbGF5OiByb3RhdGUoY2FsYygxMG1zICogMTAlKSkiPnRpbWUgKiBwZXJjZW50
PC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFuaW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMo
MTAlICogMTBzKSkiPnBlcmNlbnQgKiB0aW1lPC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFu
aW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMoMTBtcyAqIDEwZGVnKSkiPnRpbWUgKiBhbmdsZTwv
ZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IHJvdGF0ZShjYWxjKDEw
dHVybiAqIDEwcykpIj5hbmdsZSAqIHRpbWU8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtYW5p
bWF0aW9uLWRlbGF5OiByb3RhdGUoY2FsYygxMG1zICogMTBIeikpIj50aW1lICogZnJlcXVlbmN5
PC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFuaW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMo
MTBrSHogKiAxMHMpKSI+ZnJlcXVlbmN5ICogdGltZTwvZGl2PgorCisKKzxkaXYgc3R5bGU9Indp
ZHRoOiBjYWxjKDEwMCAvIDEwcHgpOyI+bnVtYmVyIC8gbGVuZ3RoPC9kaXY+Cis8ZGl2IHN0eWxl
PSJ3aWR0aDogY2FsYygxMDAgLyAxMCUpOyI+bnVtYmVyIC8gcGVyY2VudDwvZGl2PgorPGRpdiBz
dHlsZT0id2lkdGg6IGNhbGMoMTAwcHggLyAxMHB4KTsiPmxlbmd0aCAvIGxlbmd0aDwvZGl2Pgor
PGRpdiBzdHlsZT0id2lkdGg6IGNhbGMoMTAwcHggLyAxMCUpOyI+bGVuZ3RoIC8gcGVyY2VudDwv
ZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IGNhbGMoMTAwJSAvIDEwcHgpOyI+cGVyY2VudCAvIGxl
bmd0aDwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IGNhbGMoMTAwJSAvIDEwJSk7Ij5wZXJjZW50
IC8gcGVyY2VudDwvZGl2PgorCis8ZGl2IHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogcm90YXRl
KGNhbGMoMTAgLyA0MnJhZCkpIj5udW1iZXIgLyBhbmdsZTwvZGl2PgorPGRpdiBzdHlsZT0iLXdl
YmtpdC10cmFuc2Zvcm06IHJvdGF0ZShjYWxjKDQyZGVnIC8gMTBweCkpIj5hbmdsZSAvIGxlbmd0
aDwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShjYWxjKDEwcHgg
LyA0MnJhZCkpIj5sZW5ndGggLyBhbmdsZTwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFu
c2Zvcm06IHJvdGF0ZShjYWxjKDQycmFkIC8gMTAlKSkiPmFuZ2xlIC8gcGVyY2VudDwvZGl2Pgor
PGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShjYWxjKDEwJSAvIDQycmFkKSki
PnBlcmNlbnQgLyBhbmdsZTwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJv
dGF0ZShjYWxjKDQyZ3JhZCAvIDEwbXMpKSI+YW5nbGUgLyB0aW1lPC9kaXY+Cis8ZGl2IHN0eWxl
PSItd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKGNhbGMoMTBzIC8gNDJncmFkKSkiPnRpbWUgLyBh
bmdsZTwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShjYWxjKDQy
dHVybiAvIDEwSHopKSI+YW5nbGUgLyBmcmVxdWVuY3k8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJr
aXQtdHJhbnNmb3JtOiByb3RhdGUoY2FsYygxMGtIeiAvIDQydHVybikpIj5mcmVxdWVuY3kgLyBh
bmdsZTwvZGl2PgorCis8ZGl2IHN0eWxlPSItd2Via2l0LWFuaW1hdGlvbi1kZWxheTogcm90YXRl
KGNhbGMoMTAgLyAxMHMpKSI+bnVtYmVyIC8gdGltZTwvZGl2PgorPGRpdiBzdHlsZT0iLXdlYmtp
dC1hbmltYXRpb24tZGVsYXk6IHJvdGF0ZShjYWxjKDEwbXMgLyAxMHB4KSkiPnRpbWUgLyBsZW5n
dGg8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiByb3RhdGUoY2Fs
YygxMHB4IC8gMTBzKSkiPmxlbmd0aCAvIHRpbWU8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQt
YW5pbWF0aW9uLWRlbGF5OiByb3RhdGUoY2FsYygxMG1zIC8gMTAlKSkiPnRpbWUgLyBwZXJjZW50
PC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFuaW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMo
MTAlIC8gMTBzKSkiPnBlcmNlbnQgLyB0aW1lPC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFu
aW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMoMTBtcyAvIDEwZ3JhZCkpIj50aW1lIC8gYW5nbGU8
L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiByb3RhdGUoY2FsYygx
MHJhZCAvIDEwcykpIj5hbmdsZSAvIHRpbWU8L2Rpdj4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtYW5p
bWF0aW9uLWRlbGF5OiByb3RhdGUoY2FsYygxMG1zIC8gMTBIeikpIj50aW1lIC8gZnJlcXVlbmN5
PC9kaXY+Cis8ZGl2IHN0eWxlPSItd2Via2l0LWFuaW1hdGlvbi1kZWxheTogcm90YXRlKGNhbGMo
MTBrSHogLyAxMHMpKSI+ZnJlcXVlbmN5IC8gdGltZTwvZGl2PgogCiA8c2NyaXB0PgotaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi12YXIgdGVz
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7Ci1mb3IgKHZhciBlbGVtZW50ID0g
dGVzdC5maXJzdENoaWxkOyBlbGVtZW50OyBlbGVtZW50ID0gZWxlbWVudC5uZXh0U2libGluZykg
ewotICAgIHZhciB3aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGg7Ci0gICAgdmFyIGVycm9yID0g
W107Ci0gICAgaWYgKHdpZHRoICE9IDEwMCkKLSAgICAgICAgZXJyb3IucHVzaCgiZXhwZWN0ZWQg
d2lkdGggb2YgMTAwLCBidXQgd2FzICIgKyB3aWR0aCk7Ci0gICAgdmFyIGhlaWdodCA9IGVsZW1l
bnQub2Zmc2V0SGVpZ2h0OwotICAgIGlmIChoZWlnaHQgIT0gMTAwKQotICAgICAgICBlcnJvci5w
dXNoKCJleHBlY3RlZCBoZWlnaHQgb2YgMTAwLCBidXQgd2FzICIgKyB3aWR0aCk7Ci0KLSAgICBp
ZiAoZXJyb3IgPT0gIiIpIHsKLSAgICAgICAgZWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3Ig
PSAiZ3JlZW4iOwotICAgICAgICBlbGVtZW50LmlubmVySFRNTCArPSAiID0+IFBBU1MiOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MICs9ICIgPT4gRkFJTDogIiArIGVy
cm9yLmpvaW4oIiwgIik7Ci0gICAgfQotfQotPC9zY3JpcHQ+CisgICAgdGVzdChmdW5jdGlvbigp
IHsKKyAgICAgICAgdmFyIGRpdnMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGl2
Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwLCBlbGVtZW50ID0gZGl2c1tpXTsgaSA8IGRpdnMu
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpLCAiMTAwcHgiKTsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZh
bHVlKCItd2Via2l0LXRyYW5zZm9ybSIpLCAibWF0cml4KDEsIDAsIDAsIDEsIDAsIDApIik7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJv
cGVydHlWYWx1ZSgiLXdlYmtpdC1hbmltYXRpb24tZGVsYXkiKSwgIjEwMHMiKTsKKyAgICAgICAg
fQorICAgIH0sICJUZXN0cyBpbnZhbGlkIGNhbGMoKSBleHByZXNzaW9uIGhhbmRsaW5nLiIpOwor
PC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9jYWxjL2NhbGMtd2l0aC10aW1lLWFuZ2xlLWFuZC1mcmVxdWVuY3ktdmFsdWVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvY2FsYy9jYWxjLXdpdGgtdGltZS1hbmds
ZS1hbmQtZnJlcXVlbmN5LXZhbHVlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNmRkMjRmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nz
czMvY2FsYy9jYWxjLXdpdGgtdGltZS1hbmdsZS1hbmQtZnJlcXVlbmN5LXZhbHVlcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgVGVzdHMgY2FsYygpIHdpdGggdGltZSB1bml0
cy4gCitQQVNTIFRlc3RzIGNhbGMoKSB3aXRoIGFuZ2xlIHVuaXRzLiAKK1BBU1MgVGVzdHMgY2Fs
YygpIHdpdGggZnJlcXVlbmN5IHVuaXRzLiAKK1BBU1MgVGVzdHMgdW5pdCBjb252ZXJzaW9uIG9m
IHNpbmdsZSB2YWx1ZXMgaW4gY2FsYygpLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9jYWxjL2NhbGMtd2l0aC10aW1lLWFuZ2xlLWFuZC1mcmVxdWVuY3ktdmFsdWVzLmh0bWwgYi9M
YXlvdXRUZXN0cy9jc3MzL2NhbGMvY2FsYy13aXRoLXRpbWUtYW5nbGUtYW5kLWZyZXF1ZW5jeS12
YWx1ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTNmYjQzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL2NhbGMtd2l0aC10aW1lLWFu
Z2xlLWFuZC1mcmVxdWVuY3ktdmFsdWVzLmh0bWwKQEAgLTAsMCArMSw3OSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorCis8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBmdW5j
dGlvbiBjb21wYXJlVmFsdWUocHJvcGVydHksIGNhbGNWYWx1ZSwgZXhwZWN0ZWRWYWx1ZSkgewor
ICAgIAl0YXJnZXQuc3R5bGVbcHJvcGVydHldID0gJyc7CisgICAgIAl0YXJnZXQuc3R5bGVbcHJv
cGVydHldID0gY2FsY1ZhbHVlOworICAgICAJdmFyIGNvbXB1dGVkQ2FsY1ZhbHVlID0gZ2V0Q29t
cHV0ZWRTdHlsZSh0YXJnZXQpW3Byb3BlcnR5XTsKKyAgICAgCQorICAgICAJdGFyZ2V0LnN0eWxl
W3Byb3BlcnR5XSA9IGV4cGVjdGVkVmFsdWU7CisgICAgIAl2YXIgY29tcHV0ZWRFeHBlY3RlZFZh
bHVlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpW3Byb3BlcnR5XTsKKyAgICAgCWFzc2VydF9l
cXVhbHMoY29tcHV0ZWRDYWxjVmFsdWUsIGNvbXB1dGVkRXhwZWN0ZWRWYWx1ZSwgY2FsY1ZhbHVl
ICsgJyBzaG91bGQgZXF1YWwgdG8gJyArIGV4cGVjdGVkVmFsdWUpOworICAgIH0KKyAJCisgCXRl
c3QoZnVuY3Rpb24oKSB7CisgCSAgICBjb21wYXJlVmFsdWUoInRyYW5zaXRpb24tZGVsYXkiLCAi
Y2FsYyg0cyArIDFzKSIsICI1cyIpOworIAkgICAgY29tcGFyZVZhbHVlKCJ0cmFuc2l0aW9uLWRl
bGF5IiwgImNhbGMoNHMgKyAxbXMpIiwgIjQuMDAxcyIpOworIAkgICAgY29tcGFyZVZhbHVlKCJ0
cmFuc2l0aW9uLWRlbGF5IiwgImNhbGMoNG1zICsgMW1zKSIsICIwLjAwNXMiKTsKKyAJICAgIGNv
bXBhcmVWYWx1ZSgidHJhbnNpdGlvbi1kZWxheSIsICJjYWxjKDRzIC0gMXMpIiwgIjNzIik7Cisg
CSAgICBjb21wYXJlVmFsdWUoInRyYW5zaXRpb24tZGVsYXkiLCAiY2FsYyg0cyAtIDFtcykiLCAi
My45OTlzIik7CisgCSAgICBjb21wYXJlVmFsdWUoInRyYW5zaXRpb24tZGVsYXkiLCAiY2FsYyg0
ICogMXMpIiwgIjRzIik7CisgCSAgICBjb21wYXJlVmFsdWUoInRyYW5zaXRpb24tZGVsYXkiLCAi
Y2FsYyg0ICogMW1zKSIsICIwLjAwNHMiKTsKKyAJICAgIGNvbXBhcmVWYWx1ZSgidHJhbnNpdGlv
bi1kZWxheSIsICJjYWxjKDRzIC8gMikiLCAiMnMiKTsKKyAJICAgIGNvbXBhcmVWYWx1ZSgidHJh
bnNpdGlvbi1kZWxheSIsICJjYWxjKDRtcyAvIDIpIiwgIjAuMDAycyIpOworIAl9LCAiVGVzdHMg
Y2FsYygpIHdpdGggdGltZSB1bml0cy4iKTsKKyAJCisgCXRlc3QoZnVuY3Rpb24oKSB7CisgCSAg
ICBjb21wYXJlVmFsdWUoInRyYW5zZm9ybSIsICJyb3RhdGUoY2FsYyg0NWRlZyArIDQ1ZGVnKSki
LCAicm90YXRlKDkwZGVnKSIpOworIAkgICAgY29tcGFyZVZhbHVlKCJ0cmFuc2Zvcm0iLCAicm90
YXRlKGNhbGMoNDVkZWcgKyAxcmFkKSkiLCAicm90YXRlKDEwMi4zZGVnKSIpOworIAkgICAgY29t
cGFyZVZhbHVlKCJ0cmFuc2Zvcm0iLCAicm90YXRlKGNhbGMoMjBkZWcgKyAyMDBncmFkKSkiLCAi
cm90YXRlKDIwMGRlZykiKTsKKyAJICAgIGNvbXBhcmVWYWx1ZSgidHJhbnNmb3JtIiwgInJvdGF0
ZShjYWxjKDIwMGRlZyArIDAuNXR1cm4pKSIsICJyb3RhdGUoMjAwZGVnKSIpOworIAkgICAgY29t
cGFyZVZhbHVlKCJ0cmFuc2Zvcm0iLCAicm90YXRlKGNhbGMoNDVyYWQgKyA0NXJhZCkpIiwgInJv
dGF0ZSg5MHJhZCkiKTsKKyAJICAgIGNvbXBhcmVWYWx1ZSgidHJhbnNmb3JtIiwgInJvdGF0ZShj
YWxjKDFyYWQgKyA0MGdyYWQpKSIsICJtYXRyaXgoLTAuMDU3NDkwNDg3NTU0ODA5MywgMC45OTgz
NDYwNTQxNTE5MjEsIC0wLjk5ODM0NjA1NDE1MTkyMSwgLTAuMDU3NDkwNDg3NTU0ODA5MywgMCwg
MCkiKTsKKyAJICAgIGNvbXBhcmVWYWx1ZSgidHJhbnNmb3JtIiwgInJvdGF0ZShjYWxjKDFyYWQg
KyAwLjV0dXJuKSkiLCAibWF0cml4KC0wLjU0MDMwMjMwNTg2ODE0LCAtMC44NDE0NzA5ODQ4MDc4
OTYsIDAuODQxNDcwOTg0ODA3ODk2LCAtMC41NDAzMDIzMDU4NjgxNCwgMCwgMCkiKTsKKyAJICAg
IGNvbXBhcmVWYWx1ZSgidHJhbnNmb3JtIiwgInJvdGF0ZShjYWxjKDQ1Z3JhZCArIDQ1Z3JhZCkp
IiwgInJvdGF0ZSg5MGdyYWQpIik7CisgCSAgICBjb21wYXJlVmFsdWUoInRyYW5zZm9ybSIsICJy
b3RhdGUoY2FsYygxMGdyYWQgKyAwLjV0dXJuKSkiLCAicm90YXRlKDE4OWRlZykiKTsKKyAJCisg
CSAgICBjb21wYXJlVmFsdWUoInRyYW5zZm9ybSIsICJyb3RhdGUoY2FsYyg0NWRlZyAtIDE1ZGVn
KSkiLCAicm90YXRlKDMwZGVnKSIpOworIAkgICAgY29tcGFyZVZhbHVlKCJ0cmFuc2Zvcm0iLCAi
cm90YXRlKGNhbGMoOTBkZWcgLSAxcmFkKSkiLCAibWF0cml4KDAuODQxNDcwOTg0ODA3ODk3LCAw
LjU0MDMwMjMwNTg2ODE0LCAtMC41NDAzMDIzMDU4NjgxNCwgMC44NDE0NzA5ODQ4MDc4OTcsIDAs
IDApIik7CisJICAgIGNvbXBhcmVWYWx1ZSgidHJhbnNmb3JtIiwgInJvdGF0ZShjYWxjKDM4ZGVn
IC0gMjBncmFkKSkiLCAicm90YXRlKDIwZGVnKSIpOworCSAgICBjb21wYXJlVmFsdWUoInRyYW5z
Zm9ybSIsICJyb3RhdGUoY2FsYygzNjBkZWcgLSAwLjV0dXJuKSkiLCAicm90YXRlKDE4MGRlZyki
KTsKKwkgICAgY29tcGFyZVZhbHVlKCJ0cmFuc2Zvcm0iLCAicm90YXRlKGNhbGMoNDVyYWQgLSAx
NXJhZCkpIiwgInJvdGF0ZSgzMHJhZCkiKTsKKwkgICAgY29tcGFyZVZhbHVlKCJ0cmFuc2Zvcm0i
LCAicm90YXRlKGNhbGMoMzByYWQgLSAxMGdyYWQpKSIsICJtYXRyaXgoLTAuOTU1NzI4MDEzMjAx
NjEzLCAwLjI5NDI1MTUzMzE4NDk1NiwgLTAuMjk0MjUxNTMzMTg0OTU2LCAtMC45NTU3MjgwMTMy
MDE2MTMsIDAsIDApIik7CisgCSAgICBjb21wYXJlVmFsdWUoInRyYW5zZm9ybSIsICJyb3RhdGUo
Y2FsYyg0cmFkIC0gMC4xdHVybikpIiwgIm1hdHJpeCgtMC45NzM2NDYxNDMxODM1ODEsIC0wLjIy
ODA2Mzk5OTQ5MDc5NywgMC4yMjgwNjM5OTk0OTA3OTcsIC0wLjk3MzY0NjE0MzE4MzU4MSwgMCwg
MCkiKTsKKyAgICAgICAgY29tcGFyZVZhbHVlKCJ0cmFuc2Zvcm0iLCAicm90YXRlKGNhbGMoNDVn
cmFkIC0gMTVncmFkKSkiLCAicm90YXRlKDMwZ3JhZCkiKTsKKwkgICAgY29tcGFyZVZhbHVlKCJ0
cmFuc2Zvcm0iLCAicm90YXRlKGNhbGMoMTAwZ3JhZCAtIDAuMjV0dXJuKSkiLCAicm90YXRlKDBk
ZWcpIik7CisJCisJICAgIGNvbXBhcmVWYWx1ZSgidHJhbnNmb3JtIiwgInJvdGF0ZShjYWxjKDQ1
ZGVnICogMikpIiwgInJvdGF0ZSg5MGRlZykiKTsKKwkgICAgY29tcGFyZVZhbHVlKCJ0cmFuc2Zv
cm0iLCAicm90YXRlKGNhbGMoMiAqIDQ1cmFkKSkiLCAicm90YXRlKDkwcmFkKSIpOworCSAgICBj
b21wYXJlVmFsdWUoInRyYW5zZm9ybSIsICJyb3RhdGUoY2FsYyg0NWdyYWQgKiAyKSkiLCAicm90
YXRlKDkwZ3JhZCkiKTsKKwkgICAgY29tcGFyZVZhbHVlKCJ0cmFuc2Zvcm0iLCAicm90YXRlKGNh
bGMoMiAqIDQ1dHVybikpIiwgInJvdGF0ZSg5MHR1cm4pIik7CisJCisJICAgIGNvbXBhcmVWYWx1
ZSgidHJhbnNmb3JtIiwgInJvdGF0ZShjYWxjKDkwZGVnIC8gMikpIiwgInJvdGF0ZSg0NWRlZyki
KTsKKwkgICAgY29tcGFyZVZhbHVlKCJ0cmFuc2Zvcm0iLCAicm90YXRlKGNhbGMoOTByYWQgLyAy
KSkiLCAicm90YXRlKDQ1cmFkKSIpOworCSAgICBjb21wYXJlVmFsdWUoInRyYW5zZm9ybSIsICJy
b3RhdGUoY2FsYyg5MGdyYWQgLyAyKSkiLCAicm90YXRlKDQ1Z3JhZCkiKTsKKwkgICAgY29tcGFy
ZVZhbHVlKCJ0cmFuc2Zvcm0iLCAicm90YXRlKGNhbGMoOTB0dXJuIC8gMikpIiwgInJvdGF0ZSg0
NXR1cm4pIik7CisJfSwgIlRlc3RzIGNhbGMoKSB3aXRoIGFuZ2xlIHVuaXRzLiIpOworCQorCXRl
c3QoZnVuY3Rpb24oKSB7CisJICAgIC8vIE5PVEU6IFNpbmNlIHRoZXJlIGlzIG5vIENTUyBwcm9w
ZXJ0eSB0aGF0IHVzZXMgZnJlcXVlbmN5IGF0IHRoZSBtb21lbnQgd2Ugb25seSB0ZXN0IHRoZSBw
YXJzaW5nLgorCSAgICBjb21wYXJlVmFsdWUoInBpdGNoIiwgImNhbGMoMTBIeiArIDIwSHopIiwg
bnVsbCk7CisJICAgIGNvbXBhcmVWYWx1ZSgicGl0Y2giLCAiY2FsYygxMGtIeiArIDIwa0h6KSIs
IG51bGwpOworCSAgICBjb21wYXJlVmFsdWUoInBpdGNoIiwgImNhbGMoMTBrSHogKyAyMEh6KSIs
IG51bGwpOworCSAgICBjb21wYXJlVmFsdWUoInBpdGNoIiwgImNhbGMoMjBIeiAtIDEwSHopIiwg
bnVsbCk7CisJICAgIGNvbXBhcmVWYWx1ZSgicGl0Y2giLCAiY2FsYygyMGtIeiAtIDEwa0h6KSIs
IG51bGwpOworCSAgICBjb21wYXJlVmFsdWUoInBpdGNoIiwgImNhbGMoMjBrSHogLSAxMEh6KSIs
IG51bGwpOworCSAgICBjb21wYXJlVmFsdWUoInBpdGNoIiwgImNhbGMoMTBIeiAqIDIpIiwgbnVs
bCk7CisJICAgIGNvbXBhcmVWYWx1ZSgicGl0Y2giLCAiY2FsYygxMGtIeiAqIDIpIiwgbnVsbCk7
CisJICAgIGNvbXBhcmVWYWx1ZSgicGl0Y2giLCAiY2FsYygxMEh6IC8gMikiLCBudWxsKTsKKwkg
ICAgY29tcGFyZVZhbHVlKCJwaXRjaCIsICJjYWxjKDEwa0h6IC8gMikiLCBudWxsKTsKKwl9LCAi
VGVzdHMgY2FsYygpIHdpdGggZnJlcXVlbmN5IHVuaXRzLiIpOworCQorCXRlc3QoZnVuY3Rpb24o
KSB7CisJICAgIGNvbXBhcmVWYWx1ZSgidHJhbnNpdGlvbi1kZWxheSIsICJjYWxjKDQwMDBtcyki
LCAiNHMiKTsKKwkgICAgY29tcGFyZVZhbHVlKCJ0cmFuc2Zvcm0iLCAicm90YXRlKGNhbGMoNTBn
cmFkKSIsICJyb3RhdGUoNDVkZWcpIik7CisJfSwgIlRlc3RzIHVuaXQgY29udmVyc2lvbiBvZiBz
aW5nbGUgdmFsdWVzIGluIGNhbGMoKS4iKTsKKwk8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhkY2U0My4uNDY1ZmEzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI4IEBACisyMDE0LTExLTA0ICBUaWJvciBNZXN6YXJvcyAgPHRtZXN6YXJvcy51LXN6
ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAgIENvbnZlcnRpbmcgdGltZSwgYW5n
bGUgYW5kIGZyZXF1ZW5jeSB1bml0cyBpbiBDU1MgY2FsYygpIGZ1bmN0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgzNTYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZXJnZWQgZnJvbSBCbGluayAo
UGF0Y2ggYnkgUmVuYXRhIEhvZG92YW4pOgorICAgICAgICBodHRwczovL2NvZGVyZXZpZXcuY2hy
b21pdW0ub3JnLzM0NTkwMzAwNS8KKworICAgICAgICBUZXN0OiBjc3MzL2NhbGMvY2FsYy13aXRo
LXRpbWUtYW5nbGUtYW5kLWZyZXF1ZW5jeS12YWx1ZXMuaHRtbAorCisgICAgICAgICogY3NzL0NT
U0NhbGN1bGF0aW9uVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNWYWx1ZTo6cHJp
bWl0aXZlVHlwZSk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlRGVncmVlcyk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZVNlY29uZHMpOgorICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6OmNvbXB1dGVUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVG9TdHlsZU1h
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25EZWxh
eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25EdXJhdGlv
bik6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbHlQcm9wZXJ0eU1hcnF1ZWVTcGVlZDo6YXBwbHlWYWx1ZSk6CisKIDIwMTQt
MTEtMDQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRl
clF1b3RlIHNob3VsZG4ndCBuZWVkIGEgcHJlLWRlc3RydWN0b3IgaG9vay4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5oCmluZGV4IGZjMDQ0M2YuLjE0MmM0NzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuaApAQCAtOTQsNiArOTQsNyBAQCBw
dWJsaWM6CiAgICAgZG91YmxlIGRvdWJsZVZhbHVlKCkgY29uc3Q7CiAgICAgYm9vbCBpc05lZ2F0
aXZlKCkgY29uc3QgeyByZXR1cm4gbV9leHByZXNzaW9uLT5kb3VibGVWYWx1ZSgpIDwgMDsgfQog
ICAgIGRvdWJsZSBjb21wdXRlTGVuZ3RoUHgoY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YSYpIGNvbnN0OworICAgIHVuc2lnbmVkIHNob3J0IHByaW1pdGl2ZVR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX2V4cHJlc3Npb24tPnByaW1pdGl2ZVR5cGUoKTsgfQogCiAgICAgUGFzc1JlZjxDYWxj
dWxhdGlvblZhbHVlPiBjcmVhdGVDYWxjdWxhdGlvblZhbHVlKGNvbnN0IENTU1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5jcHAKaW5kZXggYjdiMzU0Ny4uNTExMjhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuY3BwCkBAIC01MzYsNyArNTM2LDggQEAgdm9pZCBDU1NQcmltaXRpdmVWYWx1
ZTo6Y2xlYW51cCgpCiAKIGRvdWJsZSBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZURlZ3JlZXMo
KQogewotICAgIHN3aXRjaCAobV9wcmltaXRpdmVVbml0VHlwZSkgeworICAgIEFTU0VSVChpc0Fu
Z2xlKCkgfHwgKGlzQ2FsY3VsYXRlZCgpICYmIGNzc0NhbGNWYWx1ZSgpLT5jYXRlZ29yeSgpID09
IENhbGNBbmdsZSkpOworICAgIHN3aXRjaCAoaXNDYWxjdWxhdGVkKCkgPyBjc3NDYWxjVmFsdWUo
KS0+cHJpbWl0aXZlVHlwZSgpIDogbV9wcmltaXRpdmVVbml0VHlwZSkgewogICAgIGNhc2UgQ1NT
X0RFRzoKICAgICAgICAgcmV0dXJuIGdldERvdWJsZVZhbHVlKCk7CiAgICAgY2FzZSBDU1NfUkFE
OgpAQCAtNTUxLDYgKzU1MiwyMCBAQCBkb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVE
ZWdyZWVzKCkKICAgICB9CiB9CiAKK2RvdWJsZSBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZVNl
Y29uZHMoKQoreworICAgIEFTU0VSVChpc1RpbWUoKSB8fCAoaXNDYWxjdWxhdGVkKCkgJiYgY3Nz
Q2FsY1ZhbHVlKCktPmNhdGVnb3J5KCkgPT0gQ2FsY1RpbWUpKTsKKyAgICBzd2l0Y2ggKGlzQ2Fs
Y3VsYXRlZCgpID8gY3NzQ2FsY1ZhbHVlKCktPnByaW1pdGl2ZVR5cGUoKSA6IG1fcHJpbWl0aXZl
VW5pdFR5cGUpIHsKKyAgICBjYXNlIENTU19TOgorICAgICAgICByZXR1cm4gZ2V0RG91YmxlVmFs
dWUoKTsKKyAgICBjYXNlIENTU19NUzoKKyAgICAgICAgcmV0dXJuIGdldERvdWJsZVZhbHVlKCkg
LyAxMDAwOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisKIHRlbXBsYXRlPD4gaW50IENTU1ByaW1pdGl2ZVZh
bHVlOjpjb21wdXRlTGVuZ3RoKGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZl
cnNpb25EYXRhKSBjb25zdAogewogICAgIHJldHVybiByb3VuZEZvckltcHJlY2lzZUNvbnZlcnNp
b248aW50Pihjb21wdXRlTGVuZ3RoRG91YmxlKGNvbnZlcnNpb25EYXRhKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4IDA5NGY4YjYuLjFhMmE4N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCkBAIC0yNTYsMjAgKzI1Niw3IEBAIHB1Ymxp
YzoKIAogICAgIGRvdWJsZSBjb21wdXRlRGVncmVlcygpOwogCi0gICAgZW51bSBUaW1lVW5pdCB7
IFNlY29uZHMsIE1pbGxpc2Vjb25kcyB9OwotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBUaW1l
VW5pdCB0aW1lVW5pdD4gVCBjb21wdXRlVGltZSgpCi0gICAgewotICAgICAgICBpZiAodGltZVVu
aXQgPT0gU2Vjb25kcyAmJiBtX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19TKQotICAgICAgICAg
ICAgcmV0dXJuIGdldFZhbHVlPFQ+KCk7Ci0gICAgICAgIGlmICh0aW1lVW5pdCA9PSBTZWNvbmRz
ICYmIG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX01TKQotICAgICAgICAgICAgcmV0dXJuIGdl
dFZhbHVlPFQ+KCkgLyAxMDAwOwotICAgICAgICBpZiAodGltZVVuaXQgPT0gTWlsbGlzZWNvbmRz
ICYmIG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX01TKQotICAgICAgICAgICAgcmV0dXJuIGdl
dFZhbHVlPFQ+KCk7Ci0gICAgICAgIGlmICh0aW1lVW5pdCA9PSBNaWxsaXNlY29uZHMgJiYgbV9w
cmltaXRpdmVVbml0VHlwZSA9PSBDU1NfUykKLSAgICAgICAgICAgIHJldHVybiBnZXRWYWx1ZTxU
PigpICogMTAwMDsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
biAwOwotICAgIH0KKyAgICBkb3VibGUgY29tcHV0ZVNlY29uZHMoKTsKIAogICAgIC8qCiAgICAg
ICogY29tcHV0ZXMgYSBsZW5ndGggaW4gcGl4ZWxzIG91dCBvZiB0aGUgZ2l2ZW4gQ1NTVmFsdWUu
IE5lZWQgdGhlIFJlbmRlclN0eWxlIHRvIGdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1RvU3R5bGVNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAu
Y3BwCmluZGV4IDAxNmYzMzIuLjg4OWZkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NUb1N0eWxlTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1h
cC5jcHAKQEAgLTMzNSw3ICszMzUsNyBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlv
bkRlbGF5KEFuaW1hdGlvbiogYW5pbWF0aW9uLCBDU1NWYWx1ZSYgdmFsdWUpCiAgICAgaWYgKCFp
czxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhbmlt
YXRpb24tPnNldERlbGF5KGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkuY29tcHV0
ZVRpbWU8ZG91YmxlLCBDU1NQcmltaXRpdmVWYWx1ZTo6U2Vjb25kcz4oKSk7CisgICAgYW5pbWF0
aW9uLT5zZXREZWxheShkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpLmNvbXB1dGVT
ZWNvbmRzKCkpOwogfQogCiB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvbkRpcmVjdGlv
bihBbmltYXRpb24qIGxheWVyLCBDU1NWYWx1ZSYgdmFsdWUpCkBAIC0zNzYsNyArMzc2LDcgQEAg
dm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25EdXJhdGlvbihBbmltYXRpb24qIGFuaW1h
dGlvbiwgQ1NTVmFsdWUmIHZhbHVlKQogICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KHZh
bHVlKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYW5pbWF0aW9uLT5zZXREdXJhdGlvbihkb3du
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpLmNvbXB1dGVUaW1lPGRvdWJsZSwgQ1NTUHJp
bWl0aXZlVmFsdWU6OlNlY29uZHM+KCkpOworICAgIGFuaW1hdGlvbi0+c2V0RHVyYXRpb24oZG93
bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS5jb21wdXRlU2Vjb25kcygpKTsKIH0KIAog
dm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25GaWxsTW9kZShBbmltYXRpb24qIGxheWVy
LCBDU1NWYWx1ZSYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZFN0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxl
QnVpbGRlci5jcHAKaW5kZXggZTcyN2VkMi4uNGRlMDdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcApAQCAtMTEwMCw3ICsxMTAwLDcgQEAgcHVi
bGljOgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVs
c2UgaWYgKHByaW1pdGl2ZVZhbHVlLmlzVGltZSgpKQotICAgICAgICAgICAgc3R5bGVSZXNvbHZl
ci0+c3R5bGUoKS0+c2V0TWFycXVlZVNwZWVkKHByaW1pdGl2ZVZhbHVlLmNvbXB1dGVUaW1lPGlu
dCwgQ1NTUHJpbWl0aXZlVmFsdWU6Ok1pbGxpc2Vjb25kcz4oKSk7CisgICAgICAgICAgICBzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRNYXJxdWVlU3BlZWQoc3RhdGljX2Nhc3Q8aW50Pihwcmlt
aXRpdmVWYWx1ZS5jb21wdXRlU2Vjb25kcygpKSAqIDEwMDApOwogICAgICAgICBlbHNlIGlmIChw
cmltaXRpdmVWYWx1ZS5pc051bWJlcigpKSAvLyBGb3Igc2Nyb2xsYW1vdW50IHN1cHBvcnQuCiAg
ICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRNYXJxdWVlU3BlZWQocHJpbWl0
aXZlVmFsdWUuZ2V0SW50VmFsdWUoKSk7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244818</attachid>
            <date>2015-01-16 16:34:51 -0800</date>
            <delta_ts>2015-01-17 09:18:22 -0800</delta_ts>
            <desc>Alternative patch</desc>
            <filename>138356_deg_time_calc.patch</filename>
            <type>text/plain</type>
            <size>14055</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ZTUyMDQ1Li5hOWNmZGYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTUtMDEt
MTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0aW5n
IHRpbWUsIGFuZ2xlIGFuZCBmcmVxdWVuY3kgdW5pdHMgaW4gQ1NTIGNhbGMoKSBmdW5jdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MzU2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGZh
c3QvY3NzL2NhbGMtd2l0aC1hbmdsZS10aW1lLWZyZXF1ZW5jeS5odG1sIHRvIGluY2x1ZGUgbW9y
ZQorICAgICAgICB0ZXN0IGNhc2VzIGFuZCBhY3R1YWxseSB2YWxpZGF0ZSB0aGUgcmVzdWx0IG9m
IHRoZSBjYWxjdWxhdGlvbiwKKyAgICAgICAgaW5zdGVhZCBvZiBtZXJlbHkgc2V0dGluZyB0aGUg
Q1NTIHByb3BlcnR5IGFuZCBiZWluZyBoYXBweSBpZiB3ZSBkb24ndAorICAgICAgICBjcmFzaC4K
KworICAgICAgICAqIGZhc3QvY3NzL2NhbGMtd2l0aC1hbmdsZS10aW1lLWZyZXF1ZW5jeS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvY2FsYy13aXRoLWFuZ2xlLXRpbWUtZnJlcXVl
bmN5Lmh0bWw6CisKIDIwMTUtMDEtMTYgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIHRoZSBhbHRlcm5hdGl2ZSBzeW50YXggZm9yIENTUyBTZWxl
Y3RvcidzIGRlc2NlbmRhbnQgY29tYmluYXRvciAoIj4+IikKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2NhbGMtd2l0aC1hbmdsZS10aW1lLWZyZXF1ZW5jeS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jYWxjLXdpdGgtYW5nbGUtdGltZS1mcmVxdWVuY3ktZXhw
ZWN0ZWQudHh0CmluZGV4IDY1NGRkZjcuLmE5M2I0ZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2NhbGMtd2l0aC1hbmdsZS10aW1lLWZyZXF1ZW5jeS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY2FsYy13aXRoLWFuZ2xlLXRpbWUtZnJlcXVlbmN5LWV4
cGVjdGVkLnR4dApAQCAtMSArMSw2MCBAQAotVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5v
dCBjcmFzaC4KK1Rlc3RzIHRoYXQgdXNpbmcgYW5nbGUsIHRpbWUgYW5kIGZyZXF1ZW5jeSB1bml0
cyBpbiBjYWxjKCkgaXMgd29ya2luZyBhcyBpbnRlbmRlZC4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK3Rlc3REaXYuc3R5bGVbJy13ZWJraXQtZmlsdGVyJ10gPSAnaHVlLXJvdGF0
ZShjYWxjKDMwMGRlZy8yKSknCitQQVNTIHRlc3REaXYuc3R5bGVbJy13ZWJraXQtZmlsdGVyJ10g
aXMgImh1ZS1yb3RhdGUoY2FsYygxNTBkZWcpKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUodGVzdERpdikuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSBpcyAiaHVlLXJv
dGF0ZSgxNTBkZWcpIgordGVzdERpdi5zdHlsZVsnLXdlYmtpdC1maWx0ZXInXSA9ICdodWUtcm90
YXRlKGNhbGMoMzAwcmFkLzIpKScKK1BBU1MgdGVzdERpdi5zdHlsZVsnLXdlYmtpdC1maWx0ZXIn
XSBpcyAiaHVlLXJvdGF0ZShjYWxjKDE1MHJhZCkpIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0ZXN0RGl2KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIGlzICJodWUt
cm90YXRlKDg1OTQuMzY2OTI2OTYyMzQ4ZGVnKSIKK3Rlc3REaXYuc3R5bGVbJy13ZWJraXQtZmls
dGVyJ10gPSAnaHVlLXJvdGF0ZShjYWxjKDMwMGdyYWQvMikpJworUEFTUyB0ZXN0RGl2LnN0eWxl
Wyctd2Via2l0LWZpbHRlciddIGlzICJodWUtcm90YXRlKGNhbGMoMTUwZ3JhZCkpIgorUEFTUyB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RGl2KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWZpbHRlcicpIGlzICJodWUtcm90YXRlKDEzNWRlZykiCit0ZXN0RGl2LnN0eWxlWyctd2Via2l0
LWZpbHRlciddID0gJ2h1ZS1yb3RhdGUoY2FsYygzdHVybi8yKSknCitQQVNTIHRlc3REaXYuc3R5
bGVbJy13ZWJraXQtZmlsdGVyJ10gaXMgImh1ZS1yb3RhdGUoY2FsYygxLjV0dXJuKSkiCitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZmlsdGVyJykgaXMgImh1ZS1yb3RhdGUoNTQwZGVnKSIKK3Rlc3REaXYuc3R5bGVbJy13ZWJr
aXQtZmlsdGVyJ10gPSAnaHVlLXJvdGF0ZShjYWxjKDF0dXJuICsgMTBkZWcpKScKK1BBU1MgdGVz
dERpdi5zdHlsZVsnLXdlYmtpdC1maWx0ZXInXSBpcyAiaHVlLXJvdGF0ZShjYWxjKDM3MGRlZykp
IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RGl2KS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWZpbHRlcicpIGlzICJodWUtcm90YXRlKDM3MGRlZykiCit0ZXN0RGl2LnN0eWxl
Wyctd2Via2l0LWZpbHRlciddID0gJ2h1ZS1yb3RhdGUoY2FsYygzMDBkZWcgKyAzMGRlZykpJwor
UEFTUyB0ZXN0RGl2LnN0eWxlWyctd2Via2l0LWZpbHRlciddIGlzICJodWUtcm90YXRlKGNhbGMo
MzMwZGVnKSkiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgImh1ZS1yb3RhdGUoMzMwZGVnKSIKK3Rlc3RE
aXYuc3R5bGVbJy13ZWJraXQtZmlsdGVyJ10gPSAnaHVlLXJvdGF0ZShjYWxjKDJ0dXJuICsgMXR1
cm4pKScKK1BBU1MgdGVzdERpdi5zdHlsZVsnLXdlYmtpdC1maWx0ZXInXSBpcyAiaHVlLXJvdGF0
ZShjYWxjKDN0dXJuKSkiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykgaXMgImh1ZS1yb3RhdGUoMTA4MGRlZyki
Cit0ZXN0RGl2LnN0eWxlWyd0cmFuc2l0aW9uLWRlbGF5J10gPSAnY2FsYygzMDBtcy8yKScKK1BB
U1MgdGVzdERpdi5zdHlsZVsndHJhbnNpdGlvbi1kZWxheSddIGlzICJjYWxjKDE1MG1zKSIKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdERpdikuZ2V0UHJvcGVydHlWYWx1ZSgndHJh
bnNpdGlvbi1kZWxheScpIGlzICIwLjE1cyIKK3Rlc3REaXYuc3R5bGVbJ3RyYW5zaXRpb24tZGVs
YXknXSA9ICdjYWxjKDMwMHMvMiknCitQQVNTIHRlc3REaXYuc3R5bGVbJ3RyYW5zaXRpb24tZGVs
YXknXSBpcyAiY2FsYygxNTBzKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdERp
dikuZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNpdGlvbi1kZWxheScpIGlzICIxNTBzIgordGVzdERp
di5zdHlsZVsndHJhbnNpdGlvbi1kZWxheSddID0gJ2NhbGMoMTBzICsgMTAwbXMpJworUEFTUyB0
ZXN0RGl2LnN0eWxlWyd0cmFuc2l0aW9uLWRlbGF5J10gaXMgImNhbGMoMTAxMDBtcykiCitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYpLmdldFByb3BlcnR5VmFsdWUoJ3RyYW5z
aXRpb24tZGVsYXknKSBpcyAiMTAuMXMiCit0ZXN0RGl2LnN0eWxlWyd0cmFuc2l0aW9uLWRlbGF5
J10gPSAnY2FsYygxMDBtcyArIDEwcyknCitQQVNTIHRlc3REaXYuc3R5bGVbJ3RyYW5zaXRpb24t
ZGVsYXknXSBpcyAiY2FsYygxMDEwMG1zKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
dGVzdERpdikuZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNpdGlvbi1kZWxheScpIGlzICIxMC4xcyIK
K3Rlc3REaXYuc3R5bGVbJ3RyYW5zaXRpb24tZGVsYXknXSA9ICdjYWxjKDRzICsgMXMpJworUEFT
UyB0ZXN0RGl2LnN0eWxlWyd0cmFuc2l0aW9uLWRlbGF5J10gaXMgImNhbGMoNXMpIgorUEFTUyB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RGl2KS5nZXRQcm9wZXJ0eVZhbHVlKCd0cmFuc2l0
aW9uLWRlbGF5JykgaXMgIjVzIgordGVzdERpdi5zdHlsZVsndHJhbnNpdGlvbi1kZWxheSddID0g
J2NhbGMoNG1zICsgMW1zKScKK1BBU1MgdGVzdERpdi5zdHlsZVsndHJhbnNpdGlvbi1kZWxheSdd
IGlzICJjYWxjKDVtcykiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYpLmdl
dFByb3BlcnR5VmFsdWUoJ3RyYW5zaXRpb24tZGVsYXknKSBpcyAiMC4wMDVzIgordGVzdERpdi5z
dHlsZVsnd2lkdGgnXSA9ICdjYWxjKDMwMEh6LzIpJworUEFTUyB0ZXN0RGl2LnN0eWxlWyd3aWR0
aCddIGlzICIiCit0ZXN0RGl2LnN0eWxlWyd3aWR0aCddID0gJ2NhbGMoMzAwa0h6LzIpJworUEFT
UyB0ZXN0RGl2LnN0eWxlWyd3aWR0aCddIGlzICIiCit0ZXN0RGl2LnN0eWxlWyd3aWR0aCddID0g
J2NhbGMoMTBIeiArIDIwSHopJworUEFTUyB0ZXN0RGl2LnN0eWxlWyd3aWR0aCddIGlzICIiCit0
ZXN0RGl2LnN0eWxlWyd3aWR0aCddID0gJ2NhbGMoMTBrSHogKyAyMGtIeiknCitQQVNTIHRlc3RE
aXYuc3R5bGVbJ3dpZHRoJ10gaXMgIiIKK3Rlc3REaXYuc3R5bGVbJ3dpZHRoJ10gPSAnY2FsYygx
MGtIeiArIDIwMEh6KScKK1BBU1MgdGVzdERpdi5zdHlsZVsnd2lkdGgnXSBpcyAiIgordGVzdERp
di5zdHlsZVsnd2lkdGgnXSA9ICdjYWxjKDIwMEh6ICsgMTBrSHopJworUEFTUyB0ZXN0RGl2LnN0
eWxlWyd3aWR0aCddIGlzICIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY2FsYy13aXRo
LWFuZ2xlLXRpbWUtZnJlcXVlbmN5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jYWxjLXdp
dGgtYW5nbGUtdGltZS1mcmVxdWVuY3kuaHRtbAppbmRleCBiNjdlOGE3Li5lOTJmMjQxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jYWxjLXdpdGgtYW5nbGUtdGltZS1mcmVxdWVu
Y3kuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jYWxjLXdpdGgtYW5nbGUtdGltZS1m
cmVxdWVuY3kuaHRtbApAQCAtMSwyNSArMSw4NyBAQAorPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4K
LSAgICA8aGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxkaXYgaWQ9InRlc3REaXYi
PjwvZGl2PgogICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAg
ICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNpbmcgYW5nbGUsIHRpbWUgYW5kIGZyZXF1ZW5j
eSB1bml0cyBpbiBjYWxjKCkgaXMgd29ya2luZyBhcyBpbnRlbmRlZC4iKTsKKworICAgICAgICAg
ICAgdmFyIHRlc3REaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdERpdiIpOworCisg
ICAgICAgICAgICAvLyBBbmdsZSB1bml0cy4KKyAgICAgICAgICAgIGV2YWxBbmRMb2coInRlc3RE
aXYuc3R5bGVbJy13ZWJraXQtZmlsdGVyJ10gPSAnaHVlLXJvdGF0ZShjYWxjKDMwMGRlZy8yKSkn
Iik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3REaXYuc3R5bGVbJy13
ZWJraXQtZmlsdGVyJ10iLCAiaHVlLXJvdGF0ZShjYWxjKDE1MGRlZykpIik7CisgICAgICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykiLCAiaHVlLXJvdGF0ZSgxNTBkZWcp
Iik7CisKKyAgICAgICAgICAgIGV2YWxBbmRMb2coInRlc3REaXYuc3R5bGVbJy13ZWJraXQtZmls
dGVyJ10gPSAnaHVlLXJvdGF0ZShjYWxjKDMwMHJhZC8yKSknIik7CisgICAgICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInRlc3REaXYuc3R5bGVbJy13ZWJraXQtZmlsdGVyJ10iLCAiaHVl
LXJvdGF0ZShjYWxjKDE1MHJhZCkpIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZmlsdGVyJykiLCAiaHVlLXJvdGF0ZSg4NTk0LjM2NjkyNjk2MjM0OGRlZykiKTsKKwor
ICAgICAgICAgICAgZXZhbEFuZExvZygidGVzdERpdi5zdHlsZVsnLXdlYmtpdC1maWx0ZXInXSA9
ICdodWUtcm90YXRlKGNhbGMoMzAwZ3JhZC8yKSknIik7CisgICAgICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInRlc3REaXYuc3R5bGVbJy13ZWJraXQtZmlsdGVyJ10iLCAiaHVlLXJvdGF0
ZShjYWxjKDE1MGdyYWQpKSIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RGl2KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWZpbHRlcicpIiwgImh1ZS1yb3RhdGUoMTM1ZGVnKSIpOworCisgICAgICAgICAgICBldmFsQW5k
TG9nKCJ0ZXN0RGl2LnN0eWxlWyctd2Via2l0LWZpbHRlciddID0gJ2h1ZS1yb3RhdGUoY2FsYygz
dHVybi8yKSknIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3REaXYu
c3R5bGVbJy13ZWJraXQtZmlsdGVyJ10iLCAiaHVlLXJvdGF0ZShjYWxjKDEuNXR1cm4pKSIpOwor
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0ZXN0RGl2KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIiwgImh1ZS1yb3Rh
dGUoNTQwZGVnKSIpOworCisgICAgICAgICAgICBldmFsQW5kTG9nKCJ0ZXN0RGl2LnN0eWxlWyct
d2Via2l0LWZpbHRlciddID0gJ2h1ZS1yb3RhdGUoY2FsYygxdHVybiArIDEwZGVnKSknIik7Cisg
ICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3REaXYuc3R5bGVbJy13ZWJraXQt
ZmlsdGVyJ10iLCAiaHVlLXJvdGF0ZShjYWxjKDM3MGRlZykpIik7CisgICAgICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykiLCAiaHVlLXJvdGF0ZSgzNzBkZWcpIik7CisK
KyAgICAgICAgICAgIGV2YWxBbmRMb2coInRlc3REaXYuc3R5bGVbJy13ZWJraXQtZmlsdGVyJ10g
PSAnaHVlLXJvdGF0ZShjYWxjKDMwMGRlZyArIDMwZGVnKSknIik7CisgICAgICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInRlc3REaXYuc3R5bGVbJy13ZWJraXQtZmlsdGVyJ10iLCAiaHVl
LXJvdGF0ZShjYWxjKDMzMGRlZykpIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZmlsdGVyJykiLCAiaHVlLXJvdGF0ZSgzMzBkZWcpIik7CisKKyAgICAgICAgICAgIGV2
YWxBbmRMb2coInRlc3REaXYuc3R5bGVbJy13ZWJraXQtZmlsdGVyJ10gPSAnaHVlLXJvdGF0ZShj
YWxjKDJ0dXJuICsgMXR1cm4pKSciKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygidGVzdERpdi5zdHlsZVsnLXdlYmtpdC1maWx0ZXInXSIsICJodWUtcm90YXRlKGNhbGMoM3R1
cm4pKSIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZSh0ZXN0RGl2KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpIiwg
Imh1ZS1yb3RhdGUoMTA4MGRlZykiKTsKKworICAgICAgICAgICAgLy8gVGltZSB1bml0cy4KKyAg
ICAgICAgICAgIGV2YWxBbmRMb2coInRlc3REaXYuc3R5bGVbJ3RyYW5zaXRpb24tZGVsYXknXSA9
ICdjYWxjKDMwMG1zLzIpJyIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0
ZXN0RGl2LnN0eWxlWyd0cmFuc2l0aW9uLWRlbGF5J10iLCAiY2FsYygxNTBtcykiKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUodGVz
dERpdikuZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNpdGlvbi1kZWxheScpIiwgIjAuMTVzIik7CisK
KyAgICAgICAgICAgIGV2YWxBbmRMb2coInRlc3REaXYuc3R5bGVbJ3RyYW5zaXRpb24tZGVsYXkn
XSA9ICdjYWxjKDMwMHMvMiknIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InRlc3REaXYuc3R5bGVbJ3RyYW5zaXRpb24tZGVsYXknXSIsICJjYWxjKDE1MHMpIik7CisgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRl
c3REaXYpLmdldFByb3BlcnR5VmFsdWUoJ3RyYW5zaXRpb24tZGVsYXknKSIsICIxNTBzIik7CisK
KyAgICAgICAgICAgIGV2YWxBbmRMb2coInRlc3REaXYuc3R5bGVbJ3RyYW5zaXRpb24tZGVsYXkn
XSA9ICdjYWxjKDEwcyArIDEwMG1zKSciKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygidGVzdERpdi5zdHlsZVsndHJhbnNpdGlvbi1kZWxheSddIiwgImNhbGMoMTAxMDBtcyki
KTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVk
U3R5bGUodGVzdERpdikuZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNpdGlvbi1kZWxheScpIiwgIjEw
LjFzIik7CisKKyAgICAgICAgICAgIGV2YWxBbmRMb2coInRlc3REaXYuc3R5bGVbJ3RyYW5zaXRp
b24tZGVsYXknXSA9ICdjYWxjKDEwMG1zICsgMTBzKSciKTsKKyAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygidGVzdERpdi5zdHlsZVsndHJhbnNpdGlvbi1kZWxheSddIiwgImNhbGMo
MTAxMDBtcykiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93Lmdl
dENvbXB1dGVkU3R5bGUodGVzdERpdikuZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNpdGlvbi1kZWxh
eScpIiwgIjEwLjFzIik7CisKKyAgICAgICAgICAgIGV2YWxBbmRMb2coInRlc3REaXYuc3R5bGVb
J3RyYW5zaXRpb24tZGVsYXknXSA9ICdjYWxjKDRzICsgMXMpJyIpOworICAgICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0RGl2LnN0eWxlWyd0cmFuc2l0aW9uLWRlbGF5J10iLCAi
Y2FsYyg1cykiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93Lmdl
dENvbXB1dGVkU3R5bGUodGVzdERpdikuZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNpdGlvbi1kZWxh
eScpIiwgIjVzIik7CisKKyAgICAgICAgICAgIGV2YWxBbmRMb2coInRlc3REaXYuc3R5bGVbJ3Ry
YW5zaXRpb24tZGVsYXknXSA9ICdjYWxjKDRtcyArIDFtcyknIik7CisgICAgICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInRlc3REaXYuc3R5bGVbJ3RyYW5zaXRpb24tZGVsYXknXSIsICJj
YWxjKDVtcykiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93Lmdl
dENvbXB1dGVkU3R5bGUodGVzdERpdikuZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNpdGlvbi1kZWxh
eScpIiwgIjAuMDA1cyIpOworCisgICAgICAgICAgICAvLyBGcmVxdWVuY3kgdW5pdHMuCisgICAg
ICAgICAgICAvLyBOT1RFOiBTaW5jZSB0aGVyZSBpcyBubyBDU1MgcHJvcGVydHkgdGhhdCB1c2Vz
IGZyZXF1ZW5jeSBhdCB0aGUgbW9tZW50IHdlIG9ubHkgdGVzdCB0aGUgcGFyc2luZy4KKyAgICAg
ICAgICAgIGV2YWxBbmRMb2coInRlc3REaXYuc3R5bGVbJ3dpZHRoJ10gPSAnY2FsYygzMDBIei8y
KSciKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdERpdi5zdHlsZVsn
d2lkdGgnXSIsICIiKTsKKworICAgICAgICAgICAgZXZhbEFuZExvZygidGVzdERpdi5zdHlsZVsn
d2lkdGgnXSA9ICdjYWxjKDMwMGtIei8yKSciKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygidGVzdERpdi5zdHlsZVsnd2lkdGgnXSIsICIiKTsKKworICAgICAgICAgICAgZXZh
bEFuZExvZygidGVzdERpdi5zdHlsZVsnd2lkdGgnXSA9ICdjYWxjKDEwSHogKyAyMEh6KSciKTsK
KyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdERpdi5zdHlsZVsnd2lkdGgn
XSIsICIiKTsKKworICAgICAgICAgICAgZXZhbEFuZExvZygidGVzdERpdi5zdHlsZVsnd2lkdGgn
XSA9ICdjYWxjKDEwa0h6ICsgMjBrSHopJyIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJ0ZXN0RGl2LnN0eWxlWyd3aWR0aCddIiwgIiIpOworCisgICAgICAgICAgICBldmFs
QW5kTG9nKCJ0ZXN0RGl2LnN0eWxlWyd3aWR0aCddID0gJ2NhbGMoMTBrSHogKyAyMDBIeiknIik7
CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3REaXYuc3R5bGVbJ3dpZHRo
J10iLCAiIik7CisKKyAgICAgICAgICAgIGV2YWxBbmRMb2coInRlc3REaXYuc3R5bGVbJ3dpZHRo
J10gPSAnY2FsYygyMDBIeiArIDEwa0h6KSciKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygidGVzdERpdi5zdHlsZVsnd2lkdGgnXSIsICIiKTsKICAgICAgICAgPC9zY3JpcHQ+
Ci0gICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgICogewotICAgICAgICAgICAgICAgIHdpZHRo
OiBjYWxjKDMwMGRlZy8yKTsKLSAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygzMDByYWQvMik7
Ci0gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMzAwZ3JhZC8yKTsKLSAgICAgICAgICAgICAg
ICB3aWR0aDogY2FsYygzMDB0dXJuLzIpOwotCi0gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMo
MzAwbXMvMik7Ci0gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMzAwcy8yKTsKLQotICAgICAg
ICAgICAgICAgIHdpZHRoOiBjYWxjKDMwMGh6LzIpOwotICAgICAgICAgICAgICAgIHdpZHRoOiBj
YWxjKDMwMGtoei8yKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgPC9zdHlsZT4KLSAgICA8L2hl
YWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3Qg
Y3Jhc2guCisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KICAgICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQxMzA4
NS4uNjA0MjA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE1LTAxLTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydGluZyB0aW1lLCBh
bmdsZSBhbmQgZnJlcXVlbmN5IHVuaXRzIGluIENTUyBjYWxjKCkgZnVuY3Rpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODM1NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBDU1NQcmltaXRp
dmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSgpIHRvIGFjdHVhbGx5IHF1ZXJ5IHRoZQorICAgICAgICBw
cmltaXRpdmVUeXBlIG9mIHRoZSBDU1NDYWxjVmFsdWUgaW5zdGVhZCBvZiBhc3N1bWluZyBhIGdp
dmVuCisgICAgICAgIHR5cGUgYmFzZWQgb24gaXRzIGNhdGVnb3J5IChlLmcuIElmIGNhdGVnb3J5
IGlzIENhbGNUaW1lLCB0aGVuCisgICAgICAgIGFzc3VtZSB0eXBlIGlzIENTU19NUywgZXZlbiB0
aG91Z2ggaXQgd291bGQgYmUgQ1NTX1MgYXMgd2VsbCkuCisKKyAgICAgICAgVGhpcyB3b3VsZCBs
aWtlIHRvIGNhbGN1bGF0aW9uIGVycm9ycyBzdWNoIGFzOgorICAgICAgICBjYWxjKDRzICsgMXMp
IC0+IDVtcworCisgICAgICAgIEJlY2F1c2Ugd2Ugd291bGQgYXNzdW1lIHRoZSB1bml0IGlzIENT
U19NUyB3aXRob3V0IGFjdHVhbGx5CisgICAgICAgIGNoZWNraW5nLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaXMgaW5zcGlyZWQgYnkgdGhlIGZvbGxvd2luZyBCbGluayByZXZpc2lvbgorICAgICAg
ICBieSA8cmhvZG92YW4udS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4gYW5kIGluaXRpYWwg
V2ViS2l0CisgICAgICAgIHBhdGNoIGZyb20gPHRtZXN6YXJvcy51LXN6ZWdlZEBwYXJ0bmVyLnNh
bXN1bmcuY29tPjoKKyAgICAgICAgaHR0cHM6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9ibGlu
az92aWV3PXJldiZyZXZpc2lvbj0xNzkxMDEKKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9jYWxj
LXdpdGgtYW5nbGUtdGltZS1mcmVxdWVuY3kuaHRtbAorCisgICAgICAgICogY3NzL0NTU0NhbGN1
bGF0aW9uVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNWYWx1ZTo6cHJpbWl0aXZl
VHlwZSk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpwcmltaXRpdmVUeXBlKToKKwogMjAxNS0wMS0xNiAg
QmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBV
UkwgZmlsdGVycyBjYXNlLWluc2Vuc2l0aXZlIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ2FsY3VsYXRpb25WYWx1ZS5oCmluZGV4IGM0M2UxN2YuLmU0ZDUyZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuaApAQCAtOTUsNiArOTUsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc05lZ2F0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9leHByZXNzaW9uLT5kb3Vi
bGVWYWx1ZSgpIDwgMDsgfQogICAgIGJvb2wgaXNQb3NpdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZXhwcmVzc2lvbi0+ZG91YmxlVmFsdWUoKSA+IDA7IH0KICAgICBkb3VibGUgY29tcHV0ZUxlbmd0
aFB4KGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmKSBjb25zdDsKKyAgICB1bnNpZ25l
ZCBzaG9ydCBwcmltaXRpdmVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9leHByZXNzaW9uLT5wcmlt
aXRpdmVUeXBlKCk7IH0KIAogICAgIFJlZjxDYWxjdWxhdGlvblZhbHVlPiBjcmVhdGVDYWxjdWxh
dGlvblZhbHVlKGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmKSBjb25zdDsKICAgICB2
b2lkIHNldFBlcm1pdHRlZFZhbHVlUmFuZ2UoQ2FsY3VsYXRpb25QZXJtaXR0ZWRWYWx1ZVJhbmdl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IGZlNjQyZTQu
LjMxNmY2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAt
MTk4LDExICsxOTgsOSBAQCB1bnNpZ25lZCBzaG9ydCBDU1NQcmltaXRpdmVWYWx1ZTo6cHJpbWl0
aXZlVHlwZSgpIGNvbnN0CiAgICAgY2FzZSBDYWxjUGVyY2VudExlbmd0aDoKICAgICAgICAgcmV0
dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfQ0FMQ19QRVJDRU5UQUdFX1dJVEhfTEVOR1RIOwog
ICAgIGNhc2UgQ2FsY0FuZ2xlOgotICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19ERUc7CiAgICAgY2FzZSBDYWxjVGltZToKLSAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfTVM7CiAgICAgY2FzZSBDYWxjRnJlcXVlbmN5OgotICAgICAgICByZXR1cm4gQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19IWjsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUuY2FsYy0+cHJp
bWl0aXZlVHlwZSgpOwogICAgIGNhc2UgQ2FsY090aGVyOgogICAgICAgICByZXR1cm4gQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19VTktOT1dOOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>