<?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>95248</bug_id>
          
          <creation_ts>2012-08-28 14:43:03 -0700</creation_ts>
          <short_desc>AX: Canvas should have a distinct role</short_desc>
          <delta_ts>2012-09-04 11:24:31 -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>Accessibility</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>
          <dependson>95349</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dominic Mazzoni">dmazzoni</reporter>
          <assigned_to name="Dominic Mazzoni">dmazzoni</assigned_to>
          <cc>abarth</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>jdiggs</cc>
    
    <cc>pdr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>706747</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2012-08-28 14:43:03 -0700</bug_when>
    <thetext>On many platforms, the role of &quot;image&quot; or &quot;graphic&quot; is not allowed to have children, so we should use a special role for canvas inside WebCore and let each platform decide on the appropriate role to use, taking into account if the canvas has fallback content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706766</commentid>
    <comment_count>1</comment_count>
      <attachid>161067</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2012-08-28 15:02:55 -0700</bug_when>
    <thetext>Created attachment 161067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706771</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-28 15:05:16 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706805</commentid>
    <comment_count>3</comment_count>
      <attachid>161067</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-28 15:50:16 -0700</bug_when>
    <thetext>Comment on attachment 161067
Patch

WebKit API change LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706809</commentid>
    <comment_count>4</comment_count>
      <attachid>161076</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2012-08-28 15:53:33 -0700</bug_when>
    <thetext>Created attachment 161076
Patch

Update tests. Moved accessibility/canvas.html to platform/mac since it tests for a Mac-specific role.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706869</commentid>
    <comment_count>5</comment_count>
      <attachid>161076</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-08-28 16:43:30 -0700</bug_when>
    <thetext>Comment on attachment 161076
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1994
&gt; +            return false;

i don&apos;t think we want to ignore the canvas element when it has fallback content. I think we just want to make it a &quot;group&quot; role. we should still be able to gather info from it like an aria-label for example</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706902</commentid>
    <comment_count>6</comment_count>
      <attachid>161076</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2012-08-28 17:09:38 -0700</bug_when>
    <thetext>Comment on attachment 161076
Patch

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

&gt;&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1994
&gt;&gt; +            return false;
&gt; 
&gt; i don&apos;t think we want to ignore the canvas element when it has fallback content. I think we just want to make it a &quot;group&quot; role. we should still be able to gather info from it like an aria-label for example

This is in accessibilityIsIgnored, so false means &quot;don&apos;t ignore&quot;. If it has fallback content, we&apos;ll always include it and we&apos;ll make it a group role,

If it does not have any fallback content, we&apos;ll ignore it if its size is 1x1, or if it has no title, description, or help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707102</commentid>
    <comment_count>7</comment_count>
      <attachid>161076</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-08-28 22:35:17 -0700</bug_when>
    <thetext>Comment on attachment 161076
Patch

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

just one question inline. otherwise looks good

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:318
&gt; +    Element* element = toElement(node);

it doesn&apos;t appear that you need to case to Element in this case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707159</commentid>
    <comment_count>8</comment_count>
      <attachid>161151</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2012-08-29 00:07:18 -0700</bug_when>
    <thetext>Created attachment 161151
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707203</commentid>
    <comment_count>9</comment_count>
      <attachid>161151</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 01:05:02 -0700</bug_when>
    <thetext>Comment on attachment 161151
Patch for landing

Clearing flags on attachment: 161151

Committed r126972: &lt;http://trac.webkit.org/changeset/126972&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707204</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 01:05:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707497</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 08:56:49 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 95349</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707501</commentid>
    <comment_count>12</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-08-29 09:03:14 -0700</bug_when>
    <thetext>Link to the test failures:

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=accessibility%2Fcanvas-description-and-role.html

http://build.webkit.org/results/Apple%20Lion%20Debug%20WK1%20%28Tests%29/r127000%20%282336%29/results.html

The failure is the same in both cases:

-PASS axContainer.childrenCount is 2
+FAIL axContainer.childrenCount should be 2. Was 4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707680</commentid>
    <comment_count>13</comment_count>
      <attachid>161273</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2012-08-29 11:25:21 -0700</bug_when>
    <thetext>Created attachment 161273
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708217</commentid>
    <comment_count>14</comment_count>
      <attachid>161273</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 19:14:21 -0700</bug_when>
    <thetext>Comment on attachment 161273
Patch for landing

Clearing flags on attachment: 161273

Committed r127084: &lt;http://trac.webkit.org/changeset/127084&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708218</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 19:14:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710230</commentid>
    <comment_count>16</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-09-01 06:51:00 -0700</bug_when>
    <thetext>Dominic, since we have a test without results for Gtk, I was looking at the test. Was there a reason you mapped the new CanvasRole to ATK_ROLE_IMAGE in the Gtk platform instead of ATK_ROLE_CANVAS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711270</commentid>
    <comment_count>17</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2012-09-04 11:24:31 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Dominic, since we have a test without results for Gtk, I was looking at the test. Was there a reason you mapped the new CanvasRole to ATK_ROLE_IMAGE in the Gtk platform instead of ATK_ROLE_CANVAS?

See comment on https://bugs.webkit.org/show_bug.cgi?id=95644</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161067</attachid>
            <date>2012-08-28 15:02:55 -0700</date>
            <delta_ts>2012-08-28 15:53:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95248-20120828150246.patch</filename>
            <type>text/plain</type>
            <size>19193</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2Nzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBjNWNjOGM2NWQxZGE3
ODJiODkzZmFjZDU3YmM5ZmNjYjc3ZTg4OC4uMDJmYTNiZDdiZWE2ZmQ2ZGZkMWEzZGFjNWFmNWYy
NzY0YzhlODA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA4LTI4ICBEb21p
bmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIEFYOiBDYW52YXMg
c2hvdWxkIGhhdmUgYSBkaXN0aW5jdCByb2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NTI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgcm9sZSBmb3IgYSBjYW52YXMgZWxlbWVudCwgYW5k
IGEgbWV0aG9kIHRvIGRldGVybWluZSBpZgorICAgICAgICBhIGNhbnZhcyBoYXMgZmFsbGJhY2sg
Y29udGVudCwgc28gZWFjaCBwbGF0Zm9ybSBjYW4gZGVjaWRlIG9uIHRoZQorICAgICAgICBhcHBy
b3ByaWF0ZSByb2xlIG1hcHBpbmcgdG8gdXNlLgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxp
dHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Lmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojppc0NhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0OjpjYW52YXNIYXNGYWxsYmFja0NvbnRlbnQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2li
aWxpdHlSb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmNhbkhhdmVDaGlsZHJlbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNj
ZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAoYXRrUm9sZSk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW06CisgICAgICAg
IChjcmVhdGVBY2Nlc3NpYmlsaXR5Um9sZU1hcCk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIHJvbGVdKToKKwogMjAxMi0wOC0yNyAgSnVzdGluIE5vdm9zYWQgIDxq
dW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBGaXhpbmcgaW5maW5pdGUg
cmVjdXJzaW9uIGluIENhbnZhczJETGF5ZXJNYW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDM0ZTUyYThkYWRjNWVhZmEzZDFkMTM3NjlkZWRkNjI2YjBlNzNlY2EuLjFjNTA4YzE3
NDhlNzRkYTQwMjIxMjg5MWQ2YzY5ZWJiYmUyYWI4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDgtMjggIERvbWluaWMgTWF6em9uaSAgPGRtYXp6
b25pQGdvb2dsZS5jb20+CisKKyAgICAgICAgQVg6IENhbnZhcyBzaG91bGQgaGF2ZSBhIGRpc3Rp
bmN0IHJvbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk1MjQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIGNhbnZhcyBhY2Nlc3NpYmlsaXR5IHJvbGUuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaDoKKyAgICAgICAgKiBzcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHA6CisKIDIwMTItMDgtMjcgIEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gRml4aW5nIGluZmluaXRlIHJlY3Vyc2lvbiBp
biBDYW52YXMyRExheWVyTWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDMxOWE3NWNlYmEzNjM5
ODRmZTExNDQ1ZDc5NDkzODYzNGUzOTAxODUuLmRlNmU2ODcyN2RiMDAwNTY3MmI4MzcyYzFlMGY3
Y2I4NTIwMzY2NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wOC0y
OCAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBBWDog
Q2FudmFzIHNob3VsZCBoYXZlIGEgZGlzdGluY3Qgcm9sZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUyNDgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYXAgbmV3IENhbnZhc1JvbGUgdG8gdGhlIHNhbWUg
YXMgSW1hZ2VSb2xlLgorCisgICAgICAgICogQWNjZXNzaWJsZUJhc2UuY3BwOgorICAgICAgICAo
TVNBQVJvbGUpOgorCiAyMDEyLTA4LTIzICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5j
b20+CiAKICAgICAgICAgQ29udmVydCBTY3JvbGxhYmxlQXJlYSBBU1NFUlRfTk9UX1JFQUNIRUQg
dmlydHVhbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZmE3NDEwNzAwODllODAzMGJjOGEzNWYwMWRi
MjQ2ZjdjZDBjMzhmMS4uNGRhNTQzYjI4MjJlODI3YjNkMmY4MTIwODMzNmIxNDUzOGQ1MzQzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAKQEAgLTMwNiw2ICszMDYsMjQgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cm9sZSA9PSBVbmtub3duUm9sZTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
Y2FudmFzSGFzRmFsbGJhY2tDb250ZW50KCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhp
cy0+bm9kZSgpOworICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aGFzVGFnTmFtZShjYW52YXNUYWcp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJZiBpdCBoYXMgYW55IGNoaWxkcmVu
IHRoYXQgYXJlIGVsZW1lbnRzLCB3ZSdsbCBhc3N1bWUgaXQgbWlnaHQgYmUgZmFsbGJhY2sKKyAg
ICAvLyBjb250ZW50LiBJZiBpdCBoYXMgbm8gY2hpbGRyZW4gb3IgaXRzIG9ubHkgY2hpbGRyZW4g
YXJlIG5vdCBlbGVtZW50cworICAgIC8vIChlLmcuIGp1c3QgdGV4dCBub2RlcyksIGl0IGRvZXNu
J3QgaGF2ZSBmYWxsYmFjayBjb250ZW50LgorICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1l
bnQobm9kZSk7CisgICAgZm9yIChOb2RlKiBjaGlsZCA9IGVsZW1lbnQtPmZpcnN0Q2hpbGQoKTsg
Y2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKGNoaWxk
LT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNl
dEZvY3VzQXR0cmlidXRlKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oCmluZGV4IGUwYTJjYWQ4ZTg4ZWUzODdkNjA2NmUxN2FiMTkwYjc5MjVhY2M3
Y2QuLjlmNzczOTY1OWVhN2M1ODRiOGEzOTlmZWI1YTk3YWVmYTgwYWZjYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmgKQEAgLTY2LDYgKzY2LDggQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgdmly
dHVhbCBib29sIGNhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCgpIGNvbnN0OworCiAgICAgdmlydHVh
bCBib29sIGNhblNldEZvY3VzQXR0cmlidXRlKCkgY29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGVhNzdhZTQ4
YjI4NjM3ODNmNjBmNDdjZGE1MDIwZGRmNTM4NDU2M2IuLjQxZWU3MzNiMjFmYzE3NzRhNWQ3MmVm
NGRkN2RjMWI3NDdlZDA2MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0xMDMsNiArMTAzLDcgQEAgZW51bSBBY2Nlc3Np
YmlsaXR5Um9sZSB7CiAgICAgQnJvd3NlclJvbGUsCiAgICAgQnVzeUluZGljYXRvclJvbGUsCiAg
ICAgQnV0dG9uUm9sZSwKKyAgICBDYW52YXNSb2xlLAogICAgIENlbGxSb2xlLCAKICAgICBDaGVj
a0JveFJvbGUsCiAgICAgQ29sb3JXZWxsUm9sZSwKQEAgLTM4MCw2ICszODEsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0xpc3RJdGVtKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gTGlz
dEl0ZW1Sb2xlOyB9CiAgICAgYm9vbCBpc0NoZWNrYm94T3JSYWRpbygpIGNvbnN0IHsgcmV0dXJu
IGlzQ2hlY2tib3goKSB8fCBpc1JhZGlvQnV0dG9uKCk7IH0KICAgICBib29sIGlzU2Nyb2xsVmll
dygpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFNjcm9sbEFyZWFSb2xlOyB9CisgICAg
Ym9vbCBpc0NhbnZhcygpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IENhbnZhc1JvbGU7
IH0KICAgICBib29sIGlzQmxvY2txdW90ZSgpIGNvbnN0OwogICAgIGJvb2wgaXNMYW5kbWFyaygp
IGNvbnN0OwogICAgIApAQCAtNDU3LDYgKzQ1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgaW52YWxpZFN0YXR1cygpIGNvbnN0OwogICAgIGJvb2wgc3VwcG9y
dHNBUklBRXhwYW5kZWQoKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5U29ydERpcmVjdGlvbiBz
b3J0RGlyZWN0aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNhbnZhc0hhc0ZhbGxiYWNr
Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCiAgICAgLy8gQVJJQSBkcmFn
IGFuZCBkcm9wCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDdmYTVkM2JiNmIwNDRk
M2YzMzYyMjI0NTFmMWY1YzhmZTBmYTA5NjQuLjVmY2EyYWM0ZmY0OWExNDJhMTI5MzAzMzBlNjZk
ZGIxNGEzMTE3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTk3NCwxMyArMTk3NCw2IEBA
IGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAg
Ci0gICAgICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUoY2FudmFzVGFnKSkgewotICAg
ICAgICAgICAgUmVuZGVySFRNTENhbnZhcyogY2FudmFzID0gdG9SZW5kZXJIVE1MQ2FudmFzKG1f
cmVuZGVyZXIpOwotICAgICAgICAgICAgaWYgKGNhbnZhcy0+aGVpZ2h0KCkgPD0gMSB8fCBjYW52
YXMtPndpZHRoKCkgPD0gMSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgaWYgKGlzTmF0
aXZlSW1hZ2UoKSkgewogICAgICAgICAgICAgLy8gY2hlY2sgZm9yIG9uZS1kaW1lbnNpb25hbCBp
bWFnZQogICAgICAgICAgICAgUmVuZGVySW1hZ2UqIGltYWdlID0gdG9SZW5kZXJJbWFnZShtX3Jl
bmRlcmVyKTsKQEAgLTE5OTUsNyArMTk4OCwxNiBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgICAgICB9CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgCisKKyAgICBpZiAoaXNDYW52YXMoKSkgeworICAg
ICAgICBpZiAoY2FudmFzSGFzRmFsbGJhY2tDb250ZW50KCkpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIFJlbmRlckhUTUxDYW52YXMqIGNhbnZhcyA9IHRvUmVuZGVySFRNTENh
bnZhcyhtX3JlbmRlcmVyKTsKKyAgICAgICAgaWYgKGNhbnZhcy0+aGVpZ2h0KCkgPD0gMSB8fCBj
YW52YXMtPndpZHRoKCkgPD0gMSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAv
LyBPdGhlcndpc2UgZmFsbCB0aHJvdWdoOyB1c2UgcHJlc2VuY2Ugb2YgaGVscCB0ZXh0LCB0aXRs
ZSwgb3IgZGVzY3JpcHRpb24gdG8gZGVjaWRlLgorICAgIH0KKwogICAgIGlmIChpc1dlYkFyZWEo
KSB8fCBtX3JlbmRlcmVyLT5pc0xpc3RNYXJrZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIApAQCAtMzE1Miw3ICszMTU0LDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogICAgICAgICByZXR1
cm4gSW1hZ2VSb2xlOwogICAgIH0KICAgICBpZiAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGNh
bnZhc1RhZykpCi0gICAgICAgIHJldHVybiBJbWFnZVJvbGU7CisgICAgICAgIHJldHVybiBDYW52
YXNSb2xlOwogCiAgICAgaWYgKGNzc0JveCAmJiBjc3NCb3gtPmlzUmVuZGVyVmlldygpKQogICAg
ICAgICByZXR1cm4gV2ViQXJlYVJvbGU7CkBAIC0zMzk3LDEwICszMzk5LDYgQEAgYm9vbCBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdAogICAgIGlmICgh
bV9yZW5kZXJlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIC8vIENhbnZhcyBp
cyBhIHNwZWNpYWwgY2FzZTsgaXRzIHJvbGUgaXMgSW1hZ2VSb2xlIGJ1dCBpdCBpcyBhbGxvd2Vk
IHRvIGhhdmUgY2hpbGRyZW4uCi0gICAgaWYgKG5vZGUoKSAmJiBub2RlKCktPmhhc1RhZ05hbWUo
Y2FudmFzVGFnKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICAvLyBFbGVtZW50cyB0aGF0
IHNob3VsZCBub3QgaGF2ZSBjaGlsZHJlbgogICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsKICAg
ICBjYXNlIEltYWdlUm9sZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvZ3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcAppbmRleCBmN2Y5
ZjZlZThlYjYyODJmMDU5ZTVhYWIwMTI2MDgxNTVlMWE4NTM3Li4xZjQ4MDAwZTE0N2I1ZmQzZmU5
OWNjOTZmYzkzYzBhODQ5OTZhOTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCkBA
IC01MDEsNiArNTAxLDcgQEAgc3RhdGljIEF0a1JvbGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5Um9s
ZSByb2xlKQogICAgIGNhc2UgV2ViQ29yZUxpbmtSb2xlOgogICAgIGNhc2UgSW1hZ2VNYXBMaW5r
Um9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX0xJTks7CisgICAgY2FzZSBDYW52YXNSb2xl
OgogICAgIGNhc2UgSW1hZ2VNYXBSb2xlOgogICAgIGNhc2UgSW1hZ2VSb2xlOgogICAgICAgICBy
ZXR1cm4gQVRLX1JPTEVfSU1BR0U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbSBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCmlu
ZGV4IDZmNWU3NTE2MTRlY2Q2ZDkxNGE2MzJlODhhMDlmMDA3MzBiMTVjODIuLmYzY2Q4MDA1NjAw
ODRlMjM5NGE5MzhiNGMwZTNhNzIyZGNkNjg2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyLm1tCkBAIC0xNTc4LDcgKzE1NzgsOCBAQCBzdGF0aWMgY29uc3QgQWNjZXNzaWJpbGl0
eVJvbGVNYXAmIGNyZWF0ZUFjY2Vzc2liaWxpdHlSb2xlTWFwKCkKICAgICAgICAgeyBGb3JtUm9s
ZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCiAgICAgICAgIHsgU3BpbkJ1dHRvblJvbGUs
IE5TQWNjZXNzaWJpbGl0eUluY3JlbWVudG9yUm9sZSB9LAogICAgICAgICB7IEZvb3RlclJvbGUs
IE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IFRvZ2dsZUJ1dHRvblJvbGUs
IE5TQWNjZXNzaWJpbGl0eUJ1dHRvblJvbGUgfQorICAgICAgICB7IFRvZ2dsZUJ1dHRvblJvbGUs
IE5TQWNjZXNzaWJpbGl0eUJ1dHRvblJvbGUgfSwKKyAgICAgICAgeyBDYW52YXNSb2xlLCBOU0Fj
Y2Vzc2liaWxpdHlJbWFnZVJvbGUgfQogICAgIH07CiAgICAgQWNjZXNzaWJpbGl0eVJvbGVNYXAm
IHJvbGVNYXAgPSAqbmV3IEFjY2Vzc2liaWxpdHlSb2xlTWFwOwogICAgIApAQCAtMTU5OSw3ICsx
NjAwLDEwIEBAIHN0YXRpYyBOU1N0cmluZyogcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3NpYmls
aXR5Um9sZSB2YWx1ZSkKIHsKICAgICBpZiAobV9vYmplY3QtPmlzQXR0YWNobWVudCgpKQogICAg
ICAgICByZXR1cm4gW1tzZWxmIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5QXR0cmlidXRl
VmFsdWU6TlNBY2Nlc3NpYmlsaXR5Um9sZUF0dHJpYnV0ZV07Ci0gICAgTlNTdHJpbmcqIHN0cmlu
ZyA9IHJvbGVWYWx1ZVRvTlNTdHJpbmcobV9vYmplY3QtPnJvbGVWYWx1ZSgpKTsKKyAgICBBY2Nl
c3NpYmlsaXR5Um9sZSByb2xlID0gbV9vYmplY3QtPnJvbGVWYWx1ZSgpOworICAgIGlmIChyb2xl
ID09IENhbnZhc1JvbGUgJiYgbV9vYmplY3QtPmNhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCgpKQor
ICAgICAgICByb2xlID0gR3JvdXBSb2xlOworICAgIE5TU3RyaW5nKiBzdHJpbmcgPSByb2xlVmFs
dWVUb05TU3RyaW5nKHJvbGUpOwogICAgIGlmIChzdHJpbmcgIT0gbmlsKQogICAgICAgICByZXR1
cm4gc3RyaW5nOwogICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlVbmtub3duUm9sZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xl
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Um9sZS5o
CmluZGV4IGY0MGMxZDk5YjEyMDU2NzgzMDEwNTIwMzUyMzQ1NDkwNWQ1Y2I5MTUuLmYxNzMxODJj
ZGUxOWM3Y2ZhMmJiYWM0MDBhMTJmMTYwMjg1ZjMwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xlLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaApAQCAtNDksNiArNDks
NyBAQCBlbnVtIFdlYkFjY2Vzc2liaWxpdHlSb2xlIHsKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9s
ZUJyb3dzZXIsCiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVCdXN5SW5kaWNhdG9yLAogICAgIFdl
YkFjY2Vzc2liaWxpdHlSb2xlQnV0dG9uLAorICAgIFdlYkFjY2Vzc2liaWxpdHlSb2xlQ2FudmFz
LAogICAgIFdlYkFjY2Vzc2liaWxpdHlSb2xlQ2VsbCwgCiAgICAgV2ViQWNjZXNzaWJpbGl0eVJv
bGVDaGVja0JveCwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZUNvbG9yV2VsbCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKaW5kZXgg
MTE5NDVhNTBiNDJjYTBlYjA0MzM3M2M5MTE1NzY1MDlhYzBlMjkwYy4uOGVmM2ZlMmQyY2JiZDg5
MjdhNjI3YjBmNDc2NTE4NGU5ZmExNTliMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKQEAgLTI2MSw2ICsyNjEsNyBAQCBDT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xlRG9jdW1lbnROb3Rl
LCBEb2N1bWVudE5vdGVSb2xlKQogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nl
c3NpYmlsaXR5Um9sZURvY3VtZW50UmVnaW9uLCBEb2N1bWVudFJlZ2lvblJvbGUpOwogQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZVVzZXJJbnRlcmZhY2VU
b29sdGlwLCBVc2VySW50ZXJmYWNlVG9vbHRpcFJvbGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZVRvZ2dsZUJ1dHRvbiwgVG9nZ2xlQnV0dG9uUm9s
ZSk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xlQ2Fu
dmFzLCBDYW52YXNSb2xlKTsKIAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBcHBs
aWNhdGlvbkNhY2hlSG9zdDo6VW5jYWNoZWQsIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpVTkNBQ0hF
RCk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjpJZGxlLCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6SURMRSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nlc3Np
YmxlQmFzZS5jcHAKaW5kZXggZTczMzE0MWYyODk4MzQ2YjNlOTQ2NzY0NWM5NzYyYmJmOTRlMWJm
OS4uMmNmOGY5NWUxNzM3NDQ0MzUxMjhlYzZhMzAxMTdhZGE0ZWJjODk4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL0FjY2Vzc2libGVCYXNlLmNwcApAQCAtNjU3LDYgKzY1Nyw3IEBAIHN0YXRpYyBsb25nIE1T
QUFSb2xlKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAgICAgICAgIGNhc2UgV2ViQ29yZTo6TGlu
a1JvbGU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6V2ViQ29yZUxpbmtSb2xlOgogICAgICAgICAg
ICAgcmV0dXJuIFJPTEVfU1lTVEVNX0xJTks7CisgICAgICAgIGNhc2UgV2ViQ29yZTo6Q2FudmFz
Um9sZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpJbWFnZU1hcFJvbGU6CiAgICAgICAgIGNhc2Ug
V2ViQ29yZTo6SW1hZ2VSb2xlOgogICAgICAgICAgICAgcmV0dXJuIFJPTEVfU1lTVEVNX0dSQVBI
SUM7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
NzYxOTBmOGJkOTJiNmRjMGI2NTExMTk0MDgxMGRkNjBhMzU2ZDVlMy4uYjMxNDdlN2UxNWZjZWVj
ZTZjZDc5ZTM5ZTc4ZWY0Y2VmZWQyYmFlYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA4LTI4ICBEb21pbmlj
IE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIEFYOiBDYW52YXMgc2hv
dWxkIGhhdmUgYSBkaXN0aW5jdCByb2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBjYW52YXMgYWNjZXNzaWJpbGl0eSByb2xl
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAocm9sZVRvU3RyaW5nKToKKwog
MjAxMi0wOC0yNyAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gRml4IGV4aXQgY29kZSBzdGF0dXMgbG9naWMgaW4gcnVuLWNocm9taXVt
LXdlYmtpdC11bml0LXRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRDaHJvbWl1bS5jcHAKaW5kZXggZGYwZmIwYTFmOGYxNzA4NDQ5YjIxYzI4ODkxN2JjNjI1ZTQ1
NWViZC4uYjIxNDZmYTU0ODkwYzU0NmVmMjgxYjQwY2MwMTU0NDdjNDIxZDFkMiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Q2hyb21pdW0uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcApAQCAtMjA2LDYg
KzIwNiw4IEBAIHN0YXRpYyBzdHJpbmcgcm9sZVRvU3RyaW5nKFdlYkFjY2Vzc2liaWxpdHlSb2xl
IHJvbGUpCiAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCJVc2VySW50ZXJmYWNlVG9vbHRp
cCIpOwogICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eVJvbGVUb2dnbGVCdXR0b246CiAgICAgICAg
IHJldHVybiByZXN1bHQuYXBwZW5kKCJUb2dnbGVCdXR0b24iKTsKKyAgICBjYXNlIFdlYkFjY2Vz
c2liaWxpdHlSb2xlQ2FudmFzOgorICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiQ2FudmFz
Iik7CiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gQWxzbyBtYXRjaGVzIFdlYkFjY2Vzc2liaWxp
dHlSb2xlVW5rbm93bi4KICAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoIlVua25vd24iKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwOTc0YjFlYzI5N2RiNDgzM2VlY2ExYzkxYTE5MTYyY2EzYmRiMDk0Li5mMmMxYzM3
MDgwNmE2NWU2MjExZTE1MDE3NmY4MDUzYjIzN2YwYTkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTItMDgtMjggIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgQVg6IENhbnZhcyBzaG91bGQgaGF2ZSBhIGRpc3RpbmN0IHJvbGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MjQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyB0ZXN0cyBmb3IgY2Fu
dmFzIHJvbGUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1h
bmQtcm9sZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3Np
YmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorCiAyMDEyLTA4LTI3ICBBbm5hIENhdmVuZGVyICA8YW5uYWNjQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBUZXh0VHJhY2sgbW9kZXMgYXJlIHN0cmluZ3MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQt
cm9sZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0NzJjOGNlNTVjZGQwZTljOGZhN2VkM2U2Nzk2MWU0MDEz
ZjI5M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NhbnZh
cy1kZXNjcmlwdGlvbi1hbmQtcm9sZS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBI
VE1MPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKyAgICA8IS0tIE5vIHdoaXRlc3BhY2UgYmV0d2Vl
biBjYW52YXNlcyBvbiBwdXJwb3NlLCBzbyB0aGVyZSdzIHRoZSBzYW1lCisgICAgICAgICBudW1i
ZXIgb2YgY2hpbGRyZW4gb2YgdGhlIGNvbnRhaW5lciBlbGVtZW50IG9uIGFsbCBwbGF0Zm9ybXMu
IC0tPgorICAgIDxkaXYgaWQ9ImNvbnRhaW5lciIgdGFiSW5kZXg9MD48Y2FudmFzIGlkPSJjYW52
YXMxIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgYXJpYS1sYWJlbD0iQ2FudmFzIGxhYmVsIj5G
YWxsYmFjayB0ZXh0PC9jYW52YXM+PGNhbnZhcyBpZD0iY2FudmFzMiIgd2lkdGg9IjEwMCIgaGVp
Z2h0PSIxMDAiPjxidXR0b24+SW5uZXIgYnV0dG9uPC9idXR0b24+PC9jYW52YXM+PGNhbnZhcyBp
ZD0iY2FudmFzMy1za2lwcGVkIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+PC9k
aXY+CisKKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
aGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGEgY2FudmFzIHdpdGggYW5kIHdpdGhvdXQgZmFsbGJh
Y2sgY29udGVudCBlYWNoIGhhcyB0aGUgcmlnaHQgcm9sZSBhbmQgZGVzY3JpcHRpb24uIikKKwor
aWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikg
eworICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5mb2N1cygpOworICAgIHZhciBheENvbnRhaW5lciA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworCisgICAgc2hvdWxkQmUo
ImF4Q29udGFpbmVyLmNoaWxkcmVuQ291bnQiLCAiMiIpOworCisgICAgdmFyIGF4Q2FudmFzMSA9
IGF4Q29udGFpbmVyLmNoaWxkQXRJbmRleCgwKTsKKyAgICBkZWJ1ZygnQ2FudmFzIDEgZGVzY3Jp
cHRpb246ICcgKyBheENhbnZhczEuZGVzY3JpcHRpb24pOworICAgIGRlYnVnKCdDYW52YXMgMSBy
b2xlOiAnICsgYXhDYW52YXMxLnJvbGUpOworCisgICAgdmFyIGF4Q2FudmFzMiA9IGF4Q29udGFp
bmVyLmNoaWxkQXRJbmRleCgxKTsKKyAgICBkZWJ1ZygnQ2FudmFzIDIgZGVzY3JpcHRpb246ICcg
KyBheENhbnZhczIuZGVzY3JpcHRpb24pOworICAgIGRlYnVnKCdDYW52YXMgMiByb2xlOiAnICsg
YXhDYW52YXMyLnJvbGUpOworfQorCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5
L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9s
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRhZmRjMGE5MTA3NzNhNzQ3MGU5M2E5MzU3NDRm
OWM5MzZlYmZmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGEgY2FudmFzIHdp
dGggYW5kIHdpdGhvdXQgZmFsbGJhY2sgY29udGVudCBlYWNoIGhhcyB0aGUgcmlnaHQgcm9sZSBh
bmQgZGVzY3JpcHRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGF4
Q29udGFpbmVyLmNoaWxkcmVuQ291bnQgaXMgMgorQ2FudmFzIDEgZGVzY3JpcHRpb246IEFYRGVz
Y3JpcHRpb246IENhbnZhcyBsYWJlbAorQ2FudmFzIDEgcm9sZTogQVhSb2xlOiBBWENhbnZhcwor
Q2FudmFzIDIgZGVzY3JpcHRpb246IEFYRGVzY3JpcHRpb246IAorQ2FudmFzIDIgcm9sZTogQVhS
b2xlOiBBWENhbnZhcworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
YWU3YWYxMzliZWM1NDJkZDBmZDJkODE1MWZjN2Y1OWIyYTk3MmUyZC4uYzQxMzk4ZWVmNTJlMjEz
ODFjM2ZhMmMwZjUxZGU0ZTAzOTJkZWEwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTYxNyw2ICs2MTcsNyBAQCBCVUdXS0dUSyA6IGFjY2Vzc2liaWxp
dHkvYXJpYS10ZXh0LXJvbGUuaHRtbCA9IFRFWFQKIEJVR1dLR1RLIDogYWNjZXNzaWJpbGl0eS9h
cmlhLXVzZWQtb24taW1hZ2UtbWFwcy5odG1sID0gVEVYVAogQlVHV0tHVEsgOiBhY2Nlc3NpYmls
aXR5L2J1dHRvbi1wcmVzcy1hY3Rpb24uaHRtbCA9IFRFWFQKIEJVR1dLR1RLIDogYWNjZXNzaWJp
bGl0eS9jYW52YXMuaHRtbCA9IFRFWFQKK0JVR1dLR1RLIDogYWNjZXNzaWJpbGl0eS9jYW52YXMt
ZGVzY3JpcHRpb24tYW5kLXJvbGUuaHRtbCA9IFRFWFQKIEJVR1dLR1RLIDogYWNjZXNzaWJpbGl0
eS9jYW52YXMtZmFsbGJhY2stY29udGVudC5odG1sID0gVEVYVAogQlVHV0tHVEsgOiBhY2Nlc3Np
YmlsaXR5L2VkaXRhYmxlLXdlYmFyZWEtY29udGV4dC1tZW51LXBvaW50Lmh0bWwgPSBURVhUCiBC
VUdXS0dUSyA6IGFjY2Vzc2liaWxpdHkvZWxsaXBzaXMtdGV4dC5odG1sID0gVEVYVApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2Ny
aXB0aW9uLWFuZC1yb2xlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjQwMjU3N2Y5Nzc0YzNiOWE1MDVkMzQwNTRmYjg4NDQ2MWI4MGU0MgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2NhbnZh
cy1kZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGhp
cyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBhIGNhbnZhcyB3aXRoIGFuZCB3aXRob3V0IGZhbGxiYWNr
IGNvbnRlbnQgZWFjaCBoYXMgdGhlIHJpZ2h0IHJvbGUgYW5kIGRlc2NyaXB0aW9uLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBheENvbnRhaW5lci5jaGlsZHJlbkNvdW50
IGlzIDIKK0NhbnZhcyAxIGRlc2NyaXB0aW9uOiBBWERlc2NyaXB0aW9uOiBDYW52YXMgbGFiZWwK
K0NhbnZhcyAxIHJvbGU6IEFYUm9sZTogQVhJbWFnZQorQ2FudmFzIDIgZGVzY3JpcHRpb246IEFY
RGVzY3JpcHRpb246IAorQ2FudmFzIDIgcm9sZTogQVhSb2xlOiBBWEdyb3VwCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161076</attachid>
            <date>2012-08-28 15:53:33 -0700</date>
            <delta_ts>2012-08-29 00:07:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95248-20120828155324.patch</filename>
            <type>text/plain</type>
            <size>24802</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2Nzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBjNWNjOGM2NWQxZGE3
ODJiODkzZmFjZDU3YmM5ZmNjYjc3ZTg4OC4uMDJmYTNiZDdiZWE2ZmQ2ZGZkMWEzZGFjNWFmNWYy
NzY0YzhlODA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA4LTI4ICBEb21p
bmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIEFYOiBDYW52YXMg
c2hvdWxkIGhhdmUgYSBkaXN0aW5jdCByb2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NTI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgcm9sZSBmb3IgYSBjYW52YXMgZWxlbWVudCwgYW5k
IGEgbWV0aG9kIHRvIGRldGVybWluZSBpZgorICAgICAgICBhIGNhbnZhcyBoYXMgZmFsbGJhY2sg
Y29udGVudCwgc28gZWFjaCBwbGF0Zm9ybSBjYW4gZGVjaWRlIG9uIHRoZQorICAgICAgICBhcHBy
b3ByaWF0ZSByb2xlIG1hcHBpbmcgdG8gdXNlLgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxp
dHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Lmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojppc0NhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0OjpjYW52YXNIYXNGYWxsYmFja0NvbnRlbnQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2li
aWxpdHlSb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmNhbkhhdmVDaGlsZHJlbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNj
ZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAoYXRrUm9sZSk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW06CisgICAgICAg
IChjcmVhdGVBY2Nlc3NpYmlsaXR5Um9sZU1hcCk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIHJvbGVdKToKKwogMjAxMi0wOC0yNyAgSnVzdGluIE5vdm9zYWQgIDxq
dW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBGaXhpbmcgaW5maW5pdGUg
cmVjdXJzaW9uIGluIENhbnZhczJETGF5ZXJNYW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDM0ZTUyYThkYWRjNWVhZmEzZDFkMTM3NjlkZWRkNjI2YjBlNzNlY2EuLjFjNTA4YzE3
NDhlNzRkYTQwMjIxMjg5MWQ2YzY5ZWJiYmUyYWI4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDgtMjggIERvbWluaWMgTWF6em9uaSAgPGRtYXp6
b25pQGdvb2dsZS5jb20+CisKKyAgICAgICAgQVg6IENhbnZhcyBzaG91bGQgaGF2ZSBhIGRpc3Rp
bmN0IHJvbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk1MjQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIGNhbnZhcyBhY2Nlc3NpYmlsaXR5IHJvbGUuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaDoKKyAgICAgICAgKiBzcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHA6CisKIDIwMTItMDgtMjcgIEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gRml4aW5nIGluZmluaXRlIHJlY3Vyc2lvbiBp
biBDYW52YXMyRExheWVyTWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDMxOWE3NWNlYmEzNjM5
ODRmZTExNDQ1ZDc5NDkzODYzNGUzOTAxODUuLmRlNmU2ODcyN2RiMDAwNTY3MmI4MzcyYzFlMGY3
Y2I4NTIwMzY2NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wOC0y
OCAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBBWDog
Q2FudmFzIHNob3VsZCBoYXZlIGEgZGlzdGluY3Qgcm9sZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUyNDgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYXAgbmV3IENhbnZhc1JvbGUgdG8gdGhlIHNhbWUg
YXMgSW1hZ2VSb2xlLgorCisgICAgICAgICogQWNjZXNzaWJsZUJhc2UuY3BwOgorICAgICAgICAo
TVNBQVJvbGUpOgorCiAyMDEyLTA4LTIzICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5j
b20+CiAKICAgICAgICAgQ29udmVydCBTY3JvbGxhYmxlQXJlYSBBU1NFUlRfTk9UX1JFQUNIRUQg
dmlydHVhbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZmE3NDEwNzAwODllODAzMGJjOGEzNWYwMWRi
MjQ2ZjdjZDBjMzhmMS4uNGRhNTQzYjI4MjJlODI3YjNkMmY4MTIwODMzNmIxNDUzOGQ1MzQzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAKQEAgLTMwNiw2ICszMDYsMjQgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cm9sZSA9PSBVbmtub3duUm9sZTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
Y2FudmFzSGFzRmFsbGJhY2tDb250ZW50KCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhp
cy0+bm9kZSgpOworICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aGFzVGFnTmFtZShjYW52YXNUYWcp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJZiBpdCBoYXMgYW55IGNoaWxkcmVu
IHRoYXQgYXJlIGVsZW1lbnRzLCB3ZSdsbCBhc3N1bWUgaXQgbWlnaHQgYmUgZmFsbGJhY2sKKyAg
ICAvLyBjb250ZW50LiBJZiBpdCBoYXMgbm8gY2hpbGRyZW4gb3IgaXRzIG9ubHkgY2hpbGRyZW4g
YXJlIG5vdCBlbGVtZW50cworICAgIC8vIChlLmcuIGp1c3QgdGV4dCBub2RlcyksIGl0IGRvZXNu
J3QgaGF2ZSBmYWxsYmFjayBjb250ZW50LgorICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1l
bnQobm9kZSk7CisgICAgZm9yIChOb2RlKiBjaGlsZCA9IGVsZW1lbnQtPmZpcnN0Q2hpbGQoKTsg
Y2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKGNoaWxk
LT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhblNl
dEZvY3VzQXR0cmlidXRlKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oCmluZGV4IGUwYTJjYWQ4ZTg4ZWUzODdkNjA2NmUxN2FiMTkwYjc5MjVhY2M3
Y2QuLjlmNzczOTY1OWVhN2M1ODRiOGEzOTlmZWI1YTk3YWVmYTgwYWZjYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmgKQEAgLTY2LDYgKzY2LDggQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgdmly
dHVhbCBib29sIGNhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCgpIGNvbnN0OworCiAgICAgdmlydHVh
bCBib29sIGNhblNldEZvY3VzQXR0cmlidXRlKCkgY29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGVhNzdhZTQ4
YjI4NjM3ODNmNjBmNDdjZGE1MDIwZGRmNTM4NDU2M2IuLjQxZWU3MzNiMjFmYzE3NzRhNWQ3MmVm
NGRkN2RjMWI3NDdlZDA2MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0xMDMsNiArMTAzLDcgQEAgZW51bSBBY2Nlc3Np
YmlsaXR5Um9sZSB7CiAgICAgQnJvd3NlclJvbGUsCiAgICAgQnVzeUluZGljYXRvclJvbGUsCiAg
ICAgQnV0dG9uUm9sZSwKKyAgICBDYW52YXNSb2xlLAogICAgIENlbGxSb2xlLCAKICAgICBDaGVj
a0JveFJvbGUsCiAgICAgQ29sb3JXZWxsUm9sZSwKQEAgLTM4MCw2ICszODEsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0xpc3RJdGVtKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gTGlz
dEl0ZW1Sb2xlOyB9CiAgICAgYm9vbCBpc0NoZWNrYm94T3JSYWRpbygpIGNvbnN0IHsgcmV0dXJu
IGlzQ2hlY2tib3goKSB8fCBpc1JhZGlvQnV0dG9uKCk7IH0KICAgICBib29sIGlzU2Nyb2xsVmll
dygpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFNjcm9sbEFyZWFSb2xlOyB9CisgICAg
Ym9vbCBpc0NhbnZhcygpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IENhbnZhc1JvbGU7
IH0KICAgICBib29sIGlzQmxvY2txdW90ZSgpIGNvbnN0OwogICAgIGJvb2wgaXNMYW5kbWFyaygp
IGNvbnN0OwogICAgIApAQCAtNDU3LDYgKzQ1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgaW52YWxpZFN0YXR1cygpIGNvbnN0OwogICAgIGJvb2wgc3VwcG9y
dHNBUklBRXhwYW5kZWQoKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5U29ydERpcmVjdGlvbiBz
b3J0RGlyZWN0aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNhbnZhc0hhc0ZhbGxiYWNr
Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCiAgICAgLy8gQVJJQSBkcmFn
IGFuZCBkcm9wCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQURyb3BwaW5nKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDdmYTVkM2JiNmIwNDRk
M2YzMzYyMjI0NTFmMWY1YzhmZTBmYTA5NjQuLjAxNDFkOTYyOGE4NDM3YjM5NGQ2M2ZjYjkxNDQ5
NmMwMjNhMTcwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTQ4Nyw3ICsxNDg3LDcgQEAg
U3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlv
bigpIGNvbnN0CiAgICAgICAgIHJldHVybiBhcmlhRGVzY3JpcHRpb247CiAgICAgCiAgICAgTm9k
ZSogbm9kZSA9IG1fcmVuZGVyZXItPm5vZGUoKTsKLSAgICBpZiAoaXNJbWFnZSgpIHx8IGlzSW5w
dXRJbWFnZSgpIHx8IGlzTmF0aXZlSW1hZ2UoKSkgeworICAgIGlmIChpc0ltYWdlKCkgfHwgaXNJ
bnB1dEltYWdlKCkgfHwgaXNOYXRpdmVJbWFnZSgpIHx8IGlzQ2FudmFzKCkpIHsKICAgICAgICAg
aWYgKG5vZGUgJiYgbm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7CiAgICAgICAgICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIGFsdCA9IHRvSFRNTEVsZW1lbnQobm9kZSktPmdldEF0dHJpYnV0ZShhbHRB
dHRyKTsKICAgICAgICAgICAgIGlmIChhbHQuaXNFbXB0eSgpKQpAQCAtMTk3NCwxMyArMTk3NCw2
IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAg
ICAgCi0gICAgICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUoY2FudmFzVGFnKSkgewot
ICAgICAgICAgICAgUmVuZGVySFRNTENhbnZhcyogY2FudmFzID0gdG9SZW5kZXJIVE1MQ2FudmFz
KG1fcmVuZGVyZXIpOwotICAgICAgICAgICAgaWYgKGNhbnZhcy0+aGVpZ2h0KCkgPD0gMSB8fCBj
YW52YXMtPndpZHRoKCkgPD0gMSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgaWYgKGlz
TmF0aXZlSW1hZ2UoKSkgewogICAgICAgICAgICAgLy8gY2hlY2sgZm9yIG9uZS1kaW1lbnNpb25h
bCBpbWFnZQogICAgICAgICAgICAgUmVuZGVySW1hZ2UqIGltYWdlID0gdG9SZW5kZXJJbWFnZSht
X3JlbmRlcmVyKTsKQEAgLTE5OTUsNyArMTk4OCwxNiBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgCisKKyAgICBpZiAoaXNDYW52YXMoKSkgewor
ICAgICAgICBpZiAoY2FudmFzSGFzRmFsbGJhY2tDb250ZW50KCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIFJlbmRlckhUTUxDYW52YXMqIGNhbnZhcyA9IHRvUmVuZGVySFRN
TENhbnZhcyhtX3JlbmRlcmVyKTsKKyAgICAgICAgaWYgKGNhbnZhcy0+aGVpZ2h0KCkgPD0gMSB8
fCBjYW52YXMtPndpZHRoKCkgPD0gMSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAvLyBPdGhlcndpc2UgZmFsbCB0aHJvdWdoOyB1c2UgcHJlc2VuY2Ugb2YgaGVscCB0ZXh0LCB0
aXRsZSwgb3IgZGVzY3JpcHRpb24gdG8gZGVjaWRlLgorICAgIH0KKwogICAgIGlmIChpc1dlYkFy
ZWEoKSB8fCBtX3JlbmRlcmVyLT5pc0xpc3RNYXJrZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIApAQCAtMzE1Miw3ICszMTU0LDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogICAgICAgICBy
ZXR1cm4gSW1hZ2VSb2xlOwogICAgIH0KICAgICBpZiAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1l
KGNhbnZhc1RhZykpCi0gICAgICAgIHJldHVybiBJbWFnZVJvbGU7CisgICAgICAgIHJldHVybiBD
YW52YXNSb2xlOwogCiAgICAgaWYgKGNzc0JveCAmJiBjc3NCb3gtPmlzUmVuZGVyVmlldygpKQog
ICAgICAgICByZXR1cm4gV2ViQXJlYVJvbGU7CkBAIC0zMzk3LDEwICszMzk5LDYgQEAgYm9vbCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdAogICAgIGlm
ICghbV9yZW5kZXJlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIC8vIENhbnZh
cyBpcyBhIHNwZWNpYWwgY2FzZTsgaXRzIHJvbGUgaXMgSW1hZ2VSb2xlIGJ1dCBpdCBpcyBhbGxv
d2VkIHRvIGhhdmUgY2hpbGRyZW4uCi0gICAgaWYgKG5vZGUoKSAmJiBub2RlKCktPmhhc1RhZ05h
bWUoY2FudmFzVGFnKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICAvLyBFbGVtZW50cyB0
aGF0IHNob3VsZCBub3QgaGF2ZSBjaGlsZHJlbgogICAgIHN3aXRjaCAocm9sZVZhbHVlKCkpIHsK
ICAgICBjYXNlIEltYWdlUm9sZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcAppbmRleCBm
N2Y5ZjZlZThlYjYyODJmMDU5ZTVhYWIwMTI2MDgxNTVlMWE4NTM3Li4xZjQ4MDAwZTE0N2I1ZmQz
ZmU5OWNjOTZmYzkzYzBhODQ5OTZhOTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3Bw
CkBAIC01MDEsNiArNTAxLDcgQEAgc3RhdGljIEF0a1JvbGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5
Um9sZSByb2xlKQogICAgIGNhc2UgV2ViQ29yZUxpbmtSb2xlOgogICAgIGNhc2UgSW1hZ2VNYXBM
aW5rUm9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX0xJTks7CisgICAgY2FzZSBDYW52YXNS
b2xlOgogICAgIGNhc2UgSW1hZ2VNYXBSb2xlOgogICAgIGNhc2UgSW1hZ2VSb2xlOgogICAgICAg
ICByZXR1cm4gQVRLX1JPTEVfSU1BR0U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1t
CmluZGV4IDZmNWU3NTE2MTRlY2Q2ZDkxNGE2MzJlODhhMDlmMDA3MzBiMTVjODIuLmYzY2Q4MDA1
NjAwODRlMjM5NGE5MzhiNGMwZTNhNzIyZGNkNjg2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyLm1tCkBAIC0xNTc4LDcgKzE1NzgsOCBAQCBzdGF0aWMgY29uc3QgQWNjZXNzaWJp
bGl0eVJvbGVNYXAmIGNyZWF0ZUFjY2Vzc2liaWxpdHlSb2xlTWFwKCkKICAgICAgICAgeyBGb3Jt
Um9sZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCiAgICAgICAgIHsgU3BpbkJ1dHRvblJv
bGUsIE5TQWNjZXNzaWJpbGl0eUluY3JlbWVudG9yUm9sZSB9LAogICAgICAgICB7IEZvb3RlclJv
bGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IFRvZ2dsZUJ1dHRvblJv
bGUsIE5TQWNjZXNzaWJpbGl0eUJ1dHRvblJvbGUgfQorICAgICAgICB7IFRvZ2dsZUJ1dHRvblJv
bGUsIE5TQWNjZXNzaWJpbGl0eUJ1dHRvblJvbGUgfSwKKyAgICAgICAgeyBDYW52YXNSb2xlLCBO
U0FjY2Vzc2liaWxpdHlJbWFnZVJvbGUgfQogICAgIH07CiAgICAgQWNjZXNzaWJpbGl0eVJvbGVN
YXAmIHJvbGVNYXAgPSAqbmV3IEFjY2Vzc2liaWxpdHlSb2xlTWFwOwogICAgIApAQCAtMTU5OSw3
ICsxNjAwLDEwIEBAIHN0YXRpYyBOU1N0cmluZyogcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3Np
YmlsaXR5Um9sZSB2YWx1ZSkKIHsKICAgICBpZiAobV9vYmplY3QtPmlzQXR0YWNobWVudCgpKQog
ICAgICAgICByZXR1cm4gW1tzZWxmIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Um9sZUF0dHJpYnV0ZV07Ci0gICAgTlNTdHJpbmcqIHN0
cmluZyA9IHJvbGVWYWx1ZVRvTlNTdHJpbmcobV9vYmplY3QtPnJvbGVWYWx1ZSgpKTsKKyAgICBB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlID0gbV9vYmplY3QtPnJvbGVWYWx1ZSgpOworICAgIGlmIChy
b2xlID09IENhbnZhc1JvbGUgJiYgbV9vYmplY3QtPmNhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCgp
KQorICAgICAgICByb2xlID0gR3JvdXBSb2xlOworICAgIE5TU3RyaW5nKiBzdHJpbmcgPSByb2xl
VmFsdWVUb05TU3RyaW5nKHJvbGUpOwogICAgIGlmIChzdHJpbmcgIT0gbmlsKQogICAgICAgICBy
ZXR1cm4gc3RyaW5nOwogICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlVbmtub3duUm9sZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlS
b2xlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Um9s
ZS5oCmluZGV4IGY0MGMxZDk5YjEyMDU2NzgzMDEwNTIwMzUyMzQ1NDkwNWQ1Y2I5MTUuLmYxNzMx
ODJjZGUxOWM3Y2ZhMmJiYWM0MDBhMTJmMTYwMjg1ZjMwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xlLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaApAQCAtNDksNiAr
NDksNyBAQCBlbnVtIFdlYkFjY2Vzc2liaWxpdHlSb2xlIHsKICAgICBXZWJBY2Nlc3NpYmlsaXR5
Um9sZUJyb3dzZXIsCiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVCdXN5SW5kaWNhdG9yLAogICAg
IFdlYkFjY2Vzc2liaWxpdHlSb2xlQnV0dG9uLAorICAgIFdlYkFjY2Vzc2liaWxpdHlSb2xlQ2Fu
dmFzLAogICAgIFdlYkFjY2Vzc2liaWxpdHlSb2xlQ2VsbCwgCiAgICAgV2ViQWNjZXNzaWJpbGl0
eVJvbGVDaGVja0JveCwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZUNvbG9yV2VsbCwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKaW5k
ZXggMTE5NDVhNTBiNDJjYTBlYjA0MzM3M2M5MTE1NzY1MDlhYzBlMjkwYy4uOGVmM2ZlMmQyY2Ji
ZDg5MjdhNjI3YjBmNDc2NTE4NGU5ZmExNTliMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKQEAgLTI2MSw2ICsyNjEsNyBAQCBD
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xlRG9jdW1lbnRO
b3RlLCBEb2N1bWVudE5vdGVSb2xlKQogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJB
Y2Nlc3NpYmlsaXR5Um9sZURvY3VtZW50UmVnaW9uLCBEb2N1bWVudFJlZ2lvblJvbGUpOwogQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZVVzZXJJbnRlcmZh
Y2VUb29sdGlwLCBVc2VySW50ZXJmYWNlVG9vbHRpcFJvbGUpOwogQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZVRvZ2dsZUJ1dHRvbiwgVG9nZ2xlQnV0dG9u
Um9sZSk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xl
Q2FudmFzLCBDYW52YXNSb2xlKTsKIAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJB
cHBsaWNhdGlvbkNhY2hlSG9zdDo6VW5jYWNoZWQsIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpVTkNB
Q0hFRCk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFwcGxpY2F0aW9uQ2FjaGVI
b3N0OjpJZGxlLCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6SURMRSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nl
c3NpYmxlQmFzZS5jcHAKaW5kZXggZTczMzE0MWYyODk4MzQ2YjNlOTQ2NzY0NWM5NzYyYmJmOTRl
MWJmOS4uMmNmOGY5NWUxNzM3NDQ0MzUxMjhlYzZhMzAxMTdhZGE0ZWJjODk4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcApAQCAtNjU3LDYgKzY1Nyw3IEBAIHN0YXRpYyBsb25n
IE1TQUFSb2xlKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAgICAgICAgIGNhc2UgV2ViQ29yZTo6
TGlua1JvbGU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6V2ViQ29yZUxpbmtSb2xlOgogICAgICAg
ICAgICAgcmV0dXJuIFJPTEVfU1lTVEVNX0xJTks7CisgICAgICAgIGNhc2UgV2ViQ29yZTo6Q2Fu
dmFzUm9sZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpJbWFnZU1hcFJvbGU6CiAgICAgICAgIGNh
c2UgV2ViQ29yZTo6SW1hZ2VSb2xlOgogICAgICAgICAgICAgcmV0dXJuIFJPTEVfU1lTVEVNX0dS
QVBISUM7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggNzYxOTBmOGJkOTJiNmRjMGI2NTExMTk0MDgxMGRkNjBhMzU2ZDVlMy4uYjMxNDdlN2UxNWZj
ZWVjZTZjZDc5ZTM5ZTc4ZWY0Y2VmZWQyYmFlYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA4LTI4ICBEb21p
bmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIEFYOiBDYW52YXMg
c2hvdWxkIGhhdmUgYSBkaXN0aW5jdCByb2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NTI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBjYW52YXMgYWNjZXNzaWJpbGl0eSBy
b2xlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAocm9sZVRvU3RyaW5nKToK
KwogMjAxMi0wOC0yNyAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtjaHJvbWl1bV0gRml4IGV4aXQgY29kZSBzdGF0dXMgbG9naWMgaW4gcnVuLWNocm9t
aXVtLXdlYmtpdC11bml0LXRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRDaHJvbWl1bS5jcHAKaW5kZXggZGYwZmIwYTFmOGYxNzA4NDQ5YjIxYzI4ODkxN2JjNjI1
ZTQ1NWViZC4uYjIxNDZmYTU0ODkwYzU0NmVmMjgxYjQwY2MwMTU0NDdjNDIxZDFkMiAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcApAQCAtMjA2
LDYgKzIwNiw4IEBAIHN0YXRpYyBzdHJpbmcgcm9sZVRvU3RyaW5nKFdlYkFjY2Vzc2liaWxpdHlS
b2xlIHJvbGUpCiAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCJVc2VySW50ZXJmYWNlVG9v
bHRpcCIpOwogICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eVJvbGVUb2dnbGVCdXR0b246CiAgICAg
ICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCJUb2dnbGVCdXR0b24iKTsKKyAgICBjYXNlIFdlYkFj
Y2Vzc2liaWxpdHlSb2xlQ2FudmFzOgorICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiQ2Fu
dmFzIik7CiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gQWxzbyBtYXRjaGVzIFdlYkFjY2Vzc2li
aWxpdHlSb2xlVW5rbm93bi4KICAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoIlVua25vd24i
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAwOTc0YjFlYzI5N2RiNDgzM2VlY2ExYzkxYTE5MTYyY2EzYmRiMDk0Li41ZGQ4
ZGY1NTM1ZjM4ZGZhNDk2NGE4ZDU4MTcxYzMxNTdmNGNkNWIxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMDgtMjggIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CisK
KyAgICAgICAgQVg6IENhbnZhcyBzaG91bGQgaGF2ZSBhIGRpc3RpbmN0IHJvbGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MjQ4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyB0ZXN0cyBmb3Ig
Y2FudmFzIHJvbGUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2NhbnZhcy5odG1sOiBEZWxl
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvY2FudmFzLWV4cGVjdGVkLnR4dDogRGVsZXRl
ZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2Nh
bnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L2NhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9jYW52YXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRpb24tYW5kLXJvbGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKwogMjAxMi0wOC0yNyAgQW5uYSBDYXZlbmRlciAgPGFubmFjY0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVGV4dFRyYWNrIG1vZGVzIGFyZSBzdHJpbmdzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9s
ZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRpb24tYW5k
LXJvbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDcyYzhjZTU1Y2RkMGU5YzhmYTdlZDNlNjc5NjFlNDAx
M2YyOTNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jYW52
YXMtZGVzY3JpcHRpb24tYW5kLXJvbGUuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUg
SFRNTD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCisgICAgPCEtLSBObyB3aGl0ZXNwYWNlIGJldHdl
ZW4gY2FudmFzZXMgb24gcHVycG9zZSwgc28gdGhlcmUncyB0aGUgc2FtZQorICAgICAgICAgbnVt
YmVyIG9mIGNoaWxkcmVuIG9mIHRoZSBjb250YWluZXIgZWxlbWVudCBvbiBhbGwgcGxhdGZvcm1z
LiAtLT4KKyAgICA8ZGl2IGlkPSJjb250YWluZXIiIHRhYkluZGV4PTA+PGNhbnZhcyBpZD0iY2Fu
dmFzMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGFyaWEtbGFiZWw9IkNhbnZhcyBsYWJlbCI+
RmFsbGJhY2sgdGV4dDwvY2FudmFzPjxjYW52YXMgaWQ9ImNhbnZhczIiIHdpZHRoPSIxMDAiIGhl
aWdodD0iMTAwIj48YnV0dG9uPklubmVyIGJ1dHRvbjwvYnV0dG9uPjwvY2FudmFzPjxjYW52YXMg
aWQ9ImNhbnZhczMtc2tpcHBlZCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjwvY2FudmFzPjwv
ZGl2PgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBhIGNhbnZhcyB3aXRoIGFuZCB3aXRob3V0IGZhbGxi
YWNrIGNvbnRlbnQgZWFjaCBoYXMgdGhlIHJpZ2h0IHJvbGUgYW5kIGRlc2NyaXB0aW9uLiIpCisK
K2lmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIp
IHsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuZm9jdXMoKTsKKyAgICB2YXIgYXhDb250YWluZXIg
PSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKKworICAgIHNob3VsZEJl
KCJheENvbnRhaW5lci5jaGlsZHJlbkNvdW50IiwgIjIiKTsKKworICAgIHZhciBheENhbnZhczEg
PSBheENvbnRhaW5lci5jaGlsZEF0SW5kZXgoMCk7CisgICAgZGVidWcoJ0NhbnZhcyAxIGRlc2Ny
aXB0aW9uOiAnICsgYXhDYW52YXMxLmRlc2NyaXB0aW9uKTsKKyAgICBkZWJ1ZygnQ2FudmFzIDEg
cm9sZTogJyArIGF4Q2FudmFzMS5yb2xlKTsKKworICAgIHZhciBheENhbnZhczIgPSBheENvbnRh
aW5lci5jaGlsZEF0SW5kZXgoMSk7CisgICAgZGVidWcoJ0NhbnZhcyAyIGRlc2NyaXB0aW9uOiAn
ICsgYXhDYW52YXMyLmRlc2NyaXB0aW9uKTsKKyAgICBkZWJ1ZygnQ2FudmFzIDIgcm9sZTogJyAr
IGF4Q2FudmFzMi5yb2xlKTsKK30KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jYW52YXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jYW52YXMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTFkYzNkMjlkM2NlMjFmMWU1NjI3ZTQyYzRkNTgw
M2E3YTk2OGNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2FudmFzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdCBwYXNzZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
Y2FudmFzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyMjA0OTI3OWQ4NTE3
ODg1MjVhZDlhNTA1ZWRhODYxMDQ1YmExOGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jYW52YXMuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTxodG1sPgotPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgotCi0gICAgZnVuY3Rpb24gZHJhd0NhbnZhcyhjb250ZXh0KSB7Ci0gICAg
ICAgIGNvbnRleHQubGluZVdpZHRoID0gMTAuMDsKLSAgICAgICAgY29udGV4dC5saW5lQ2FwID0g
InJvdW5kIjsKLQotICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwotCi0gICAgICAgIC8vIERy
YXcgYSBib3VuZHMgcmVjdCAoZGVmYXVsdCBjb2xvciBpcyBibGFjaykKLSAgICAgICAgY29udGV4
dC5zdHJva2VSZWN0KDAsIDAsIDMwMCwgMzAwKTsKLQotICAgICAgICBjb250ZXh0LnN0cm9rZVN0
eWxlID0gIiM4MDgwODAiOwotCi0gICAgICAgIC8vIERyYXcgYSB2ZXJ0aWNhbCBsaW5lCi0gICAg
ICAgIGNvbnRleHQubW92ZVRvKDE1MCwgMTAwKTsKLSAgICAgICAgY29udGV4dC5saW5lVG8oMTUw
LCAyMDApOwotICAgICAgICBjb250ZXh0LnN0cm9rZSgpOwotCi0gICAgICAgIC8vIERyYXcgYSBo
b3Jpem9udGFsIGxpbmUKLSAgICAgICAgY29udGV4dC5tb3ZlVG8oMTAwLCAxNTApOwotICAgICAg
ICBjb250ZXh0LmxpbmVUbygyMDAsIDE1MCk7Ci0gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gX29ubG9hZCgpIHsKLSAgICAgICAgdmFyIGNvbnRleHQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlDYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpOwotICAg
ICAgICBkcmF3Q2FudmFzKGNvbnRleHQpOwotICAgIH0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLSAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotPC9zY3JpcHQ+Ci08Ym9keSBpZD0iYm9keSIgb25sb2FkPSJfb25sb2FkKCkiPgotCi08aHRt
bD4KLSAKLSAgICA8IS0tIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgYSBjYW52YXMgZWxlbWVu
dCBzaG93cyB1cCBhcyBhbiBpbWFnZSAtLT4KLSAKLSAgICA8Y2FudmFzIGlkPSJteUNhbnZhcyIg
c3R5bGU9IndpZHRoOjMwMHB4O2hlaWdodDozMDBweDsiICB3aWR0aD0nMzAwJyBoZWlnaHQ9JzMw
MCcgYWx0PSJjYW52YXMgMSI+PC9jYW52YXM+Ci0KLSAgICA8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgotICAgICAKLSAgICA8c2NyaXB0PgotICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlD
b250cm9sbGVyKSB7Ci0gICAgICAgICAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlc3VsdCIpOwotCi0gICAgICAgICAgICB2YXIgYm9keSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJib2R5Iik7Ci0gICAgICAgICAgICBib2R5LmZvY3VzKCk7Ci0gICAgICAgICAg
ICB2YXIgY2FudmFzRWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVt
ZW50LmNoaWxkQXRJbmRleCgwKS5jaGlsZEF0SW5kZXgoMCk7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIHZhciBwYXR0ZXJuID0gIkFYUm9sZTogQVhJbWFnZSI7Ci0gICAgICAgICAgICBpZiAo
Y2FudmFzRWxlbWVudC5hbGxBdHRyaWJ1dGVzKCkuaW5kZXhPZihwYXR0ZXJuKSAhPSAtMSkgewot
ICAgICAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgKz0gIlRlc3QgcGFzc2VkXG4iOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgIHJlc3VsdC5p
bm5lclRleHQgKz0gIlRlc3QgZmFpbGVkXG4iICsgY2FudmFzRWxlbWVudC5hbGxBdHRyaWJ1dGVz
KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICA8L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2li
aWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFu
ZC1yb2xlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZGFmZGMwYTkxMDc3M2E3NDcwZTkzYTkz
NTc0NGY5YzkzNmViZmY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRpb24tYW5kLXJvbGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgYSBjYW52
YXMgd2l0aCBhbmQgd2l0aG91dCBmYWxsYmFjayBjb250ZW50IGVhY2ggaGFzIHRoZSByaWdodCBy
b2xlIGFuZCBkZXNjcmlwdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgYXhDb250YWluZXIuY2hpbGRyZW5Db3VudCBpcyAyCitDYW52YXMgMSBkZXNjcmlwdGlvbjog
QVhEZXNjcmlwdGlvbjogQ2FudmFzIGxhYmVsCitDYW52YXMgMSByb2xlOiBBWFJvbGU6IEFYQ2Fu
dmFzCitDYW52YXMgMiBkZXNjcmlwdGlvbjogQVhEZXNjcmlwdGlvbjogCitDYW52YXMgMiByb2xl
OiBBWFJvbGU6IEFYQ2FudmFzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBhZTdhZjEzOWJlYzU0MmRkMGZkMmQ4MTUxZmM3ZjU5YjJhOTcyZTJkLi5mOWViYTkxM2Fm
OWU2NzA1Y2UzMmE1ZWI1M2M1YzUxODY4ZGZjMTY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjE2LDcgKzYxNiw3IEBAIEJVR1dLR1RLIDogYWNjZXNz
aWJpbGl0eS9hcmlhLXNjcm9sbGJhci1yb2xlLmh0bWwgPSBURVhUCiBCVUdXS0dUSyA6IGFjY2Vz
c2liaWxpdHkvYXJpYS10ZXh0LXJvbGUuaHRtbCA9IFRFWFQKIEJVR1dLR1RLIDogYWNjZXNzaWJp
bGl0eS9hcmlhLXVzZWQtb24taW1hZ2UtbWFwcy5odG1sID0gVEVYVAogQlVHV0tHVEsgOiBhY2Nl
c3NpYmlsaXR5L2J1dHRvbi1wcmVzcy1hY3Rpb24uaHRtbCA9IFRFWFQKLUJVR1dLR1RLIDogYWNj
ZXNzaWJpbGl0eS9jYW52YXMuaHRtbCA9IFRFWFQKK0JVR1dLR1RLIDogYWNjZXNzaWJpbGl0eS9j
YW52YXMtZGVzY3JpcHRpb24tYW5kLXJvbGUuaHRtbCA9IFRFWFQKIEJVR1dLR1RLIDogYWNjZXNz
aWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29udGVudC5odG1sID0gVEVYVAogQlVHV0tHVEsgOiBh
Y2Nlc3NpYmlsaXR5L2VkaXRhYmxlLXdlYmFyZWEtY29udGV4dC1tZW51LXBvaW50Lmh0bWwgPSBU
RVhUCiBCVUdXS0dUSyA6IGFjY2Vzc2liaWxpdHkvZWxsaXBzaXMtdGV4dC5odG1sID0gVEVYVApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvY2FudmFz
LWRlc2NyaXB0aW9uLWFuZC1yb2xlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjQwMjU3N2Y5Nzc0YzNiOWE1MDVkMzQwNTRmYjg4NDQ2MWI4MGU0Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBA
QAorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBhIGNhbnZhcyB3aXRoIGFuZCB3aXRob3V0IGZh
bGxiYWNrIGNvbnRlbnQgZWFjaCBoYXMgdGhlIHJpZ2h0IHJvbGUgYW5kIGRlc2NyaXB0aW9uLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBheENvbnRhaW5lci5jaGlsZHJl
bkNvdW50IGlzIDIKK0NhbnZhcyAxIGRlc2NyaXB0aW9uOiBBWERlc2NyaXB0aW9uOiBDYW52YXMg
bGFiZWwKK0NhbnZhcyAxIHJvbGU6IEFYUm9sZTogQVhJbWFnZQorQ2FudmFzIDIgZGVzY3JpcHRp
b246IEFYRGVzY3JpcHRpb246IAorQ2FudmFzIDIgcm9sZTogQVhSb2xlOiBBWEdyb3VwCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvY2FudmFzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkxZGMzZDI5ZDNjZTIxZjFlNTYyN2U0MmM0ZDU4MDNhN2E5
NjhjZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L2NhbnZhcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitUZXN0IHBhc3NlZAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9jYW52
YXMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIyMjA0OTI3OWQ4NTE3ODg1MjVhZDlhNTA1ZWRhODYxMDQ1YmExOGQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9jYW52YXMuaHRtbApAQCAtMCwwICsxLDYzIEBACis8aHRtbD4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKworICAgIGZ1bmN0aW9uIGRyYXdDYW52YXMoY29udGV4dCkgeworICAg
ICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IDEwLjA7CisgICAgICAgIGNvbnRleHQubGluZUNhcCA9
ICJyb3VuZCI7CisKKyAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTsKKworICAgICAgICAvLyBE
cmF3IGEgYm91bmRzIHJlY3QgKGRlZmF1bHQgY29sb3IgaXMgYmxhY2spCisgICAgICAgIGNvbnRl
eHQuc3Ryb2tlUmVjdCgwLCAwLCAzMDAsIDMwMCk7CisKKyAgICAgICAgY29udGV4dC5zdHJva2VT
dHlsZSA9ICIjODA4MDgwIjsKKworICAgICAgICAvLyBEcmF3IGEgdmVydGljYWwgbGluZQorICAg
ICAgICBjb250ZXh0Lm1vdmVUbygxNTAsIDEwMCk7CisgICAgICAgIGNvbnRleHQubGluZVRvKDE1
MCwgMjAwKTsKKyAgICAgICAgY29udGV4dC5zdHJva2UoKTsKKworICAgICAgICAvLyBEcmF3IGEg
aG9yaXpvbnRhbCBsaW5lCisgICAgICAgIGNvbnRleHQubW92ZVRvKDEwMCwgMTUwKTsKKyAgICAg
ICAgY29udGV4dC5saW5lVG8oMjAwLCAxNTApOworICAgICAgICBjb250ZXh0LnN0cm9rZSgpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIF9vbmxvYWQoKSB7CisgICAgICAgIHZhciBjb250ZXh0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15Q2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKKyAg
ICAgICAgZHJhd0NhbnZhcyhjb250ZXh0KTsKKyAgICB9Cis8L3NjcmlwdD4KKzxzY3JpcHQ+Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKzwvc2NyaXB0PgorPGJvZHkgaWQ9ImJvZHkiIG9ubG9hZD0iX29ubG9hZCgpIj4KKworPGh0
bWw+CisgCisgICAgPCEtLSBUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGEgY2FudmFzIGVsZW1l
bnQgc2hvd3MgdXAgYXMgYW4gaW1hZ2UgLS0+CisgCisgICAgPGNhbnZhcyBpZD0ibXlDYW52YXMi
IHN0eWxlPSJ3aWR0aDozMDBweDtoZWlnaHQ6MzAwcHg7IiAgd2lkdGg9JzMwMCcgaGVpZ2h0PScz
MDAnIGFsdD0iY2FudmFzIDEiPjwvY2FudmFzPgorCisgICAgPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKyAgICAgCisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcikgeworICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZXN1bHQiKTsKKworICAgICAgICAgICAgdmFyIGJvZHkgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiYm9keSIpOworICAgICAgICAgICAgYm9keS5mb2N1cygpOworICAgICAgICAg
ICAgdmFyIGNhbnZhc0VsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxl
bWVudC5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAgCisgICAg
ICAgICAgICB2YXIgcGF0dGVybiA9ICJBWFJvbGU6IEFYSW1hZ2UiOworICAgICAgICAgICAgaWYg
KGNhbnZhc0VsZW1lbnQuYWxsQXR0cmlidXRlcygpLmluZGV4T2YocGF0dGVybikgIT0gLTEpIHsK
KyAgICAgICAgICAgICAgICByZXN1bHQuaW5uZXJUZXh0ICs9ICJUZXN0IHBhc3NlZFxuIjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICByZXN1bHQu
aW5uZXJUZXh0ICs9ICJUZXN0IGZhaWxlZFxuIiArIGNhbnZhc0VsZW1lbnQuYWxsQXR0cmlidXRl
cygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161151</attachid>
            <date>2012-08-29 00:07:18 -0700</date>
            <delta_ts>2012-08-29 11:25:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-95248-20120829000709.patch</filename>
            <type>text/plain</type>
            <size>24758</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2Nzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBjNWNjOGM2NWQxZGE3
ODJiODkzZmFjZDU3YmM5ZmNjYjc3ZTg4OC4uZjM5MDM0OGNjYWMwYjhkNDA2YmZhYzVjYmUyNzNk
MzRmNGQ3NDgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA4LTI4ICBEb21p
bmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIEFYOiBDYW52YXMg
c2hvdWxkIGhhdmUgYSBkaXN0aW5jdCByb2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NTI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIEZs
ZWl6YWNoLgorCisgICAgICAgIEFkZCBuZXcgcm9sZSBmb3IgYSBjYW52YXMgZWxlbWVudCwgYW5k
IGEgbWV0aG9kIHRvIGRldGVybWluZSBpZgorICAgICAgICBhIGNhbnZhcyBoYXMgZmFsbGJhY2sg
Y29udGVudCwgc28gZWFjaCBwbGF0Zm9ybSBjYW4gZGVjaWRlIG9uIHRoZQorICAgICAgICBhcHBy
b3ByaWF0ZSByb2xlIG1hcHBpbmcgdG8gdXNlLgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxp
dHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Lmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojppc0NhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0OjpjYW52YXNIYXNGYWxsYmFja0NvbnRlbnQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2li
aWxpdHlSb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmNhbkhhdmVDaGlsZHJlbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNj
ZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAoYXRrUm9sZSk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW06CisgICAgICAg
IChjcmVhdGVBY2Nlc3NpYmlsaXR5Um9sZU1hcCk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIHJvbGVdKToKKwogMjAxMi0wOC0yNyAgSnVzdGluIE5vdm9zYWQgIDxq
dW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBGaXhpbmcgaW5maW5pdGUg
cmVjdXJzaW9uIGluIENhbnZhczJETGF5ZXJNYW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDM0ZTUyYThkYWRjNWVhZmEzZDFkMTM3NjlkZWRkNjI2YjBlNzNlY2EuLjI4ZjRjNTI4
MGNlNWRhOGU1YjY2YjM4ODBkMjIwOTk4MTM5ZDA2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDgtMjggIERvbWluaWMgTWF6em9uaSAgPGRtYXp6
b25pQGdvb2dsZS5jb20+CisKKyAgICAgICAgQVg6IENhbnZhcyBzaG91bGQgaGF2ZSBhIGRpc3Rp
bmN0IHJvbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk1MjQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIGNhbnZhcyBhY2Nlc3NpYmlsaXR5IHJvbGUuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaDoKKyAgICAgICAgKiBzcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHA6CisKIDIwMTItMDgtMjcgIEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gRml4aW5nIGluZmluaXRlIHJlY3Vyc2lvbiBp
biBDYW52YXMyRExheWVyTWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDMxOWE3NWNlYmEzNjM5
ODRmZTExNDQ1ZDc5NDkzODYzNGUzOTAxODUuLjNkOGVmYTI5YTUzMDQ3MDBhNTZkMDZhNmJmMjNm
NjU1NWNmNDY0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wOC0y
OCAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBBWDog
Q2FudmFzIHNob3VsZCBoYXZlIGEgZGlzdGluY3Qgcm9sZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUyNDgKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBGbGVpemFjaC4KKworICAgICAgICBNYXAgbmV3IENhbnZhc1JvbGUgdG8gdGhlIHNhbWUg
YXMgSW1hZ2VSb2xlLgorCisgICAgICAgICogQWNjZXNzaWJsZUJhc2UuY3BwOgorICAgICAgICAo
TVNBQVJvbGUpOgorCiAyMDEyLTA4LTIzICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5j
b20+CiAKICAgICAgICAgQ29udmVydCBTY3JvbGxhYmxlQXJlYSBBU1NFUlRfTk9UX1JFQUNIRUQg
dmlydHVhbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZmE3NDEwNzAwODllODAzMGJjOGEzNWYwMWRi
MjQ2ZjdjZDBjMzhmMS4uZTc1OWE2YWRkZGI1ZDUzMjFlMWJhMTFkM2I2NTYzM2JlYjkyYzI2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAKQEAgLTMwNiw2ICszMDYsMjMgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cm9sZSA9PSBVbmtub3duUm9sZTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
Y2FudmFzSGFzRmFsbGJhY2tDb250ZW50KCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhp
cy0+bm9kZSgpOworICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aGFzVGFnTmFtZShjYW52YXNUYWcp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJZiBpdCBoYXMgYW55IGNoaWxkcmVu
IHRoYXQgYXJlIGVsZW1lbnRzLCB3ZSdsbCBhc3N1bWUgaXQgbWlnaHQgYmUgZmFsbGJhY2sKKyAg
ICAvLyBjb250ZW50LiBJZiBpdCBoYXMgbm8gY2hpbGRyZW4gb3IgaXRzIG9ubHkgY2hpbGRyZW4g
YXJlIG5vdCBlbGVtZW50cworICAgIC8vIChlLmcuIGp1c3QgdGV4dCBub2RlcyksIGl0IGRvZXNu
J3QgaGF2ZSBmYWxsYmFjayBjb250ZW50LgorICAgIGZvciAoTm9kZSogY2hpbGQgPSBub2RlLT5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAg
ICAgIGlmIChjaGlsZC0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0OjpjYW5TZXRGb2N1c0F0dHJpYnV0ZSgpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9
IHRoaXMtPm5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCBlMGEyY2FkOGU4OGVlMzg3ZDYwNjZlMTdh
YjE5MGI3OTI1YWNjN2NkLi45Zjc3Mzk2NTllYTdjNTg0YjhhMzk5ZmViNWE5N2FlZmE4MGFmY2Fj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5oCkBAIC02Niw2ICs2Niw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0
dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KIAorICAgIHZpcnR1YWwgYm9vbCBjYW52YXNIYXNGYWxsYmFja0NvbnRlbnQoKSBjb25zdDsK
KwogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRGb2N1c0F0dHJpYnV0ZSgpIGNvbnN0OwogICAgIAog
ICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApp
bmRleCBlYTc3YWU0OGIyODYzNzgzZjYwZjQ3Y2RhNTAyMGRkZjUzODQ1NjNiLi40MWVlNzMzYjIx
ZmMxNzc0YTVkNzJlZjRkZDdkYzFiNzQ3ZWQwNjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMTAzLDYgKzEwMyw3IEBA
IGVudW0gQWNjZXNzaWJpbGl0eVJvbGUgewogICAgIEJyb3dzZXJSb2xlLAogICAgIEJ1c3lJbmRp
Y2F0b3JSb2xlLAogICAgIEJ1dHRvblJvbGUsCisgICAgQ2FudmFzUm9sZSwKICAgICBDZWxsUm9s
ZSwgCiAgICAgQ2hlY2tCb3hSb2xlLAogICAgIENvbG9yV2VsbFJvbGUsCkBAIC0zODAsNiArMzgx
LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNMaXN0SXRlbSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVW
YWx1ZSgpID09IExpc3RJdGVtUm9sZTsgfQogICAgIGJvb2wgaXNDaGVja2JveE9yUmFkaW8oKSBj
b25zdCB7IHJldHVybiBpc0NoZWNrYm94KCkgfHwgaXNSYWRpb0J1dHRvbigpOyB9CiAgICAgYm9v
bCBpc1Njcm9sbFZpZXcoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBTY3JvbGxBcmVh
Um9sZTsgfQorICAgIGJvb2wgaXNDYW52YXMoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9
PSBDYW52YXNSb2xlOyB9CiAgICAgYm9vbCBpc0Jsb2NrcXVvdGUoKSBjb25zdDsKICAgICBib29s
IGlzTGFuZG1hcmsoKSBjb25zdDsKICAgICAKQEAgLTQ1Nyw2ICs0NTksNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludmFsaWRTdGF0dXMoKSBjb25zdDsKICAg
ICBib29sIHN1cHBvcnRzQVJJQUV4cGFuZGVkKCkgY29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0eVNv
cnREaXJlY3Rpb24gc29ydERpcmVjdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjYW52
YXNIYXNGYWxsYmFja0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIAogICAg
IC8vIEFSSUEgZHJhZyBhbmQgZHJvcAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcm9w
cGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCA3
ZmE1ZDNiYjZiMDQ0ZDNmMzM2MjIyNDUxZjFmNWM4ZmUwZmEwOTY0Li4wMTQxZDk2MjhhODQzN2Iz
OTRkNjNmY2I5MTQ0OTZjMDIzYTE3MGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODcs
NyArMTQ4Nyw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmls
aXR5RGVzY3JpcHRpb24oKSBjb25zdAogICAgICAgICByZXR1cm4gYXJpYURlc2NyaXB0aW9uOwog
ICAgIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgaWYgKGlzSW1h
Z2UoKSB8fCBpc0lucHV0SW1hZ2UoKSB8fCBpc05hdGl2ZUltYWdlKCkpIHsKKyAgICBpZiAoaXNJ
bWFnZSgpIHx8IGlzSW5wdXRJbWFnZSgpIHx8IGlzTmF0aXZlSW1hZ2UoKSB8fCBpc0NhbnZhcygp
KSB7CiAgICAgICAgIGlmIChub2RlICYmIG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgewogICAgICAg
ICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhbHQgPSB0b0hUTUxFbGVtZW50KG5vZGUpLT5nZXRB
dHRyaWJ1dGUoYWx0QXR0cik7CiAgICAgICAgICAgICBpZiAoYWx0LmlzRW1wdHkoKSkKQEAgLTE5
NzQsMTMgKzE5NzQsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGNh
bnZhc1RhZykpIHsKLSAgICAgICAgICAgIFJlbmRlckhUTUxDYW52YXMqIGNhbnZhcyA9IHRvUmVu
ZGVySFRNTENhbnZhcyhtX3JlbmRlcmVyKTsKLSAgICAgICAgICAgIGlmIChjYW52YXMtPmhlaWdo
dCgpIDw9IDEgfHwgY2FudmFzLT53aWR0aCgpIDw9IDEpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgCiAg
ICAgICAgIGlmIChpc05hdGl2ZUltYWdlKCkpIHsKICAgICAgICAgICAgIC8vIGNoZWNrIGZvciBv
bmUtZGltZW5zaW9uYWwgaW1hZ2UKICAgICAgICAgICAgIFJlbmRlckltYWdlKiBpbWFnZSA9IHRv
UmVuZGVySW1hZ2UobV9yZW5kZXJlcik7CkBAIC0xOTk1LDcgKzE5ODgsMTYgQEAgYm9vbCBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIAorCisgICAgaWYgKGlz
Q2FudmFzKCkpIHsKKyAgICAgICAgaWYgKGNhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBSZW5kZXJIVE1MQ2FudmFzKiBjYW52YXMg
PSB0b1JlbmRlckhUTUxDYW52YXMobV9yZW5kZXJlcik7CisgICAgICAgIGlmIChjYW52YXMtPmhl
aWdodCgpIDw9IDEgfHwgY2FudmFzLT53aWR0aCgpIDw9IDEpCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgLy8gT3RoZXJ3aXNlIGZhbGwgdGhyb3VnaDsgdXNlIHByZXNlbmNlIG9m
IGhlbHAgdGV4dCwgdGl0bGUsIG9yIGRlc2NyaXB0aW9uIHRvIGRlY2lkZS4KKyAgICB9CisKICAg
ICBpZiAoaXNXZWJBcmVhKCkgfHwgbV9yZW5kZXJlci0+aXNMaXN0TWFya2VyKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAKQEAgLTMxNTIsNyArMzE1NCw3IEBAIEFjY2Vzc2liaWxpdHlS
b2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xl
KCkKICAgICAgICAgcmV0dXJuIEltYWdlUm9sZTsKICAgICB9CiAgICAgaWYgKG5vZGUgJiYgbm9k
ZS0+aGFzVGFnTmFtZShjYW52YXNUYWcpKQotICAgICAgICByZXR1cm4gSW1hZ2VSb2xlOworICAg
ICAgICByZXR1cm4gQ2FudmFzUm9sZTsKIAogICAgIGlmIChjc3NCb3ggJiYgY3NzQm94LT5pc1Jl
bmRlclZpZXcoKSkKICAgICAgICAgcmV0dXJuIFdlYkFyZWFSb2xlOwpAQCAtMzM5NywxMCArMzM5
OSw2IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCkg
Y29uc3QKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAK
LSAgICAvLyBDYW52YXMgaXMgYSBzcGVjaWFsIGNhc2U7IGl0cyByb2xlIGlzIEltYWdlUm9sZSBi
dXQgaXQgaXMgYWxsb3dlZCB0byBoYXZlIGNoaWxkcmVuLgotICAgIGlmIChub2RlKCkgJiYgbm9k
ZSgpLT5oYXNUYWdOYW1lKGNhbnZhc1RhZykpCi0gICAgICAgIHJldHVybiB0cnVlOwotCiAgICAg
Ly8gRWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGhhdmUgY2hpbGRyZW4KICAgICBzd2l0Y2ggKHJv
bGVWYWx1ZSgpKSB7CiAgICAgY2FzZSBJbWFnZVJvbGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0
ay5jcHAKaW5kZXggZjdmOWY2ZWU4ZWI2MjgyZjA1OWU1YWFiMDEyNjA4MTU1ZTFhODUzNy4uMWY0
ODAwMGUxNDdiNWZkM2ZlOTljYzk2ZmM5M2MwYTg0OTk2YTk5MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVX
cmFwcGVyQXRrLmNwcApAQCAtNTAxLDYgKzUwMSw3IEBAIHN0YXRpYyBBdGtSb2xlIGF0a1JvbGUo
QWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKICAgICBjYXNlIFdlYkNvcmVMaW5rUm9sZToKICAgICBj
YXNlIEltYWdlTWFwTGlua1JvbGU6CiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9MSU5LOworICAg
IGNhc2UgQ2FudmFzUm9sZToKICAgICBjYXNlIEltYWdlTWFwUm9sZToKICAgICBjYXNlIEltYWdl
Um9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX0lNQUdFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlci5tbQppbmRleCA2ZjVlNzUxNjE0ZWNkNmQ5MTRhNjMyZTg4YTA5ZjAwNzMwYjE1
YzgyLi5mM2NkODAwNTYwMDg0ZTIzOTRhOTM4YjRjMGUzYTcyMmRjZDY4NjBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbQpAQCAtMTU3OCw3ICsxNTc4LDggQEAgc3RhdGljIGNv
bnN0IEFjY2Vzc2liaWxpdHlSb2xlTWFwJiBjcmVhdGVBY2Nlc3NpYmlsaXR5Um9sZU1hcCgpCiAg
ICAgICAgIHsgRm9ybVJvbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAogICAgICAgICB7
IFNwaW5CdXR0b25Sb2xlLCBOU0FjY2Vzc2liaWxpdHlJbmNyZW1lbnRvclJvbGUgfSwKICAgICAg
ICAgeyBGb290ZXJSb2xlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBU
b2dnbGVCdXR0b25Sb2xlLCBOU0FjY2Vzc2liaWxpdHlCdXR0b25Sb2xlIH0KKyAgICAgICAgeyBU
b2dnbGVCdXR0b25Sb2xlLCBOU0FjY2Vzc2liaWxpdHlCdXR0b25Sb2xlIH0sCisgICAgICAgIHsg
Q2FudmFzUm9sZSwgTlNBY2Nlc3NpYmlsaXR5SW1hZ2VSb2xlIH0KICAgICB9OwogICAgIEFjY2Vz
c2liaWxpdHlSb2xlTWFwJiByb2xlTWFwID0gKm5ldyBBY2Nlc3NpYmlsaXR5Um9sZU1hcDsKICAg
ICAKQEAgLTE1OTksNyArMTYwMCwxMCBAQCBzdGF0aWMgTlNTdHJpbmcqIHJvbGVWYWx1ZVRvTlNT
dHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiB7CiAgICAgaWYgKG1fb2JqZWN0LT5pc0F0
dGFjaG1lbnQoKSkKICAgICAgICAgcmV0dXJuIFtbc2VsZiBhdHRhY2htZW50Vmlld10gYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGVdOwotICAg
IE5TU3RyaW5nKiBzdHJpbmcgPSByb2xlVmFsdWVUb05TU3RyaW5nKG1fb2JqZWN0LT5yb2xlVmFs
dWUoKSk7CisgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IG1fb2JqZWN0LT5yb2xlVmFsdWUo
KTsKKyAgICBpZiAocm9sZSA9PSBDYW52YXNSb2xlICYmIG1fb2JqZWN0LT5jYW52YXNIYXNGYWxs
YmFja0NvbnRlbnQoKSkKKyAgICAgICAgcm9sZSA9IEdyb3VwUm9sZTsKKyAgICBOU1N0cmluZyog
c3RyaW5nID0gcm9sZVZhbHVlVG9OU1N0cmluZyhyb2xlKTsKICAgICBpZiAoc3RyaW5nICE9IG5p
bCkKICAgICAgICAgcmV0dXJuIHN0cmluZzsKICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VW5r
bm93blJvbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJB
Y2Nlc3NpYmlsaXR5Um9sZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNj
ZXNzaWJpbGl0eVJvbGUuaAppbmRleCBmNDBjMWQ5OWIxMjA1Njc4MzAxMDUyMDM1MjM0NTQ5MDVk
NWNiOTE1Li5mMTczMTgyY2RlMTljN2NmYTJiYmFjNDAwYTEyZjE2MDI4NWYzMDNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Um9sZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xl
LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgZW51bSBXZWJBY2Nlc3NpYmlsaXR5Um9sZSB7CiAgICAgV2Vi
QWNjZXNzaWJpbGl0eVJvbGVCcm93c2VyLAogICAgIFdlYkFjY2Vzc2liaWxpdHlSb2xlQnVzeUlu
ZGljYXRvciwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZUJ1dHRvbiwKKyAgICBXZWJBY2Nlc3Np
YmlsaXR5Um9sZUNhbnZhcywKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZUNlbGwsIAogICAgIFdl
YkFjY2Vzc2liaWxpdHlSb2xlQ2hlY2tCb3gsCiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVDb2xv
cldlbGwsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRj
aGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5n
RW51bXMuY3BwCmluZGV4IDExOTQ1YTUwYjQyY2EwZWIwNDMzNzNjOTExNTc2NTA5YWMwZTI5MGMu
LjhlZjNmZTJkMmNiYmQ4OTI3YTYyN2IwZjQ3NjUxODRlOWZhMTU5YjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCkBAIC0yNjEs
NiArMjYxLDcgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5
Um9sZURvY3VtZW50Tm90ZSwgRG9jdW1lbnROb3RlUm9sZSkKIENPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVEb2N1bWVudFJlZ2lvbiwgRG9jdW1lbnRSZWdp
b25Sb2xlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJv
bGVVc2VySW50ZXJmYWNlVG9vbHRpcCwgVXNlckludGVyZmFjZVRvb2x0aXBSb2xlKTsKIENPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVUb2dnbGVCdXR0b24s
IFRvZ2dsZUJ1dHRvblJvbGUpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nl
c3NpYmlsaXR5Um9sZUNhbnZhcywgQ2FudmFzUm9sZSk7CiAKIENPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViQXBwbGljYXRpb25DYWNoZUhvc3Q6OlVuY2FjaGVkLCBBcHBsaWNhdGlvbkNh
Y2hlSG9zdDo6VU5DQUNIRUQpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBcHBs
aWNhdGlvbkNhY2hlSG9zdDo6SWRsZSwgQXBwbGljYXRpb25DYWNoZUhvc3Q6OklETEUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwIGIvU291cmNlL1dl
YktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCmluZGV4IGU3MzMxNDFmMjg5ODM0NmIzZTk0Njc2
NDVjOTc2MmJiZjk0ZTFiZjkuLjJjZjhmOTVlMTczNzQ0NDM1MTI4ZWM2YTMwMTE3YWRhNGViYzg5
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKQEAgLTY1Nyw2ICs2NTcsNyBA
QCBzdGF0aWMgbG9uZyBNU0FBUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgICAgICBj
YXNlIFdlYkNvcmU6OkxpbmtSb2xlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OldlYkNvcmVMaW5r
Um9sZToKICAgICAgICAgICAgIHJldHVybiBST0xFX1NZU1RFTV9MSU5LOworICAgICAgICBjYXNl
IFdlYkNvcmU6OkNhbnZhc1JvbGU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6SW1hZ2VNYXBSb2xl
OgogICAgICAgICBjYXNlIFdlYkNvcmU6OkltYWdlUm9sZToKICAgICAgICAgICAgIHJldHVybiBS
T0xFX1NZU1RFTV9HUkFQSElDOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDc2MTkwZjhiZDkyYjZkYzBiNjUxMTE5NDA4MTBkZDYwYTM1NmQ1ZTMu
LjNiNjFkZjhmZTAzYmZjN2ZmNTk3NzQ2NTI4ZDYxYzEwMjA0YTRjMzMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
Mi0wOC0yOCAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBBWDogQ2FudmFzIHNob3VsZCBoYXZlIGEgZGlzdGluY3Qgcm9sZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUyNDgKKworICAgICAgICBSZXZpZXdl
ZCBieSBDaHJpcyBGbGVpemFjaC4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgY2FudmFzIGFj
Y2Vzc2liaWxpdHkgcm9sZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcDoKKyAgICAgICAgKHJv
bGVUb1N0cmluZyk6CisKIDIwMTItMDgtMjcgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEZpeCBleGl0IGNvZGUgc3RhdHVzIGxvZ2lj
IGluIHJ1bi1jaHJvbWl1bS13ZWJraXQtdW5pdC10ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hy
b21pdW0uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwCmluZGV4IGRmMGZiMGExZjhmMTcwODQ0OWIy
MWMyODg5MTdiYzYyNWU0NTVlYmQuLmIyMTQ2ZmE1NDg5MGM1NDZlZjI4MWI0MGNjMDE1NDQ3YzQy
MWQxZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1
bS5jcHAKQEAgLTIwNiw2ICsyMDYsOCBAQCBzdGF0aWMgc3RyaW5nIHJvbGVUb1N0cmluZyhXZWJB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiVXNl
ckludGVyZmFjZVRvb2x0aXAiKTsKICAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlSb2xlVG9nZ2xl
QnV0dG9uOgogICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiVG9nZ2xlQnV0dG9uIik7Cisg
ICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Um9sZUNhbnZhczoKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dC5hcHBlbmQoIkNhbnZhcyIpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8vIEFsc28gbWF0Y2hl
cyBXZWJBY2Nlc3NpYmlsaXR5Um9sZVVua25vd24uCiAgICAgICAgIHJldHVybiByZXN1bHQuYXBw
ZW5kKCJVbmtub3duIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDk3NGIxZWMyOTdkYjQ4MzNlZWNhMWM5MWExOTE2MmNh
M2JkYjA5NC4uNzBmZGJiMDA3Mjc3N2U4YTEzYTY1NWEwMjk0MTgxZDVlODc2MjU4MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDEyLTA4LTI4ICBEb21pbmljIE1henpvbmkgIDxkbWF6em9uaUBn
b29nbGUuY29tPgorCisgICAgICAgIEFYOiBDYW52YXMgc2hvdWxkIGhhdmUgYSBkaXN0aW5jdCBy
b2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTI0
OAorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIEZsZWl6YWNoLgorCisgICAgICAgIEFkZCBu
ZXcgdGVzdHMgZm9yIGNhbnZhcyByb2xlLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9jYW52
YXMuaHRtbDogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2NhbnZhcy1leHBlY3Rl
ZC50eHQ6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRp
b24tYW5kLXJvbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vYWNj
ZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRpb24tYW5kLXJvbGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9jYW52YXMuaHRtbDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvY2FudmFzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFu
ZC1yb2xlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTItMDgtMjcgIEFubmEgQ2F2ZW5kZXIg
IDxhbm5hY2NAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRleHRUcmFjayBtb2RlcyBhcmUgc3Ry
aW5ncwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3Jp
cHRpb24tYW5kLXJvbGUuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRl
c2NyaXB0aW9uLWFuZC1yb2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ3MmM4Y2U1NWNkZDBlOWM4ZmE3
ZWQzZTY3OTYxZTQwMTNmMjkzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLmh0bWwKQEAgLTAsMCArMSwzNSBA
QAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKworICAgIDwhLS0gTm8gd2hp
dGVzcGFjZSBiZXR3ZWVuIGNhbnZhc2VzIG9uIHB1cnBvc2UsIHNvIHRoZXJlJ3MgdGhlIHNhbWUK
KyAgICAgICAgIG51bWJlciBvZiBjaGlsZHJlbiBvZiB0aGUgY29udGFpbmVyIGVsZW1lbnQgb24g
YWxsIHBsYXRmb3Jtcy4gLS0+CisgICAgPGRpdiBpZD0iY29udGFpbmVyIiB0YWJJbmRleD0wPjxj
YW52YXMgaWQ9ImNhbnZhczEiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBhcmlhLWxhYmVsPSJD
YW52YXMgbGFiZWwiPkZhbGxiYWNrIHRleHQ8L2NhbnZhcz48Y2FudmFzIGlkPSJjYW52YXMyIiB3
aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PGJ1dHRvbj5Jbm5lciBidXR0b248L2J1dHRvbj48L2Nh
bnZhcz48Y2FudmFzIGlkPSJjYW52YXMzLXNraXBwZWQiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAw
Ij48L2NhbnZhcz48L2Rpdj4KKworPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgYSBjYW52YXMgd2l0aCBhbmQg
d2l0aG91dCBmYWxsYmFjayBjb250ZW50IGVhY2ggaGFzIHRoZSByaWdodCByb2xlIGFuZCBkZXNj
cmlwdGlvbi4iKQorCitpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKSB7CisgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmZvY3VzKCk7CisgICAgdmFy
IGF4Q29udGFpbmVyID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisK
KyAgICBzaG91bGRCZSgiYXhDb250YWluZXIuY2hpbGRyZW5Db3VudCIsICIyIik7CisKKyAgICB2
YXIgYXhDYW52YXMxID0gYXhDb250YWluZXIuY2hpbGRBdEluZGV4KDApOworICAgIGRlYnVnKCdD
YW52YXMgMSBkZXNjcmlwdGlvbjogJyArIGF4Q2FudmFzMS5kZXNjcmlwdGlvbik7CisgICAgZGVi
dWcoJ0NhbnZhcyAxIHJvbGU6ICcgKyBheENhbnZhczEucm9sZSk7CisKKyAgICB2YXIgYXhDYW52
YXMyID0gYXhDb250YWluZXIuY2hpbGRBdEluZGV4KDEpOworICAgIGRlYnVnKCdDYW52YXMgMiBk
ZXNjcmlwdGlvbjogJyArIGF4Q2FudmFzMi5kZXNjcmlwdGlvbik7CisgICAgZGVidWcoJ0NhbnZh
cyAyIHJvbGU6ICcgKyBheENhbnZhczIucm9sZSk7Cit9CisKKzwvc2NyaXB0PgorCis8c2NyaXB0
IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2Fu
dmFzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2FudmFzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjkxZGMzZDI5ZDNjZTIxZjFl
NTYyN2U0MmM0ZDU4MDNhN2E5NjhjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVRlc3QgcGFzc2VkCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2NhbnZhcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
MjIwNDkyNzlkODUxNzg4NTI1YWQ5YTUwNWVkYTg2MTA0NWJhMThkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
Y2FudmFzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi08aHRtbD4KLTxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotICAgIGZ1bmN0aW9uIGRyYXdDYW52YXMoY29u
dGV4dCkgewotICAgICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IDEwLjA7Ci0gICAgICAgIGNvbnRl
eHQubGluZUNhcCA9ICJyb3VuZCI7Ci0KLSAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTsKLQot
ICAgICAgICAvLyBEcmF3IGEgYm91bmRzIHJlY3QgKGRlZmF1bHQgY29sb3IgaXMgYmxhY2spCi0g
ICAgICAgIGNvbnRleHQuc3Ryb2tlUmVjdCgwLCAwLCAzMDAsIDMwMCk7Ci0KLSAgICAgICAgY29u
dGV4dC5zdHJva2VTdHlsZSA9ICIjODA4MDgwIjsKLQotICAgICAgICAvLyBEcmF3IGEgdmVydGlj
YWwgbGluZQotICAgICAgICBjb250ZXh0Lm1vdmVUbygxNTAsIDEwMCk7Ci0gICAgICAgIGNvbnRl
eHQubGluZVRvKDE1MCwgMjAwKTsKLSAgICAgICAgY29udGV4dC5zdHJva2UoKTsKLQotICAgICAg
ICAvLyBEcmF3IGEgaG9yaXpvbnRhbCBsaW5lCi0gICAgICAgIGNvbnRleHQubW92ZVRvKDEwMCwg
MTUwKTsKLSAgICAgICAgY29udGV4dC5saW5lVG8oMjAwLCAxNTApOwotICAgICAgICBjb250ZXh0
LnN0cm9rZSgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIF9vbmxvYWQoKSB7Ci0gICAgICAgIHZh
ciBjb250ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15Q2FudmFzIikuZ2V0Q29udGV4
dCgiMmQiKTsKLSAgICAgICAgZHJhd0NhbnZhcyhjb250ZXh0KTsKLSAgICB9Ci08L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLTwvc2NyaXB0PgotPGJvZHkgaWQ9ImJvZHkiIG9ubG9hZD0iX29ubG9h
ZCgpIj4KLQotPGh0bWw+Ci0gCi0gICAgPCEtLSBUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGEg
Y2FudmFzIGVsZW1lbnQgc2hvd3MgdXAgYXMgYW4gaW1hZ2UgLS0+Ci0gCi0gICAgPGNhbnZhcyBp
ZD0ibXlDYW52YXMiIHN0eWxlPSJ3aWR0aDozMDBweDtoZWlnaHQ6MzAwcHg7IiAgd2lkdGg9JzMw
MCcgaGVpZ2h0PSczMDAnIGFsdD0iY2FudmFzIDEiPjwvY2FudmFzPgotCi0gICAgPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KLSAgICAgCi0gICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5h
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKLQotICAgICAgICAgICAgdmFyIGJvZHkgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpOwotICAgICAgICAgICAgYm9keS5mb2N1cygp
OwotICAgICAgICAgICAgdmFyIGNhbnZhc0VsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5mb2N1c2VkRWxlbWVudC5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICB2YXIgcGF0dGVybiA9ICJBWFJvbGU6IEFYSW1hZ2UiOwotICAg
ICAgICAgICAgaWYgKGNhbnZhc0VsZW1lbnQuYWxsQXR0cmlidXRlcygpLmluZGV4T2YocGF0dGVy
bikgIT0gLTEpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQuaW5uZXJUZXh0ICs9ICJUZXN0IHBh
c3NlZFxuIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICAgICByZXN1bHQuaW5uZXJUZXh0ICs9ICJUZXN0IGZhaWxlZFxuIiArIGNhbnZhc0VsZW1lbnQu
YWxsQXR0cmlidXRlcygpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1k
ZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRhZmRjMGE5MTA3
NzNhNzQ3MGU5M2E5MzU3NDRmOWM5MzZlYmZmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFu
ZC1yb2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUaGlzIHRlc3QgbWFrZXMgc3Vy
ZSB0aGF0IGEgY2FudmFzIHdpdGggYW5kIHdpdGhvdXQgZmFsbGJhY2sgY29udGVudCBlYWNoIGhh
cyB0aGUgcmlnaHQgcm9sZSBhbmQgZGVzY3JpcHRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGF4Q29udGFpbmVyLmNoaWxkcmVuQ291bnQgaXMgMgorQ2FudmFzIDEg
ZGVzY3JpcHRpb246IEFYRGVzY3JpcHRpb246IENhbnZhcyBsYWJlbAorQ2FudmFzIDEgcm9sZTog
QVhSb2xlOiBBWENhbnZhcworQ2FudmFzIDIgZGVzY3JpcHRpb246IEFYRGVzY3JpcHRpb246IAor
Q2FudmFzIDIgcm9sZTogQVhSb2xlOiBBWENhbnZhcworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggYWU3YWYxMzliZWM1NDJkZDBmZDJkODE1MWZjN2Y1OWIyYTk3MmUy
ZC4uZjllYmE5MTNhZjllNjcwNWNlMzJhNWViNTNjNWM1MTg2OGRmYzE2NiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTYxNiw3ICs2MTYsNyBAQCBCVUdX
S0dUSyA6IGFjY2Vzc2liaWxpdHkvYXJpYS1zY3JvbGxiYXItcm9sZS5odG1sID0gVEVYVAogQlVH
V0tHVEsgOiBhY2Nlc3NpYmlsaXR5L2FyaWEtdGV4dC1yb2xlLmh0bWwgPSBURVhUCiBCVUdXS0dU
SyA6IGFjY2Vzc2liaWxpdHkvYXJpYS11c2VkLW9uLWltYWdlLW1hcHMuaHRtbCA9IFRFWFQKIEJV
R1dLR1RLIDogYWNjZXNzaWJpbGl0eS9idXR0b24tcHJlc3MtYWN0aW9uLmh0bWwgPSBURVhUCi1C
VUdXS0dUSyA6IGFjY2Vzc2liaWxpdHkvY2FudmFzLmh0bWwgPSBURVhUCitCVUdXS0dUSyA6IGFj
Y2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLmh0bWwgPSBURVhUCiBCVUdX
S0dUSyA6IGFjY2Vzc2liaWxpdHkvY2FudmFzLWZhbGxiYWNrLWNvbnRlbnQuaHRtbCA9IFRFWFQK
IEJVR1dLR1RLIDogYWNjZXNzaWJpbGl0eS9lZGl0YWJsZS13ZWJhcmVhLWNvbnRleHQtbWVudS1w
b2ludC5odG1sID0gVEVYVAogQlVHV0tHVEsgOiBhY2Nlc3NpYmlsaXR5L2VsbGlwc2lzLXRleHQu
aHRtbCA9IFRFWFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRpb24tYW5kLXJv
bGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MDI1NzdmOTc3NGMzYjlhNTA1ZDM0MDU0ZmI4
ODQ0NjFiODBlNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRpb24tYW5kLXJvbGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgYSBjYW52YXMgd2l0aCBh
bmQgd2l0aG91dCBmYWxsYmFjayBjb250ZW50IGVhY2ggaGFzIHRoZSByaWdodCByb2xlIGFuZCBk
ZXNjcmlwdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYXhDb250
YWluZXIuY2hpbGRyZW5Db3VudCBpcyAyCitDYW52YXMgMSBkZXNjcmlwdGlvbjogQVhEZXNjcmlw
dGlvbjogQ2FudmFzIGxhYmVsCitDYW52YXMgMSByb2xlOiBBWFJvbGU6IEFYSW1hZ2UKK0NhbnZh
cyAyIGRlc2NyaXB0aW9uOiBBWERlc2NyaXB0aW9uOiAKK0NhbnZhcyAyIHJvbGU6IEFYUm9sZTog
QVhHcm91cAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2Nh
bnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9jYW52YXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5MWRjM2QyOWQzY2UyMWYxZTU2Mjdl
NDJjNGQ1ODAzYTdhOTY4Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9jYW52YXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAor
VGVzdCBwYXNzZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vz
c2liaWxpdHkvY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjIwNDkyNzlkODUxNzg4NTI1YWQ5YTUwNWVk
YTg2MTA0NWJhMThkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvY2FudmFzLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPGh0bWw+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKKyAgICBmdW5jdGlvbiBkcmF3Q2FudmFzKGNv
bnRleHQpIHsKKyAgICAgICAgY29udGV4dC5saW5lV2lkdGggPSAxMC4wOworICAgICAgICBjb250
ZXh0LmxpbmVDYXAgPSAicm91bmQiOworCisgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CisK
KyAgICAgICAgLy8gRHJhdyBhIGJvdW5kcyByZWN0IChkZWZhdWx0IGNvbG9yIGlzIGJsYWNrKQor
ICAgICAgICBjb250ZXh0LnN0cm9rZVJlY3QoMCwgMCwgMzAwLCAzMDApOworCisgICAgICAgIGNv
bnRleHQuc3Ryb2tlU3R5bGUgPSAiIzgwODA4MCI7CisKKyAgICAgICAgLy8gRHJhdyBhIHZlcnRp
Y2FsIGxpbmUKKyAgICAgICAgY29udGV4dC5tb3ZlVG8oMTUwLCAxMDApOworICAgICAgICBjb250
ZXh0LmxpbmVUbygxNTAsIDIwMCk7CisgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7CisKKyAgICAg
ICAgLy8gRHJhdyBhIGhvcml6b250YWwgbGluZQorICAgICAgICBjb250ZXh0Lm1vdmVUbygxMDAs
IDE1MCk7CisgICAgICAgIGNvbnRleHQubGluZVRvKDIwMCwgMTUwKTsKKyAgICAgICAgY29udGV4
dC5zdHJva2UoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBfb25sb2FkKCkgeworICAgICAgICB2
YXIgY29udGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteUNhbnZhcyIpLmdldENvbnRl
eHQoIjJkIik7CisgICAgICAgIGRyYXdDYW52YXMoY29udGV4dCk7CisgICAgfQorPC9zY3JpcHQ+
Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzxib2R5IGlkPSJib2R5IiBvbmxvYWQ9Il9vbmxv
YWQoKSI+CisKKzxodG1sPgorIAorICAgIDwhLS0gVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBh
IGNhbnZhcyBlbGVtZW50IHNob3dzIHVwIGFzIGFuIGltYWdlIC0tPgorIAorICAgIDxjYW52YXMg
aWQ9Im15Q2FudmFzIiBzdHlsZT0id2lkdGg6MzAwcHg7aGVpZ2h0OjMwMHB4OyIgIHdpZHRoPScz
MDAnIGhlaWdodD0nMzAwJyBhbHQ9ImNhbnZhcyAxIj48L2NhbnZhcz4KKworICAgIDxkaXYgaWQ9
InJlc3VsdCI+PC9kaXY+CisgICAgIAorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iik7CisKKyAgICAgICAgICAgIHZhciBib2R5ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKTsKKyAgICAgICAgICAgIGJvZHkuZm9jdXMo
KTsKKyAgICAgICAgICAgIHZhciBjYW52YXNFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4KDApLmNoaWxkQXRJbmRleCgwKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgdmFyIHBhdHRlcm4gPSAiQVhSb2xlOiBBWEltYWdlIjsKKyAg
ICAgICAgICAgIGlmIChjYW52YXNFbGVtZW50LmFsbEF0dHJpYnV0ZXMoKS5pbmRleE9mKHBhdHRl
cm4pICE9IC0xKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCArPSAiVGVzdCBw
YXNzZWRcbiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgcmVzdWx0LmlubmVyVGV4dCArPSAiVGVzdCBmYWlsZWRcbiIgKyBjYW52YXNFbGVtZW50
LmFsbEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161273</attachid>
            <date>2012-08-29 11:25:21 -0700</date>
            <delta_ts>2012-08-29 19:14:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-95248-20120829112511.patch</filename>
            <type>text/plain</type>
            <size>24769</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2VmMDFhMjM5ODk1YmRj
MzlkNzIxZTNlMTllZGNkY2I3OWUwYjU3NS4uNzhkYWVlODQ4YTJlZjc2NzEzMjlhOGY4YzUyMjFj
NGNjYzcyYmU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA4LTI5ICBEb21p
bmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIEFYOiBDYW52YXMg
c2hvdWxkIGhhdmUgYSBkaXN0aW5jdCByb2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NTI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIEZs
ZWl6YWNoLgorCisgICAgICAgIEFkZCBuZXcgcm9sZSBmb3IgYSBjYW52YXMgZWxlbWVudCwgYW5k
IGEgbWV0aG9kIHRvIGRldGVybWluZSBpZgorICAgICAgICBhIGNhbnZhcyBoYXMgZmFsbGJhY2sg
Y29udGVudCwgc28gZWFjaCBwbGF0Zm9ybSBjYW4gZGVjaWRlIG9uIHRoZQorICAgICAgICBhcHBy
b3ByaWF0ZSByb2xlIG1hcHBpbmcgdG8gdXNlLgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxp
dHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Lmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojppc0NhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0OjpjYW52YXNIYXNGYWxsYmFja0NvbnRlbnQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2li
aWxpdHlSb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmNhbkhhdmVDaGlsZHJlbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNj
ZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAoYXRrUm9sZSk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW06CisgICAgICAg
IChjcmVhdGVBY2Nlc3NpYmlsaXR5Um9sZU1hcCk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyIHJvbGVdKToKKwogMjAxMi0wOC0yOCAgRGF2aWQgSHlhdHQgIDxoeWF0
dEBhcHBsZS5jb20+CiAKICAgICAgICAgW05ldyBNdWx0aWNvbHVtbl0gSW1wbGVtZW50IGNvbHVt
biBjb250ZW50cyBwYWludGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggM2FjZGQ0
ODEwYmMyYjZhYjhkOWZlYTMyZTU1YzViMGUxM2YzMGIwMi4uMDNjNzRmMWUyZjZmY2FmODI3ZWMx
Njk3ODUxN2EwMGU3OTU0MzNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMi0wOC0yOSAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNv
bT4KKworICAgICAgICBBWDogQ2FudmFzIHNob3VsZCBoYXZlIGEgZGlzdGluY3Qgcm9sZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUyNDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgY2FudmFzIGFjY2Vzc2liaWxpdHkgcm9sZS4KKworICAgICAgICAqIHB1YmxpYy9XZWJBY2Nl
c3NpYmlsaXR5Um9sZS5oOgorICAgICAgICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDoK
KwogMjAxMi0wOC0yOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNjk3Mi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZwppbmRleCBiMDA5N2Q1NDJiNzI2Mjc2NTY0MzE5NWY4NDI3YTRhYzY4ZjM5NzkzLi5mNjAxOWEy
YjU5ZjM5MTg2ODBjZjg0NmU3NTA2NTUzZDQ1Yzc0OTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTItMDgtMjkgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgQVg6IENhbnZhcyBzaG91bGQgaGF2ZSBhIGRpc3RpbmN0IHJvbGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MjQ4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAgTWFwIG5ldyBD
YW52YXNSb2xlIHRvIHRoZSBzYW1lIGFzIEltYWdlUm9sZS4KKworICAgICAgICAqIEFjY2Vzc2li
bGVCYXNlLmNwcDoKKyAgICAgICAgKE1TQUFSb2xlKToKKwogMjAxMi0wOC0yOSAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjEyNjk3Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZWMwOWY0YzQ3YTZkNTE5
NzNlYzIxNGFlYzE0MDg1YzQ3ZTMxMTNhNy4uZTU4NDU2YzE0OGYwNTEwZDFkNTkwOTU0Y2RmNDgz
MWI1ODE5ZTljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTMwNiw2ICszMDYsMjMgQEAgYm9vbCBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fcm9sZSA9PSBVbmtub3duUm9sZTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6Y2FudmFzSGFzRmFsbGJhY2tDb250ZW50KCkgY29uc3QKK3sKKyAgICBOb2Rl
KiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aGFzVGFnTmFt
ZShjYW52YXNUYWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJZiBpdCBoYXMg
YW55IGNoaWxkcmVuIHRoYXQgYXJlIGVsZW1lbnRzLCB3ZSdsbCBhc3N1bWUgaXQgbWlnaHQgYmUg
ZmFsbGJhY2sKKyAgICAvLyBjb250ZW50LiBJZiBpdCBoYXMgbm8gY2hpbGRyZW4gb3IgaXRzIG9u
bHkgY2hpbGRyZW4gYXJlIG5vdCBlbGVtZW50cworICAgIC8vIChlLmcuIGp1c3QgdGV4dCBub2Rl
cyksIGl0IGRvZXNuJ3QgaGF2ZSBmYWxsYmFjayBjb250ZW50LgorICAgIGZvciAoTm9kZSogY2hp
bGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGlu
ZygpKSB7CisgICAgICAgIGlmIChjaGlsZC0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjpjYW5TZXRGb2N1c0F0dHJpYnV0ZSgpIGNvbnN0CiB7CiAgICAg
Tm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCA1MThkYjg4ZDMxMTQ1
MjU5YzQ5NmE0YjBmYWI4YTBhNWRmNjE1MjU5Li5lMTNhZWQ2NDU0ODNjNzczZGJhYzc1YmYxMWQ1
ZDFlNDUzMzNkZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC02Niw2ICs2Niw4IEBAIHB1YmxpYzoKICAg
ICAKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBjYW52YXNIYXNGYWxsYmFja0NvbnRl
bnQoKSBjb25zdDsKKwogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRGb2N1c0F0dHJpYnV0ZSgpIGNv
bnN0OwogICAgIAogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZmlyc3RDaGlsZCgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaAppbmRleCA4NjY2OTEyMGJiZTE1Y2E5YTc5NjQ2MzAxNjg4NmMyYzkxMDAwMmE4
Li5jMDNiNjNmOWVlMTgzMWM2ZGYwYjFjY2E1OWM3MDQxZGE1ZTY2ZWNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMTA0
LDYgKzEwNCw3IEBAIGVudW0gQWNjZXNzaWJpbGl0eVJvbGUgewogICAgIEJyb3dzZXJSb2xlLAog
ICAgIEJ1c3lJbmRpY2F0b3JSb2xlLAogICAgIEJ1dHRvblJvbGUsCisgICAgQ2FudmFzUm9sZSwK
ICAgICBDZWxsUm9sZSwgCiAgICAgQ2hlY2tCb3hSb2xlLAogICAgIENvbG9yV2VsbFJvbGUsCkBA
IC0zODEsNiArMzgyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNMaXN0SXRlbSgpIGNvbnN0IHsg
cmV0dXJuIHJvbGVWYWx1ZSgpID09IExpc3RJdGVtUm9sZTsgfQogICAgIGJvb2wgaXNDaGVja2Jv
eE9yUmFkaW8oKSBjb25zdCB7IHJldHVybiBpc0NoZWNrYm94KCkgfHwgaXNSYWRpb0J1dHRvbigp
OyB9CiAgICAgYm9vbCBpc1Njcm9sbFZpZXcoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9
PSBTY3JvbGxBcmVhUm9sZTsgfQorICAgIGJvb2wgaXNDYW52YXMoKSBjb25zdCB7IHJldHVybiBy
b2xlVmFsdWUoKSA9PSBDYW52YXNSb2xlOyB9CiAgICAgYm9vbCBpc0Jsb2NrcXVvdGUoKSBjb25z
dDsKICAgICBib29sIGlzTGFuZG1hcmsoKSBjb25zdDsKICAgICAKQEAgLTQ1OCw2ICs0NjAsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludmFsaWRTdGF0dXMo
KSBjb25zdDsKICAgICBib29sIHN1cHBvcnRzQVJJQUV4cGFuZGVkKCkgY29uc3Q7CiAgICAgQWNj
ZXNzaWJpbGl0eVNvcnREaXJlY3Rpb24gc29ydERpcmVjdGlvbigpIGNvbnN0OworICAgIHZpcnR1
YWwgYm9vbCBjYW52YXNIYXNGYWxsYmFja0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIAogICAgIC8vIEFSSUEgZHJhZyBhbmQgZHJvcAogICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0FSSUFEcm9wcGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAppbmRleCA3MzM2NDgyM2Y0MDI3ZTE4NGU1MDc5MmY0ZjA3MTI0MWJiMzViNTFkLi4wYjE1
MTJlYzU5N2UwYjA2MjBmYWQ1N2MzMjAxZjc3NTQyNWYzZTBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKQEAgLTE0OTIsNyArMTQ5Miw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKSBjb25zdAogICAgICAgICByZXR1cm4gYXJpYURl
c2NyaXB0aW9uOwogICAgIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0g
ICAgaWYgKGlzSW1hZ2UoKSB8fCBpc0lucHV0SW1hZ2UoKSB8fCBpc05hdGl2ZUltYWdlKCkpIHsK
KyAgICBpZiAoaXNJbWFnZSgpIHx8IGlzSW5wdXRJbWFnZSgpIHx8IGlzTmF0aXZlSW1hZ2UoKSB8
fCBpc0NhbnZhcygpKSB7CiAgICAgICAgIGlmIChub2RlICYmIG5vZGUtPmlzSFRNTEVsZW1lbnQo
KSkgewogICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhbHQgPSB0b0hUTUxFbGVtZW50
KG5vZGUpLT5nZXRBdHRyaWJ1dGUoYWx0QXR0cik7CiAgICAgICAgICAgICBpZiAoYWx0LmlzRW1w
dHkoKSkKQEAgLTE5NzUsMTMgKzE5NzUsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAobm9kZSAmJiBub2RlLT5o
YXNUYWdOYW1lKGNhbnZhc1RhZykpIHsKLSAgICAgICAgICAgIFJlbmRlckhUTUxDYW52YXMqIGNh
bnZhcyA9IHRvUmVuZGVySFRNTENhbnZhcyhtX3JlbmRlcmVyKTsKLSAgICAgICAgICAgIGlmIChj
YW52YXMtPmhlaWdodCgpIDw9IDEgfHwgY2FudmFzLT53aWR0aCgpIDw9IDEpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0K
LSAgICAgICAgCiAgICAgICAgIGlmIChpc05hdGl2ZUltYWdlKCkpIHsKICAgICAgICAgICAgIC8v
IGNoZWNrIGZvciBvbmUtZGltZW5zaW9uYWwgaW1hZ2UKICAgICAgICAgICAgIFJlbmRlckltYWdl
KiBpbWFnZSA9IHRvUmVuZGVySW1hZ2UobV9yZW5kZXJlcik7CkBAIC0xOTk2LDcgKzE5ODksMTYg
QEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkgY29uc3QKICAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIAor
CisgICAgaWYgKGlzQ2FudmFzKCkpIHsKKyAgICAgICAgaWYgKGNhbnZhc0hhc0ZhbGxiYWNrQ29u
dGVudCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBSZW5kZXJIVE1MQ2Fu
dmFzKiBjYW52YXMgPSB0b1JlbmRlckhUTUxDYW52YXMobV9yZW5kZXJlcik7CisgICAgICAgIGlm
IChjYW52YXMtPmhlaWdodCgpIDw9IDEgfHwgY2FudmFzLT53aWR0aCgpIDw9IDEpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgLy8gT3RoZXJ3aXNlIGZhbGwgdGhyb3VnaDsgdXNl
IHByZXNlbmNlIG9mIGhlbHAgdGV4dCwgdGl0bGUsIG9yIGRlc2NyaXB0aW9uIHRvIGRlY2lkZS4K
KyAgICB9CisKICAgICBpZiAoaXNXZWJBcmVhKCkgfHwgbV9yZW5kZXJlci0+aXNMaXN0TWFya2Vy
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAgLTMxNzgsNyArMzE4MCw3IEBAIEFj
Y2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vz
c2liaWxpdHlSb2xlKCkKICAgICAgICAgcmV0dXJuIEltYWdlUm9sZTsKICAgICB9CiAgICAgaWYg
KG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShjYW52YXNUYWcpKQotICAgICAgICByZXR1cm4gSW1h
Z2VSb2xlOworICAgICAgICByZXR1cm4gQ2FudmFzUm9sZTsKIAogICAgIGlmIChjc3NCb3ggJiYg
Y3NzQm94LT5pc1JlbmRlclZpZXcoKSkKICAgICAgICAgcmV0dXJuIFdlYkFyZWFSb2xlOwpAQCAt
MzQyMywxMCArMzQyNSw2IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2FuSGF2
ZUNoaWxkcmVuKCkgY29uc3QKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAKLSAgICAvLyBDYW52YXMgaXMgYSBzcGVjaWFsIGNhc2U7IGl0cyByb2xlIGlz
IEltYWdlUm9sZSBidXQgaXQgaXMgYWxsb3dlZCB0byBoYXZlIGNoaWxkcmVuLgotICAgIGlmIChu
b2RlKCkgJiYgbm9kZSgpLT5oYXNUYWdOYW1lKGNhbnZhc1RhZykpCi0gICAgICAgIHJldHVybiB0
cnVlOwotCiAgICAgLy8gRWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGhhdmUgY2hpbGRyZW4KICAg
ICBzd2l0Y2ggKHJvbGVWYWx1ZSgpKSB7CiAgICAgY2FzZSBJbWFnZVJvbGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBl
ckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3Np
YmxlV3JhcHBlckF0ay5jcHAKaW5kZXggZjdmOWY2ZWU4ZWI2MjgyZjA1OWU1YWFiMDEyNjA4MTU1
ZTFhODUzNy4uMWY0ODAwMGUxNDdiNWZkM2ZlOTljYzk2ZmM5M2MwYTg0OTk2YTk5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdy
YXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dlYktp
dEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcApAQCAtNTAxLDYgKzUwMSw3IEBAIHN0YXRpYyBBdGtS
b2xlIGF0a1JvbGUoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKICAgICBjYXNlIFdlYkNvcmVMaW5r
Um9sZToKICAgICBjYXNlIEltYWdlTWFwTGlua1JvbGU6CiAgICAgICAgIHJldHVybiBBVEtfUk9M
RV9MSU5LOworICAgIGNhc2UgQ2FudmFzUm9sZToKICAgICBjYXNlIEltYWdlTWFwUm9sZToKICAg
ICBjYXNlIEltYWdlUm9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX0lNQUdFOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbQppbmRleCA2ZjVlNzUxNjE0ZWNkNmQ5MTRhNjMyZTg4
YTA5ZjAwNzMwYjE1YzgyLi5mM2NkODAwNTYwMDg0ZTIzOTRhOTM4YjRjMGUzYTcyMmRjZDY4NjBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbQpAQCAtMTU3OCw3ICsxNTc4LDgg
QEAgc3RhdGljIGNvbnN0IEFjY2Vzc2liaWxpdHlSb2xlTWFwJiBjcmVhdGVBY2Nlc3NpYmlsaXR5
Um9sZU1hcCgpCiAgICAgICAgIHsgRm9ybVJvbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9
LAogICAgICAgICB7IFNwaW5CdXR0b25Sb2xlLCBOU0FjY2Vzc2liaWxpdHlJbmNyZW1lbnRvclJv
bGUgfSwKICAgICAgICAgeyBGb290ZXJSb2xlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwK
LSAgICAgICAgeyBUb2dnbGVCdXR0b25Sb2xlLCBOU0FjY2Vzc2liaWxpdHlCdXR0b25Sb2xlIH0K
KyAgICAgICAgeyBUb2dnbGVCdXR0b25Sb2xlLCBOU0FjY2Vzc2liaWxpdHlCdXR0b25Sb2xlIH0s
CisgICAgICAgIHsgQ2FudmFzUm9sZSwgTlNBY2Nlc3NpYmlsaXR5SW1hZ2VSb2xlIH0KICAgICB9
OwogICAgIEFjY2Vzc2liaWxpdHlSb2xlTWFwJiByb2xlTWFwID0gKm5ldyBBY2Nlc3NpYmlsaXR5
Um9sZU1hcDsKICAgICAKQEAgLTE1OTksNyArMTYwMCwxMCBAQCBzdGF0aWMgTlNTdHJpbmcqIHJv
bGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiB7CiAgICAgaWYgKG1f
b2JqZWN0LT5pc0F0dGFjaG1lbnQoKSkKICAgICAgICAgcmV0dXJuIFtbc2VsZiBhdHRhY2htZW50
Vmlld10gYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVJvbGVBdHRy
aWJ1dGVdOwotICAgIE5TU3RyaW5nKiBzdHJpbmcgPSByb2xlVmFsdWVUb05TU3RyaW5nKG1fb2Jq
ZWN0LT5yb2xlVmFsdWUoKSk7CisgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IG1fb2JqZWN0
LT5yb2xlVmFsdWUoKTsKKyAgICBpZiAocm9sZSA9PSBDYW52YXNSb2xlICYmIG1fb2JqZWN0LT5j
YW52YXNIYXNGYWxsYmFja0NvbnRlbnQoKSkKKyAgICAgICAgcm9sZSA9IEdyb3VwUm9sZTsKKyAg
ICBOU1N0cmluZyogc3RyaW5nID0gcm9sZVZhbHVlVG9OU1N0cmluZyhyb2xlKTsKICAgICBpZiAo
c3RyaW5nICE9IG5pbCkKICAgICAgICAgcmV0dXJuIHN0cmluZzsKICAgICByZXR1cm4gTlNBY2Nl
c3NpYmlsaXR5VW5rbm93blJvbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Um9sZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaAppbmRleCBmNDBjMWQ5OWIxMjA1Njc4MzAxMDUy
MDM1MjM0NTQ5MDVkNWNiOTE1Li5mMTczMTgyY2RlMTljN2NmYTJiYmFjNDAwYTEyZjE2MDI4NWYz
MDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3Np
YmlsaXR5Um9sZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vz
c2liaWxpdHlSb2xlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgZW51bSBXZWJBY2Nlc3NpYmlsaXR5Um9s
ZSB7CiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVCcm93c2VyLAogICAgIFdlYkFjY2Vzc2liaWxp
dHlSb2xlQnVzeUluZGljYXRvciwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZUJ1dHRvbiwKKyAg
ICBXZWJBY2Nlc3NpYmlsaXR5Um9sZUNhbnZhcywKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZUNl
bGwsIAogICAgIFdlYkFjY2Vzc2liaWxpdHlSb2xlQ2hlY2tCb3gsCiAgICAgV2ViQWNjZXNzaWJp
bGl0eVJvbGVDb2xvcldlbGwsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fz
c2VydE1hdGNoaW5nRW51bXMuY3BwCmluZGV4IDExOTQ1YTUwYjQyY2EwZWIwNDMzNzNjOTExNTc2
NTA5YWMwZTI5MGMuLjhlZjNmZTJkMmNiYmQ4OTI3YTYyN2IwZjQ3NjUxODRlOWZhMTU5YjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMu
Y3BwCkBAIC0yNjEsNiArMjYxLDcgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJB
Y2Nlc3NpYmlsaXR5Um9sZURvY3VtZW50Tm90ZSwgRG9jdW1lbnROb3RlUm9sZSkKIENPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVEb2N1bWVudFJlZ2lvbiwg
RG9jdW1lbnRSZWdpb25Sb2xlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNj
ZXNzaWJpbGl0eVJvbGVVc2VySW50ZXJmYWNlVG9vbHRpcCwgVXNlckludGVyZmFjZVRvb2x0aXBS
b2xlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVU
b2dnbGVCdXR0b24sIFRvZ2dsZUJ1dHRvblJvbGUpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZUNhbnZhcywgQ2FudmFzUm9sZSk7CiAKIENPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViQXBwbGljYXRpb25DYWNoZUhvc3Q6OlVuY2FjaGVkLCBB
cHBsaWNhdGlvbkNhY2hlSG9zdDo6VU5DQUNIRUQpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdDo6SWRsZSwgQXBwbGljYXRpb25DYWNoZUhvc3Q6
OklETEUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3Bw
IGIvU291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCmluZGV4IGU3MzMxNDFmMjg5
ODM0NmIzZTk0Njc2NDVjOTc2MmJiZjk0ZTFiZjkuLjJjZjhmOTVlMTczNzQ0NDM1MTI4ZWM2YTMw
MTE3YWRhNGViYzg5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0FjY2Vzc2libGVC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKQEAgLTY1
Nyw2ICs2NTcsNyBAQCBzdGF0aWMgbG9uZyBNU0FBUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xl
KQogICAgICAgICBjYXNlIFdlYkNvcmU6OkxpbmtSb2xlOgogICAgICAgICBjYXNlIFdlYkNvcmU6
OldlYkNvcmVMaW5rUm9sZToKICAgICAgICAgICAgIHJldHVybiBST0xFX1NZU1RFTV9MSU5LOwor
ICAgICAgICBjYXNlIFdlYkNvcmU6OkNhbnZhc1JvbGU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6
SW1hZ2VNYXBSb2xlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkltYWdlUm9sZToKICAgICAgICAg
ICAgIHJldHVybiBST0xFX1NZU1RFTV9HUkFQSElDOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNmMTdmOGZhZTBlMzg3YjQ1NWIxOGY2MWFjMDQx
YjcyNzIzZWRlZjYuLjYxNzhkMjgxMWRmZjRhMDhmOTU5YTc0ODhkYjJmODdhOWIzZTc0MWMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMi0wOC0yOSAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNv
bT4KKworICAgICAgICBBWDogQ2FudmFzIHNob3VsZCBoYXZlIGEgZGlzdGluY3Qgcm9sZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUyNDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgY2FudmFzIGFjY2Vzc2liaWxpdHkgcm9sZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcDoK
KyAgICAgICAgKHJvbGVUb1N0cmluZyk6CisKIDIwMTItMDgtMjkgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxMjY5NzIuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJv
bWl1bS5jcHAKaW5kZXggZWU3NzljYjE3NTg5YzY0ZmRkZDdhZDQ0NTM1ZjE4MjA3MGNkMjI4Ni4u
MzRlNGUzYzRlMGJkNDc1ODc5YzZiMTkzYTVmYmE1NmRmNTliMjY0YyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Q2hyb21pdW0uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcApAQCAtMjA2LDYgKzIwNiw4
IEBAIHN0YXRpYyBzdHJpbmcgcm9sZVRvU3RyaW5nKFdlYkFjY2Vzc2liaWxpdHlSb2xlIHJvbGUp
CiAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCJVc2VySW50ZXJmYWNlVG9vbHRpcCIpOwog
ICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eVJvbGVUb2dnbGVCdXR0b246CiAgICAgICAgIHJldHVy
biByZXN1bHQuYXBwZW5kKCJUb2dnbGVCdXR0b24iKTsKKyAgICBjYXNlIFdlYkFjY2Vzc2liaWxp
dHlSb2xlQ2FudmFzOgorICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiQ2FudmFzIik7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgLy8gQWxzbyBtYXRjaGVzIFdlYkFjY2Vzc2liaWxpdHlSb2xl
VW5rbm93bi4KICAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoIlVua25vd24iKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBhNjdiNjViZTdjOTI3OGRjOTRhNGZlMzlhZjFjYjliZGIyYjUzN2ZiLi45YjIxZjY2ZjRlYzU4
YTUyMjZjOTk3ZWRiYjk4MWM4MzU2NTczN2U4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTIt
MDgtMjkgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CisKKyAgICAgICAg
QVg6IENhbnZhcyBzaG91bGQgaGF2ZSBhIGRpc3RpbmN0IHJvbGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MjQ4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAgQWRkIG5ldyB0ZXN0cyBmb3IgY2FudmFzIHJv
bGUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2NhbnZhcy5odG1sOiBEZWxldGVkLgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvY2FudmFzLWV4cGVjdGVkLnR4dDogRGVsZXRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNj
cmlwdGlvbi1hbmQtcm9sZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2NhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9jYW52YXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRpb24tYW5kLXJvbGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKwogMjAxMi0wOC0yOSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLmh0bWwgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU5YTkzYzVmMGUyODE2NGUzZGVjYTYzOWU5ZTg1OTZiYzg3YTU3MTQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlw
dGlvbi1hbmQtcm9sZS5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CisKKzxzdHlsZT5jYW52YXMgeyBkaXNwbGF5OiBpbmxpbmU7IGJvcmRl
cjogMXB4IHNvbGlkICMwMDA7IH08L3N0eWxlPgorICAgIDwhLS0gTm8gd2hpdGVzcGFjZSBiZXR3
ZWVuIGNhbnZhc2VzIG9uIHB1cnBvc2UsIHNvIHRoZXJlJ3MgdGhlIHNhbWUKKyAgICAgICAgIG51
bWJlciBvZiBjaGlsZHJlbiBvZiB0aGUgY29udGFpbmVyIGVsZW1lbnQgb24gYWxsIHBsYXRmb3Jt
cy4gLS0+CisgICAgPGRpdiBpZD0iY29udGFpbmVyIiB0YWJJbmRleD0wIGFyaWEtbGFiZWw9IkNv
bnRhaW5lciI+PGNhbnZhcyBpZD0iY2FudmFzMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGFy
aWEtbGFiZWw9IkNhbnZhcyBsYWJlbCI+RmFsbGJhY2sgdGV4dDwvY2FudmFzPjxjYW52YXMgaWQ9
ImNhbnZhczIiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48YnV0dG9uPklubmVyIGJ1dHRvbjwv
YnV0dG9uPjwvY2FudmFzPjxjYW52YXMgaWQ9ImNhbnZhczMtc2tpcHBlZCIgd2lkdGg9IjEwMCIg
aGVpZ2h0PSIxMDAiPjwvY2FudmFzPjwvZGl2PgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBhIGNhbnZh
cyB3aXRoIGFuZCB3aXRob3V0IGZhbGxiYWNrIGNvbnRlbnQgZWFjaCBoYXMgdGhlIHJpZ2h0IHJv
bGUgYW5kIGRlc2NyaXB0aW9uLiIpCisKK2lmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuZm9jdXMo
KTsKKyAgICB2YXIgYXhDb250YWluZXIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2Vk
RWxlbWVudDsKKworICAgIHNob3VsZEJlKCJheENvbnRhaW5lci5jaGlsZHJlbkNvdW50IiwgIjIi
KTsKKworICAgIHZhciBheENhbnZhczEgPSBheENvbnRhaW5lci5jaGlsZEF0SW5kZXgoMCk7Cisg
ICAgZGVidWcoJ0NhbnZhcyAxIGRlc2NyaXB0aW9uOiAnICsgYXhDYW52YXMxLmRlc2NyaXB0aW9u
KTsKKyAgICBkZWJ1ZygnQ2FudmFzIDEgcm9sZTogJyArIGF4Q2FudmFzMS5yb2xlKTsKKworICAg
IHZhciBheENhbnZhczIgPSBheENvbnRhaW5lci5jaGlsZEF0SW5kZXgoMSk7CisgICAgZGVidWco
J0NhbnZhcyAyIGRlc2NyaXB0aW9uOiAnICsgYXhDYW52YXMyLmRlc2NyaXB0aW9uKTsKKyAgICBk
ZWJ1ZygnQ2FudmFzIDIgcm9sZTogJyArIGF4Q2FudmFzMi5yb2xlKTsKK30KKworPC9zY3JpcHQ+
CisKKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9jYW52YXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9j
YW52YXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTFkYzNk
MjlkM2NlMjFmMWU1NjI3ZTQyYzRkNTgwM2E3YTk2OGNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2FudmFz
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVGVzdCBwYXNzZWQK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jYW52YXMuaHRtbCBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2FudmFzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGIyMjA0OTI3OWQ4NTE3ODg1MjVhZDlhNTA1ZWRhODYxMDQ1YmExOGQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9jYW52YXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTxo
dG1sPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi0gICAgZnVuY3Rpb24gZHJh
d0NhbnZhcyhjb250ZXh0KSB7Ci0gICAgICAgIGNvbnRleHQubGluZVdpZHRoID0gMTAuMDsKLSAg
ICAgICAgY29udGV4dC5saW5lQ2FwID0gInJvdW5kIjsKLQotICAgICAgICBjb250ZXh0LmJlZ2lu
UGF0aCgpOwotCi0gICAgICAgIC8vIERyYXcgYSBib3VuZHMgcmVjdCAoZGVmYXVsdCBjb2xvciBp
cyBibGFjaykKLSAgICAgICAgY29udGV4dC5zdHJva2VSZWN0KDAsIDAsIDMwMCwgMzAwKTsKLQot
ICAgICAgICBjb250ZXh0LnN0cm9rZVN0eWxlID0gIiM4MDgwODAiOwotCi0gICAgICAgIC8vIERy
YXcgYSB2ZXJ0aWNhbCBsaW5lCi0gICAgICAgIGNvbnRleHQubW92ZVRvKDE1MCwgMTAwKTsKLSAg
ICAgICAgY29udGV4dC5saW5lVG8oMTUwLCAyMDApOwotICAgICAgICBjb250ZXh0LnN0cm9rZSgp
OwotCi0gICAgICAgIC8vIERyYXcgYSBob3Jpem9udGFsIGxpbmUKLSAgICAgICAgY29udGV4dC5t
b3ZlVG8oMTAwLCAxNTApOwotICAgICAgICBjb250ZXh0LmxpbmVUbygyMDAsIDE1MCk7Ci0gICAg
ICAgIGNvbnRleHQuc3Ryb2tlKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gX29ubG9hZCgpIHsK
LSAgICAgICAgdmFyIGNvbnRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlDYW52YXMi
KS5nZXRDb250ZXh0KCIyZCIpOwotICAgICAgICBkcmF3Q2FudmFzKGNvbnRleHQpOwotICAgIH0K
LTwvc2NyaXB0PgotPHNjcmlwdD4KLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotPC9zY3JpcHQ+Ci08Ym9keSBpZD0iYm9keSIgb25s
b2FkPSJfb25sb2FkKCkiPgotCi08aHRtbD4KLSAKLSAgICA8IS0tIFRoaXMgdGVzdCBtYWtlcyBz
dXJlIHRoYXQgYSBjYW52YXMgZWxlbWVudCBzaG93cyB1cCBhcyBhbiBpbWFnZSAtLT4KLSAKLSAg
ICA8Y2FudmFzIGlkPSJteUNhbnZhcyIgc3R5bGU9IndpZHRoOjMwMHB4O2hlaWdodDozMDBweDsi
ICB3aWR0aD0nMzAwJyBoZWlnaHQ9JzMwMCcgYWx0PSJjYW52YXMgMSI+PC9jYW52YXM+Ci0KLSAg
ICA8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgotICAgICAKLSAgICA8c2NyaXB0PgotICAgICAgICBp
ZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICB2YXIgcmVz
dWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwotCi0gICAgICAgICAgICB2
YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5Iik7Ci0gICAgICAgICAgICBi
b2R5LmZvY3VzKCk7Ci0gICAgICAgICAgICB2YXIgY2FudmFzRWxlbWVudCA9IGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50LmNoaWxkQXRJbmRleCgwKS5jaGlsZEF0SW5kZXgo
MCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZhciBwYXR0ZXJuID0gIkFYUm9sZTogQVhJ
bWFnZSI7Ci0gICAgICAgICAgICBpZiAoY2FudmFzRWxlbWVudC5hbGxBdHRyaWJ1dGVzKCkuaW5k
ZXhPZihwYXR0ZXJuKSAhPSAtMSkgewotICAgICAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQg
Kz0gIlRlc3QgcGFzc2VkXG4iOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgKz0gIlRlc3QgZmFpbGVkXG4iICsgY2Fu
dmFzRWxlbWVudC5hbGxBdHRyaWJ1dGVzKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICA8L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxp
dHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ZGFmZGMwYTkxMDc3M2E3NDcwZTkzYTkzNTc0NGY5YzkzNmViZmY5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVz
Y3JpcHRpb24tYW5kLXJvbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVz
dCBtYWtlcyBzdXJlIHRoYXQgYSBjYW52YXMgd2l0aCBhbmQgd2l0aG91dCBmYWxsYmFjayBjb250
ZW50IGVhY2ggaGFzIHRoZSByaWdodCByb2xlIGFuZCBkZXNjcmlwdGlvbi4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYXhDb250YWluZXIuY2hpbGRyZW5Db3VudCBpcyAy
CitDYW52YXMgMSBkZXNjcmlwdGlvbjogQVhEZXNjcmlwdGlvbjogQ2FudmFzIGxhYmVsCitDYW52
YXMgMSByb2xlOiBBWFJvbGU6IEFYQ2FudmFzCitDYW52YXMgMiBkZXNjcmlwdGlvbjogQVhEZXNj
cmlwdGlvbjogCitDYW52YXMgMiByb2xlOiBBWFJvbGU6IEFYQ2FudmFzCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiZjQ4NzJjYTcxMWRjOWQ3ZDJlYjE2YTE0Zjc2
ZTJjYjVkMjI2Mjg2Li5iNzhmMjIwNzNlMmQ3YTZkZjM0YTc0YzU0MTliZmQ3MGQzZWJlOWU2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjIzLDcgKzYy
Myw3IEBAIEJVR1dLR1RLIDogYWNjZXNzaWJpbGl0eS9hcmlhLXNjcm9sbGJhci1yb2xlLmh0bWwg
PSBURVhUCiBCVUdXS0dUSyA6IGFjY2Vzc2liaWxpdHkvYXJpYS10ZXh0LXJvbGUuaHRtbCA9IFRF
WFQKIEJVR1dLR1RLIDogYWNjZXNzaWJpbGl0eS9hcmlhLXVzZWQtb24taW1hZ2UtbWFwcy5odG1s
ID0gVEVYVAogQlVHV0tHVEsgOiBhY2Nlc3NpYmlsaXR5L2J1dHRvbi1wcmVzcy1hY3Rpb24uaHRt
bCA9IFRFWFQKLUJVR1dLR1RLIDogYWNjZXNzaWJpbGl0eS9jYW52YXMuaHRtbCA9IFRFWFQKK0JV
R1dLR1RLIDogYWNjZXNzaWJpbGl0eS9jYW52YXMtZGVzY3JpcHRpb24tYW5kLXJvbGUuaHRtbCA9
IFRFWFQKIEJVR1dLR1RLIDogYWNjZXNzaWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29udGVudC5o
dG1sID0gVEVYVAogQlVHV0tHVEsgOiBhY2Nlc3NpYmlsaXR5L2VkaXRhYmxlLXdlYmFyZWEtY29u
dGV4dC1tZW51LXBvaW50Lmh0bWwgPSBURVhUCiBCVUdXS0dUSyA6IGFjY2Vzc2liaWxpdHkvZWxs
aXBzaXMtdGV4dC5odG1sID0gVEVYVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvY2FudmFzLWRlc2NyaXB0aW9uLWFuZC1yb2xlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlw
dGlvbi1hbmQtcm9sZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQwMjU3N2Y5Nzc0YzNiOWE1
MDVkMzQwNTRmYjg4NDQ2MWI4MGU0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1kZXNjcmlwdGlvbi1hbmQtcm9sZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBhIGNh
bnZhcyB3aXRoIGFuZCB3aXRob3V0IGZhbGxiYWNrIGNvbnRlbnQgZWFjaCBoYXMgdGhlIHJpZ2h0
IHJvbGUgYW5kIGRlc2NyaXB0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBheENvbnRhaW5lci5jaGlsZHJlbkNvdW50IGlzIDIKK0NhbnZhcyAxIGRlc2NyaXB0aW9u
OiBBWERlc2NyaXB0aW9uOiBDYW52YXMgbGFiZWwKK0NhbnZhcyAxIHJvbGU6IEFYUm9sZTogQVhJ
bWFnZQorQ2FudmFzIDIgZGVzY3JpcHRpb246IEFYRGVzY3JpcHRpb246IAorQ2FudmFzIDIgcm9s
ZTogQVhSb2xlOiBBWEdyb3VwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vz
c2liaWxpdHkvY2FudmFzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L2NhbnZhcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkxZGMzZDI5ZDNj
ZTIxZjFlNTYyN2U0MmM0ZDU4MDNhN2E5NjhjZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyIEBACitUZXN0IHBhc3NlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMjA0OTI3OWQ4NTE3ODg1
MjVhZDlhNTA1ZWRhODYxMDQ1YmExOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9jYW52YXMuaHRtbApAQCAtMCwwICsxLDYzIEBACis8
aHRtbD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKworICAgIGZ1bmN0aW9uIGRy
YXdDYW52YXMoY29udGV4dCkgeworICAgICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IDEwLjA7Cisg
ICAgICAgIGNvbnRleHQubGluZUNhcCA9ICJyb3VuZCI7CisKKyAgICAgICAgY29udGV4dC5iZWdp
blBhdGgoKTsKKworICAgICAgICAvLyBEcmF3IGEgYm91bmRzIHJlY3QgKGRlZmF1bHQgY29sb3Ig
aXMgYmxhY2spCisgICAgICAgIGNvbnRleHQuc3Ryb2tlUmVjdCgwLCAwLCAzMDAsIDMwMCk7CisK
KyAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9ICIjODA4MDgwIjsKKworICAgICAgICAvLyBE
cmF3IGEgdmVydGljYWwgbGluZQorICAgICAgICBjb250ZXh0Lm1vdmVUbygxNTAsIDEwMCk7Cisg
ICAgICAgIGNvbnRleHQubGluZVRvKDE1MCwgMjAwKTsKKyAgICAgICAgY29udGV4dC5zdHJva2Uo
KTsKKworICAgICAgICAvLyBEcmF3IGEgaG9yaXpvbnRhbCBsaW5lCisgICAgICAgIGNvbnRleHQu
bW92ZVRvKDEwMCwgMTUwKTsKKyAgICAgICAgY29udGV4dC5saW5lVG8oMjAwLCAxNTApOworICAg
ICAgICBjb250ZXh0LnN0cm9rZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIF9vbmxvYWQoKSB7
CisgICAgICAgIHZhciBjb250ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15Q2FudmFz
IikuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgZHJhd0NhbnZhcyhjb250ZXh0KTsKKyAgICB9
Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPGJvZHkgaWQ9ImJvZHkiIG9u
bG9hZD0iX29ubG9hZCgpIj4KKworPGh0bWw+CisgCisgICAgPCEtLSBUaGlzIHRlc3QgbWFrZXMg
c3VyZSB0aGF0IGEgY2FudmFzIGVsZW1lbnQgc2hvd3MgdXAgYXMgYW4gaW1hZ2UgLS0+CisgCisg
ICAgPGNhbnZhcyBpZD0ibXlDYW52YXMiIHN0eWxlPSJ3aWR0aDozMDBweDtoZWlnaHQ6MzAwcHg7
IiAgd2lkdGg9JzMwMCcgaGVpZ2h0PSczMDAnIGFsdD0iY2FudmFzIDEiPjwvY2FudmFzPgorCisg
ICAgPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKyAgICAgCisgICAgPHNjcmlwdD4KKyAgICAgICAg
aWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgdmFyIHJl
c3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKKworICAgICAgICAgICAg
dmFyIGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpOworICAgICAgICAgICAg
Ym9keS5mb2N1cygpOworICAgICAgICAgICAgdmFyIGNhbnZhc0VsZW1lbnQgPSBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4
KDApOworICAgICAgICAgICAgCisgICAgICAgICAgICB2YXIgcGF0dGVybiA9ICJBWFJvbGU6IEFY
SW1hZ2UiOworICAgICAgICAgICAgaWYgKGNhbnZhc0VsZW1lbnQuYWxsQXR0cmlidXRlcygpLmlu
ZGV4T2YocGF0dGVybikgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuaW5uZXJUZXh0
ICs9ICJUZXN0IHBhc3NlZFxuIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgICByZXN1bHQuaW5uZXJUZXh0ICs9ICJUZXN0IGZhaWxlZFxuIiArIGNh
bnZhc0VsZW1lbnQuYWxsQXR0cmlidXRlcygpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>