<?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>95217</bug_id>
          
          <creation_ts>2012-08-28 11:02:56 -0700</creation_ts>
          <short_desc>Make MediaSource event dispatch asynchronous.</short_desc>
          <delta_ts>2012-08-28 18:07:36 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aaron Colwell">acolwell</reporter>
          <assigned_to name="Aaron Colwell">acolwell</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>706519</commentid>
    <comment_count>0</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2012-08-28 11:02:56 -0700</bug_when>
    <thetext>Make MediaSource event dispatch asynchronous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706537</commentid>
    <comment_count>1</comment_count>
      <attachid>161017</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2012-08-28 11:14:21 -0700</bug_when>
    <thetext>Created attachment 161017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706595</commentid>
    <comment_count>2</comment_count>
      <attachid>161017</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-08-28 12:05:22 -0700</bug_when>
    <thetext>Comment on attachment 161017
Patch

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

r- because the crash is unrelated to this change and should be fixed in another patch.

&gt; Source/WebCore/ChangeLog:9
&gt; +        - Update MediaSource &amp; SourceBufferList to use a GenericEventQueue to dispatch events 
&gt; +          instead of using synchronous dispatch.

I questioned synchronous event dispatch in an earlier review. Did the spec change or was it a bug all along?

&gt; Source/WebCore/ChangeLog:10
&gt; +        - Fix a use-after-free bug in SourceBufferList::remove().

This fix should really be done in another patch. Why not use bug 94950?

&gt; Source/WebCore/Modules/mediasource/MediaSource.cpp:57
&gt; +    m_sourceBuffers = SourceBufferList::create(scriptExecutionContext(),
&gt; +                                               m_asyncEventQueue.get());
&gt; +    m_activeSourceBuffers = SourceBufferList::create(scriptExecutionContext(),
&gt; +                                                     m_asyncEventQueue.get());

Nit: I don&apos;t think the line breaks make this more readable.

&gt; Source/WebCore/Modules/mediasource/MediaSource.h:103
&gt;      virtual void derefEventTarget() OVERRIDE { deref(); }
&gt;  
&gt; +
&gt; +    void scheduleEvent(const AtomicString&amp; eventName);

Nit: you have an extra blank line here.

&gt; LayoutTests/http/tests/media/media-source/video-media-source-async-events.html:14
&gt; +                inEventHandler = true;

Nit: it would probably be better for inEventHandler to be a counter rather than a bool.

&gt; LayoutTests/http/tests/media/media-source/video-media-source-event-attributes.html:-22
&gt; -               endTest();

Why did this test previously have to calls to endTest()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706659</commentid>
    <comment_count>3</comment_count>
      <attachid>161017</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2012-08-28 13:05:09 -0700</bug_when>
    <thetext>Comment on attachment 161017
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +          instead of using synchronous dispatch.
&gt; 
&gt; I questioned synchronous event dispatch in an earlier review. Did the spec change or was it a bug all along?

It was a bug all along. I think there was just some miscommunication when annacc responded to your comments.

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        - Fix a use-after-free bug in SourceBufferList::remove().
&gt; 
&gt; This fix should really be done in another patch. Why not use bug 94950?

Ok. I&apos;ll split it back out into two patches. I&apos;ll have to find a new way to smoke out that bug. :/

&gt;&gt; Source/WebCore/Modules/mediasource/MediaSource.cpp:57
&gt;&gt; +                                                     m_asyncEventQueue.get());
&gt; 
&gt; Nit: I don&apos;t think the line breaks make this more readable.

Done

&gt;&gt; Source/WebCore/Modules/mediasource/MediaSource.h:103
&gt;&gt; +    void scheduleEvent(const AtomicString&amp; eventName);
&gt; 
&gt; Nit: you have an extra blank line here.

Done

&gt;&gt; LayoutTests/http/tests/media/media-source/video-media-source-async-events.html:14
&gt;&gt; +                inEventHandler = true;
&gt; 
&gt; Nit: it would probably be better for inEventHandler to be a counter rather than a bool.

Done

&gt;&gt; LayoutTests/http/tests/media/media-source/video-media-source-event-attributes.html:-22
&gt;&gt; -               endTest();
&gt; 
&gt; Why did this test previously have to calls to endTest()?

I honestly don&apos;t know. The old code would have called onSourceClose within the &apos;video.src = &quot;&quot;;&apos; statement so I&apos;m not sure why this one was here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706660</commentid>
    <comment_count>4</comment_count>
      <attachid>161045</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2012-08-28 13:06:27 -0700</bug_when>
    <thetext>Created attachment 161045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706690</commentid>
    <comment_count>5</comment_count>
      <attachid>161045</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-08-28 13:49:49 -0700</bug_when>
    <thetext>Comment on attachment 161045
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        (WebCore::MediaSource::MediaSource): Create GenericEventQueue &amp; pass a reference to SourceBufferList.

Nit: you actually pass a pointer to the GenericEventQueue, not a reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706705</commentid>
    <comment_count>6</comment_count>
      <attachid>161045</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2012-08-28 14:02:14 -0700</bug_when>
    <thetext>Comment on attachment 161045
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:14
&gt;&gt; +        (WebCore::MediaSource::MediaSource): Create GenericEventQueue &amp; pass a reference to SourceBufferList.
&gt; 
&gt; Nit: you actually pass a pointer to the GenericEventQueue, not a reference.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706707</commentid>
    <comment_count>7</comment_count>
      <attachid>161055</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2012-08-28 14:02:44 -0700</bug_when>
    <thetext>Created attachment 161055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706924</commentid>
    <comment_count>8</comment_count>
      <attachid>161055</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-28 17:42:36 -0700</bug_when>
    <thetext>Comment on attachment 161055
Patch

Rejecting attachment 161055 from commit-queue.

acolwell@chromium.org does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706953</commentid>
    <comment_count>9</comment_count>
      <attachid>161055</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-28 18:07:33 -0700</bug_when>
    <thetext>Comment on attachment 161055
Patch

Clearing flags on attachment: 161055

Committed r126946: &lt;http://trac.webkit.org/changeset/126946&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706954</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-28 18:07:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161017</attachid>
            <date>2012-08-28 11:14:21 -0700</date>
            <delta_ts>2012-08-28 13:06:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95217-20120828111412.patch</filename>
            <type>text/plain</type>
            <size>21804</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJjN2I4NWMzNzEyOWQ0
MGRkY2JjMTgwYjg4YWY5YWI4MTMzYjQxNC4uMWU0ZWUwNmQzYzBkYTY3MDY2NGJhYzEyYTVjYzdk
OWYyMzVmYTVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA4LTI4ICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgTWVkaWFT
b3VyY2UgZXZlbnQgZGlzcGF0Y2ggYXN5bmNocm9ub3VzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUyMTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIFVwZGF0ZSBNZWRpYVNvdXJjZSAmIFNvdXJjZUJ1
ZmZlckxpc3QgdG8gdXNlIGEgR2VuZXJpY0V2ZW50UXVldWUgdG8gZGlzcGF0Y2ggZXZlbnRzIAor
ICAgICAgICAgIGluc3RlYWQgb2YgdXNpbmcgc3luY2hyb25vdXMgZGlzcGF0Y2guCisgICAgICAg
IC0gRml4IGEgdXNlLWFmdGVyLWZyZWUgYnVnIGluIFNvdXJjZUJ1ZmZlckxpc3Q6OnJlbW92ZSgp
LgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1t
ZWRpYS1zb3VyY2UtYXN5bmMtZXZlbnRzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1jaGFuZ2Utc3JjLWZyb20tYWRk
c291cmNlYnVmZmVyLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6Ok1lZGlhU291cmNlKTog
Q3JlYXRlIEdlbmVyaWNFdmVudFF1ZXVlICYgcGFzcyBhIHJlZmVyZW5jZSB0byBTb3VyY2VCdWZm
ZXJMaXN0LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0ZSk6IFVwZGF0ZWQg
dG8gdXNlIG5ldyBzY2hlZHVsZUV2ZW50KCkgaGVscGVyIG1ldGhvZC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU291cmNlOjpzY2hlZHVsZUV2ZW50KTogTmV3IG1ldGhvZCBmb3IgY3JlYXRpbmcg
ZXZlbnRzIGFuZCBhZGRpbmcgdGhlbSB0byB0aGUgZXZlbnQgcXVldWUuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmg6IEFkZGVk
IEdlbmVyaWNFdmVudFF1ZXVlIG1lbWJlciBhbmQgc2NoZWR1bGVFdmVudCgpIHNpZ25hdHVyZS4K
KyAgICAgICAgKE1lZGlhU291cmNlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyTGlzdDo6
U291cmNlQnVmZmVyTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJMaXN0Ojpy
ZW1vdmUpOiBGaXggdXNlLWFmdGVyLWZyZWUgYnVnLiBjbGVhcigpIG5lZWRzIHRvIGJlIGNhbGxl
ZCBiZWZvcmUgbV9saXN0LnJlbW92ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBiZWNhdXNlIHRoZSBsaXN0IG1heSBoYXZlIHRoZSBsYXN0IHJlZmVyZW5j
ZSBhbmQgZGVsZXRlIHRoZSBvYmplY3QuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJM
aXN0OjpjcmVhdGVBbmRGaXJlRXZlbnQpOiBVcGRhdGVkIHRvIHF1ZXVlIGV2ZW50cyBpbnN0ZWFk
IG9mIHN5bmNocm9ub3VzbHkgZGlzcGF0Y2ggdGhlbS4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFNvdXJjZUJ1ZmZl
ckxpc3QpOgorCiAyMDEyLTA4LTI0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI2NTQ2LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApp
bmRleCBjYzRmOWQ3ZDdiODk5MTg1NDNkNDk1MzJiOGY2ZjRlNjVlOTlkMWFhLi4wZWE2OWVhNWY0
OTY0YjgyOGQ5YWZhNGVlNWU4YjYzNjBmOTMyZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtNDksOSArNDksMTIgQEAg
TWVkaWFTb3VyY2U6Ok1lZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQp
CiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihjb250ZXh0KQogICAgICwgbV9yZWFk
eVN0YXRlKGNsb3NlZEtleXdvcmQoKSkKICAgICAsIG1fcGxheWVyKDApCisgICAgLCBtX2FzeW5j
RXZlbnRRdWV1ZShHZW5lcmljRXZlbnRRdWV1ZTo6Y3JlYXRlKHRoaXMpKQogewotICAgIG1fc291
cmNlQnVmZmVycyA9IFNvdXJjZUJ1ZmZlckxpc3Q6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOwotICAgIG1fYWN0aXZlU291cmNlQnVmZmVycyA9IFNvdXJjZUJ1ZmZlckxpc3Q6OmNy
ZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIG1fc291cmNlQnVmZmVycyA9IFNv
dXJjZUJ1ZmZlckxpc3Q6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fYXN5bmNFdmVudFF1ZXVl
LmdldCgpKTsKKyAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMgPSBTb3VyY2VCdWZmZXJMaXN0Ojpj
cmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5nZXQoKSk7CiB9
CiAKIFNvdXJjZUJ1ZmZlckxpc3QqIE1lZGlhU291cmNlOjpzb3VyY2VCdWZmZXJzKCkKQEAgLTg0
LDcgKzg3LDcgQEAgU291cmNlQnVmZmVyKiBNZWRpYVNvdXJjZTo6YWRkU291cmNlQnVmZmVyKGNv
bnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMKICAgICAgICAgZWMgPSBOT1RfU1VQ
UE9SVEVEX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIAorCiAgICAgLy8gNC4g
SWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIGlzIG5vdCBpbiB0aGUgIm9wZW4iIHN0YXRlIHRo
ZW4gdGhyb3cgYW4KICAgICAvLyBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgogICAgIGlmICghbV9wbGF5ZXIgfHwgbV9yZWFkeVN0YXRlICE9IG9wZW5L
ZXl3b3JkKCkpIHsKQEAgLTE4MiwxNyArMTg1LDE3IEBAIHZvaWQgTWVkaWFTb3VyY2U6OnNldFJl
YWR5U3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkKICAgICAgICAgbV9zb3VyY2VCdWZmZXJzLT5j
bGVhcigpOwogICAgICAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPmNsZWFyKCk7CiAgICAgICAg
IG1fcGxheWVyID0gMDsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS53ZWJraXRzb3VyY2VjbG9zZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICAgICAg
c2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Via2l0c291cmNlY2xvc2VFdmVudCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBpZiAob2xkU3RhdGUgPT0gb3BlbktleXdv
cmQoKSAmJiBtX3JlYWR5U3RhdGUgPT0gZW5kZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgZGlzcGF0
Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXRzb3VyY2VlbmRlZEV2ZW50
LCBmYWxzZSwgZmFsc2UpKTsKKyAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Vi
a2l0c291cmNlZW5kZWRFdmVudCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAo
bV9yZWFkeVN0YXRlID09IG9wZW5LZXl3b3JkKCkpIHsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXRzb3VyY2VvcGVuRXZlbnQsIGZhbHNlLCBm
YWxzZSkpOworICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRzb3VyY2Vv
cGVuRXZlbnQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogfQpAQCAtMzAxLDYgKzMwNCwxNiBA
QCBFdmVudFRhcmdldERhdGEqIE1lZGlhU291cmNlOjplbnN1cmVFdmVudFRhcmdldERhdGEoKQog
ICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7CiB9CiAKK3ZvaWQgTWVkaWFTb3VyY2U6OnNj
aGVkdWxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpCit7CisgICAgQVNTRVJU
KG1fYXN5bmNFdmVudFF1ZXVlKTsKKworICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZSwgZmFsc2UsIGZhbHNlKTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KHRo
aXMpOworCisgICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChldmVudC5yZWxlYXNl
KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCmluZGV4IGI2MzgzMzM2
OTdmODhiMDE0NjIwYzYyMmEzMTU4ZDY3MDRjNjBiNmMuLmQ1OWIyZGM5MDMxN2Y2YzY5OTI1YjBj
YjFkMTg3MzM1MzBmZTMxMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQogCiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNs
dWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5j
bHVkZSAiU291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyTGlzdC5oIgpAQCAt
NzYsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmRPZlN0cmVhbShjb25zdCBTdHJpbmcm
IGVycm9yLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIHNldE1lZGlhUGxheWVyKE1lZGlh
UGxheWVyKiBwbGF5ZXIpIHsgbV9wbGF5ZXIgPSBwbGF5ZXI7IH0KLSAgICAKKwogICAgIFBhc3NS
ZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoY29uc3QgU3RyaW5nJiBpZCwgRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OwogICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYgaWQsIFBhc3NSZWZQdHI8
VWludDhBcnJheT4gZGF0YSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgYWJvcnQoY29uc3Qg
U3RyaW5nJiBpZCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtOTgsNiArOTksOSBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgZGVyZWYoKTsgfQog
CisKKyAgICB2b2lkIHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUp
OworCiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCiAgICAgU3RyaW5n
IG1fcmVhZHlTdGF0ZTsKQEAgLTEwNSw2ICsxMDksNyBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRy
PFNvdXJjZUJ1ZmZlckxpc3Q+IG1fc291cmNlQnVmZmVyczsKICAgICBSZWZQdHI8U291cmNlQnVm
ZmVyTGlzdD4gbV9hY3RpdmVTb3VyY2VCdWZmZXJzOworICAgIE93blB0cjxHZW5lcmljRXZlbnRR
dWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXJMaXN0LmNwcAppbmRleCBjZTIxM2Q1MTQwMmE4NGZiZGUwY2M5NzZlZjkwODY5MGUzNTY2Mjkw
Li41ODM3MjRiYTE1NTk1ODRiZTUzZjdmZGFjODlkMzE1MjYwYWM4ODViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5j
cHAKQEAgLTM4LDggKzM4LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU291cmNlQnVm
ZmVyTGlzdDo6U291cmNlQnVmZmVyTGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQorU291cmNlQnVmZmVyTGlzdDo6U291cmNlQnVmZmVyTGlzdChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmlj
RXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQogICAgIDogbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KGNvbnRleHQpCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShhc3luY0V2ZW50UXVldWUpCiAg
ICAgLCBtX2xhc3RTb3VyY2VCdWZmZXJJZCgwKQogewogfQpAQCAtNjMsMTMgKzY1LDEzIEBAIHZv
aWQgU291cmNlQnVmZmVyTGlzdDo6YWRkKFBhc3NSZWZQdHI8U291cmNlQnVmZmVyPiBidWZmZXIp
CiB9CiAKIGJvb2wgU291cmNlQnVmZmVyTGlzdDo6cmVtb3ZlKFNvdXJjZUJ1ZmZlciogYnVmZmVy
KQoteyAgICAKK3sKICAgICBzaXplX3QgaW5kZXggPSBtX2xpc3QuZmluZChidWZmZXIpOwogICAg
IGlmIChpbmRleCA9PSBub3RGb3VuZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9s
aXN0LnJlbW92ZShpbmRleCk7CiAgICAgYnVmZmVyLT5jbGVhcigpOworICAgIG1fbGlzdC5yZW1v
dmUoaW5kZXgpOwogICAgIGNyZWF0ZUFuZEZpcmVFdmVudChldmVudE5hbWVzKCkud2Via2l0cmVt
b3Zlc291cmNlYnVmZmVyRXZlbnQpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTEwLDEwICsx
MTIsMTIgQEAgYm9vbCBTb3VyY2VCdWZmZXJMaXN0Ojpjb250YWlucyhzaXplX3QgaWQpIGNvbnN0
CiAKIHZvaWQgU291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlQW5kRmlyZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnROYW1lKQogeworICAgIEFTU0VSVChtX2FzeW5jRXZlbnRRdWV1ZSk7CisK
ICAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIGZhbHNl
LCBmYWxzZSk7CiAgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKIAotICAgIEV2ZW50VGFyZ2V0
OjpkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2
ZW50KGV2ZW50LnJlbGVhc2UoKSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU291cmNlQnVm
ZmVyTGlzdDo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCmluZGV4IGM4N2NmMzRjOGJi
YjJkY2MxYTc4MGIxMmIxMDZkYzAwNTdiNTI5NTUuLmE5NWE4Mzc2OGJjNjNmOGEwZDJhODc2NzIy
MTU3OWM5MDM3MGRhYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCkBAIC00MCwxMiArNDAsMTMgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgU291cmNlQnVmZmVyOworY2xhc3MgR2VuZXJpY0V2ZW50UXVl
dWU7CiAKIGNsYXNzIFNvdXJjZUJ1ZmZlckxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxTb3VyY2VC
dWZmZXJMaXN0PiwgcHVibGljIEV2ZW50VGFyZ2V0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTb3VyY2VCdWZmZXJMaXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXJMaXN0PiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgR2VuZXJpY0V2ZW50UXVldWUqIGFzeW5j
RXZlbnRRdWV1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU291cmNlQnVm
ZmVyTGlzdChjb250ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU291cmNlQnVm
ZmVyTGlzdChjb250ZXh0LCBhc3luY0V2ZW50UXVldWUpKTsKICAgICB9CiAgICAgdmlydHVhbCB+
U291cmNlQnVmZmVyTGlzdCgpIHsgfQogCkBAIC03Miw3ICs3Myw3IEBAIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJ
REU7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU291cmNlQnVmZmVyTGlzdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kik7CisgICAgU291cmNlQnVmZmVyTGlzdChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgR2VuZXJpY0V2ZW50UXVldWUqKTsKIAogICAgIGJvb2wgY29udGFpbnMoc2l6ZV90IGlk
KSBjb25zdDsKICAgICB2b2lkIGNyZWF0ZUFuZEZpcmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
KTsKQEAgLTgyLDYgKzgzLDcgQEAgcHJpdmF0ZToKIAogICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2
ZW50VGFyZ2V0RGF0YTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CisgICAgR2VuZXJpY0V2ZW50UXVldWUqIG1fYXN5bmNFdmVudFF1ZXVlOwog
CiAgICAgVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZmZXI+ID4gbV9saXN0OwogICAgIHNpemVfdCBt
X2xhc3RTb3VyY2VCdWZmZXJJZDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMDkzZWIwOTI2ZmIzZGYwOWFlZTg5MTJiODIy
OGUwZjNkYTM5MDM2Li5mNWM2MTViYjkwNmVkYjQ2YzY5NzE1NjdmNGQ4NDhlNGJjOTY5NzM5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDgtMjggIEFhcm9uIENvbHdlbGwgIDxhY29sd2Vs
bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWFrZSBNZWRpYVNvdXJjZSBldmVudCBkaXNwYXRj
aCBhc3luY2hyb25vdXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NTIxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIC0gQWRkZWQgYSB0ZXN0IHRvIHZlcmlmeSB0aGF0IE1lZGlhU291cmNlICYgU291cmNl
QnVmZmVyTGlzdCBldmVudHMgYXJlIGRpc3BhdGNoZWQgYXN5bmNocm9ub3VzbHkuCisgICAgICAg
IC0gQWRkZWQgYSB0ZXN0IHRoYXQgZXhwb3NlZCBhIGNyYXNoIHdoZW4gY2xlYXJpbmcgdGhlIEhU
TUxNZWRpYUVsZW1lbnQuc3JjIGF0dHJpYnV0ZSBmcm9tIGEgd2Via2l0YWRkc291cmNlYnVmZmVy
IGV2ZW50LgorICAgICAgICAtIFVwZGF0ZWQgYSBmZXcgZXhpc3RpbmcgdGVzdHMgdGhhdCB3ZXJl
IHJlbHlpbmcgb24gdGhlIG9sZCBzeW5jaHJvbm91cyBkaXNwYXRjaC4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1hc3luYy1ldmVu
dHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2UtYXN5bmMtZXZlbnRzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1j
aGFuZ2Utc3JjLWZyb20tYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLWNo
YW5nZS1zcmMtZnJvbS1hZGRzb3VyY2VidWZmZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLWV2ZW50LWF0dHJp
YnV0ZXMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRl
by1tZWRpYS1zb3VyY2Utb2JqZWN0cy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1zZWVrLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc3Rh
dGUtY2hhbmdlcy1leHBlY3RlZC50eHQ6CisKIDIwMTItMDgtMjQgIERvbWluaWMgQ29vbmV5ICA8
ZG9taW5pY2NAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCBn
YXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2UtYXN5bmMtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJj
ZS1hc3luYy1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NjQwYTY2ZmM0ZGFmZjNi
NTM2ODM3OTEyZWRjMzIyYzUyMDUwMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2UtYXN5bmMtZXZl
bnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitWZXJpZnkgdGhhdCBhbGwgTWVkaWFT
b3VyY2UgJiBTb3VyY2VCdWZmZXJMaXN0IGV2ZW50cyBhcmUgZGlzcGF0Y2hlZCBhc3luY2hyb25v
dXNseS4KKworb25Tb3VyY2VPcGVuCitvbkFkZFNvdXJjZUJ1ZmZlcgorb25BZGRTb3VyY2VCdWZm
ZXIKK29uU291cmNlRW5kZWQKK29uUmVtb3ZlU291cmNlQnVmZmVyCitvblJlbW92ZVNvdXJjZUJ1
ZmZlcgorb25Tb3VyY2VDbG9zZQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLWFzeW5j
LWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
dmlkZW8tbWVkaWEtc291cmNlLWFzeW5jLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1MjJhYzgx
ZTU3ZmQ4MmYzYjhjODUwMjIwMjJiODk4ZWFiODdiZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Ut
YXN5bmMtZXZlbnRzLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii9tZWRpYS1yZXNvdXJjZXMvdmlk
ZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KKyAgICAgICAgICAgIHZhciBpbkV2ZW50SGFuZGxlciA9IGZhbHNlOworCisgICAgICAg
ICAgICBmdW5jdGlvbiBlbnRlckhhbmRsZXIobGFiZWwpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKGxhYmVsKTsKKworICAgICAgICAgICAgICAgIGlmIChpbkV2
ZW50SGFuZGxlcikKKyAgICAgICAgICAgICAgICAgICAgZmFpbFRlc3QoIkFscmVhZHkgaW5zaWRl
IGFuIGV2ZW50IGhhbmRsZXIiKTsKKyAgICAgICAgICAgICAgICBpbkV2ZW50SGFuZGxlciA9IHRy
dWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGV4aXRIYW5kbGVyKCkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbkV2ZW50SGFuZGxlciA9IGZhbHNlOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBvblNvdXJjZU9wZW4oZSkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlbnRlckhhbmRsZXIoIm9uU291cmNlT3BlbiIp
OworCisgICAgICAgICAgICAgICAgZS50YXJnZXQuYWRkU291cmNlQnVmZmVyKCd2aWRlby93ZWJt
O2NvZGVjcz0idnA4IicpOworCisgICAgICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZS50
YXJnZXQuZW5kT2ZTdHJlYW0uYmluZChlLnRhcmdldCkpOworCisgICAgICAgICAgICAgICAgZXhp
dEhhbmRsZXIoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gb25BZGRT
b3VyY2VCdWZmZXIoZSkgeworICAgICAgICAgICAgICAgIGVudGVySGFuZGxlcigib25BZGRTb3Vy
Y2VCdWZmZXIiKTsKKyAgICAgICAgICAgICAgICBleGl0SGFuZGxlcigpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmdW5jdGlvbiBvblNvdXJjZUVuZGVkKGUpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgZW50ZXJIYW5kbGVyKCJvblNvdXJjZUVuZGVkIik7CisKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdicpLnNyYyA9ICIiOworCisgICAg
ICAgICAgICAgICAgZXhpdEhhbmRsZXIoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gb25SZW1vdmVTb3VyY2VCdWZmZXIoZSkgeworICAgICAgICAgICAgICAgIGVudGVy
SGFuZGxlcigib25SZW1vdmVTb3VyY2VCdWZmZXIiKTsKKyAgICAgICAgICAgICAgICBleGl0SGFu
ZGxlcigpOworICAgICAgICAgICAgfQorCisKKyAgICAgICAgICAgIGZ1bmN0aW9uIG9uU291cmNl
Q2xvc2UoZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlbnRlckhhbmRsZXIoIm9u
U291cmNlQ2xvc2UiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChlbmRUZXN0
LCAwKTsKKyAgICAgICAgICAgICAgICBleGl0SGFuZGxlcigpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBmdW5jdGlvbiBtYWluKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICB2YXIgdmlkZW8gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdicpOworICAgICAgICAgICAg
ICAgIHZhciBtZWRpYVNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworCisgICAgICAgICAgICAg
ICAgbWVkaWFTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0c291cmNlb3BlbicsIG9uU291
cmNlT3Blbik7CisgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcign
d2Via2l0c291cmNlZW5kZWQnLCBvblNvdXJjZUVuZGVkKTsKKyAgICAgICAgICAgICAgICBtZWRp
YVNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRzb3VyY2VjbG9zZScsIG9uU291cmNlQ2xv
c2UpOworCisgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycy5hZGRFdmVu
dExpc3RlbmVyKCd3ZWJraXRhZGRzb3VyY2VidWZmZXInLCBvbkFkZFNvdXJjZUJ1ZmZlcik7Cisg
ICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycy5hZGRFdmVudExp
c3RlbmVyKCd3ZWJraXRhZGRzb3VyY2VidWZmZXInLCBvbkFkZFNvdXJjZUJ1ZmZlcik7CisKKyAg
ICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmFkZEV2ZW50TGlzdGVuZXIo
J3dlYmtpdHJlbW92ZXNvdXJjZWJ1ZmZlcicsIG9uUmVtb3ZlU291cmNlQnVmZmVyKTsKKyAgICAg
ICAgICAgICAgICBtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLmFkZEV2ZW50TGlzdGVu
ZXIoJ3dlYmtpdHJlbW92ZXNvdXJjZWJ1ZmZlcicsIG9uUmVtb3ZlU291cmNlQnVmZmVyKTsKKwor
ICAgICAgICAgICAgICAgIHZpZGVvLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwobWVkaWFTb3Vy
Y2UpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHkgb25sb2FkPSJtYWluKCkiPgorICAgICAgPHZpZGVvIGlkPSJ2Ij48L3ZpZGVvPgorICAg
ICAgPHA+VmVyaWZ5IHRoYXQgYWxsIE1lZGlhU291cmNlICZhbXA7IFNvdXJjZUJ1ZmZlckxpc3Qg
ZXZlbnRzIGFyZSBkaXNwYXRjaGVkIGFzeW5jaHJvbm91c2x5LjwvcD4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS92aWRlby1tZWRpYS1zb3VyY2UtY2hhbmdlLXNyYy1mcm9tLWFkZHNvdXJjZWJ1ZmZlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92
aWRlby1tZWRpYS1zb3VyY2UtY2hhbmdlLXNyYy1mcm9tLWFkZHNvdXJjZWJ1ZmZlci1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzE1ZGE4ZTFmYzdlNjg0NDYxZjI5MTg3NmU0OTM1OWRiNTFmYWRl
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1jaGFuZ2Utc3JjLWZyb20tYWRkc291cmNlYnVmZmVy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1ZlcmlmeSB0aGF0IHZpZGVvLnNyYyBjYW4g
YmUgY2hhbmdlZCBpbnNpZGUgYW4gYWRkc291cmNlYnVmZmVyIGV2ZW50IGhhbmRsZXIuCisKK29u
U291cmNlT3Blbgorb25BZGRTb3VyY2VCdWZmZXIKK29uU291cmNlQ2xvc2UKK0VORCBPRiBURVNU
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L3ZpZGVvLW1lZGlhLXNvdXJjZS1jaGFuZ2Utc3JjLWZyb20tYWRkc291cmNlYnVmZmVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1z
b3VyY2UtY2hhbmdlLXNyYy1mcm9tLWFkZHNvdXJjZWJ1ZmZlci5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYy
Y2IzNGVhMTk3ODEwNDA5ZGM2N2E2YjRmZGYxMmNjZWYzMzYwN2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1z
b3VyY2UtY2hhbmdlLXNyYy1mcm9tLWFkZHNvdXJjZWJ1ZmZlci5odG1sCkBAIC0wLDAgKzEsNDIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIvbWVkaWEtcmVzb3VyY2VzL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICBmdW5jdGlvbiBvblNv
dXJjZU9wZW4oZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
Im9uU291cmNlT3BlbiIpOworICAgICAgICAgICAgICAgIGUudGFyZ2V0LmFkZFNvdXJjZUJ1ZmZl
cigndmlkZW8vd2VibTtjb2RlY3M9InZwOCInKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgZnVuY3Rpb24gb25BZGRTb3VyY2VCdWZmZXIoZSkgeworICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgib25BZGRTb3VyY2VCdWZmZXIiKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCcjdicpLnNyYyA9ICIiOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBmdW5jdGlvbiBvblNvdXJjZUNsb3NlKGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCJvblNvdXJjZUNsb3NlIik7CisKKyAgICAgICAgICAgICAgICAvLyBF
bmQgdGhlIHRlc3QgYWZ0ZXIgZGlzcGF0Y2ggb2YgdGhpcyBldmVudCBoYXMgY29tcGxldGVkLgor
ICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGVuZFRlc3QsIDApOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBtYWluKCkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICB2YXIgdmlkZW8gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdicpOworICAg
ICAgICAgICAgICAgIHZhciBtZWRpYVNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAg
ICAgICAgICAgIG1lZGlhU291cmNlLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdHNvdXJjZW9wZW4n
LCBvblNvdXJjZU9wZW4pOworICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmFkZEV2ZW50TGlz
dGVuZXIoJ3dlYmtpdHNvdXJjZWNsb3NlJywgb25Tb3VyY2VDbG9zZSk7CisKKyAgICAgICAgICAg
ICAgICBtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLmFkZEV2ZW50TGlzdGVuZXIoJ3dl
YmtpdGFkZHNvdXJjZWJ1ZmZlcicsIG9uQWRkU291cmNlQnVmZmVyKTsKKworICAgICAgICAgICAg
ICAgIHZpZGVvLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwobWVkaWFTb3VyY2UpOworICAgICAg
ICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2Fk
PSJtYWluKCkiPgorICAgICAgPHZpZGVvIGlkPSJ2Ij48L3ZpZGVvPgorICAgICAgPHA+VmVyaWZ5
IHRoYXQgdmlkZW8uc3JjIGNhbiBiZSBjaGFuZ2VkIGluc2lkZSBhbiBhZGRzb3VyY2VidWZmZXIg
ZXZlbnQgaGFuZGxlci48L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNl
LWV2ZW50LWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1ldmVudC1hdHRyaWJ1dGVzLmh0bWwKaW5kZXgg
NTJjMGFjOWM2MzVkMmUxOTM5M2RlYTJhODM2NDgxNGQxYWI2NDI5Mi4uNDNhMTkxM2E1NWE5MjZl
NDc2YTY4ZmVjY2RhMmJkMjkyZDJiN2Q0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLWV2ZW50LWF0dHJpYnV0
ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92
aWRlby1tZWRpYS1zb3VyY2UtZXZlbnQtYXR0cmlidXRlcy5odG1sCkBAIC0xOSw3ICsxOSw2IEBA
CiAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIm9uU291cmNlRW5kZWQoKSIpOwogICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCJTZXR0aW5nIHNyYyBhdHRyaWJ1dGUgdG8gXCJcIiB0byB0
cmlnZ2VyIGEgd2Via2l0c291cmNlY2xvc2VkIGV2ZW50LiIpOwogICAgICAgICAgICAgICAgdmlk
ZW8uc3JjID0gIiI7Ci0gICAgICAgICAgICAgICBlbmRUZXN0KCk7CiAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICBmdW5jdGlvbiBvblNvdXJjZUNsb3NlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1vYmpl
Y3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRl
by1tZWRpYS1zb3VyY2Utb2JqZWN0cy5odG1sCmluZGV4IDg5NGI3ZDA4Zjc3Y2U0ZmFmNzAwY2Iz
YzIwMTlmMTkwMGFhY2FkNzIuLjY3Y2E1ZTY0YjgyZTYwMGU1YmViN2MwYmRjNzJiNjFjYTI1MmVh
ZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L3ZpZGVvLW1lZGlhLXNvdXJjZS1vYmplY3RzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLW9iamVjdHMuaHRtbApA
QCAtMjEsNyArMjEsMTAgQEAKICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5zb3VyY2VCdWZm
ZXJzLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGFkZHNvdXJjZWJ1ZmZlcicsIG9uU291cmNlQnVm
ZmVyQWRkZWQpOwogCiAgICAgICAgICAgICAgICAgcnVuKCJzZWdtZW50SGVscGVyLmFkZFNvdXJj
ZUJ1ZmZlcigpIik7CisgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIGZ1bmN0aW9uIGFmdGVy
U291cmNlQnVmZmVyQWRkZWQoKQorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiIik7CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUZXN0IFNvdXJjZUJ1
ZmZlciBvYmplY3QgdHlwZSIpOwogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgic2VnbWVu
dEhlbHBlci5zb3VyY2VCdWZmZXIgaW5zdGFuY2VvZiB3aW5kb3cuU291cmNlQnVmZmVyIiwgdHJ1
ZSk7CkBAIC02NCw3ICs2NywxMCBAQAogICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLnNvdXJj
ZUJ1ZmZlcnMuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cmVtb3Zlc291cmNlYnVmZmVyJywgb25T
b3VyY2VCdWZmZXJSZW1vdmVkKTsKIAogICAgICAgICAgICAgICAgIHJ1bigibWVkaWFTb3VyY2Uu
cmVtb3ZlU291cmNlQnVmZmVyKHNlZ21lbnRIZWxwZXIuc291cmNlQnVmZmVyKSIpOworICAgICAg
ICAgICAgfQogCisgICAgICAgICAgICBmdW5jdGlvbiBhZnRlclNvdXJjZUJ1ZmZlclJlbW92ZWQo
KQorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVGVzdCB0aGF0
IGFkZFNvdXJjZUJ1ZmZlcigpIHRocm93cyBhbmQgZXJyb3Igd2hlbiB0aGUgTWVkaWFTb3VyY2Ug
aXMgbm90IGFzc29jaWF0ZWQgd2l0aCBhIG1lZGlhIGVsZW1lbnQuIik7CiAgICAgICAgICAgICAg
ICAgdmFyIG1lZGlhU291cmNlMiA9IG5ldyBNZWRpYVNvdXJjZSgpOwogICAgICAgICAgICAgICAg
IHZpZGVvLnNyYyA9IHdlYmtpdFVSTC5jcmVhdGVPYmplY3RVUkwobWVkaWFTb3VyY2UyKTsKQEAg
LTgzLDcgKzg5LDcgQEAKIAogICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBmdW5jdGlvbiBvblNvdXJjZUJ1ZmZlckFk
ZGVkKGV2ZW50KQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
bWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycy5sZW5ndGgiLCAxKTsKQEAgLTkyLDYgKzk4LDggQEAK
ICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRlc3QgU291cmNlQnVmZmVyTGlzdCBvYmpl
Y3QgdHlwZToiKTsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIm1lZGlhU291cmNlLnNv
dXJjZUJ1ZmZlcnMiLCBldmVudC50YXJnZXQpOwogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgibWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycyBpbnN0YW5jZW9mIHdpbmRvdy5Tb3VyY2VCdWZm
ZXJMaXN0IiwgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICBhZnRlclNvdXJjZUJ1ZmZlckFkZGVk
KCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIG9uU291cmNlQnVmZmVy
UmVtb3ZlZChldmVudCkKQEAgLTExNCw2ICsxMjIsOCBAQAogICAgICAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIkdvdCBleHBlY3RlZCBleGNlcHRpb24gIiArIGUpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIm1lZGlhU291cmNlLnNvdXJjZUJ1
ZmZlcnMubGVuZ3RoIiwgMCk7CisKKyAgICAgICAgICAgICAgICBhZnRlclNvdXJjZUJ1ZmZlclJl
bW92ZWQoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gb25Mb2FkKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3Zp
ZGVvLW1lZGlhLXNvdXJjZS1zZWVrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1zZWVrLWV4cGVjdGVkLnR4
dAppbmRleCA1MzlmMjQ3ODY3MDM0ZDQyZGRiY2FhN2RmOWNkNzFjZDBjY2M2NTNlLi44ODhhYmUw
NDhjNzcxMzk3Mzk1YTM2NGJiZjJkNmY0YWZhMGE1OTU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc2Vlay1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvdmlkZW8tbWVkaWEtc291cmNlLXNlZWstZXhwZWN0ZWQudHh0CkBAIC00LDggKzQsOCBAQCBF
VkVOVCh3ZWJraXRzb3VyY2VvcGVuKQogRVZFTlQod2Via2l0c291cmNlZW5kZWQpCiBFVkVOVChw
bGF5aW5nKQogRVZFTlQodGltZXVwZGF0ZSkgOiBzZWVraW5nIHRvIDIuNzgKLUVWRU5UKHdlYmtp
dHNvdXJjZW9wZW4pCiBFVkVOVChzZWVraW5nKQorRVZFTlQod2Via2l0c291cmNlb3BlbikKIEVW
RU5UKHdlYmtpdHNvdXJjZWVuZGVkKQogRVZFTlQocGxheWluZykKIEVWRU5UKGVuZGVkKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8t
bWVkaWEtc291cmNlLXN0YXRlLWNoYW5nZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLXN0YXRlLWNoYW5n
ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDM3OTA1ZTIxNTU3NzJhNTg5NWM0YWIwMTNiMjdhNGUxN2U5
MTIxYzkuLjcyYmNkNzI4NDcxZGY2YzE4NWY4OTAxZmFhZTYxYmM5NzI2NjdmNDcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlh
LXNvdXJjZS1zdGF0ZS1jaGFuZ2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc3RhdGUtY2hhbmdl
cy1leHBlY3RlZC50eHQKQEAgLTE2LDE4ICsxNiwxOCBAQCBFVkVOVChzZWVraW5nKQogb25TZWNv
bmRTZWVraW5nCiBFVkVOVChzZWVrZWQpCiBvblNlY29uZFNlZWtlZAorRVZFTlQoZW1wdGllZCkK
IEVWRU5UKHdlYmtpdHNvdXJjZWNsb3NlKSA6IGNsb3NlZAogb25GaXJzdFNvdXJjZUNsb3NlCi1F
VkVOVChlbXB0aWVkKQogRVZFTlQod2Via2l0c291cmNlb3BlbikgOiBvcGVuCiBvblNlY29uZFNv
dXJjZU9wZW4KIEVWRU5UKHdlYmtpdHNvdXJjZWVuZGVkKSA6IGVuZGVkCiBvblNlY29uZFNvdXJj
ZUVuZGVkCiBFVkVOVChwbGF5aW5nKQogdHJpZ2dlclNlY29uZFNvdXJjZUNsb3NlCitFVkVOVChl
bXB0aWVkKQogRVZFTlQod2Via2l0c291cmNlY2xvc2UpIDogY2xvc2VkCiBvblNlY29uZFNvdXJj
ZUNsb3NlCi1FVkVOVChlbXB0aWVkKQogRVZFTlQod2Via2l0c291cmNlb3BlbikgOiBvcGVuCiBv
blRoaXJkU291cmNlT3BlbgogRU5EIE9GIFRFU1QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161045</attachid>
            <date>2012-08-28 13:06:27 -0700</date>
            <delta_ts>2012-08-28 14:02:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95217-20120828130618.patch</filename>
            <type>text/plain</type>
            <size>18430</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJjN2I4NWMzNzEyOWQ0
MGRkY2JjMTgwYjg4YWY5YWI4MTMzYjQxNC4uMzI2YjUyZjQ5ZjRiZmU4MGI3OTViZDZjM2JkOWNi
YmQyNDg4NmQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA4LTI4ICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgTWVkaWFT
b3VyY2UgZXZlbnQgZGlzcGF0Y2ggYXN5bmNocm9ub3VzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUyMTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgTWVkaWFTb3VyY2UgJiBTb3VyY2VCdWZm
ZXJMaXN0IHRvIHVzZSBhIEdlbmVyaWNFdmVudFF1ZXVlIHRvIGRpc3BhdGNoIGV2ZW50cyAKKyAg
ICAgICAgaW5zdGVhZCBvZiB1c2luZyBzeW5jaHJvbm91cyBkaXNwYXRjaC4KKworICAgICAgICBU
ZXN0OiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2UtYXN5
bmMtZXZlbnRzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6Ok1lZGlhU291cmNlKTogQ3Jl
YXRlIEdlbmVyaWNFdmVudFF1ZXVlICYgcGFzcyBhIHJlZmVyZW5jZSB0byBTb3VyY2VCdWZmZXJM
aXN0LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0ZSk6IFVwZGF0ZWQgdG8g
dXNlIG5ldyBzY2hlZHVsZUV2ZW50KCkgaGVscGVyIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU291cmNlOjpzY2hlZHVsZUV2ZW50KTogTmV3IG1ldGhvZCBmb3IgY3JlYXRpbmcgZXZl
bnRzIGFuZCBhZGRpbmcgdGhlbSB0byB0aGUgZXZlbnQgcXVldWUuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmg6IEFkZGVkIEdl
bmVyaWNFdmVudFF1ZXVlIG1lbWJlciBhbmQgc2NoZWR1bGVFdmVudCgpIHNpZ25hdHVyZS4KKyAg
ICAgICAgKE1lZGlhU291cmNlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJj
ZUJ1ZmZlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyTGlzdDo6U291
cmNlQnVmZmVyTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJMaXN0OjpyZW1v
dmUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlQW5kRmlyZUV2
ZW50KTogVXBkYXRlZCB0byBxdWV1ZSBldmVudHMgaW5zdGVhZCBvZiBzeW5jaHJvbm91c2x5IGRp
c3BhdGNoIHRoZW0uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJM
aXN0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
ckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChTb3VyY2VCdWZmZXJMaXN0KToKKwogMjAxMi0wOC0y
NCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNjU0Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5kZXggY2M0ZjlkN2Q3Yjg5OTE4
NTQzZDQ5NTMyYjhmNmY0ZTY1ZTk5ZDFhYS4uZGFjNWQ4NjI0NDMwZDg1OTYyNzkyODQwZTViYzY3
ODVjNTEzNTVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTQ5LDkgKzQ5LDEwIEBAIE1lZGlhU291cmNlOjpNZWRpYVNv
dXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIDogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIoY29udGV4dCkKICAgICAsIG1fcmVhZHlTdGF0ZShjbG9zZWRLZXl3b3Jk
KCkpCiAgICAgLCBtX3BsYXllcigwKQorICAgICwgbV9hc3luY0V2ZW50UXVldWUoR2VuZXJpY0V2
ZW50UXVldWU6OmNyZWF0ZSh0aGlzKSkKIHsKLSAgICBtX3NvdXJjZUJ1ZmZlcnMgPSBTb3VyY2VC
dWZmZXJMaXN0OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBtX2FjdGl2
ZVNvdXJjZUJ1ZmZlcnMgPSBTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKKyAgICBtX3NvdXJjZUJ1ZmZlcnMgPSBTb3VyY2VCdWZmZXJMaXN0OjpjcmVh
dGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX2FzeW5jRXZlbnRRdWV1ZS5nZXQoKSk7Cisg
ICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzID0gU291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9hc3luY0V2ZW50UXVldWUuZ2V0KCkpOwogfQogCiBTb3Vy
Y2VCdWZmZXJMaXN0KiBNZWRpYVNvdXJjZTo6c291cmNlQnVmZmVycygpCkBAIC04NCw3ICs4NSw3
IEBAIFNvdXJjZUJ1ZmZlciogTWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcihjb25zdCBTdHJp
bmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9F
UlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICAKKwogICAgIC8vIDQuIElmIHRoZSBy
ZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBub3QgaW4gdGhlICJvcGVuIiBzdGF0ZSB0aGVuIHRocm93
IGFuCiAgICAgLy8gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBz
dGVwcy4KICAgICBpZiAoIW1fcGxheWVyIHx8IG1fcmVhZHlTdGF0ZSAhPSBvcGVuS2V5d29yZCgp
KSB7CkBAIC0xODIsMTcgKzE4MywxNyBAQCB2b2lkIE1lZGlhU291cmNlOjpzZXRSZWFkeVN0YXRl
KGNvbnN0IFN0cmluZyYgc3RhdGUpCiAgICAgICAgIG1fc291cmNlQnVmZmVycy0+Y2xlYXIoKTsK
ICAgICAgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5jbGVhcigpOwogICAgICAgICBtX3BsYXll
ciA9IDA7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
d2Via2l0c291cmNlY2xvc2VFdmVudCwgZmFsc2UsIGZhbHNlKSk7CisgICAgICAgIHNjaGVkdWxl
RXZlbnQoZXZlbnROYW1lcygpLndlYmtpdHNvdXJjZWNsb3NlRXZlbnQpOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIAorCiAgICAgaWYgKG9sZFN0YXRlID09IG9wZW5LZXl3b3JkKCkgJiYg
bV9yZWFkeVN0YXRlID09IGVuZGVkS2V5d29yZCgpKSB7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQo
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0c291cmNlZW5kZWRFdmVudCwgZmFsc2Us
IGZhbHNlKSk7CisgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdHNvdXJj
ZWVuZGVkRXZlbnQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1fcmVhZHlT
dGF0ZSA9PSBvcGVuS2V5d29yZCgpKSB7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkud2Via2l0c291cmNlb3BlbkV2ZW50LCBmYWxzZSwgZmFsc2UpKTsK
KyAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Via2l0c291cmNlb3BlbkV2ZW50
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KQEAgLTMwMSw2ICszMDIsMTYgQEAgRXZlbnRU
YXJnZXREYXRhKiBNZWRpYVNvdXJjZTo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKICAgICByZXR1
cm4gJm1fZXZlbnRUYXJnZXREYXRhOwogfQogCit2b2lkIE1lZGlhU291cmNlOjpzY2hlZHVsZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKQoreworICAgIEFTU0VSVChtX2FzeW5j
RXZlbnRRdWV1ZSk7CisKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWUsIGZhbHNlLCBmYWxzZSk7CisgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKKwor
ICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoZXZlbnQucmVsZWFzZSgpKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaAppbmRleCBiNjM4MzMzNjk3Zjg4YjAx
NDYyMGM2MjJhMzE1OGQ2NzA0YzYwYjZjLi5mNzQ4MjQ2ODQ3ZmYzYmIzMjMyMDU0M2NmNWZjOTk0
N2ZiNmQzNWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L01lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZS5oCkBAIC0zNCw2ICszNCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
IAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiR2Vu
ZXJpY0V2ZW50UXVldWUuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIlNv
dXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlckxpc3QuaCIKQEAgLTc2LDcgKzc3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZW5kT2ZTdHJlYW0oY29uc3QgU3RyaW5nJiBlcnJvciwg
RXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBzZXRNZWRpYVBsYXllcihNZWRpYVBsYXllciog
cGxheWVyKSB7IG1fcGxheWVyID0gcGxheWVyOyB9Ci0gICAgCisKICAgICBQYXNzUmVmUHRyPFRp
bWVSYW5nZXM+IGJ1ZmZlcmVkKGNvbnN0IFN0cmluZyYgaWQsIEV4Y2VwdGlvbkNvZGUmKSBjb25z
dDsKICAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmIGlkLCBQYXNzUmVmUHRyPFVpbnQ4QXJy
YXk+IGRhdGEsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGFib3J0KGNvbnN0IFN0cmluZyYg
aWQsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTk4LDYgKzk5LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9CiAgICAgdmlydHVh
bCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KIAorICAgIHZv
aWQgc2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSk7CisKICAgICBF
dmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CiAKICAgICBTdHJpbmcgbV9yZWFkeVN0
YXRlOwpAQCAtMTA1LDYgKzEwOCw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8U291cmNlQnVm
ZmVyTGlzdD4gbV9zb3VyY2VCdWZmZXJzOwogICAgIFJlZlB0cjxTb3VyY2VCdWZmZXJMaXN0PiBt
X2FjdGl2ZVNvdXJjZUJ1ZmZlcnM7CisgICAgT3duUHRyPEdlbmVyaWNFdmVudFF1ZXVlPiBtX2Fz
eW5jRXZlbnRRdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3Bw
CmluZGV4IGNlMjEzZDUxNDAyYTg0ZmJkZTBjYzk3NmVmOTA4NjkwZTM1NjYyOTAuLmM1MTM5Y2Vl
ZjhmMTNjYjMwMTk1MzRhNjgyOTIwNGQ0ZWIwNWY0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcApAQCAtMzgs
OCArMzgsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Tb3VyY2VCdWZmZXJMaXN0OjpT
b3VyY2VCdWZmZXJMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCitTb3VyY2VC
dWZmZXJMaXN0OjpTb3VyY2VCdWZmZXJMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyaWNFdmVudFF1ZXVl
KiBhc3luY0V2ZW50UXVldWUpCiAgICAgOiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4
dCkKKyAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKGFzeW5jRXZlbnRRdWV1ZSkKICAgICAsIG1fbGFz
dFNvdXJjZUJ1ZmZlcklkKDApCiB7CiB9CkBAIC02Myw3ICs2NSw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyTGlzdDo6YWRkKFBhc3NSZWZQdHI8U291cmNlQnVmZmVyPiBidWZmZXIpCiB9CiAKIGJvb2wg
U291cmNlQnVmZmVyTGlzdDo6cmVtb3ZlKFNvdXJjZUJ1ZmZlciogYnVmZmVyKQoteyAgICAKK3sK
ICAgICBzaXplX3QgaW5kZXggPSBtX2xpc3QuZmluZChidWZmZXIpOwogICAgIGlmIChpbmRleCA9
PSBub3RGb3VuZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTEwLDEwICsxMTIsMTIgQEAg
Ym9vbCBTb3VyY2VCdWZmZXJMaXN0Ojpjb250YWlucyhzaXplX3QgaWQpIGNvbnN0CiAKIHZvaWQg
U291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlQW5kRmlyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnROYW1lKQogeworICAgIEFTU0VSVChtX2FzeW5jRXZlbnRRdWV1ZSk7CisKICAgICBSZWZQ
dHI8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIGZhbHNlLCBmYWxzZSk7
CiAgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKIAotICAgIEV2ZW50VGFyZ2V0OjpkaXNwYXRj
aEV2ZW50KGV2ZW50KTsKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KGV2ZW50
LnJlbGVhc2UoKSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU291cmNlQnVmZmVyTGlzdDo6
aW50ZXJmYWNlTmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCmluZGV4IGM4N2NmMzRjOGJiYjJkY2MxYTc4
MGIxMmIxMDZkYzAwNTdiNTI5NTUuLmE5NWE4Mzc2OGJjNjNmOGEwZDJhODc2NzIyMTU3OWM5MDM3
MGRhYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyTGlzdC5oCkBAIC00MCwxMiArNDAsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgU291cmNlQnVmZmVyOworY2xhc3MgR2VuZXJpY0V2ZW50UXVldWU7CiAKIGNs
YXNzIFNvdXJjZUJ1ZmZlckxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxTb3VyY2VCdWZmZXJMaXN0
PiwgcHVibGljIEV2ZW50VGFyZ2V0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
b3VyY2VCdWZmZXJMaXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXJMaXN0PiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgR2VuZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRRdWV1
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU291cmNlQnVmZmVyTGlzdChj
b250ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU291cmNlQnVmZmVyTGlzdChj
b250ZXh0LCBhc3luY0V2ZW50UXVldWUpKTsKICAgICB9CiAgICAgdmlydHVhbCB+U291cmNlQnVm
ZmVyTGlzdCgpIHsgfQogCkBAIC03Miw3ICs3Myw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREU7CiAKIHBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgU291cmNlQnVmZmVyTGlzdChTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kik7CisgICAgU291cmNlQnVmZmVyTGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgR2Vu
ZXJpY0V2ZW50UXVldWUqKTsKIAogICAgIGJvb2wgY29udGFpbnMoc2l6ZV90IGlkKSBjb25zdDsK
ICAgICB2b2lkIGNyZWF0ZUFuZEZpcmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmKTsKQEAgLTgy
LDYgKzgzLDcgQEAgcHJpdmF0ZToKIAogICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0
RGF0YTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7CisgICAgR2VuZXJpY0V2ZW50UXVldWUqIG1fYXN5bmNFdmVudFF1ZXVlOwogCiAgICAgVmVj
dG9yPFJlZlB0cjxTb3VyY2VCdWZmZXI+ID4gbV9saXN0OwogICAgIHNpemVfdCBtX2xhc3RTb3Vy
Y2VCdWZmZXJJZDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBlMDkzZWIwOTI2ZmIzZGYwOWFlZTg5MTJiODIyOGUwZjNkYTM5
MDM2Li4wOTI4OTk5MzIzZjQ2NWI4N2NmMDQxMWRiOTJjOTE5YmFmNDQwNzNhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTItMDgtMjggIEFhcm9uIENvbHdlbGwgIDxhY29sd2VsbEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgTWFrZSBNZWRpYVNvdXJjZSBldmVudCBkaXNwYXRjaCBhc3luY2hy
b25vdXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NTIxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0g
QWRkZWQgYSB0ZXN0IHRvIHZlcmlmeSB0aGF0IE1lZGlhU291cmNlICYgU291cmNlQnVmZmVyTGlz
dCBldmVudHMgYXJlIGRpc3BhdGNoZWQgYXN5bmNocm9ub3VzbHkuCisgICAgICAgIC0gVXBkYXRl
ZCBhIGZldyBleGlzdGluZyB0ZXN0cyB0aGF0IHdlcmUgcmVseWluZyBvbiB0aGUgb2xkIHN5bmNo
cm9ub3VzIGRpc3BhdGNoLgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvdmlkZW8tbWVkaWEtc291cmNlLWFzeW5jLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJj
ZS1hc3luYy1ldmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLWV2ZW50LWF0dHJpYnV0ZXMuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Ut
b2JqZWN0cy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3Zp
ZGVvLW1lZGlhLXNvdXJjZS1zZWVrLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc3RhdGUtY2hhbmdlcy1leHBl
Y3RlZC50eHQ6CisKIDIwMTItMDgtMjQgIERvbWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1t
ZWRpYS1zb3VyY2UtYXN5bmMtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1hc3luYy1ldmVudHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NjQwYTY2ZmM0ZGFmZjNiNTM2ODM3OTEyZWRjMzIy
YzUyMDUwMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2UtYXN5bmMtZXZlbnRzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitWZXJpZnkgdGhhdCBhbGwgTWVkaWFTb3VyY2UgJiBTb3VyY2VC
dWZmZXJMaXN0IGV2ZW50cyBhcmUgZGlzcGF0Y2hlZCBhc3luY2hyb25vdXNseS4KKworb25Tb3Vy
Y2VPcGVuCitvbkFkZFNvdXJjZUJ1ZmZlcgorb25BZGRTb3VyY2VCdWZmZXIKK29uU291cmNlRW5k
ZWQKK29uUmVtb3ZlU291cmNlQnVmZmVyCitvblJlbW92ZVNvdXJjZUJ1ZmZlcgorb25Tb3VyY2VD
bG9zZQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLWFzeW5jLWV2ZW50cy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291
cmNlLWFzeW5jLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3MDY1MmEwNWZkYzZmOGQ2YzQ5Mzhm
ZDc3MTg1NWQxOGU5ZDI4OGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2UtYXN5bmMtZXZlbnRzLmh0
bWwKQEAgLTAsMCArMSw4NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii9tZWRpYS1yZXNvdXJjZXMvdmlkZW8tdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAg
ICAgIHZhciBldmVudEhhbmRsZXJEZXB0aCA9IDA7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGVu
dGVySGFuZGxlcihsYWJlbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb25zb2xl
V3JpdGUobGFiZWwpOworCisgICAgICAgICAgICAgICAgaWYgKGV2ZW50SGFuZGxlckRlcHRoID4g
MCkKKyAgICAgICAgICAgICAgICAgICAgZmFpbFRlc3QoIlVuZXhwZWN0ZWQgZXZlbnRIYW5kbGVy
RGVwdGggIiArIGV2ZW50SGFuZGxlckRlcHRoKTsKKworICAgICAgICAgICAgICAgIGV2ZW50SGFu
ZGxlckRlcHRoKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGV4aXRI
YW5kbGVyKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnRIYW5kbGVy
RGVwdGggPD0gMCkKKyAgICAgICAgICAgICAgICAgICAgZmFpbFRlc3QoIlVuZXhwZWN0ZWQgZXZl
bnRIYW5kbGVyRGVwdGggIiArIGV2ZW50SGFuZGxlckRlcHRoKTsKKworICAgICAgICAgICAgICAg
IGV2ZW50SGFuZGxlckRlcHRoLS07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIG9uU291cmNlT3BlbihlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVudGVy
SGFuZGxlcigib25Tb3VyY2VPcGVuIik7CisKKyAgICAgICAgICAgICAgICBlLnRhcmdldC5hZGRT
b3VyY2VCdWZmZXIoJ3ZpZGVvL3dlYm07Y29kZWNzPSJ2cDgiJyk7CisKKyAgICAgICAgICAgICAg
ICB3aW5kb3cuc2V0VGltZW91dChlLnRhcmdldC5lbmRPZlN0cmVhbS5iaW5kKGUudGFyZ2V0KSk7
CisKKyAgICAgICAgICAgICAgICBleGl0SGFuZGxlcigpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiBvbkFkZFNvdXJjZUJ1ZmZlcihlKSB7CisgICAgICAgICAgICAgICAg
ZW50ZXJIYW5kbGVyKCJvbkFkZFNvdXJjZUJ1ZmZlciIpOworICAgICAgICAgICAgICAgIGV4aXRI
YW5kbGVyKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIG9uU291cmNl
RW5kZWQoZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlbnRlckhhbmRsZXIoIm9u
U291cmNlRW5kZWQiKTsKKworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
JyN2Jykuc3JjID0gIiI7CisKKyAgICAgICAgICAgICAgICBleGl0SGFuZGxlcigpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBvblJlbW92ZVNvdXJjZUJ1ZmZlcihlKSB7
CisgICAgICAgICAgICAgICAgZW50ZXJIYW5kbGVyKCJvblJlbW92ZVNvdXJjZUJ1ZmZlciIpOwor
ICAgICAgICAgICAgICAgIGV4aXRIYW5kbGVyKCk7CisgICAgICAgICAgICB9CisKKworICAgICAg
ICAgICAgZnVuY3Rpb24gb25Tb3VyY2VDbG9zZShlKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIGVudGVySGFuZGxlcigib25Tb3VyY2VDbG9zZSIpOworICAgICAgICAgICAgICAgIHdp
bmRvdy5zZXRUaW1lb3V0KGVuZFRlc3QsIDApOworICAgICAgICAgICAgICAgIGV4aXRIYW5kbGVy
KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIG1haW4oKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHZhciB2aWRlbyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJyN2Jyk7CisgICAgICAgICAgICAgICAgdmFyIG1lZGlhU291cmNlID0gbmV3IE1lZGlhU291
cmNlKCk7CisKKyAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCd3
ZWJraXRzb3VyY2VvcGVuJywgb25Tb3VyY2VPcGVuKTsKKyAgICAgICAgICAgICAgICBtZWRpYVNv
dXJjZS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRzb3VyY2VlbmRlZCcsIG9uU291cmNlRW5kZWQp
OworICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdHNv
dXJjZWNsb3NlJywgb25Tb3VyY2VDbG9zZSk7CisKKyAgICAgICAgICAgICAgICBtZWRpYVNvdXJj
ZS5zb3VyY2VCdWZmZXJzLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGFkZHNvdXJjZWJ1ZmZlcics
IG9uQWRkU291cmNlQnVmZmVyKTsKKyAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5hY3RpdmVT
b3VyY2VCdWZmZXJzLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGFkZHNvdXJjZWJ1ZmZlcicsIG9u
QWRkU291cmNlQnVmZmVyKTsKKworICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLnNvdXJjZUJ1
ZmZlcnMuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cmVtb3Zlc291cmNlYnVmZmVyJywgb25SZW1v
dmVTb3VyY2VCdWZmZXIpOworICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmFjdGl2ZVNvdXJj
ZUJ1ZmZlcnMuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cmVtb3Zlc291cmNlYnVmZmVyJywgb25S
ZW1vdmVTb3VyY2VCdWZmZXIpOworCisgICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gVVJMLmNy
ZWF0ZU9iamVjdFVSTChtZWRpYVNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2Ny
aXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im1haW4oKSI+CisgICAgICA8dmlk
ZW8gaWQ9InYiPjwvdmlkZW8+CisgICAgICA8cD5WZXJpZnkgdGhhdCBhbGwgTWVkaWFTb3VyY2Ug
JmFtcDsgU291cmNlQnVmZmVyTGlzdCBldmVudHMgYXJlIGRpc3BhdGNoZWQgYXN5bmNocm9ub3Vz
bHkuPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1ldmVudC1hdHRy
aWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92
aWRlby1tZWRpYS1zb3VyY2UtZXZlbnQtYXR0cmlidXRlcy5odG1sCmluZGV4IDUyYzBhYzljNjM1
ZDJlMTkzOTNkZWEyYTgzNjQ4MTRkMWFiNjQyOTIuLjQzYTE5MTNhNTVhOTI2ZTQ3NmE2OGZlY2Nk
YTJiZDI5MmQyYjdkNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1ldmVudC1hdHRyaWJ1dGVzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEt
c291cmNlLWV2ZW50LWF0dHJpYnV0ZXMuaHRtbApAQCAtMTksNyArMTksNiBAQAogICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCJvblNvdXJjZUVuZGVkKCkiKTsKICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiU2V0dGluZyBzcmMgYXR0cmlidXRlIHRvIFwiXCIgdG8gdHJpZ2dlciBhIHdl
YmtpdHNvdXJjZWNsb3NlZCBldmVudC4iKTsKICAgICAgICAgICAgICAgIHZpZGVvLnNyYyA9ICIi
OwotICAgICAgICAgICAgICAgZW5kVGVzdCgpOwogICAgICAgICAgICB9CiAKICAgICAgICAgICAg
ZnVuY3Rpb24gb25Tb3VyY2VDbG9zZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utb2JqZWN0cy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291
cmNlLW9iamVjdHMuaHRtbAppbmRleCA4OTRiN2QwOGY3N2NlNGZhZjcwMGNiM2MyMDE5ZjE5MDBh
YWNhZDcyLi42N2NhNWU2NGI4MmU2MDBlNWJlYjdjMGJkYzcyYjYxY2EyNTJlYWQwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRp
YS1zb3VyY2Utb2JqZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1vYmplY3RzLmh0bWwKQEAgLTIxLDcgKzIx
LDEwIEBACiAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycy5hZGRFdmVu
dExpc3RlbmVyKCd3ZWJraXRhZGRzb3VyY2VidWZmZXInLCBvblNvdXJjZUJ1ZmZlckFkZGVkKTsK
IAogICAgICAgICAgICAgICAgIHJ1bigic2VnbWVudEhlbHBlci5hZGRTb3VyY2VCdWZmZXIoKSIp
OworICAgICAgICAgICAgfQogCisgICAgICAgICAgICBmdW5jdGlvbiBhZnRlclNvdXJjZUJ1ZmZl
ckFkZGVkKCkKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIp
OwogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVGVzdCBTb3VyY2VCdWZmZXIgb2JqZWN0
IHR5cGUiKTsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInNlZ21lbnRIZWxwZXIuc291
cmNlQnVmZmVyIGluc3RhbmNlb2Ygd2luZG93LlNvdXJjZUJ1ZmZlciIsIHRydWUpOwpAQCAtNjQs
NyArNjcsMTAgQEAKICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmFk
ZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdHJlbW92ZXNvdXJjZWJ1ZmZlcicsIG9uU291cmNlQnVmZmVy
UmVtb3ZlZCk7CiAKICAgICAgICAgICAgICAgICBydW4oIm1lZGlhU291cmNlLnJlbW92ZVNvdXJj
ZUJ1ZmZlcihzZWdtZW50SGVscGVyLnNvdXJjZUJ1ZmZlcikiKTsKKyAgICAgICAgICAgIH0KIAor
ICAgICAgICAgICAgZnVuY3Rpb24gYWZ0ZXJTb3VyY2VCdWZmZXJSZW1vdmVkKCkKKyAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRlc3QgdGhhdCBhZGRTb3VyY2VC
dWZmZXIoKSB0aHJvd3MgYW5kIGVycm9yIHdoZW4gdGhlIE1lZGlhU291cmNlIGlzIG5vdCBhc3Nv
Y2lhdGVkIHdpdGggYSBtZWRpYSBlbGVtZW50LiIpOwogICAgICAgICAgICAgICAgIHZhciBtZWRp
YVNvdXJjZTIgPSBuZXcgTWVkaWFTb3VyY2UoKTsKICAgICAgICAgICAgICAgICB2aWRlby5zcmMg
PSB3ZWJraXRVUkwuY3JlYXRlT2JqZWN0VVJMKG1lZGlhU291cmNlMik7CkBAIC04Myw3ICs4OSw3
IEBACiAKICAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAKKwogICAgICAgICAgICAgZnVuY3Rpb24gb25Tb3VyY2VCdWZmZXJBZGRlZChldmVudCkK
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIm1lZGlhU291cmNl
LnNvdXJjZUJ1ZmZlcnMubGVuZ3RoIiwgMSk7CkBAIC05Miw2ICs5OCw4IEBACiAgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCJUZXN0IFNvdXJjZUJ1ZmZlckxpc3Qgb2JqZWN0IHR5cGU6Iik7
CiAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJz
IiwgZXZlbnQudGFyZ2V0KTsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIm1lZGlhU291
cmNlLnNvdXJjZUJ1ZmZlcnMgaW5zdGFuY2VvZiB3aW5kb3cuU291cmNlQnVmZmVyTGlzdCIsIHRy
dWUpOworCisgICAgICAgICAgICAgICAgYWZ0ZXJTb3VyY2VCdWZmZXJBZGRlZCgpOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICBmdW5jdGlvbiBvblNvdXJjZUJ1ZmZlclJlbW92ZWQoZXZl
bnQpCkBAIC0xMTQsNiArMTIyLDggQEAKICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRl
KCJHb3QgZXhwZWN0ZWQgZXhjZXB0aW9uICIgKyBlKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0
aCIsIDApOworCisgICAgICAgICAgICAgICAgYWZ0ZXJTb3VyY2VCdWZmZXJSZW1vdmVkKCk7CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIG9uTG9hZCgpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1z
b3VyY2Utc2Vlay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc2Vlay1leHBlY3RlZC50eHQKaW5kZXggNTM5
ZjI0Nzg2NzAzNGQ0MmRkYmNhYTdkZjljZDcxY2QwY2NjNjUzZS4uODg4YWJlMDQ4Yzc3MTM5NzM5
NWEzNjRiYmYyZDZmNGFmYTBhNTk1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLXNlZWstZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1l
ZGlhLXNvdXJjZS1zZWVrLWV4cGVjdGVkLnR4dApAQCAtNCw4ICs0LDggQEAgRVZFTlQod2Via2l0
c291cmNlb3BlbikKIEVWRU5UKHdlYmtpdHNvdXJjZWVuZGVkKQogRVZFTlQocGxheWluZykKIEVW
RU5UKHRpbWV1cGRhdGUpIDogc2Vla2luZyB0byAyLjc4Ci1FVkVOVCh3ZWJraXRzb3VyY2VvcGVu
KQogRVZFTlQoc2Vla2luZykKK0VWRU5UKHdlYmtpdHNvdXJjZW9wZW4pCiBFVkVOVCh3ZWJraXRz
b3VyY2VlbmRlZCkKIEVWRU5UKHBsYXlpbmcpCiBFVkVOVChlbmRlZCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJj
ZS1zdGF0ZS1jaGFuZ2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1zdGF0ZS1jaGFuZ2VzLWV4cGVjdGVk
LnR4dAppbmRleCAzNzkwNWUyMTU1NzcyYTU4OTVjNGFiMDEzYjI3YTRlMTdlOTEyMWM5Li43MmJj
ZDcyODQ3MWRmNmMxODVmODkwMWZhYWU2MWJjOTcyNjY3ZjQ3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc3Rh
dGUtY2hhbmdlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLXN0YXRlLWNoYW5nZXMtZXhwZWN0ZWQu
dHh0CkBAIC0xNiwxOCArMTYsMTggQEAgRVZFTlQoc2Vla2luZykKIG9uU2Vjb25kU2Vla2luZwog
RVZFTlQoc2Vla2VkKQogb25TZWNvbmRTZWVrZWQKK0VWRU5UKGVtcHRpZWQpCiBFVkVOVCh3ZWJr
aXRzb3VyY2VjbG9zZSkgOiBjbG9zZWQKIG9uRmlyc3RTb3VyY2VDbG9zZQotRVZFTlQoZW1wdGll
ZCkKIEVWRU5UKHdlYmtpdHNvdXJjZW9wZW4pIDogb3Blbgogb25TZWNvbmRTb3VyY2VPcGVuCiBF
VkVOVCh3ZWJraXRzb3VyY2VlbmRlZCkgOiBlbmRlZAogb25TZWNvbmRTb3VyY2VFbmRlZAogRVZF
TlQocGxheWluZykKIHRyaWdnZXJTZWNvbmRTb3VyY2VDbG9zZQorRVZFTlQoZW1wdGllZCkKIEVW
RU5UKHdlYmtpdHNvdXJjZWNsb3NlKSA6IGNsb3NlZAogb25TZWNvbmRTb3VyY2VDbG9zZQotRVZF
TlQoZW1wdGllZCkKIEVWRU5UKHdlYmtpdHNvdXJjZW9wZW4pIDogb3Blbgogb25UaGlyZFNvdXJj
ZU9wZW4KIEVORCBPRiBURVNUCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161055</attachid>
            <date>2012-08-28 14:02:44 -0700</date>
            <delta_ts>2012-08-28 18:07:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95217-20120828140235.patch</filename>
            <type>text/plain</type>
            <size>18424</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJjN2I4NWMzNzEyOWQ0
MGRkY2JjMTgwYjg4YWY5YWI4MTMzYjQxNC4uNGRmMjViMjkyMTIxMzZlNzFjMTFlYTJkZjI5NjMx
ZmZkY2RhMjU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA4LTI4ICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgTWVkaWFT
b3VyY2UgZXZlbnQgZGlzcGF0Y2ggYXN5bmNocm9ub3VzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUyMTcKKworICAgICAgICBSZXZpZXdlZCBieSBF
cmljIENhcmxzb24uCisKKyAgICAgICAgVXBkYXRlIE1lZGlhU291cmNlICYgU291cmNlQnVmZmVy
TGlzdCB0byB1c2UgYSBHZW5lcmljRXZlbnRRdWV1ZSB0byBkaXNwYXRjaCBldmVudHMgCisgICAg
ICAgIGluc3RlYWQgb2YgdXNpbmcgc3luY2hyb25vdXMgZGlzcGF0Y2guCisKKyAgICAgICAgVGVz
dDogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLWFzeW5j
LWV2ZW50cy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlOjpNZWRpYVNvdXJjZSk6IENyZWF0
ZSBHZW5lcmljRXZlbnRRdWV1ZSAmIHBhc3MgYSBwb2ludGVyIHRvIFNvdXJjZUJ1ZmZlckxpc3Qu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6YWRkU291cmNlQnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlOjpzZXRSZWFkeVN0YXRlKTogVXBkYXRlZCB0byB1c2Ug
bmV3IHNjaGVkdWxlRXZlbnQoKSBoZWxwZXIgbWV0aG9kLgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTb3VyY2U6OnNjaGVkdWxlRXZlbnQpOiBOZXcgbWV0aG9kIGZvciBjcmVhdGluZyBldmVudHMg
YW5kIGFkZGluZyB0aGVtIHRvIHRoZSBldmVudCBxdWV1ZS4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaDogQWRkZWQgR2VuZXJp
Y0V2ZW50UXVldWUgbWVtYmVyIGFuZCBzY2hlZHVsZUV2ZW50KCkgc2lnbmF0dXJlLgorICAgICAg
ICAoTWVkaWFTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJMaXN0OjpTb3VyY2VC
dWZmZXJMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlckxpc3Q6OnJlbW92ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGVBbmRGaXJlRXZlbnQp
OiBVcGRhdGVkIHRvIHF1ZXVlIGV2ZW50cyBpbnN0ZWFkIG9mIHN5bmNocm9ub3VzbHkgZGlzcGF0
Y2ggdGhlbS4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3Qu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyTGlz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFNvdXJjZUJ1ZmZlckxpc3QpOgorCiAyMDEyLTA4LTI0ICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTI2NTQ2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCBjYzRmOWQ3ZDdiODk5MTg1NDNk
NDk1MzJiOGY2ZjRlNjVlOTlkMWFhLi5kYWM1ZDg2MjQ0MzBkODU5NjI3OTI4NDBlNWJjNjc4NWM1
MTM1NWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcApAQCAtNDksOSArNDksMTAgQEAgTWVkaWFTb3VyY2U6Ok1lZGlhU291cmNl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcihjb250ZXh0KQogICAgICwgbV9yZWFkeVN0YXRlKGNsb3NlZEtleXdvcmQoKSkK
ICAgICAsIG1fcGxheWVyKDApCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShHZW5lcmljRXZlbnRR
dWV1ZTo6Y3JlYXRlKHRoaXMpKQogewotICAgIG1fc291cmNlQnVmZmVycyA9IFNvdXJjZUJ1ZmZl
ckxpc3Q6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIG1fYWN0aXZlU291
cmNlQnVmZmVycyA9IFNvdXJjZUJ1ZmZlckxpc3Q6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOworICAgIG1fc291cmNlQnVmZmVycyA9IFNvdXJjZUJ1ZmZlckxpc3Q6OmNyZWF0ZShz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fYXN5bmNFdmVudFF1ZXVlLmdldCgpKTsKKyAgICBt
X2FjdGl2ZVNvdXJjZUJ1ZmZlcnMgPSBTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCBtX2FzeW5jRXZlbnRRdWV1ZS5nZXQoKSk7CiB9CiAKIFNvdXJjZUJ1
ZmZlckxpc3QqIE1lZGlhU291cmNlOjpzb3VyY2VCdWZmZXJzKCkKQEAgLTg0LDcgKzg1LDcgQEAg
U291cmNlQnVmZmVyKiBNZWRpYVNvdXJjZTo6YWRkU291cmNlQnVmZmVyKGNvbnN0IFN0cmluZyYg
dHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIAorCiAgICAgLy8gNC4gSWYgdGhlIHJlYWR5
U3RhdGUgYXR0cmlidXRlIGlzIG5vdCBpbiB0aGUgIm9wZW4iIHN0YXRlIHRoZW4gdGhyb3cgYW4K
ICAgICAvLyBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBz
LgogICAgIGlmICghbV9wbGF5ZXIgfHwgbV9yZWFkeVN0YXRlICE9IG9wZW5LZXl3b3JkKCkpIHsK
QEAgLTE4MiwxNyArMTgzLDE3IEBAIHZvaWQgTWVkaWFTb3VyY2U6OnNldFJlYWR5U3RhdGUoY29u
c3QgU3RyaW5nJiBzdGF0ZSkKICAgICAgICAgbV9zb3VyY2VCdWZmZXJzLT5jbGVhcigpOwogICAg
ICAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPmNsZWFyKCk7CiAgICAgICAgIG1fcGxheWVyID0g
MDsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJr
aXRzb3VyY2VjbG9zZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICAgICAgc2NoZWR1bGVFdmVu
dChldmVudE5hbWVzKCkud2Via2l0c291cmNlY2xvc2VFdmVudCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgCisKICAgICBpZiAob2xkU3RhdGUgPT0gb3BlbktleXdvcmQoKSAmJiBtX3Jl
YWR5U3RhdGUgPT0gZW5kZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXRzb3VyY2VlbmRlZEV2ZW50LCBmYWxzZSwgZmFs
c2UpKTsKKyAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Via2l0c291cmNlZW5k
ZWRFdmVudCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobV9yZWFkeVN0YXRl
ID09IG9wZW5LZXl3b3JkKCkpIHsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS53ZWJraXRzb3VyY2VvcGVuRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAg
ICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRzb3VyY2VvcGVuRXZlbnQpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogfQpAQCAtMzAxLDYgKzMwMiwxNiBAQCBFdmVudFRhcmdl
dERhdGEqIE1lZGlhU291cmNlOjplbnN1cmVFdmVudFRhcmdldERhdGEoKQogICAgIHJldHVybiAm
bV9ldmVudFRhcmdldERhdGE7CiB9CiAKK3ZvaWQgTWVkaWFTb3VyY2U6OnNjaGVkdWxlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpCit7CisgICAgQVNTRVJUKG1fYXN5bmNFdmVu
dFF1ZXVlKTsKKworICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZSwgZmFsc2UsIGZhbHNlKTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOworCisgICAg
bV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChldmVudC5yZWxlYXNlKCkpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCmluZGV4IGI2MzgzMzM2OTdmODhiMDE0NjIw
YzYyMmEzMTU4ZDY3MDRjNjBiNmMuLmY3NDgyNDY4NDdmZjNiYjMyMzIwNTQzY2Y1ZmM5OTQ3ZmI2
ZDM1ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlh
U291cmNlLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAj
aW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJHZW5lcmlj
RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiU291cmNl
QnVmZmVyLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyTGlzdC5oIgpAQCAtNzYsNyArNzcsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBlbmRPZlN0cmVhbShjb25zdCBTdHJpbmcmIGVycm9yLCBFeGNl
cHRpb25Db2RlJik7CiAKICAgICB2b2lkIHNldE1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5
ZXIpIHsgbV9wbGF5ZXIgPSBwbGF5ZXI7IH0KLSAgICAKKwogICAgIFBhc3NSZWZQdHI8VGltZVJh
bmdlcz4gYnVmZmVyZWQoY29uc3QgU3RyaW5nJiBpZCwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0Owog
ICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYgaWQsIFBhc3NSZWZQdHI8VWludDhBcnJheT4g
ZGF0YSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgYWJvcnQoY29uc3QgU3RyaW5nJiBpZCwg
RXhjZXB0aW9uQ29kZSYpOwpAQCAtOTgsNiArOTksOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgZGVyZWYoKTsgfQogCisgICAgdm9pZCBz
Y2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKTsKKwogICAgIEV2ZW50
VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIAogICAgIFN0cmluZyBtX3JlYWR5U3RhdGU7
CkBAIC0xMDUsNiArMTA4LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxTb3VyY2VCdWZmZXJM
aXN0PiBtX3NvdXJjZUJ1ZmZlcnM7CiAgICAgUmVmUHRyPFNvdXJjZUJ1ZmZlckxpc3Q+IG1fYWN0
aXZlU291cmNlQnVmZmVyczsKKyAgICBPd25QdHI8R2VuZXJpY0V2ZW50UXVldWU+IG1fYXN5bmNF
dmVudFF1ZXVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAKaW5k
ZXggY2UyMTNkNTE0MDJhODRmYmRlMGNjOTc2ZWY5MDg2OTBlMzU2NjI5MC4uYzUxMzljZWVmOGYx
M2NiMzAxOTUzNGE2ODI5MjA0ZDRlYjA1ZjQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwCkBAIC0zOCw4ICsz
OCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNvdXJjZUJ1ZmZlckxpc3Q6OlNvdXJj
ZUJ1ZmZlckxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK1NvdXJjZUJ1ZmZl
ckxpc3Q6OlNvdXJjZUJ1ZmZlckxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJpY0V2ZW50UXVldWUqIGFz
eW5jRXZlbnRRdWV1ZSkKICAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQor
ICAgICwgbV9hc3luY0V2ZW50UXVldWUoYXN5bmNFdmVudFF1ZXVlKQogICAgICwgbV9sYXN0U291
cmNlQnVmZmVySWQoMCkKIHsKIH0KQEAgLTYzLDcgKzY1LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJM
aXN0OjphZGQoUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXI+IGJ1ZmZlcikKIH0KIAogYm9vbCBTb3Vy
Y2VCdWZmZXJMaXN0OjpyZW1vdmUoU291cmNlQnVmZmVyKiBidWZmZXIpCi17ICAgIAorewogICAg
IHNpemVfdCBpbmRleCA9IG1fbGlzdC5maW5kKGJ1ZmZlcik7CiAgICAgaWYgKGluZGV4ID09IG5v
dEZvdW5kKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMTAsMTAgKzExMiwxMiBAQCBib29s
IFNvdXJjZUJ1ZmZlckxpc3Q6OmNvbnRhaW5zKHNpemVfdCBpZCkgY29uc3QKIAogdm9pZCBTb3Vy
Y2VCdWZmZXJMaXN0OjpjcmVhdGVBbmRGaXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dE5hbWUpCiB7CisgICAgQVNTRVJUKG1fYXN5bmNFdmVudFF1ZXVlKTsKKwogICAgIFJlZlB0cjxF
dmVudD4gZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgZmFsc2UsIGZhbHNlKTsKICAg
ICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwogCi0gICAgRXZlbnRUYXJnZXQ6OmRpc3BhdGNoRXZl
bnQoZXZlbnQpOworICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoZXZlbnQucmVs
ZWFzZSgpKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTb3VyY2VCdWZmZXJMaXN0OjppbnRl
cmZhY2VOYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmgKaW5kZXggYzg3Y2YzNGM4YmJiMmRjYzFhNzgwYjEy
YjEwNmRjMDA1N2I1Mjk1NS4uYTk1YTgzNzY4YmM2M2Y4YTBkMmE4NzY3MjIxNTc5YzkwMzcwZGFh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXJMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXJMaXN0LmgKQEAgLTQwLDEyICs0MCwxMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBTb3VyY2VCdWZmZXI7CitjbGFzcyBHZW5lcmljRXZlbnRRdWV1ZTsKIAogY2xhc3Mg
U291cmNlQnVmZmVyTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZlckxpc3Q+LCBw
dWJsaWMgRXZlbnRUYXJnZXQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNvdXJj
ZUJ1ZmZlckxpc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZlckxpc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBHZW5lcmljRXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTb3VyY2VCdWZmZXJMaXN0KGNvbnRl
eHQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTb3VyY2VCdWZmZXJMaXN0KGNvbnRl
eHQsIGFzeW5jRXZlbnRRdWV1ZSkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5Tb3VyY2VCdWZmZXJM
aXN0KCkgeyB9CiAKQEAgLTcyLDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgRXZl
bnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKIAogcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBTb3VyY2VCdWZmZXJMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
KTsKKyAgICBTb3VyY2VCdWZmZXJMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBHZW5lcmlj
RXZlbnRRdWV1ZSopOwogCiAgICAgYm9vbCBjb250YWlucyhzaXplX3QgaWQpIGNvbnN0OwogICAg
IHZvaWQgY3JlYXRlQW5kRmlyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYpOwpAQCAtODIsNiAr
ODMsNyBAQCBwcml2YXRlOgogCiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRh
OwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
KyAgICBHZW5lcmljRXZlbnRRdWV1ZSogbV9hc3luY0V2ZW50UXVldWU7CiAKICAgICBWZWN0b3I8
UmVmUHRyPFNvdXJjZUJ1ZmZlcj4gPiBtX2xpc3Q7CiAgICAgc2l6ZV90IG1fbGFzdFNvdXJjZUJ1
ZmZlcklkOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGUwOTNlYjA5MjZmYjNkZjA5YWVlODkxMmI4MjI4ZTBmM2RhMzkwMzYu
LmUzZWIzMTQ3Y2RkOTRmOWE5MDhlMDc5NDc1YTA2ZmY4NTJkNTQ2ZjUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxMi0wOC0yOCAgQWFyb24gQ29sd2VsbCAgPGFjb2x3ZWxsQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBNYWtlIE1lZGlhU291cmNlIGV2ZW50IGRpc3BhdGNoIGFzeW5jaHJvbm91
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MjE3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIC0gQWRkZWQg
YSB0ZXN0IHRvIHZlcmlmeSB0aGF0IE1lZGlhU291cmNlICYgU291cmNlQnVmZmVyTGlzdCBldmVu
dHMgYXJlIGRpc3BhdGNoZWQgYXN5bmNocm9ub3VzbHkuCisgICAgICAgIC0gVXBkYXRlZCBhIGZl
dyBleGlzdGluZyB0ZXN0cyB0aGF0IHdlcmUgcmVseWluZyBvbiB0aGUgb2xkIHN5bmNocm9ub3Vz
IGRpc3BhdGNoLgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uvdmlk
ZW8tbWVkaWEtc291cmNlLWFzeW5jLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1hc3lu
Yy1ldmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLWV2ZW50LWF0dHJpYnV0ZXMuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utb2JqZWN0
cy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1l
ZGlhLXNvdXJjZS1zZWVrLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc3RhdGUtY2hhbmdlcy1leHBlY3RlZC50
eHQ6CisKIDIwMTItMDgtMjQgIERvbWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1z
b3VyY2UtYXN5bmMtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1hc3luYy1ldmVudHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU3NjQwYTY2ZmM0ZGFmZjNiNTM2ODM3OTEyZWRjMzIyYzUyMDUw
MGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2UtYXN5bmMtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitWZXJpZnkgdGhhdCBhbGwgTWVkaWFTb3VyY2UgJiBTb3VyY2VCdWZmZXJM
aXN0IGV2ZW50cyBhcmUgZGlzcGF0Y2hlZCBhc3luY2hyb25vdXNseS4KKworb25Tb3VyY2VPcGVu
CitvbkFkZFNvdXJjZUJ1ZmZlcgorb25BZGRTb3VyY2VCdWZmZXIKK29uU291cmNlRW5kZWQKK29u
UmVtb3ZlU291cmNlQnVmZmVyCitvblJlbW92ZVNvdXJjZUJ1ZmZlcgorb25Tb3VyY2VDbG9zZQor
RU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLWFzeW5jLWV2ZW50cy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLWFz
eW5jLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3MDY1MmEwNWZkYzZmOGQ2YzQ5MzhmZDc3MTg1
NWQxOGU5ZDI4OGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2UtYXN5bmMtZXZlbnRzLmh0bWwKQEAg
LTAsMCArMSw4NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii9tZWRpYS1yZXNvdXJjZXMvdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIHZh
ciBldmVudEhhbmRsZXJEZXB0aCA9IDA7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGVudGVySGFu
ZGxlcihsYWJlbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
bGFiZWwpOworCisgICAgICAgICAgICAgICAgaWYgKGV2ZW50SGFuZGxlckRlcHRoID4gMCkKKyAg
ICAgICAgICAgICAgICAgICAgZmFpbFRlc3QoIlVuZXhwZWN0ZWQgZXZlbnRIYW5kbGVyRGVwdGgg
IiArIGV2ZW50SGFuZGxlckRlcHRoKTsKKworICAgICAgICAgICAgICAgIGV2ZW50SGFuZGxlckRl
cHRoKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGV4aXRIYW5kbGVy
KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnRIYW5kbGVyRGVwdGgg
PD0gMCkKKyAgICAgICAgICAgICAgICAgICAgZmFpbFRlc3QoIlVuZXhwZWN0ZWQgZXZlbnRIYW5k
bGVyRGVwdGggIiArIGV2ZW50SGFuZGxlckRlcHRoKTsKKworICAgICAgICAgICAgICAgIGV2ZW50
SGFuZGxlckRlcHRoLS07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIG9u
U291cmNlT3BlbihlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVudGVySGFuZGxl
cigib25Tb3VyY2VPcGVuIik7CisKKyAgICAgICAgICAgICAgICBlLnRhcmdldC5hZGRTb3VyY2VC
dWZmZXIoJ3ZpZGVvL3dlYm07Y29kZWNzPSJ2cDgiJyk7CisKKyAgICAgICAgICAgICAgICB3aW5k
b3cuc2V0VGltZW91dChlLnRhcmdldC5lbmRPZlN0cmVhbS5iaW5kKGUudGFyZ2V0KSk7CisKKyAg
ICAgICAgICAgICAgICBleGl0SGFuZGxlcigpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBmdW5jdGlvbiBvbkFkZFNvdXJjZUJ1ZmZlcihlKSB7CisgICAgICAgICAgICAgICAgZW50ZXJI
YW5kbGVyKCJvbkFkZFNvdXJjZUJ1ZmZlciIpOworICAgICAgICAgICAgICAgIGV4aXRIYW5kbGVy
KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIG9uU291cmNlRW5kZWQo
ZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlbnRlckhhbmRsZXIoIm9uU291cmNl
RW5kZWQiKTsKKworICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN2Jyku
c3JjID0gIiI7CisKKyAgICAgICAgICAgICAgICBleGl0SGFuZGxlcigpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmdW5jdGlvbiBvblJlbW92ZVNvdXJjZUJ1ZmZlcihlKSB7CisgICAg
ICAgICAgICAgICAgZW50ZXJIYW5kbGVyKCJvblJlbW92ZVNvdXJjZUJ1ZmZlciIpOworICAgICAg
ICAgICAgICAgIGV4aXRIYW5kbGVyKCk7CisgICAgICAgICAgICB9CisKKworICAgICAgICAgICAg
ZnVuY3Rpb24gb25Tb3VyY2VDbG9zZShlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IGVudGVySGFuZGxlcigib25Tb3VyY2VDbG9zZSIpOworICAgICAgICAgICAgICAgIHdpbmRvdy5z
ZXRUaW1lb3V0KGVuZFRlc3QsIDApOworICAgICAgICAgICAgICAgIGV4aXRIYW5kbGVyKCk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIG1haW4oKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIHZhciB2aWRlbyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN2
Jyk7CisgICAgICAgICAgICAgICAgdmFyIG1lZGlhU291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7
CisKKyAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRz
b3VyY2VvcGVuJywgb25Tb3VyY2VPcGVuKTsKKyAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5h
ZGRFdmVudExpc3RlbmVyKCd3ZWJraXRzb3VyY2VlbmRlZCcsIG9uU291cmNlRW5kZWQpOworICAg
ICAgICAgICAgICAgIG1lZGlhU291cmNlLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdHNvdXJjZWNs
b3NlJywgb25Tb3VyY2VDbG9zZSk7CisKKyAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5zb3Vy
Y2VCdWZmZXJzLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGFkZHNvdXJjZWJ1ZmZlcicsIG9uQWRk
U291cmNlQnVmZmVyKTsKKyAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VC
dWZmZXJzLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGFkZHNvdXJjZWJ1ZmZlcicsIG9uQWRkU291
cmNlQnVmZmVyKTsKKworICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMu
YWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cmVtb3Zlc291cmNlYnVmZmVyJywgb25SZW1vdmVTb3Vy
Y2VCdWZmZXIpOworICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZl
cnMuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cmVtb3Zlc291cmNlYnVmZmVyJywgb25SZW1vdmVT
b3VyY2VCdWZmZXIpOworCisgICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gVVJMLmNyZWF0ZU9i
amVjdFVSTChtZWRpYVNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im1haW4oKSI+CisgICAgICA8dmlkZW8gaWQ9
InYiPjwvdmlkZW8+CisgICAgICA8cD5WZXJpZnkgdGhhdCBhbGwgTWVkaWFTb3VyY2UgJmFtcDsg
U291cmNlQnVmZmVyTGlzdCBldmVudHMgYXJlIGRpc3BhdGNoZWQgYXN5bmNocm9ub3VzbHkuPC9w
PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1ldmVudC1hdHRyaWJ1dGVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1t
ZWRpYS1zb3VyY2UtZXZlbnQtYXR0cmlidXRlcy5odG1sCmluZGV4IDUyYzBhYzljNjM1ZDJlMTkz
OTNkZWEyYTgzNjQ4MTRkMWFiNjQyOTIuLjQzYTE5MTNhNTVhOTI2ZTQ3NmE2OGZlY2NkYTJiZDI5
MmQyYjdkNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1ldmVudC1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNl
LWV2ZW50LWF0dHJpYnV0ZXMuaHRtbApAQCAtMTksNyArMTksNiBAQAogICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCJvblNvdXJjZUVuZGVkKCkiKTsKICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiU2V0dGluZyBzcmMgYXR0cmlidXRlIHRvIFwiXCIgdG8gdHJpZ2dlciBhIHdlYmtpdHNv
dXJjZWNsb3NlZCBldmVudC4iKTsKICAgICAgICAgICAgICAgIHZpZGVvLnNyYyA9ICIiOwotICAg
ICAgICAgICAgICAgZW5kVGVzdCgpOwogICAgICAgICAgICB9CiAKICAgICAgICAgICAgZnVuY3Rp
b24gb25Tb3VyY2VDbG9zZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utb2JqZWN0cy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLW9i
amVjdHMuaHRtbAppbmRleCA4OTRiN2QwOGY3N2NlNGZhZjcwMGNiM2MyMDE5ZjE5MDBhYWNhZDcy
Li42N2NhNWU2NGI4MmU2MDBlNWJlYjdjMGJkYzcyYjYxY2EyNTJlYWQwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3Vy
Y2Utb2JqZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1vYmplY3RzLmh0bWwKQEAgLTIxLDcgKzIxLDEwIEBA
CiAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycy5hZGRFdmVudExpc3Rl
bmVyKCd3ZWJraXRhZGRzb3VyY2VidWZmZXInLCBvblNvdXJjZUJ1ZmZlckFkZGVkKTsKIAogICAg
ICAgICAgICAgICAgIHJ1bigic2VnbWVudEhlbHBlci5hZGRTb3VyY2VCdWZmZXIoKSIpOworICAg
ICAgICAgICAgfQogCisgICAgICAgICAgICBmdW5jdGlvbiBhZnRlclNvdXJjZUJ1ZmZlckFkZGVk
KCkKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwogICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVGVzdCBTb3VyY2VCdWZmZXIgb2JqZWN0IHR5cGUi
KTsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInNlZ21lbnRIZWxwZXIuc291cmNlQnVm
ZmVyIGluc3RhbmNlb2Ygd2luZG93LlNvdXJjZUJ1ZmZlciIsIHRydWUpOwpAQCAtNjQsNyArNjcs
MTAgQEAKICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmFkZEV2ZW50
TGlzdGVuZXIoJ3dlYmtpdHJlbW92ZXNvdXJjZWJ1ZmZlcicsIG9uU291cmNlQnVmZmVyUmVtb3Zl
ZCk7CiAKICAgICAgICAgICAgICAgICBydW4oIm1lZGlhU291cmNlLnJlbW92ZVNvdXJjZUJ1ZmZl
cihzZWdtZW50SGVscGVyLnNvdXJjZUJ1ZmZlcikiKTsKKyAgICAgICAgICAgIH0KIAorICAgICAg
ICAgICAgZnVuY3Rpb24gYWZ0ZXJTb3VyY2VCdWZmZXJSZW1vdmVkKCkKKyAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRlc3QgdGhhdCBhZGRTb3VyY2VCdWZmZXIo
KSB0aHJvd3MgYW5kIGVycm9yIHdoZW4gdGhlIE1lZGlhU291cmNlIGlzIG5vdCBhc3NvY2lhdGVk
IHdpdGggYSBtZWRpYSBlbGVtZW50LiIpOwogICAgICAgICAgICAgICAgIHZhciBtZWRpYVNvdXJj
ZTIgPSBuZXcgTWVkaWFTb3VyY2UoKTsKICAgICAgICAgICAgICAgICB2aWRlby5zcmMgPSB3ZWJr
aXRVUkwuY3JlYXRlT2JqZWN0VVJMKG1lZGlhU291cmNlMik7CkBAIC04Myw3ICs4OSw3IEBACiAK
ICAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAK
KwogICAgICAgICAgICAgZnVuY3Rpb24gb25Tb3VyY2VCdWZmZXJBZGRlZChldmVudCkKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIm1lZGlhU291cmNlLnNvdXJj
ZUJ1ZmZlcnMubGVuZ3RoIiwgMSk7CkBAIC05Miw2ICs5OCw4IEBACiAgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCJUZXN0IFNvdXJjZUJ1ZmZlckxpc3Qgb2JqZWN0IHR5cGU6Iik7CiAgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzIiwgZXZl
bnQudGFyZ2V0KTsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIm1lZGlhU291cmNlLnNv
dXJjZUJ1ZmZlcnMgaW5zdGFuY2VvZiB3aW5kb3cuU291cmNlQnVmZmVyTGlzdCIsIHRydWUpOwor
CisgICAgICAgICAgICAgICAgYWZ0ZXJTb3VyY2VCdWZmZXJBZGRlZCgpOwogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBmdW5jdGlvbiBvblNvdXJjZUJ1ZmZlclJlbW92ZWQoZXZlbnQpCkBA
IC0xMTQsNiArMTIyLDggQEAKICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJHb3Qg
ZXhwZWN0ZWQgZXhjZXB0aW9uICIgKyBlKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0aCIsIDAp
OworCisgICAgICAgICAgICAgICAgYWZ0ZXJTb3VyY2VCdWZmZXJSZW1vdmVkKCk7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIG9uTG9hZCgpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Ut
c2Vlay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc2Vlay1leHBlY3RlZC50eHQKaW5kZXggNTM5ZjI0Nzg2
NzAzNGQ0MmRkYmNhYTdkZjljZDcxY2QwY2NjNjUzZS4uODg4YWJlMDQ4Yzc3MTM5NzM5NWEzNjRi
YmYyZDZmNGFmYTBhNTk1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLXNlZWstZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNv
dXJjZS1zZWVrLWV4cGVjdGVkLnR4dApAQCAtNCw4ICs0LDggQEAgRVZFTlQod2Via2l0c291cmNl
b3BlbikKIEVWRU5UKHdlYmtpdHNvdXJjZWVuZGVkKQogRVZFTlQocGxheWluZykKIEVWRU5UKHRp
bWV1cGRhdGUpIDogc2Vla2luZyB0byAyLjc4Ci1FVkVOVCh3ZWJraXRzb3VyY2VvcGVuKQogRVZF
TlQoc2Vla2luZykKK0VWRU5UKHdlYmtpdHNvdXJjZW9wZW4pCiBFVkVOVCh3ZWJraXRzb3VyY2Vl
bmRlZCkKIEVWRU5UKHBsYXlpbmcpCiBFVkVOVChlbmRlZCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1zdGF0
ZS1jaGFuZ2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1zdGF0ZS1jaGFuZ2VzLWV4cGVjdGVkLnR4dApp
bmRleCAzNzkwNWUyMTU1NzcyYTU4OTVjNGFiMDEzYjI3YTRlMTdlOTEyMWM5Li43MmJjZDcyODQ3
MWRmNmMxODVmODkwMWZhYWU2MWJjOTcyNjY3ZjQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utc3RhdGUtY2hh
bmdlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLXN0YXRlLWNoYW5nZXMtZXhwZWN0ZWQudHh0CkBA
IC0xNiwxOCArMTYsMTggQEAgRVZFTlQoc2Vla2luZykKIG9uU2Vjb25kU2Vla2luZwogRVZFTlQo
c2Vla2VkKQogb25TZWNvbmRTZWVrZWQKK0VWRU5UKGVtcHRpZWQpCiBFVkVOVCh3ZWJraXRzb3Vy
Y2VjbG9zZSkgOiBjbG9zZWQKIG9uRmlyc3RTb3VyY2VDbG9zZQotRVZFTlQoZW1wdGllZCkKIEVW
RU5UKHdlYmtpdHNvdXJjZW9wZW4pIDogb3Blbgogb25TZWNvbmRTb3VyY2VPcGVuCiBFVkVOVCh3
ZWJraXRzb3VyY2VlbmRlZCkgOiBlbmRlZAogb25TZWNvbmRTb3VyY2VFbmRlZAogRVZFTlQocGxh
eWluZykKIHRyaWdnZXJTZWNvbmRTb3VyY2VDbG9zZQorRVZFTlQoZW1wdGllZCkKIEVWRU5UKHdl
YmtpdHNvdXJjZWNsb3NlKSA6IGNsb3NlZAogb25TZWNvbmRTb3VyY2VDbG9zZQotRVZFTlQoZW1w
dGllZCkKIEVWRU5UKHdlYmtpdHNvdXJjZW9wZW4pIDogb3Blbgogb25UaGlyZFNvdXJjZU9wZW4K
IEVORCBPRiBURVNUCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>