<?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>107883</bug_id>
          
          <creation_ts>2013-01-24 16:59:54 -0800</creation_ts>
          <short_desc>Web Inspector: Add support for handling modal dialogs</short_desc>
          <delta_ts>2013-02-01 00:51:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ken Kania">kkania</reporter>
          <assigned_to name="Ken Kania">kkania</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>816003</commentid>
    <comment_count>0</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-24 16:59:54 -0800</bug_when>
    <thetext>We&apos;d like to add support for handling modal dialogs opened by javascript, including onbeforeonload. I propose:

Page.modalDialogOpening [event]
frameId: &lt;frameId&gt;
message: String

Page.handleModalDialog [cmd]
accept: Boolean
promptText: String [optional]


Page.modalDialogOpening will be sent before asking the client to run the javascript dialog in Chrome.cpp. Page.handleModalDialog will need to be delegated to the inspector client and be asynchronous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819698</commentid>
    <comment_count>1</comment_count>
      <attachid>185380</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-29 19:15:04 -0800</bug_when>
    <thetext>Created attachment 185380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819700</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 19:18:22 -0800</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>819714</commentid>
    <comment_count>3</comment_count>
      <attachid>185380</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-29 19:42:06 -0800</bug_when>
    <thetext>Comment on attachment 185380
Patch

Attachment 185380 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16198423</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819728</commentid>
    <comment_count>4</comment_count>
      <attachid>185380</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-29 20:13:57 -0800</bug_when>
    <thetext>Comment on attachment 185380
Patch

Attachment 185380 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16187477</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819737</commentid>
    <comment_count>5</comment_count>
      <attachid>185385</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-29 20:43:02 -0800</bug_when>
    <thetext>Created attachment 185385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819800</commentid>
    <comment_count>6</comment_count>
      <attachid>185385</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-29 22:17:46 -0800</bug_when>
    <thetext>Comment on attachment 185385
Patch

Attachment 185385 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16202492

New failing tests:
inspector/audits/audits-panel-functional.html
inspector-protocol/page/javascriptDialogEvents.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820038</commentid>
    <comment_count>7</comment_count>
      <attachid>185385</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-30 03:23:46 -0800</bug_when>
    <thetext>Comment on attachment 185385
Patch

New test fails on Mac EWS. You should file a bug requesting that mac port implements client hook and disable the test on non-chromium ports. Implementation-wise, it looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820638</commentid>
    <comment_count>8</comment_count>
      <attachid>185588</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-30 14:57:49 -0800</bug_when>
    <thetext>Created attachment 185588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820675</commentid>
    <comment_count>9</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-30 15:22:56 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 185385 [details])
&gt; New test fails on Mac EWS. You should file a bug requesting that mac port implements client hook and disable the test on non-chromium ports. Implementation-wise, it looks good.

The new test failed on mac-wk2 because the printf for onbeforeunload occurs in the UIProcess (TestController.cpp), while the printfs for alert/prompt/confirm occur in the WebProcess (InjectedBundlePage.cpp) and aren&apos;t printed to the test log until the end, which causes the &apos;CONFIRM NAVIGATION&apos; to be at the beginning. I think the easiest fix, which my 3rd patch does, is just test the onbeforeunload case at the beginning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821065</commentid>
    <comment_count>10</comment_count>
      <attachid>185588</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-30 21:30:31 -0800</bug_when>
    <thetext>Comment on attachment 185588
Patch

Attachment 185588 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16258095</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821245</commentid>
    <comment_count>11</comment_count>
      <attachid>185588</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-31 01:29:02 -0800</bug_when>
    <thetext>Comment on attachment 185588
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:560
&gt; +                    { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Message that will be displayed by the dialog.&quot; }

Since we cannot pass the message yet then the parameter doesn&apos;t make much sense.

&gt; Source/WebCore/inspector/InspectorInstrumentation.h:423
&gt; +    static void javascriptDialogOpeningImpl(InstrumentingAgents*, const String&amp; message);

In case of pairs willFoo/didFoo methods we usually return InspectorInstrumentationCookie from the first method and pass it to the second (see http://trac.webkit.org/browser/trunk/Source/WebCore/inspector/InspectorInstrumentation.h#L220 for example). I&apos;d use the same approach here for consistency.

&gt; Source/WebKit/chromium/public/WebDevToolsAgent.h:56
&gt; +        BrowserDataHintAcceptJavaScriptDialog = 2,

We don&apos;t have to explicitly specify enum values here. We could only leave &quot;BrowserDataHintNone = 0,&quot; for clarity but since it matches default behavior I&apos;d omit that as well.

&gt; Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp:589
&gt; +    // Operation is going to be performed on the browser level.

I&apos;d rephrase &quot;on the browser level&quot; -&gt; &quot;in the browser process&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821558</commentid>
    <comment_count>12</comment_count>
      <attachid>185791</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-31 08:41:27 -0800</bug_when>
    <thetext>Created attachment 185791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821559</commentid>
    <comment_count>13</comment_count>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-31 08:43:19 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 185588 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185588&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/Inspector.json:560
&gt; &gt; +                    { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Message that will be displayed by the dialog.&quot; }
&gt; 
&gt; Since we cannot pass the message yet then the parameter doesn&apos;t make much sense.
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorInstrumentation.h:423
&gt; &gt; +    static void javascriptDialogOpeningImpl(InstrumentingAgents*, const String&amp; message);
&gt; 
&gt; In case of pairs willFoo/didFoo methods we usually return InspectorInstrumentationCookie from the first method and pass it to the second (see http://trac.webkit.org/browser/trunk/Source/WebCore/inspector/InspectorInstrumentation.h#L220 for example). I&apos;d use the same approach here for consistency.
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebDevToolsAgent.h:56
&gt; &gt; +        BrowserDataHintAcceptJavaScriptDialog = 2,
&gt; 
&gt; We don&apos;t have to explicitly specify enum values here. We could only leave &quot;BrowserDataHintNone = 0,&quot; for clarity but since it matches default behavior I&apos;d omit that as well.
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp:589
&gt; &gt; +    // Operation is going to be performed on the browser level.
&gt; 
&gt; I&apos;d rephrase &quot;on the browser level&quot; -&gt; &quot;in the browser process&quot;

Thanks for the review. I&apos;ve made all your proposed changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821600</commentid>
    <comment_count>14</comment_count>
      <attachid>185791</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-31 09:49:28 -0800</bug_when>
    <thetext>Comment on attachment 185791
Patch

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

A couple of renames and it is good to go.

&gt; Source/WebCore/inspector/Inspector.json:556
&gt; +                &quot;name&quot;: &quot;willRunJavaScriptDialog&quot;,

Protocol naming that you had earlier was correct. Yury&apos;s comment was only about the InspectorInstrumentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821616</commentid>
    <comment_count>15</comment_count>
      <attachid>185803</attachid>
    <who name="Ken Kania">kkania</who>
    <bug_when>2013-01-31 10:12:40 -0800</bug_when>
    <thetext>Created attachment 185803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822454</commentid>
    <comment_count>16</comment_count>
      <attachid>185803</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 00:51:53 -0800</bug_when>
    <thetext>Comment on attachment 185803
Patch

Clearing flags on attachment: 185803

Committed r141555: &lt;http://trac.webkit.org/changeset/141555&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822455</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 00:51:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185380</attachid>
            <date>2013-01-29 19:15:04 -0800</date>
            <delta_ts>2013-01-29 20:42:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107883-20130129191150.patch</filename>
            <type>text/plain</type>
            <size>25481</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQ3ZDY5MTg0NjU3ODI3
Y2NjOTZmNTM1ZmVkYmQ2MmFmMDkwM2NiMi4uOWFlZWJhZjBkNjAyODUzZjZiMTBjMWQyNmRiNmI2
YTRhOTZjYzVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAxLTI5ICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFk
ZCBzdXBwb3J0IGZvciBoYW5kbGluZyBtb2RhbCBkaWFsb2dzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2Ugc3VwcG9ydCBmb3IgYmVpbmcg
bm90aWZpZWQgd2hlbiBhIEphdmFTY3JpcHQgbW9kYWwgZGlhbG9nCisgICAgICAgIGlzIG9wZW5p
bmcgYW5kIGNsb3NpbmcsIGFzIHdlbGwgYXMgYSBuZXcgY29tbWFuZCBmb3IgYWNjZXB0aW5nIG9y
CisgICAgICAgIGRpc21pc3NpbmcgdGhlIGRpYWxvZy4KKworICAgICAgICBUZXN0OiBpbnNwZWN0
b3ItcHJvdG9jb2wvcGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLmh0bWwKKworICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OmhhbmRsZUphdmFT
Y3JpcHREaWFsb2cpOgorICAgICAgICAoSW5zcGVjdG9yQ2xpZW50KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlh
bG9nT3BlbmluZ0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpqYXZhc2NyaXB0RGlhbG9nQ2xvc2VkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6amF2YXNj
cmlwdERpYWxvZ09wZW5pbmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmphdmFzY3JpcHREaWFsb2dDbG9zZWQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpqYXZhc2NyaXB0RGlhbG9nT3BlbmluZyk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6amF2YXNj
cmlwdERpYWxvZ0Nsb3NlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6
OmhhbmRsZUphdmFTY3JpcHREaWFsb2cpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1v
ZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZS5m
cmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlzcGF0Y2hl
ci5wcm90b3R5cGUuZnJhbWVTdG9wcGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lQ2xlYXJlZFNj
aGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVy
LnByb3RvdHlwZS5qYXZhc2NyaXB0RGlhbG9nT3BlbmluZyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmphdmFzY3JpcHREaWFsb2dDbG9zZWQpOgorICAg
ICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2
YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpydW5KYXZhU2NyaXB0UHJvbXB0KToK
KwogMjAxMy0wMS0yOCAgVmxhZGlzbGF2IEthem5hY2hlZXYgIDxrYXpuYWNoZWV2QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbmhlcml0IFNpZGViYXJQYW5lIGZyb20g
Vmlldy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMWY0MWU5ODU4ZGZmOTE0OTc1NTYx
ZTQ4MTI1MDY0OGQwYTFjODJmOS4uM2MwMDZmNzgzNGE3MTYyMDk1YzUyZWI4MGQ5Njc2NzlmOTFm
YzdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMy0w
MS0yOSAgS2VuIEthbmlhICA8a2thbmlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBZGQgc3VwcG9ydCBmb3IgaGFuZGxpbmcgbW9kYWwgZGlhbG9ncworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3ODgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIHN1cHBvcnQg
Zm9yIGJlaW5nIG5vdGlmaWVkIHdoZW4gYSBKYXZhU2NyaXB0IG1vZGFsIGRpYWxvZworICAgICAg
ICBpcyBvcGVuaW5nIGFuZCBjbG9zaW5nLCBhcyB3ZWxsIGFzIGEgbmV3IGNvbW1hbmQgZm9yIGFj
Y2VwdGluZyBvcgorICAgICAgICBkaXNtaXNzaW5nIHRoZSBkaWFsb2cuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oOgorICAgICAgICAqIHNyYy9JbnNwZWN0b3JDbGllbnRJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50SW1wbDo6aGFuZGxlSmF2
YVNjcmlwdERpYWxvZyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9JbnNwZWN0
b3JDbGllbnRJbXBsLmg6CisgICAgICAgIChJbnNwZWN0b3JDbGllbnRJbXBsKToKKyAgICAgICAg
KiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAoQnJvd3NlckRhdGFIaW50
U3RyaW5nVmFsdWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OmNh
cHR1cmVTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6
OmhhbmRsZUphdmFTY3JpcHREaWFsb2cpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdl
YktpdDo6YnJvd3NlckhpbnRUb1N0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OmJyb3dzZXJIaW50
RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnQ6OnBhdGNoV2l0
aEJyb3dzZXJEYXRhKToKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaDoKKyAg
ICAgICAgKFdlYkRldlRvb2xzQWdlbnRJbXBsKToKKwogMjAxMy0wMS0yOCAgTWlrZSBXZXN0ICA8
bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZCBidWls
ZCBmaXgsIG1pc3NpbmcgaW5jbHVkZSBpbiBBc3NlcnRNYXRjaGluZ0VudW1zLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGVjMDI3ZTFiMTVkNjA3ZDZiOWZk
NzcwZGNhYTU5N2FjMzExZGZkMGEuLjhkYjdiNzUyMzU1N2YwMWU3ZTU5MDUyMTUyMDU0NGQ5NDNk
NDFjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTQ4MCw2
ICs0ODAsMTUgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkYXRhIiwgInR5cGUi
OiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkJhc2U2NC1lbmNvZGVkIGltYWdlIGRhdGEgKFBO
RykuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1
ZQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6
ICJoYW5kbGVKYXZhU2NyaXB0RGlhbG9nIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiQWNjZXB0cyBvciBkaXNtaXNzZXMgYSBKYXZhU2NyaXB0IGluaXRpYXRlZCBkaWFsb2cgKGFs
ZXJ0LCBjb25maXJtLCBwcm9tcHQsIG9yIG9uYmVmb3JldW5sb2FkKS4iLAorICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFjY2Vw
dCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiV2hldGhlciB0byBhY2NlcHQg
b3IgZGlzbWlzcyB0aGUgZGlhbG9nLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJwcm9tcHRUZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlRleHQgdG8gaW5wdXQgZm9yIGEgSmF2YVNjcmlwdCBwcm9tcHQgKGRlZmF1bHQ6
IFwiXCIpLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6
IHRydWUKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKQEAg
LTU0Myw2ICs1NTIsMTkgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlk
IiwgIiRyZWYiOiAiTmV0d29yay5GcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBm
cmFtZSB0aGF0IGhhcyBjbGVhcmVkIGl0cyBzY2hlZHVsZWQgbmF2aWdhdGlvbi4iIH0KICAgICAg
ICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImphdmFzY3JpcHRE
aWFsb2dPcGVuaW5nIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hl
biBhIEphdmFTY3JpcHQgaW5pdGlhdGVkIGRpYWxvZyAoYWxlcnQsIGNvbmZpcm0sIHByb21wdCwg
b3Igb25iZWZvcmV1bmxvYWQpIGlzIGFib3V0IHRvIG9wZW4uIiwKKyAgICAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtZXNzYWdlIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2UgdGhhdCB3aWxsIGJlIGRp
c3BsYXllZCBieSB0aGUgZGlhbG9nLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgIm5hbWUiOiAiamF2YXNjcmlwdERpYWxvZ0Nsb3NlZCIsCisgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gYSBKYXZhU2NyaXB0IGluaXRpYXRlZCBk
aWFsb2cgKGFsZXJ0LCBjb25maXJtLCBwcm9tcHQsIG9yIG9uYmVmb3JldW5sb2FkKSBoYXMgY2xv
c2VkLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0KICAg
ICAgICAgXQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50
LmgKaW5kZXggMGYyOGViYzkyNTU5OTZlYWJmOTUxM2Q1ZTIyNzNiZGQ0YzhhMGNmZS4uYTM1ZTMz
YThiZWNlNTNlZjQ0ZjU0NDkzMGVlODM2YmE0NDhiZGU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaApAQCAtODYsNiArODYsOCBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgY2FwdHVyZVNjcmVlbnNob3QoU3RyaW5nKikgeyByZXR1cm4gZmFsc2U7
IH0KIAorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVKYXZhU2NyaXB0RGlhbG9nKGJvb2wgYWNjZXB0
LCBjb25zdCBTdHJpbmcmIHByb21wdFRleHQpIHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICBzdGF0
aWMgYm9vbCBkb0Rpc3BhdGNoTWVzc2FnZU9uRnJvbnRlbmRQYWdlKFBhZ2UqIGZyb250ZW5kUGFn
ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggM2ExZTc5ZDll
ODM0ZTU0ZTFiNmJmODFkYTJlNjhjZWY3OGVkZDYzYS4uZDdlYWFiOGMyYjkwMmNjNTM3ZDA1NWMy
M2NiZGY0NjM4N2M1ZDVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTk3NSw2ICs5NzUsMTggQEAgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb25J
bXBsKEluc3RydW1lbnRpbmcKICAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50LT5mcmFtZUNsZWFy
ZWRTY2hlZHVsZWROYXZpZ2F0aW9uKGZyYW1lKTsKIH0KIAordm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmphdmFzY3JpcHREaWFsb2dPcGVuaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYg
KEluc3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+
amF2YXNjcmlwdERpYWxvZ09wZW5pbmcobWVzc2FnZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlhbG9nQ2xvc2VkSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQoreworICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQq
IGluc3BlY3RvclBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VB
Z2VudCgpKQorICAgICAgICBpbnNwZWN0b3JQYWdlQWdlbnQtPmphdmFzY3JpcHREaWFsb2dDbG9z
ZWQoKTsKK30KKwogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95Q2Fj
aGVkUmVzb3VyY2VJbXBsKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICAgICBp
ZiAoIWluc3RydW1lbnRpbmdBZ2VudHNTZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggMzFiZjdlOWFiYmYxYzdiODUx
M2YwOTBkNWFiY2RmNGEyNTJjMGJiNy4uMTc1ZTRhZDc5Mzk1NzY0ZGJmODNjNDU1MWFiMjM5NDA2
Mzg2YTgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaApAQCAtMjE1LDYgKzIxNSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dm9pZCBmcmFtZVN0b3BwZWRMb2FkaW5nKEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZnJhbWVT
Y2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiwgZG91YmxlIGRlbGF5KTsKICAgICBzdGF0aWMgdm9p
ZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKik7CisgICAgc3RhdGljIHZv
aWQgamF2YXNjcmlwdERpYWxvZ09wZW5pbmcoUGFnZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7
CisgICAgc3RhdGljIHZvaWQgamF2YXNjcmlwdERpYWxvZ0Nsb3NlZChQYWdlKik7CiAgICAgc3Rh
dGljIHZvaWQgd2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSopOwogCiAg
ICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MKERv
Y3VtZW50KiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSk7CkBA
IC00MTgsNiArNDIwLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBmcmFtZVN0b3BwZWRM
b2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9p
ZCBmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFt
ZSosIGRvdWJsZSBkZWxheSk7CiAgICAgc3RhdGljIHZvaWQgZnJhbWVDbGVhcmVkU2NoZWR1bGVk
TmF2aWdhdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CisgICAgc3RhdGlj
IHZvaWQgamF2YXNjcmlwdERpYWxvZ09wZW5pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHN0YXRpYyB2b2lkIGphdmFzY3JpcHREaWFsb2dD
bG9zZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVz
dHJveUNhY2hlZFJlc291cmNlSW1wbChDYWNoZWRSZXNvdXJjZSopOwogCiAgICAgc3RhdGljIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSwg
RnJhbWUqKTsKQEAgLTE3MTIsNiArMTcxNiwyMiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqIGZyYQog
I2VuZGlmCiB9CiAKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6amF2YXNj
cmlwdERpYWxvZ09wZW5pbmcoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorewor
I2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKKyAgICAg
ICAgamF2YXNjcmlwdERpYWxvZ09wZW5pbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIG1lc3Nh
Z2UpOworI2VuZGlmCit9CisKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
amF2YXNjcmlwdERpYWxvZ0Nsb3NlZChQYWdlKiBwYWdlKQoreworI2lmIEVOQUJMRShJTlNQRUNU
T1IpCisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBp
bnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKKyAgICAgICAgamF2YXNjcmlwdERpYWxv
Z0Nsb3NlZEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cyk7CisjZW5kaWYKK30KKwogaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlKENh
Y2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRl
eCBkMmI3MTA4MTQyNTZlOGQ3ZDY1NmY4ODYwN2Q3MWE3NDM2MTU3YmM2Li4wMzc1ZmE2MmVlNmQ1
Mzc4YjExNTg4MTU3OTU3NGFjZjYzMDVlYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtOTM2LDYgKzkzNiwxNiBAQCB2b2lkIElu
c3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSog
ZnJhbWUpCiAgICAgbV9mcm9udGVuZC0+ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihm
cmFtZUlkKGZyYW1lKSk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpqYXZhc2NyaXB0
RGlhbG9nT3BlbmluZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgbV9mcm9udGVuZC0+
amF2YXNjcmlwdERpYWxvZ09wZW5pbmcobWVzc2FnZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUGFn
ZUFnZW50OjpqYXZhc2NyaXB0RGlhbG9nQ2xvc2VkKCkKK3sKKyAgICBtX2Zyb250ZW5kLT5qYXZh
c2NyaXB0RGlhbG9nQ2xvc2VkKCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphcHBs
eVNjcmVlbldpZHRoT3ZlcnJpZGUobG9uZyogd2lkdGgpCiB7CiAgICAgbG9uZyB3aWR0aE92ZXJy
aWRlID0gbV9zdGF0ZS0+Z2V0TG9uZyhQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50U2NyZWVuV2lk
dGhPdmVycmlkZSk7CkBAIC0xMjM1LDYgKzEyNDUsMTIgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdl
bnQ6OmNhcHR1cmVTY3JlZW5zaG90KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgU3RyaW5nKiBk
YXQKICAgICAgICAgKmVycm9yU3RyaW5nID0gIkNvdWxkIG5vdCBjYXB0dXJlIHNjcmVlbnNob3Qi
OwogfQogCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGJvb2wgYWNjZXB0LCBjb25zdCBTdHJpbmcqIHByb21w
dFRleHQpCit7CisgICAgaWYgKCFtX2NsaWVudC0+aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhhY2Nl
cHQsIHByb21wdFRleHQgPyAqcHJvbXB0VGV4dCA6ICIiKSkKKyAgICAgICAgKmVycm9yU3RyaW5n
ID0gIkNvdWxkIG5vdCBoYW5kbGUgSmF2YVNjcmlwdCBkaWFsb2ciOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGRjODJhOTcwNTM0Mjk4
YTBjODljMWJjNzRmZGE4Y2EyYTVhMjIzNGUuLjcxNjJkMTEwMmM0NmVhNWNkYTI1MTQyOTkzZDFm
OTNkMDhjNGM3NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFn
ZUFnZW50LmgKQEAgLTEyNiw2ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdl
dENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUoRXJyb3JTdHJpbmcqLCBib29sKiBvdXRfcGFyYW0p
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKEVycm9yU3Ry
aW5nKiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVTY3JlZW5zaG90KEVycm9yU3Ry
aW5nKiwgU3RyaW5nKiBkYXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSmF2YVNjcmlwdERp
YWxvZyhFcnJvclN0cmluZyosIGJvb2wgYWNjZXB0LCBjb25zdCBTdHJpbmcqIHByb21wdFRleHQp
OwogCiAgICAgLy8gR2VvbG9jYXRpb24gb3ZlcnJpZGUgaGVscGVycy4KICAgICBHZW9sb2NhdGlv
blBvc2l0aW9uKiBvdmVycmlkZUdlb2xvY2F0aW9uUG9zaXRpb24oR2VvbG9jYXRpb25Qb3NpdGlv
biopOwpAQCAtMTQ0LDYgKzE0NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGZyYW1lU3RvcHBlZExv
YWRpbmcoRnJhbWUqKTsKICAgICB2b2lkIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSos
IGRvdWJsZSBkZWxheSk7CiAgICAgdm9pZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9u
KEZyYW1lKik7CisgICAgdm9pZCBqYXZhc2NyaXB0RGlhbG9nT3BlbmluZyhjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpOworICAgIHZvaWQgamF2YXNjcmlwdERpYWxvZ0Nsb3NlZCgpOwogICAgIHZvaWQg
YXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKGxvbmcqKTsKICAgICB2b2lkIGFwcGx5U2NyZWVuSGVp
Z2h0T3ZlcnJpZGUobG9uZyopOwogICAgIHZvaWQgYXBwbHlFbXVsYXRlZE1lZGlhKFN0cmluZyop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVRyZWVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VUcmVlTW9kZWwuanMKaW5kZXggMGE4NzZlYmZjM2JiZDNmYzk0YmYxMWE0MTBlOGEzYzk1YmQz
NTk3Yy4uZDNlNjFlYmVmMzhkMjcwNmRkMWRlZmQ0YTNiYWM3NTRmYmI3NTM1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1v
ZGVsLmpzCkBAIC02MDMsMTYgKzYwMywyOCBAQCBXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5fZnJhbWVEZXRh
Y2hlZChmcmFtZUlkKTsKICAgICB9LAogCi0gICAgZnJhbWVTdGFydGVkTG9hZGluZzogZnVuY3Rp
b24oZnJhbWVJZCkgeworICAgIGZyYW1lU3RhcnRlZExvYWRpbmc6IGZ1bmN0aW9uKGZyYW1lSWQp
CisgICAgeworICAgIH0sCisKKyAgICBmcmFtZVN0b3BwZWRMb2FkaW5nOiBmdW5jdGlvbihmcmFt
ZUlkKQorICAgIHsKKyAgICB9LAorCisgICAgZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uOiBmdW5j
dGlvbihmcmFtZUlkLCBkZWxheSkKKyAgICB7CiAgICAgfSwKIAotICAgIGZyYW1lU3RvcHBlZExv
YWRpbmc6IGZ1bmN0aW9uKGZyYW1lSWQpIHsKKyAgICBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZp
Z2F0aW9uOiBmdW5jdGlvbihmcmFtZUlkKQorICAgIHsKICAgICB9LAogCi0gICAgZnJhbWVTY2hl
ZHVsZWROYXZpZ2F0aW9uOiBmdW5jdGlvbihmcmFtZUlkLCBkZWxheSkgeworICAgIGphdmFzY3Jp
cHREaWFsb2dPcGVuaW5nOiBmdW5jdGlvbihtZXNzYWdlKQorICAgIHsKICAgICB9LAogCi0gICAg
ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbjogZnVuY3Rpb24oZnJhbWVJZCkgeworICAg
IGphdmFzY3JpcHREaWFsb2dDbG9zZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggODRkZmNiNDIzMjdjMDgzMDAxYTU1NDRlZjhjNzUyOWMy
ZTM4MzQyYy4uNjNmM2Q2ZTRmZmJkZmRmZmUzMmE2YjNhZjljZmMzYjdiNTdlN2U2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcApAQCAtMjkzLDcgKzI5MywxMCBAQCBib29sIENocm9tZTo6cnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqIGZyYW1l
KQogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3ZSdy
ZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgogICAgIFBhZ2VHcm91cExv
YWREZWZlcnJlciBkZWZlcnJlcihtX3BhZ2UsIHRydWUpOwogCi0gICAgcmV0dXJuIG1fY2xpZW50
LT5ydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwobWVzc2FnZSwgZnJhbWUpOworICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6amF2YXNjcmlwdERpYWxvZ09wZW5pbmcobV9wYWdlLCBtZXNz
YWdlKTsKKyAgICBib29sIG9rID0gbV9jbGllbnQtPnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bChtZXNzYWdlLCBmcmFtZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZhc2Ny
aXB0RGlhbG9nQ2xvc2VkKG1fcGFnZSk7CisgICAgcmV0dXJuIG9rOwogfQogCiB2b2lkIENocm9t
ZTo6Y2xvc2VXaW5kb3dTb29uKCkKQEAgLTMxMiw3ICszMTUsMTEgQEAgdm9pZCBDaHJvbWU6OnJ1
bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIAog
ICAgIEFTU0VSVChmcmFtZSk7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0g
ICAgbV9jbGllbnQtPnJ1bkphdmFTY3JpcHRBbGVydChmcmFtZSwgZnJhbWUtPmRpc3BsYXlTdHJp
bmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSkpOworICAgIFN0cmluZyBkaXNwbGF5TWVzc2Fn
ZSA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpOworCisg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlhbG9nT3BlbmluZyhtX3Bh
Z2UsIGRpc3BsYXlNZXNzYWdlKTsKKyAgICBtX2NsaWVudC0+cnVuSmF2YVNjcmlwdEFsZXJ0KGZy
YW1lLCBkaXNwbGF5TWVzc2FnZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZh
c2NyaXB0RGlhbG9nQ2xvc2VkKG1fcGFnZSk7CiB9CiAKIGJvb2wgQ2hyb21lOjpydW5KYXZhU2Ny
aXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTMyNiw3
ICszMzMsMTIgQEAgYm9vbCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogCiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBub3Rp
ZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKLSAgICByZXR1cm4gbV9jbGllbnQtPnJ1bkphdmFT
Y3JpcHRDb25maXJtKGZyYW1lLCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGlu
ZyhtZXNzYWdlKSk7CisgICAgU3RyaW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUtPmRpc3BsYXlT
dHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmphdmFzY3JpcHREaWFsb2dPcGVuaW5nKG1fcGFnZSwgZGlzcGxheU1lc3NhZ2Up
OworICAgIGJvb2wgb2sgPSBtX2NsaWVudC0+cnVuSmF2YVNjcmlwdENvbmZpcm0oZnJhbWUsIGRp
c3BsYXlNZXNzYWdlKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmphdmFzY3JpcHRE
aWFsb2dDbG9zZWQobV9wYWdlKTsKKyAgICByZXR1cm4gb2s7CiB9CiAKIGJvb2wgQ2hyb21lOjpy
dW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNv
bnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKQEAgLTM0MCw3ICszNTIs
MTEgQEAgYm9vbCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25z
dCBTdHJpbmcmIHByb21wdCwgY29uc3QgU3RyaW4KIAogICAgIEFTU0VSVChmcmFtZSk7CiAgICAg
bm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgYm9vbCBvayA9IG1fY2xpZW50LT5y
dW5KYXZhU2NyaXB0UHJvbXB0KGZyYW1lLCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlF
bmNvZGluZyhwcm9tcHQpLCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhk
ZWZhdWx0VmFsdWUpLCByZXN1bHQpOworICAgIFN0cmluZyBkaXNwbGF5UHJvbXB0ID0gZnJhbWUt
PmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocHJvbXB0KTsKKworICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6amF2YXNjcmlwdERpYWxvZ09wZW5pbmcobV9wYWdlLCBkaXNwbGF5
UHJvbXB0KTsKKyAgICBib29sIG9rID0gbV9jbGllbnQtPnJ1bkphdmFTY3JpcHRQcm9tcHQoZnJh
bWUsIGRpc3BsYXlQcm9tcHQsIGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5n
KGRlZmF1bHRWYWx1ZSksIHJlc3VsdCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpq
YXZhc2NyaXB0RGlhbG9nQ2xvc2VkKG1fcGFnZSk7CiAKICAgICBpZiAob2spCiAgICAgICAgIHJl
c3VsdCA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJlc3VsdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmgKaW5k
ZXggNGNjZmI1YTYzMjY2MTYzZmQwODIxNzhmNWNlZDIzNDExYTRjYzM0YS4uMWI1ZDRlZjA2MTZi
M2YwYTQ5YWJjNmE5MzNmNDE0ZTg5NjVkZjg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6
CiAgICAgZW51bSBCcm93c2VyRGF0YUhpbnQgewogICAgICAgICBCcm93c2VyRGF0YUhpbnROb25l
ID0gMCwKICAgICAgICAgQnJvd3NlckRhdGFIaW50U2NyZWVuc2hvdCA9IDEsCisgICAgICAgIEJy
b3dzZXJEYXRhSGludEFjY2VwdEphdmFTY3JpcHREaWFsb2cgPSAyLAorICAgICAgICBCcm93c2Vy
RGF0YUhpbnREaXNtaXNzSmF2YVNjcmlwdERpYWxvZyA9IDMsCiAgICAgfTsKIAogICAgIHZpcnR1
YWwgfldlYkRldlRvb2xzQWdlbnQoKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcAppbmRleCBlY2Y1Y2VjY2ZjMTg5NzI4YjA3ZWIy
YWNlMGE0MDNhNDI1MDNjMjEzLi4yYjYyZGQwMTdlMDRmMDdkMzRmYTVlNzhiMDljYzY1M2QwZjgw
ZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGll
bnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGll
bnRJbXBsLmNwcApAQCAtMjA2LDYgKzIwNiwxMyBAQCBib29sIEluc3BlY3RvckNsaWVudEltcGw6
OmNhcHR1cmVTY3JlZW5zaG90KFN0cmluZyogZGF0YSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K2Jvb2wgSW5zcGVjdG9yQ2xpZW50SW1wbDo6aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFj
Y2VwdCwgY29uc3QgU3RyaW5nJiBwcm9tcHRUZXh0KQoreworICAgIGlmIChXZWJEZXZUb29sc0Fn
ZW50SW1wbCogYWdlbnQgPSBkZXZUb29sc0FnZW50KCkpCisgICAgICAgIHJldHVybiBhZ2VudC0+
aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhhY2NlcHQsIHByb21wdFRleHQpOworICAgIHJldHVybiBm
YWxzZTsKK30KKwogV2ViRGV2VG9vbHNBZ2VudEltcGwqIEluc3BlY3RvckNsaWVudEltcGw6OmRl
dlRvb2xzQWdlbnQoKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJEZXZUb29sc0FnZW50
SW1wbCo+KG1faW5zcGVjdGVkV2ViVmlldy0+ZGV2VG9vbHNBZ2VudCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaAppbmRleCA4NzExOWUz
OTM4NWFmMGFkMmMzZmQwNjA5M2QxOWJkODRkYzMwOTk4Li4wZWI0Y2YxYjQzMzIwNWUyZTkwMjE2
ZWIyZjZlNDg5MDUxODdkMjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JbnNwZWN0b3JDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SW5zcGVjdG9yQ2xpZW50SW1wbC5oCkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgYm9vbCBjYXB0dXJlU2NyZWVuc2hvdChXVEY6OlN0cmluZyogZGF0YSk7CiAKKyAgICB2
aXJ0dWFsIGJvb2wgaGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFjY2VwdCwgY29uc3QgV1RG
OjpTdHJpbmcmIHByb21wdFRleHQpOworCiBwcml2YXRlOgogICAgIFdlYkRldlRvb2xzQWdlbnRJ
bXBsKiBkZXZUb29sc0FnZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCBmNTQxNTJiZjM2MTJlYmI5ZTRkNWNm
NmYzZTUwNjhkOGU5YTYyOGY2Li4xNjA4MTM1OWRmMjlkOTQxNDUwMGJhZjU2YjFhODYzNGJjYjBh
ZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0Fn
ZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNB
Z2VudEltcGwuY3BwCkBAIC04Myw2ICs4Myw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBuYW1l
c3BhY2UgQnJvd3NlckRhdGFIaW50U3RyaW5nVmFsdWVzIHsKIHN0YXRpYyBjb25zdCBjaGFyIHNj
cmVlbnNob3RbXSA9ICJzY3JlZW5zaG90IjsKK3N0YXRpYyBjb25zdCBjaGFyIGFjY2VwdEphdmFT
Y3JpcHREaWFsb2dbXSA9ICJhY2NlcHRKYXZhU2NyaXB0RGlhbG9nIjsKK3N0YXRpYyBjb25zdCBj
aGFyIGRpc21pc3NKYXZhU2NyaXB0RGlhbG9nW10gPSAiZGlzbWlzc0phdmFTY3JpcHREaWFsb2ci
OwogfQogCiBjbGFzcyBDbGllbnRNZXNzYWdlTG9vcEFkYXB0ZXIgOiBwdWJsaWMgUGFnZVNjcmlw
dERlYnVnU2VydmVyOjpDbGllbnRNZXNzYWdlTG9vcCB7CkBAIC01NzQsNyArNTc2LDcgQEAgdm9p
ZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6ZHVtcFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMoY29u
c3QgSGFzaE1hcDxjb25zdCB2b2kKICAgICBtX2NsaWVudC0+ZHVtcFVuY291bnRlZEFsbG9jYXRl
ZE9iamVjdHMoJnByb3ZpZGVyKTsKIH0KIAotYm9vbCBXZWJEZXZUb29sc0FnZW50SW1wbDo6Y2Fw
dHVyZVNjcmVlbnNob3QoV1RGOjpTdHJpbmcqIGRhdGEpCitib29sIFdlYkRldlRvb2xzQWdlbnRJ
bXBsOjpjYXB0dXJlU2NyZWVuc2hvdChTdHJpbmcqIGRhdGEpCiB7CiAgICAgLy8gVmFsdWUgaXMg
Z29pbmcgdG8gYmUgc3Vic3RpdHV0ZWQgd2l0aCB0aGUgYWN0dWFsIGRhdGEgb24gdGhlIGJyb3dz
ZXIgbGV2ZWwuCiAgICAgKmRhdGEgPSAie3NjcmVlbnNob3QtcGxhY2Vob2xkZXJ9IjsKQEAgLTU4
Miw2ICs1ODQsMTQgQEAgYm9vbCBXZWJEZXZUb29sc0FnZW50SW1wbDo6Y2FwdHVyZVNjcmVlbnNo
b3QoV1RGOjpTdHJpbmcqIGRhdGEpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgV2ViRGV2
VG9vbHNBZ2VudEltcGw6OmhhbmRsZUphdmFTY3JpcHREaWFsb2coYm9vbCBhY2NlcHQsIGNvbnN0
IFN0cmluZyYgcHJvbXB0VGV4dCkKK3sKKyAgICAvLyBPcGVyYXRpb24gaXMgZ29pbmcgdG8gYmUg
cGVyZm9ybWVkIG9uIHRoZSBicm93c2VyIGxldmVsLgorICAgIC8vIFRoZXJlJ3Mgbm90IGEgZ29v
ZCB3YXkgbm93IHRvIHBhc3MgcGFyYW1ldGVycyB0byB0aGUgYnJvd3NlciBsZXZlbCwgc28ganVz
dCBpZ25vcmUgdGhlIHByb21wdCB0ZXh0LgorICAgIG1fc2VuZFdpdGhCcm93c2VyRGF0YUhpbnQg
PSBhY2NlcHQgPyBCcm93c2VyRGF0YUhpbnRBY2NlcHRKYXZhU2NyaXB0RGlhbG9nIDogQnJvd3Nl
ckRhdGFIaW50RGlzbWlzc0phdmFTY3JpcHREaWFsb2c7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
IHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kKGNv
bnN0IFdlYlN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpbnNwZWN0b3JDb250cm9sbGVyKCktPmRp
c3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChtZXNzYWdlKTsKQEAgLTY2MSw2ICs2NzEsMTAgQEAg
c3RhdGljIFN0cmluZyBicm93c2VySGludFRvU3RyaW5nKFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dz
ZXJEYXRhSGludCBkYXRhSGludCkKICAgICBzd2l0Y2ggKGRhdGFIaW50KSB7CiAgICAgY2FzZSBX
ZWJEZXZUb29sc0FnZW50OjpCcm93c2VyRGF0YUhpbnRTY3JlZW5zaG90OgogICAgICAgICByZXR1
cm4gQnJvd3NlckRhdGFIaW50U3RyaW5nVmFsdWVzOjpzY3JlZW5zaG90OworICAgIGNhc2UgV2Vi
RGV2VG9vbHNBZ2VudDo6QnJvd3NlckRhdGFIaW50QWNjZXB0SmF2YVNjcmlwdERpYWxvZzoKKyAg
ICAgICAgcmV0dXJuIEJyb3dzZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6YWNjZXB0SmF2YVNjcmlw
dERpYWxvZzsKKyAgICBjYXNlIFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludERpc21p
c3NKYXZhU2NyaXB0RGlhbG9nOgorICAgICAgICByZXR1cm4gQnJvd3NlckRhdGFIaW50U3RyaW5n
VmFsdWVzOjpkaXNtaXNzSmF2YVNjcmlwdERpYWxvZzsKICAgICBjYXNlIFdlYkRldlRvb2xzQWdl
bnQ6OkJyb3dzZXJEYXRhSGludE5vbmU6CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC02NzIsNiArNjg2LDEwIEBAIHN0YXRpYyBXZWJEZXZUb29sc0FnZW50
OjpCcm93c2VyRGF0YUhpbnQgYnJvd3NlckhpbnRGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFs
CiB7CiAgICAgaWYgKHZhbHVlID09IEJyb3dzZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6c2NyZWVu
c2hvdCkKICAgICAgICAgcmV0dXJuIFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludFNj
cmVlbnNob3Q7CisgICAgaWYgKHZhbHVlID09IEJyb3dzZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6
YWNjZXB0SmF2YVNjcmlwdERpYWxvZykKKyAgICAgICAgcmV0dXJuIFdlYkRldlRvb2xzQWdlbnQ6
OkJyb3dzZXJEYXRhSGludEFjY2VwdEphdmFTY3JpcHREaWFsb2c7CisgICAgaWYgKHZhbHVlID09
IEJyb3dzZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6ZGlzbWlzc0phdmFTY3JpcHREaWFsb2cpCisg
ICAgICAgIHJldHVybiBXZWJEZXZUb29sc0FnZW50OjpCcm93c2VyRGF0YUhpbnREaXNtaXNzSmF2
YVNjcmlwdERpYWxvZzsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gV2Vi
RGV2VG9vbHNBZ2VudDo6QnJvd3NlckRhdGFIaW50Tm9uZTsKIH0KQEAgLTgyNyw2ICs4NDUsMTAg
QEAgV2ViU3RyaW5nIFdlYkRldlRvb2xzQWdlbnQ6OnBhdGNoV2l0aEJyb3dzZXJEYXRhKGNvbnN0
IFdlYlN0cmluZyYgbWVzc2FnZSwgQnJvd3MKICAgICBjYXNlIEJyb3dzZXJEYXRhSGludFNjcmVl
bnNob3Q6CiAgICAgICAgIHJlc3VsdE9iamVjdC0+c2V0U3RyaW5nKCJkYXRhIiwgaGludERhdGEp
OwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyb3dzZXJEYXRhSGludEFjY2VwdEphdmFTY3Jp
cHREaWFsb2c6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJvd3NlckRhdGFIaW50RGlzbWlz
c0phdmFTY3JpcHREaWFsb2c6CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJvd3NlckRhdGFI
aW50Tm9uZToKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCmlu
ZGV4IGZlMzQwZGQ3Nzg4ZGJiYThhZTQxMjc1ZDBmOWY0MzJlNjQ3ZDg4MjAuLmI4MDgzYmM2ZTQ0
YWNiNDNkYjEzM2UzNjcxOTlkNzkzZjgyMmQ1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaApAQCAtMTEzLDYgKzExMyw4IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBjYXB0dXJlU2NyZWVuc2hvdChXVEY6OlN0cmluZyog
ZGF0YSk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFj
Y2VwdCwgY29uc3QgV1RGOjpTdHJpbmcmIHByb21wdFRleHQpOworCiAgICAgaW50IGhvc3RJZCgp
IHsgcmV0dXJuIG1faG9zdElkOyB9CiAKICAgICAvLyBXZWJQYWdlT3ZlcmxheQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE1
NWUxOGNlZjkwNTcxYjQyZDg2YzFlZTg5Y2VkMGZlNGI4NjNmOWEuLmY5NjVmNTk5MThmYTFkYmRk
NDI1MjJjOTMxYTZhNDQ2OWRiMTIxMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMS0y
OSAgS2VuIEthbmlhICA8a2thbmlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBZGQgc3VwcG9ydCBmb3IgaGFuZGxpbmcgbW9kYWwgZGlhbG9ncworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3ODgzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIHN1cHBvcnQgZm9y
IGJlaW5nIG5vdGlmaWVkIHdoZW4gYSBKYXZhU2NyaXB0IG1vZGFsIGRpYWxvZworICAgICAgICBp
cyBvcGVuaW5nIGFuZCBjbG9zaW5nLCBhcyB3ZWxsIGFzIGEgbmV3IGNvbW1hbmQgZm9yIGFjY2Vw
dGluZyBvcgorICAgICAgICBkaXNtaXNzaW5nIHRoZSBkaWFsb2cuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvcGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvamF2YXNjcmlwdERpYWxv
Z0V2ZW50cy5odG1sOiBBZGRlZC4KKwogMjAxMy0wMS0yOCAgTWFudWVsIFJlZ28gQ2FzYXNub3Zh
cyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBbV1RSXSBsYXlvdXRUZXN0Q29u
dHJvbGxlci5wYXRoVG9Mb2NhbFJlc291cmNlIG5lZWRzIHRvIGJlIHVwZGF0ZWQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2phdmFzY3JpcHREaWFsb2dF
dmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2Uv
amF2YXNjcmlwdERpYWxvZ0V2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTcxNTUyNTdm
YTcyNWJjZjY4ZTE4ZjU5ZmUxNjg4MzlkNDY4OTZmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2phdmFzY3JpcHREaWFsb2dFdmVudHMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0FMRVJUOiBhbGVydAorQ09ORklSTTogY29uZmly
bQorUFJPTVBUOiBwcm9tcHQsIGRlZmF1bHQgdGV4dDogCitDT05GSVJNIE5BVklHQVRJT046IGJl
Zm9yZXVubG9hZAorT3BlbmluZyB3aXRoIG1lc3NhZ2U6IGFsZXJ0CitDbG9zZWQKK09wZW5pbmcg
d2l0aCBtZXNzYWdlOiBjb25maXJtCitDbG9zZWQKK09wZW5pbmcgd2l0aCBtZXNzYWdlOiBwcm9t
cHQKK0Nsb3NlZAorT3BlbmluZyB3aXRoIG1lc3NhZ2U6IGJlZm9yZXVubG9hZAorQ2xvc2VkCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2phdmFzY3Jp
cHREaWFsb2dFdmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdl
L2phdmFzY3JpcHREaWFsb2dFdmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZWI0NDA2ZmVlY2MwOTZm
NGRkMDVkMjlmMTQ3OTFjMjRjZDlkNzIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2ZW50cy5odG1sCkBAIC0w
LDAgKzEsNDMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJv
dG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigiYmVmb3JldW5sb2FkIiwgb25CZWZvcmVVbmxvYWQpOworCitmdW5jdGlvbiBvbkJlZm9y
ZVVubG9hZCgpCit7CisgICAgcmV0dXJuICJiZWZvcmV1bmxvYWQiOworfQorCitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5qYXZhc2NyaXB0
RGlhbG9nT3BlbmluZyJdID0gb25PcGVuaW5nOworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5k
bGVyWyJQYWdlLmphdmFzY3JpcHREaWFsb2dDbG9zZWQiXSA9IG9uQ2xvc2VkOworICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlBhZ2UuZW5hYmxlIiwge30pOworCisgICAgZnVuY3Rpb24g
b25PcGVuaW5nKGV2ZW50KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIk9wZW5p
bmcgd2l0aCBtZXNzYWdlOiAiICsgZXZlbnQucGFyYW1zLm1lc3NhZ2UpOworICAgIH0KKyAgICBm
dW5jdGlvbiBvbkNsb3NlZCgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2xv
c2VkIik7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5l
dmFsdWF0ZSIsIHsgImV4cHJlc3Npb24iOiAiYWxlcnQoJ2FsZXJ0JykiIH0pOworICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ICJleHByZXNzaW9uIjog
ImNvbmZpcm0oJ2NvbmZpcm0nKSIgfSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
UnVudGltZS5ldmFsdWF0ZSIsIHsgImV4cHJlc3Npb24iOiAicHJvbXB0KCdwcm9tcHQnKSIgfSk7
CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUGFnZS5uYXZpZ2F0ZSIsIHsgInVybCI6
ICJub3N1Y2h1cmwiIH0sIG9uRG9uZSk7CisKKyAgICBmdW5jdGlvbiBvbkRvbmUoKQorICAgIHsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9CisKKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185385</attachid>
            <date>2013-01-29 20:43:02 -0800</date>
            <delta_ts>2013-01-30 14:57:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107883-20130129203947.patch</filename>
            <type>text/plain</type>
            <size>25463</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQ3ZDY5MTg0NjU3ODI3
Y2NjOTZmNTM1ZmVkYmQ2MmFmMDkwM2NiMi4uOWFlZWJhZjBkNjAyODUzZjZiMTBjMWQyNmRiNmI2
YTRhOTZjYzVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAxLTI5ICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFk
ZCBzdXBwb3J0IGZvciBoYW5kbGluZyBtb2RhbCBkaWFsb2dzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2Ugc3VwcG9ydCBmb3IgYmVpbmcg
bm90aWZpZWQgd2hlbiBhIEphdmFTY3JpcHQgbW9kYWwgZGlhbG9nCisgICAgICAgIGlzIG9wZW5p
bmcgYW5kIGNsb3NpbmcsIGFzIHdlbGwgYXMgYSBuZXcgY29tbWFuZCBmb3IgYWNjZXB0aW5nIG9y
CisgICAgICAgIGRpc21pc3NpbmcgdGhlIGRpYWxvZy4KKworICAgICAgICBUZXN0OiBpbnNwZWN0
b3ItcHJvdG9jb2wvcGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLmh0bWwKKworICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OmhhbmRsZUphdmFT
Y3JpcHREaWFsb2cpOgorICAgICAgICAoSW5zcGVjdG9yQ2xpZW50KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlh
bG9nT3BlbmluZ0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpqYXZhc2NyaXB0RGlhbG9nQ2xvc2VkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6amF2YXNj
cmlwdERpYWxvZ09wZW5pbmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmphdmFzY3JpcHREaWFsb2dDbG9zZWQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpqYXZhc2NyaXB0RGlhbG9nT3BlbmluZyk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6amF2YXNj
cmlwdERpYWxvZ0Nsb3NlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6
OmhhbmRsZUphdmFTY3JpcHREaWFsb2cpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1v
ZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZS5m
cmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlzcGF0Y2hl
ci5wcm90b3R5cGUuZnJhbWVTdG9wcGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lQ2xlYXJlZFNj
aGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVy
LnByb3RvdHlwZS5qYXZhc2NyaXB0RGlhbG9nT3BlbmluZyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmphdmFzY3JpcHREaWFsb2dDbG9zZWQpOgorICAg
ICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2
YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpydW5KYXZhU2NyaXB0UHJvbXB0KToK
KwogMjAxMy0wMS0yOCAgVmxhZGlzbGF2IEthem5hY2hlZXYgIDxrYXpuYWNoZWV2QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbmhlcml0IFNpZGViYXJQYW5lIGZyb20g
Vmlldy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMWY0MWU5ODU4ZGZmOTE0OTc1NTYx
ZTQ4MTI1MDY0OGQwYTFjODJmOS4uM2MwMDZmNzgzNGE3MTYyMDk1YzUyZWI4MGQ5Njc2NzlmOTFm
YzdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMy0w
MS0yOSAgS2VuIEthbmlhICA8a2thbmlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBZGQgc3VwcG9ydCBmb3IgaGFuZGxpbmcgbW9kYWwgZGlhbG9ncworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3ODgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIHN1cHBvcnQg
Zm9yIGJlaW5nIG5vdGlmaWVkIHdoZW4gYSBKYXZhU2NyaXB0IG1vZGFsIGRpYWxvZworICAgICAg
ICBpcyBvcGVuaW5nIGFuZCBjbG9zaW5nLCBhcyB3ZWxsIGFzIGEgbmV3IGNvbW1hbmQgZm9yIGFj
Y2VwdGluZyBvcgorICAgICAgICBkaXNtaXNzaW5nIHRoZSBkaWFsb2cuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oOgorICAgICAgICAqIHNyYy9JbnNwZWN0b3JDbGllbnRJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50SW1wbDo6aGFuZGxlSmF2
YVNjcmlwdERpYWxvZyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9JbnNwZWN0
b3JDbGllbnRJbXBsLmg6CisgICAgICAgIChJbnNwZWN0b3JDbGllbnRJbXBsKToKKyAgICAgICAg
KiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAoQnJvd3NlckRhdGFIaW50
U3RyaW5nVmFsdWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OmNh
cHR1cmVTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6
OmhhbmRsZUphdmFTY3JpcHREaWFsb2cpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdl
YktpdDo6YnJvd3NlckhpbnRUb1N0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OmJyb3dzZXJIaW50
RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnQ6OnBhdGNoV2l0
aEJyb3dzZXJEYXRhKToKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaDoKKyAg
ICAgICAgKFdlYkRldlRvb2xzQWdlbnRJbXBsKToKKwogMjAxMy0wMS0yOCAgTWlrZSBXZXN0ICA8
bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZCBidWls
ZCBmaXgsIG1pc3NpbmcgaW5jbHVkZSBpbiBBc3NlcnRNYXRjaGluZ0VudW1zLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGVjMDI3ZTFiMTVkNjA3ZDZiOWZk
NzcwZGNhYTU5N2FjMzExZGZkMGEuLjhkYjdiNzUyMzU1N2YwMWU3ZTU5MDUyMTUyMDU0NGQ5NDNk
NDFjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTQ4MCw2
ICs0ODAsMTUgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkYXRhIiwgInR5cGUi
OiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkJhc2U2NC1lbmNvZGVkIGltYWdlIGRhdGEgKFBO
RykuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1
ZQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6
ICJoYW5kbGVKYXZhU2NyaXB0RGlhbG9nIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiQWNjZXB0cyBvciBkaXNtaXNzZXMgYSBKYXZhU2NyaXB0IGluaXRpYXRlZCBkaWFsb2cgKGFs
ZXJ0LCBjb25maXJtLCBwcm9tcHQsIG9yIG9uYmVmb3JldW5sb2FkKS4iLAorICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFjY2Vw
dCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiV2hldGhlciB0byBhY2NlcHQg
b3IgZGlzbWlzcyB0aGUgZGlhbG9nLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJwcm9tcHRUZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlRleHQgdG8gaW5wdXQgZm9yIGEgSmF2YVNjcmlwdCBwcm9tcHQgKGRlZmF1bHQ6
IFwiXCIpLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6
IHRydWUKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKQEAg
LTU0Myw2ICs1NTIsMTkgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlk
IiwgIiRyZWYiOiAiTmV0d29yay5GcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBm
cmFtZSB0aGF0IGhhcyBjbGVhcmVkIGl0cyBzY2hlZHVsZWQgbmF2aWdhdGlvbi4iIH0KICAgICAg
ICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImphdmFzY3JpcHRE
aWFsb2dPcGVuaW5nIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hl
biBhIEphdmFTY3JpcHQgaW5pdGlhdGVkIGRpYWxvZyAoYWxlcnQsIGNvbmZpcm0sIHByb21wdCwg
b3Igb25iZWZvcmV1bmxvYWQpIGlzIGFib3V0IHRvIG9wZW4uIiwKKyAgICAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtZXNzYWdlIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2UgdGhhdCB3aWxsIGJlIGRp
c3BsYXllZCBieSB0aGUgZGlhbG9nLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgIm5hbWUiOiAiamF2YXNjcmlwdERpYWxvZ0Nsb3NlZCIsCisgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gYSBKYXZhU2NyaXB0IGluaXRpYXRlZCBk
aWFsb2cgKGFsZXJ0LCBjb25maXJtLCBwcm9tcHQsIG9yIG9uYmVmb3JldW5sb2FkKSBoYXMgY2xv
c2VkLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0KICAg
ICAgICAgXQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50
LmgKaW5kZXggMGYyOGViYzkyNTU5OTZlYWJmOTUxM2Q1ZTIyNzNiZGQ0YzhhMGNmZS4uMGIyYTlm
NmYyNWUzYjI2MzA3ZTc0YzBiZDVhNmI2Mzg3MDJjZTllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaApAQCAtODYsNiArODYsOCBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgY2FwdHVyZVNjcmVlbnNob3QoU3RyaW5nKikgeyByZXR1cm4gZmFsc2U7
IH0KIAorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVKYXZhU2NyaXB0RGlhbG9nKGJvb2wsIGNvbnN0
IFN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICBzdGF0aWMgYm9vbCBkb0Rpc3BhdGNo
TWVzc2FnZU9uRnJvbnRlbmRQYWdlKFBhZ2UqIGZyb250ZW5kUGFnZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggM2ExZTc5ZDllODM0ZTU0ZTFiNmJmODFkYTJl
NjhjZWY3OGVkZDYzYS4uZDdlYWFiOGMyYjkwMmNjNTM3ZDA1NWMyM2NiZGY0NjM4N2M1ZDVhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKQEAgLTk3NSw2ICs5NzUsMTggQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmcK
ICAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50LT5mcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0
aW9uKGZyYW1lKTsKIH0KIAordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmphdmFzY3Jp
cHREaWFsb2dPcGVuaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2Vu
dCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFn
ZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+amF2YXNjcmlwdERpYWxvZ09w
ZW5pbmcobWVzc2FnZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZh
c2NyaXB0RGlhbG9nQ2xvc2VkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzKQoreworICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBp
bnNwZWN0b3JQYWdlQWdlbnQtPmphdmFzY3JpcHREaWFsb2dDbG9zZWQoKTsKK30KKwogdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95Q2FjaGVkUmVzb3VyY2VJbXBsKENh
Y2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICAgICBpZiAoIWluc3RydW1lbnRpbmdB
Z2VudHNTZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgKaW5kZXggMzFiZjdlOWFiYmYxYzdiODUxM2YwOTBkNWFiY2RmNGEyNTJj
MGJiNy4uMTc1ZTRhZDc5Mzk1NzY0ZGJmODNjNDU1MWFiMjM5NDA2Mzg2YTgyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApA
QCAtMjE1LDYgKzIxNSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBmcmFtZVN0b3BwZWRM
b2FkaW5nKEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9u
KEZyYW1lKiwgZG91YmxlIGRlbGF5KTsKICAgICBzdGF0aWMgdm9pZCBmcmFtZUNsZWFyZWRTY2hl
ZHVsZWROYXZpZ2F0aW9uKEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgamF2YXNjcmlwdERpYWxv
Z09wZW5pbmcoUGFnZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgc3RhdGljIHZvaWQg
amF2YXNjcmlwdERpYWxvZ0Nsb3NlZChQYWdlKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ry
b3lDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSopOwogCiAgICAgc3RhdGljIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MKERvY3VtZW50KiwgdW5zaWduZWQg
aW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSk7CkBAIC00MTgsNiArNDIwLDggQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBmcmFtZVN0b3BwZWRMb2FkaW5nSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBmcmFtZVNjaGVkdWxlZE5h
dmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSosIGRvdWJsZSBkZWxheSk7
CiAgICAgc3RhdGljIHZvaWQgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgamF2YXNjcmlwdERp
YWxvZ09wZW5pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpOworICAgIHN0YXRpYyB2b2lkIGphdmFzY3JpcHREaWFsb2dDbG9zZWRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMqKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveUNhY2hlZFJlc291cmNl
SW1wbChDYWNoZWRSZXNvdXJjZSopOwogCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWdu
ZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSwgRnJhbWUqKTsKQEAgLTE3MTIs
NiArMTcxNiwyMiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1l
Q2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqIGZyYQogI2VuZGlmCiB9CiAKK2lubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6amF2YXNjcmlwdERpYWxvZ09wZW5pbmco
UGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworI2lmIEVOQUJMRShJTlNQRUNU
T1IpCisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBp
bnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKKyAgICAgICAgamF2YXNjcmlwdERpYWxv
Z09wZW5pbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIG1lc3NhZ2UpOworI2VuZGlmCit9CisK
K2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6amF2YXNjcmlwdERpYWxvZ0Ns
b3NlZChQYWdlKiBwYWdlKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRz
Rm9yUGFnZShwYWdlKSkKKyAgICAgICAgamF2YXNjcmlwdERpYWxvZ0Nsb3NlZEltcGwoaW5zdHJ1
bWVudGluZ0FnZW50cyk7CisjZW5kaWYKK30KKwogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKiBjYWNo
ZWRSZXNvdXJjZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCBkMmI3MTA4MTQyNTZlOGQ3
ZDY1NmY4ODYwN2Q3MWE3NDM2MTU3YmM2Li4wMzc1ZmE2MmVlNmQ1Mzc4YjExNTg4MTU3OTU3NGFj
ZjYzMDVlYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFn
ZUFnZW50LmNwcApAQCAtOTM2LDYgKzkzNiwxNiBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSogZnJhbWUpCiAgICAgbV9mcm9u
dGVuZC0+ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihmcmFtZUlkKGZyYW1lKSk7CiB9
CiAKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpqYXZhc2NyaXB0RGlhbG9nT3BlbmluZyhjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgbV9mcm9udGVuZC0+amF2YXNjcmlwdERpYWxvZ09w
ZW5pbmcobWVzc2FnZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpqYXZhc2NyaXB0
RGlhbG9nQ2xvc2VkKCkKK3sKKyAgICBtX2Zyb250ZW5kLT5qYXZhc2NyaXB0RGlhbG9nQ2xvc2Vk
KCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphcHBseVNjcmVlbldpZHRoT3ZlcnJp
ZGUobG9uZyogd2lkdGgpCiB7CiAgICAgbG9uZyB3aWR0aE92ZXJyaWRlID0gbV9zdGF0ZS0+Z2V0
TG9uZyhQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50U2NyZWVuV2lkdGhPdmVycmlkZSk7CkBAIC0x
MjM1LDYgKzEyNDUsMTIgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhcHR1cmVTY3JlZW5z
aG90KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgU3RyaW5nKiBkYXQKICAgICAgICAgKmVycm9y
U3RyaW5nID0gIkNvdWxkIG5vdCBjYXB0dXJlIHNjcmVlbnNob3QiOwogfQogCit2b2lkIEluc3Bl
Y3RvclBhZ2VBZ2VudDo6aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcsIGJvb2wgYWNjZXB0LCBjb25zdCBTdHJpbmcqIHByb21wdFRleHQpCit7CisgICAgaWYg
KCFtX2NsaWVudC0+aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhhY2NlcHQsIHByb21wdFRleHQgPyAq
cHJvbXB0VGV4dCA6ICIiKSkKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIkNvdWxkIG5vdCBoYW5k
bGUgSmF2YVNjcmlwdCBkaWFsb2ciOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGRjODJhOTcwNTM0Mjk4YTBjODljMWJjNzRmZGE4Y2Ey
YTVhMjIzNGUuLjcxNjJkMTEwMmM0NmVhNWNkYTI1MTQyOTkzZDFmOTNkMDhjNGM3NGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTEyNiw2
ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldENvbXBvc2l0aW5nQm9yZGVy
c1Zpc2libGUoRXJyb3JTdHJpbmcqLCBib29sKiBvdXRfcGFyYW0pOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKEVycm9yU3RyaW5nKiwgYm9vbCk7CiAgICAg
dmlydHVhbCB2b2lkIGNhcHR1cmVTY3JlZW5zaG90KEVycm9yU3RyaW5nKiwgU3RyaW5nKiBkYXRh
KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSmF2YVNjcmlwdERpYWxvZyhFcnJvclN0cmluZyos
IGJvb2wgYWNjZXB0LCBjb25zdCBTdHJpbmcqIHByb21wdFRleHQpOwogCiAgICAgLy8gR2VvbG9j
YXRpb24gb3ZlcnJpZGUgaGVscGVycy4KICAgICBHZW9sb2NhdGlvblBvc2l0aW9uKiBvdmVycmlk
ZUdlb2xvY2F0aW9uUG9zaXRpb24oR2VvbG9jYXRpb25Qb3NpdGlvbiopOwpAQCAtMTQ0LDYgKzE0
NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGZyYW1lU3RvcHBlZExvYWRpbmcoRnJhbWUqKTsKICAg
ICB2b2lkIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSosIGRvdWJsZSBkZWxheSk7CiAg
ICAgdm9pZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKik7CisgICAgdm9p
ZCBqYXZhc2NyaXB0RGlhbG9nT3BlbmluZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHZv
aWQgamF2YXNjcmlwdERpYWxvZ0Nsb3NlZCgpOwogICAgIHZvaWQgYXBwbHlTY3JlZW5XaWR0aE92
ZXJyaWRlKGxvbmcqKTsKICAgICB2b2lkIGFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUobG9uZyop
OwogICAgIHZvaWQgYXBwbHlFbXVsYXRlZE1lZGlhKFN0cmluZyopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKaW5k
ZXggMGE4NzZlYmZjM2JiZDNmYzk0YmYxMWE0MTBlOGEzYzk1YmQzNTk3Yy4uZDNlNjFlYmVmMzhk
MjcwNmRkMWRlZmQ0YTNiYWM3NTRmYmI3NTM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzCkBAIC02MDMsMTYg
KzYwMywyOCBAQCBXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5fZnJhbWVEZXRhY2hlZChmcmFtZUlkKTsKICAg
ICB9LAogCi0gICAgZnJhbWVTdGFydGVkTG9hZGluZzogZnVuY3Rpb24oZnJhbWVJZCkgeworICAg
IGZyYW1lU3RhcnRlZExvYWRpbmc6IGZ1bmN0aW9uKGZyYW1lSWQpCisgICAgeworICAgIH0sCisK
KyAgICBmcmFtZVN0b3BwZWRMb2FkaW5nOiBmdW5jdGlvbihmcmFtZUlkKQorICAgIHsKKyAgICB9
LAorCisgICAgZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uOiBmdW5jdGlvbihmcmFtZUlkLCBkZWxh
eSkKKyAgICB7CiAgICAgfSwKIAotICAgIGZyYW1lU3RvcHBlZExvYWRpbmc6IGZ1bmN0aW9uKGZy
YW1lSWQpIHsKKyAgICBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uOiBmdW5jdGlvbihm
cmFtZUlkKQorICAgIHsKICAgICB9LAogCi0gICAgZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uOiBm
dW5jdGlvbihmcmFtZUlkLCBkZWxheSkgeworICAgIGphdmFzY3JpcHREaWFsb2dPcGVuaW5nOiBm
dW5jdGlvbihtZXNzYWdlKQorICAgIHsKICAgICB9LAogCi0gICAgZnJhbWVDbGVhcmVkU2NoZWR1
bGVkTmF2aWdhdGlvbjogZnVuY3Rpb24oZnJhbWVJZCkgeworICAgIGphdmFzY3JpcHREaWFsb2dD
bG9zZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
aW5kZXggODRkZmNiNDIzMjdjMDgzMDAxYTU1NDRlZjhjNzUyOWMyZTM4MzQyYy4uNjNmM2Q2ZTRm
ZmJkZmRmZmUzMmE2YjNhZjljZmMzYjdiNTdlN2U2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApA
QCAtMjkzLDcgKzI5MywxMCBAQCBib29sIENocm9tZTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqIGZyYW1lKQogICAgIC8vIG90aGVyd2lz
ZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9m
IGV4ZWN1dGluZyBKYXZhU2NyaXB0LgogICAgIFBhZ2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJl
cihtX3BhZ2UsIHRydWUpOwogCi0gICAgcmV0dXJuIG1fY2xpZW50LT5ydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwobWVzc2FnZSwgZnJhbWUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6amF2YXNjcmlwdERpYWxvZ09wZW5pbmcobV9wYWdlLCBtZXNzYWdlKTsKKyAgICBib29sIG9r
ID0gbV9jbGllbnQtPnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChtZXNzYWdlLCBmcmFtZSk7
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlhbG9nQ2xvc2VkKG1f
cGFnZSk7CisgICAgcmV0dXJuIG9rOwogfQogCiB2b2lkIENocm9tZTo6Y2xvc2VXaW5kb3dTb29u
KCkKQEAgLTMxMiw3ICszMTUsMTEgQEAgdm9pZCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRBbGVydChG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIAogICAgIEFTU0VSVChmcmFtZSk7
CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgbV9jbGllbnQtPnJ1bkph
dmFTY3JpcHRBbGVydChmcmFtZSwgZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rp
bmcobWVzc2FnZSkpOworICAgIFN0cmluZyBkaXNwbGF5TWVzc2FnZSA9IGZyYW1lLT5kaXNwbGF5
U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlhbG9nT3BlbmluZyhtX3BhZ2UsIGRpc3BsYXlNZXNzYWdl
KTsKKyAgICBtX2NsaWVudC0+cnVuSmF2YVNjcmlwdEFsZXJ0KGZyYW1lLCBkaXNwbGF5TWVzc2Fn
ZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlhbG9nQ2xvc2Vk
KG1fcGFnZSk7CiB9CiAKIGJvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSog
ZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTMyNiw3ICszMzMsMTIgQEAgYm9vbCBD
aHJvbWU6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogCiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNl
cnZlcnMoKTsKLSAgICByZXR1cm4gbV9jbGllbnQtPnJ1bkphdmFTY3JpcHRDb25maXJtKGZyYW1l
LCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKSk7CisgICAg
U3RyaW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5j
b2RpbmcobWVzc2FnZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmphdmFzY3Jp
cHREaWFsb2dPcGVuaW5nKG1fcGFnZSwgZGlzcGxheU1lc3NhZ2UpOworICAgIGJvb2wgb2sgPSBt
X2NsaWVudC0+cnVuSmF2YVNjcmlwdENvbmZpcm0oZnJhbWUsIGRpc3BsYXlNZXNzYWdlKTsKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmphdmFzY3JpcHREaWFsb2dDbG9zZWQobV9wYWdl
KTsKKyAgICByZXR1cm4gb2s7CiB9CiAKIGJvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0UHJvbXB0
KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVs
dFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKQEAgLTM0MCw3ICszNTIsMTEgQEAgYm9vbCBDaHJvbWU6
OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwg
Y29uc3QgU3RyaW4KIAogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5n
T2JzZXJ2ZXJzKCk7Ci0gICAgYm9vbCBvayA9IG1fY2xpZW50LT5ydW5KYXZhU2NyaXB0UHJvbXB0
KGZyYW1lLCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhwcm9tcHQpLCBm
cmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhkZWZhdWx0VmFsdWUpLCByZXN1
bHQpOworICAgIFN0cmluZyBkaXNwbGF5UHJvbXB0ID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2Rp
ZmllZEJ5RW5jb2RpbmcocHJvbXB0KTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
amF2YXNjcmlwdERpYWxvZ09wZW5pbmcobV9wYWdlLCBkaXNwbGF5UHJvbXB0KTsKKyAgICBib29s
IG9rID0gbV9jbGllbnQtPnJ1bkphdmFTY3JpcHRQcm9tcHQoZnJhbWUsIGRpc3BsYXlQcm9tcHQs
IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKGRlZmF1bHRWYWx1ZSksIHJl
c3VsdCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlhbG9nQ2xv
c2VkKG1fcGFnZSk7CiAKICAgICBpZiAob2spCiAgICAgICAgIHJlc3VsdCA9IGZyYW1lLT5kaXNw
bGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmgKaW5kZXggNGNjZmI1YTYzMjY2MTYz
ZmQwODIxNzhmNWNlZDIzNDExYTRjYzM0YS4uMWI1ZDRlZjA2MTZiM2YwYTQ5YWJjNmE5MzNmNDE0
ZTg5NjVkZjg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
RGV2VG9vbHNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRl
dlRvb2xzQWdlbnQuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6CiAgICAgZW51bSBCcm93c2Vy
RGF0YUhpbnQgewogICAgICAgICBCcm93c2VyRGF0YUhpbnROb25lID0gMCwKICAgICAgICAgQnJv
d3NlckRhdGFIaW50U2NyZWVuc2hvdCA9IDEsCisgICAgICAgIEJyb3dzZXJEYXRhSGludEFjY2Vw
dEphdmFTY3JpcHREaWFsb2cgPSAyLAorICAgICAgICBCcm93c2VyRGF0YUhpbnREaXNtaXNzSmF2
YVNjcmlwdERpYWxvZyA9IDMsCiAgICAgfTsKIAogICAgIHZpcnR1YWwgfldlYkRldlRvb2xzQWdl
bnQoKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9y
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGll
bnRJbXBsLmNwcAppbmRleCBlY2Y1Y2VjY2ZjMTg5NzI4YjA3ZWIyYWNlMGE0MDNhNDI1MDNjMjEz
Li4yYjYyZGQwMTdlMDRmMDdkMzRmYTVlNzhiMDljYzY1M2QwZjgwZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcApAQCAtMjA2
LDYgKzIwNiwxMyBAQCBib29sIEluc3BlY3RvckNsaWVudEltcGw6OmNhcHR1cmVTY3JlZW5zaG90
KFN0cmluZyogZGF0YSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgSW5zcGVjdG9yQ2xp
ZW50SW1wbDo6aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFjY2VwdCwgY29uc3QgU3RyaW5n
JiBwcm9tcHRUZXh0KQoreworICAgIGlmIChXZWJEZXZUb29sc0FnZW50SW1wbCogYWdlbnQgPSBk
ZXZUb29sc0FnZW50KCkpCisgICAgICAgIHJldHVybiBhZ2VudC0+aGFuZGxlSmF2YVNjcmlwdERp
YWxvZyhhY2NlcHQsIHByb21wdFRleHQpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogV2ViRGV2
VG9vbHNBZ2VudEltcGwqIEluc3BlY3RvckNsaWVudEltcGw6OmRldlRvb2xzQWdlbnQoKQogewog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJEZXZUb29sc0FnZW50SW1wbCo+KG1faW5zcGVjdGVk
V2ViVmlldy0+ZGV2VG9vbHNBZ2VudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0luc3BlY3RvckNsaWVudEltcGwuaAppbmRleCA4NzExOWUzOTM4NWFmMGFkMmMzZmQwNjA5
M2QxOWJkODRkYzMwOTk4Li4wZWI0Y2YxYjQzMzIwNWUyZTkwMjE2ZWIyZjZlNDg5MDUxODdkMjlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1w
bC5oCkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBjYXB0dXJl
U2NyZWVuc2hvdChXVEY6OlN0cmluZyogZGF0YSk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxl
SmF2YVNjcmlwdERpYWxvZyhib29sIGFjY2VwdCwgY29uc3QgV1RGOjpTdHJpbmcmIHByb21wdFRl
eHQpOworCiBwcml2YXRlOgogICAgIFdlYkRldlRvb2xzQWdlbnRJbXBsKiBkZXZUb29sc0FnZW50
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xz
QWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdl
bnRJbXBsLmNwcAppbmRleCBmNTQxNTJiZjM2MTJlYmI5ZTRkNWNmNmYzZTUwNjhkOGU5YTYyOGY2
Li4xNjA4MTM1OWRmMjlkOTQxNDUwMGJhZjU2YjFhODYzNGJjYjBhZGMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC04
Myw2ICs4Myw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBuYW1lc3BhY2UgQnJvd3NlckRhdGFI
aW50U3RyaW5nVmFsdWVzIHsKIHN0YXRpYyBjb25zdCBjaGFyIHNjcmVlbnNob3RbXSA9ICJzY3Jl
ZW5zaG90IjsKK3N0YXRpYyBjb25zdCBjaGFyIGFjY2VwdEphdmFTY3JpcHREaWFsb2dbXSA9ICJh
Y2NlcHRKYXZhU2NyaXB0RGlhbG9nIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRpc21pc3NKYXZhU2Ny
aXB0RGlhbG9nW10gPSAiZGlzbWlzc0phdmFTY3JpcHREaWFsb2ciOwogfQogCiBjbGFzcyBDbGll
bnRNZXNzYWdlTG9vcEFkYXB0ZXIgOiBwdWJsaWMgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpDbGll
bnRNZXNzYWdlTG9vcCB7CkBAIC01NzQsNyArNTc2LDcgQEAgdm9pZCBXZWJEZXZUb29sc0FnZW50
SW1wbDo6ZHVtcFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMoY29uc3QgSGFzaE1hcDxjb25zdCB2
b2kKICAgICBtX2NsaWVudC0+ZHVtcFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMoJnByb3ZpZGVy
KTsKIH0KIAotYm9vbCBXZWJEZXZUb29sc0FnZW50SW1wbDo6Y2FwdHVyZVNjcmVlbnNob3QoV1RG
OjpTdHJpbmcqIGRhdGEpCitib29sIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpjYXB0dXJlU2NyZWVu
c2hvdChTdHJpbmcqIGRhdGEpCiB7CiAgICAgLy8gVmFsdWUgaXMgZ29pbmcgdG8gYmUgc3Vic3Rp
dHV0ZWQgd2l0aCB0aGUgYWN0dWFsIGRhdGEgb24gdGhlIGJyb3dzZXIgbGV2ZWwuCiAgICAgKmRh
dGEgPSAie3NjcmVlbnNob3QtcGxhY2Vob2xkZXJ9IjsKQEAgLTU4Miw2ICs1ODQsMTQgQEAgYm9v
bCBXZWJEZXZUb29sc0FnZW50SW1wbDo6Y2FwdHVyZVNjcmVlbnNob3QoV1RGOjpTdHJpbmcqIGRh
dGEpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgV2ViRGV2VG9vbHNBZ2VudEltcGw6Omhh
bmRsZUphdmFTY3JpcHREaWFsb2coYm9vbCBhY2NlcHQsIGNvbnN0IFN0cmluZyYgcHJvbXB0VGV4
dCkKK3sKKyAgICAvLyBPcGVyYXRpb24gaXMgZ29pbmcgdG8gYmUgcGVyZm9ybWVkIG9uIHRoZSBi
cm93c2VyIGxldmVsLgorICAgIC8vIFRoZXJlJ3Mgbm90IGEgZ29vZCB3YXkgbm93IHRvIHBhc3Mg
cGFyYW1ldGVycyB0byB0aGUgYnJvd3NlciBsZXZlbCwgc28ganVzdCBpZ25vcmUgdGhlIHByb21w
dCB0ZXh0LgorICAgIG1fc2VuZFdpdGhCcm93c2VyRGF0YUhpbnQgPSBhY2NlcHQgPyBCcm93c2Vy
RGF0YUhpbnRBY2NlcHRKYXZhU2NyaXB0RGlhbG9nIDogQnJvd3NlckRhdGFIaW50RGlzbWlzc0ph
dmFTY3JpcHREaWFsb2c7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgV2ViRGV2VG9vbHNB
Z2VudEltcGw6OmRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kKGNvbnN0IFdlYlN0cmluZyYgbWVz
c2FnZSkKIHsKICAgICBpbnNwZWN0b3JDb250cm9sbGVyKCktPmRpc3BhdGNoTWVzc2FnZUZyb21G
cm9udGVuZChtZXNzYWdlKTsKQEAgLTY2MSw2ICs2NzEsMTAgQEAgc3RhdGljIFN0cmluZyBicm93
c2VySGludFRvU3RyaW5nKFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludCBkYXRhSGlu
dCkKICAgICBzd2l0Y2ggKGRhdGFIaW50KSB7CiAgICAgY2FzZSBXZWJEZXZUb29sc0FnZW50OjpC
cm93c2VyRGF0YUhpbnRTY3JlZW5zaG90OgogICAgICAgICByZXR1cm4gQnJvd3NlckRhdGFIaW50
U3RyaW5nVmFsdWVzOjpzY3JlZW5zaG90OworICAgIGNhc2UgV2ViRGV2VG9vbHNBZ2VudDo6QnJv
d3NlckRhdGFIaW50QWNjZXB0SmF2YVNjcmlwdERpYWxvZzoKKyAgICAgICAgcmV0dXJuIEJyb3dz
ZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6YWNjZXB0SmF2YVNjcmlwdERpYWxvZzsKKyAgICBjYXNl
IFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludERpc21pc3NKYXZhU2NyaXB0RGlhbG9n
OgorICAgICAgICByZXR1cm4gQnJvd3NlckRhdGFIaW50U3RyaW5nVmFsdWVzOjpkaXNtaXNzSmF2
YVNjcmlwdERpYWxvZzsKICAgICBjYXNlIFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGlu
dE5vbmU6CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02
NzIsNiArNjg2LDEwIEBAIHN0YXRpYyBXZWJEZXZUb29sc0FnZW50OjpCcm93c2VyRGF0YUhpbnQg
YnJvd3NlckhpbnRGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsCiB7CiAgICAgaWYgKHZhbHVl
ID09IEJyb3dzZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6c2NyZWVuc2hvdCkKICAgICAgICAgcmV0
dXJuIFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludFNjcmVlbnNob3Q7CisgICAgaWYg
KHZhbHVlID09IEJyb3dzZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6YWNjZXB0SmF2YVNjcmlwdERp
YWxvZykKKyAgICAgICAgcmV0dXJuIFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludEFj
Y2VwdEphdmFTY3JpcHREaWFsb2c7CisgICAgaWYgKHZhbHVlID09IEJyb3dzZXJEYXRhSGludFN0
cmluZ1ZhbHVlczo6ZGlzbWlzc0phdmFTY3JpcHREaWFsb2cpCisgICAgICAgIHJldHVybiBXZWJE
ZXZUb29sc0FnZW50OjpCcm93c2VyRGF0YUhpbnREaXNtaXNzSmF2YVNjcmlwdERpYWxvZzsKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gV2ViRGV2VG9vbHNBZ2VudDo6QnJv
d3NlckRhdGFIaW50Tm9uZTsKIH0KQEAgLTgyNyw2ICs4NDUsMTAgQEAgV2ViU3RyaW5nIFdlYkRl
dlRvb2xzQWdlbnQ6OnBhdGNoV2l0aEJyb3dzZXJEYXRhKGNvbnN0IFdlYlN0cmluZyYgbWVzc2Fn
ZSwgQnJvd3MKICAgICBjYXNlIEJyb3dzZXJEYXRhSGludFNjcmVlbnNob3Q6CiAgICAgICAgIHJl
c3VsdE9iamVjdC0+c2V0U3RyaW5nKCJkYXRhIiwgaGludERhdGEpOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIEJyb3dzZXJEYXRhSGludEFjY2VwdEphdmFTY3JpcHREaWFsb2c6CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQnJvd3NlckRhdGFIaW50RGlzbWlzc0phdmFTY3JpcHREaWFsb2c6
CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJvd3NlckRhdGFIaW50Tm9uZToKICAgICBkZWZh
dWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCmluZGV4IGZlMzQwZGQ3Nzg4ZGJi
YThhZTQxMjc1ZDBmOWY0MzJlNjQ3ZDg4MjAuLmI4MDgzYmM2ZTQ0YWNiNDNkYjEzM2UzNjcxOTlk
NzkzZjgyMmQ1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2
VG9vbHNBZ2VudEltcGwuaApAQCAtMTEzLDYgKzExMyw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgYm9vbCBjYXB0dXJlU2NyZWVuc2hvdChXVEY6OlN0cmluZyogZGF0YSk7CiAKKyAgICB2aXJ0
dWFsIGJvb2wgaGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFjY2VwdCwgY29uc3QgV1RGOjpT
dHJpbmcmIHByb21wdFRleHQpOworCiAgICAgaW50IGhvc3RJZCgpIHsgcmV0dXJuIG1faG9zdElk
OyB9CiAKICAgICAvLyBXZWJQYWdlT3ZlcmxheQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE1NWUxOGNlZjkwNTcxYjQyZDg2
YzFlZTg5Y2VkMGZlNGI4NjNmOWEuLmY5NjVmNTk5MThmYTFkYmRkNDI1MjJjOTMxYTZhNDQ2OWRi
MTIxMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMS0yOSAgS2VuIEthbmlhICA8a2th
bmlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc3VwcG9ydCBm
b3IgaGFuZGxpbmcgbW9kYWwgZGlhbG9ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA3ODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIHN1cHBvcnQgZm9yIGJlaW5nIG5vdGlmaWVkIHdo
ZW4gYSBKYXZhU2NyaXB0IG1vZGFsIGRpYWxvZworICAgICAgICBpcyBvcGVuaW5nIGFuZCBjbG9z
aW5nLCBhcyB3ZWxsIGFzIGEgbmV3IGNvbW1hbmQgZm9yIGFjY2VwdGluZyBvcgorICAgICAgICBk
aXNtaXNzaW5nIHRoZSBkaWFsb2cuCisKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFn
ZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2ZW50cy5odG1sOiBBZGRl
ZC4KKwogMjAxMy0wMS0yOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXSBbV1RSXSBsYXlvdXRUZXN0Q29udHJvbGxlci5wYXRoVG9Mb2Nh
bFJlc291cmNlIG5lZWRzIHRvIGJlIHVwZGF0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9wYWdlL2phdmFzY3JpcHREaWFsb2dFdmVudHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2
ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTcxNTUyNTdmYTcyNWJjZjY4ZTE4ZjU5ZmUx
Njg4MzlkNDY4OTZmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9wYWdlL2phdmFzY3JpcHREaWFsb2dFdmVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTMgQEAKK0FMRVJUOiBhbGVydAorQ09ORklSTTogY29uZmlybQorUFJPTVBUOiBwcm9tcHQs
IGRlZmF1bHQgdGV4dDogCitDT05GSVJNIE5BVklHQVRJT046IGJlZm9yZXVubG9hZAorT3Blbmlu
ZyB3aXRoIG1lc3NhZ2U6IGFsZXJ0CitDbG9zZWQKK09wZW5pbmcgd2l0aCBtZXNzYWdlOiBjb25m
aXJtCitDbG9zZWQKK09wZW5pbmcgd2l0aCBtZXNzYWdlOiBwcm9tcHQKK0Nsb3NlZAorT3Blbmlu
ZyB3aXRoIG1lc3NhZ2U6IGJlZm9yZXVubG9hZAorQ2xvc2VkCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2phdmFzY3JpcHREaWFsb2dFdmVudHMuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2phdmFzY3JpcHREaWFsb2dF
dmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZWI0NDA2ZmVlY2MwOTZmNGRkMDVkMjlmMTQ3OTFjMjRj
ZDlkNzIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2ZW50cy5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2Fk
Iiwgb25CZWZvcmVVbmxvYWQpOworCitmdW5jdGlvbiBvbkJlZm9yZVVubG9hZCgpCit7CisgICAg
cmV0dXJuICJiZWZvcmV1bmxvYWQiOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5qYXZhc2NyaXB0RGlhbG9nT3BlbmluZyJdID0g
b25PcGVuaW5nOworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmphdmFzY3Jp
cHREaWFsb2dDbG9zZWQiXSA9IG9uQ2xvc2VkOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlBhZ2UuZW5hYmxlIiwge30pOworCisgICAgZnVuY3Rpb24gb25PcGVuaW5nKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIk9wZW5pbmcgd2l0aCBtZXNzYWdlOiAi
ICsgZXZlbnQucGFyYW1zLm1lc3NhZ2UpOworICAgIH0KKyAgICBmdW5jdGlvbiBvbkNsb3NlZCgp
CisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2xvc2VkIik7CisgICAgfQorCisg
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsgImV4cHJl
c3Npb24iOiAiYWxlcnQoJ2FsZXJ0JykiIH0pOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ICJleHByZXNzaW9uIjogImNvbmZpcm0oJ2NvbmZpcm0n
KSIgfSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIs
IHsgImV4cHJlc3Npb24iOiAicHJvbXB0KCdwcm9tcHQnKSIgfSk7CisgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiUGFnZS5uYXZpZ2F0ZSIsIHsgInVybCI6ICJub3N1Y2h1cmwiIH0sIG9u
RG9uZSk7CisKKyAgICBmdW5jdGlvbiBvbkRvbmUoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185588</attachid>
            <date>2013-01-30 14:57:49 -0800</date>
            <delta_ts>2013-01-31 08:41:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107883-20130130145433.patch</filename>
            <type>text/plain</type>
            <size>25463</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQ3ZDY5MTg0NjU3ODI3
Y2NjOTZmNTM1ZmVkYmQ2MmFmMDkwM2NiMi4uMzNhZTk4ODNjMjE1NTBjNDhmZmE4OTNiNTM1YTNl
NmRkMDVjMjA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAxLTMwICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFk
ZCBzdXBwb3J0IGZvciBoYW5kbGluZyBtb2RhbCBkaWFsb2dzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2Ugc3VwcG9ydCBmb3IgYmVpbmcg
bm90aWZpZWQgd2hlbiBhIEphdmFTY3JpcHQgbW9kYWwgZGlhbG9nCisgICAgICAgIGlzIG9wZW5p
bmcgYW5kIGNsb3NpbmcsIGFzIHdlbGwgYXMgYSBuZXcgY29tbWFuZCBmb3IgYWNjZXB0aW5nIG9y
CisgICAgICAgIGRpc21pc3NpbmcgdGhlIGRpYWxvZy4KKworICAgICAgICBUZXN0OiBpbnNwZWN0
b3ItcHJvdG9jb2wvcGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLmh0bWwKKworICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OmhhbmRsZUphdmFT
Y3JpcHREaWFsb2cpOgorICAgICAgICAoSW5zcGVjdG9yQ2xpZW50KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlh
bG9nT3BlbmluZ0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpqYXZhc2NyaXB0RGlhbG9nQ2xvc2VkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6amF2YXNj
cmlwdERpYWxvZ09wZW5pbmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmphdmFzY3JpcHREaWFsb2dDbG9zZWQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpqYXZhc2NyaXB0RGlhbG9nT3BlbmluZyk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6amF2YXNj
cmlwdERpYWxvZ0Nsb3NlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6
OmhhbmRsZUphdmFTY3JpcHREaWFsb2cpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1v
ZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZS5m
cmFtZVN0YXJ0ZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlzcGF0Y2hl
ci5wcm90b3R5cGUuZnJhbWVTdG9wcGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lQ2xlYXJlZFNj
aGVkdWxlZE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVy
LnByb3RvdHlwZS5qYXZhc2NyaXB0RGlhbG9nT3BlbmluZyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmphdmFzY3JpcHREaWFsb2dDbG9zZWQpOgorICAg
ICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2
YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpydW5KYXZhU2NyaXB0UHJvbXB0KToK
KwogMjAxMy0wMS0yOCAgVmxhZGlzbGF2IEthem5hY2hlZXYgIDxrYXpuYWNoZWV2QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbmhlcml0IFNpZGViYXJQYW5lIGZyb20g
Vmlldy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMWY0MWU5ODU4ZGZmOTE0OTc1NTYx
ZTQ4MTI1MDY0OGQwYTFjODJmOS4uZTIyYjYxYTI0MzhiNGYzNTE2NzMxOTJmZWQxYjYzN2JlZjUz
NTkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMy0w
MS0zMCAgS2VuIEthbmlhICA8a2thbmlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBZGQgc3VwcG9ydCBmb3IgaGFuZGxpbmcgbW9kYWwgZGlhbG9ncworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3ODgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIHN1cHBvcnQg
Zm9yIGJlaW5nIG5vdGlmaWVkIHdoZW4gYSBKYXZhU2NyaXB0IG1vZGFsIGRpYWxvZworICAgICAg
ICBpcyBvcGVuaW5nIGFuZCBjbG9zaW5nLCBhcyB3ZWxsIGFzIGEgbmV3IGNvbW1hbmQgZm9yIGFj
Y2VwdGluZyBvcgorICAgICAgICBkaXNtaXNzaW5nIHRoZSBkaWFsb2cuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oOgorICAgICAgICAqIHNyYy9JbnNwZWN0b3JDbGllbnRJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50SW1wbDo6aGFuZGxlSmF2
YVNjcmlwdERpYWxvZyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9JbnNwZWN0
b3JDbGllbnRJbXBsLmg6CisgICAgICAgIChJbnNwZWN0b3JDbGllbnRJbXBsKToKKyAgICAgICAg
KiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAoQnJvd3NlckRhdGFIaW50
U3RyaW5nVmFsdWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OmNh
cHR1cmVTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6
OmhhbmRsZUphdmFTY3JpcHREaWFsb2cpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdl
YktpdDo6YnJvd3NlckhpbnRUb1N0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OmJyb3dzZXJIaW50
RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnQ6OnBhdGNoV2l0
aEJyb3dzZXJEYXRhKToKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaDoKKyAg
ICAgICAgKFdlYkRldlRvb2xzQWdlbnRJbXBsKToKKwogMjAxMy0wMS0yOCAgTWlrZSBXZXN0ICA8
bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZCBidWls
ZCBmaXgsIG1pc3NpbmcgaW5jbHVkZSBpbiBBc3NlcnRNYXRjaGluZ0VudW1zLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGVjMDI3ZTFiMTVkNjA3ZDZiOWZk
NzcwZGNhYTU5N2FjMzExZGZkMGEuLjhkYjdiNzUyMzU1N2YwMWU3ZTU5MDUyMTUyMDU0NGQ5NDNk
NDFjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTQ4MCw2
ICs0ODAsMTUgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkYXRhIiwgInR5cGUi
OiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkJhc2U2NC1lbmNvZGVkIGltYWdlIGRhdGEgKFBO
RykuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1
ZQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6
ICJoYW5kbGVKYXZhU2NyaXB0RGlhbG9nIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiQWNjZXB0cyBvciBkaXNtaXNzZXMgYSBKYXZhU2NyaXB0IGluaXRpYXRlZCBkaWFsb2cgKGFs
ZXJ0LCBjb25maXJtLCBwcm9tcHQsIG9yIG9uYmVmb3JldW5sb2FkKS4iLAorICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFjY2Vw
dCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiV2hldGhlciB0byBhY2NlcHQg
b3IgZGlzbWlzcyB0aGUgZGlhbG9nLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJwcm9tcHRUZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlRleHQgdG8gaW5wdXQgZm9yIGEgSmF2YVNjcmlwdCBwcm9tcHQgKGRlZmF1bHQ6
IFwiXCIpLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6
IHRydWUKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKQEAg
LTU0Myw2ICs1NTIsMTkgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlk
IiwgIiRyZWYiOiAiTmV0d29yay5GcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBm
cmFtZSB0aGF0IGhhcyBjbGVhcmVkIGl0cyBzY2hlZHVsZWQgbmF2aWdhdGlvbi4iIH0KICAgICAg
ICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImphdmFzY3JpcHRE
aWFsb2dPcGVuaW5nIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hl
biBhIEphdmFTY3JpcHQgaW5pdGlhdGVkIGRpYWxvZyAoYWxlcnQsIGNvbmZpcm0sIHByb21wdCwg
b3Igb25iZWZvcmV1bmxvYWQpIGlzIGFib3V0IHRvIG9wZW4uIiwKKyAgICAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtZXNzYWdlIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2UgdGhhdCB3aWxsIGJlIGRp
c3BsYXllZCBieSB0aGUgZGlhbG9nLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgIm5hbWUiOiAiamF2YXNjcmlwdERpYWxvZ0Nsb3NlZCIsCisgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gYSBKYXZhU2NyaXB0IGluaXRpYXRlZCBk
aWFsb2cgKGFsZXJ0LCBjb25maXJtLCBwcm9tcHQsIG9yIG9uYmVmb3JldW5sb2FkKSBoYXMgY2xv
c2VkLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0KICAg
ICAgICAgXQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50
LmgKaW5kZXggMGYyOGViYzkyNTU5OTZlYWJmOTUxM2Q1ZTIyNzNiZGQ0YzhhMGNmZS4uMGIyYTlm
NmYyNWUzYjI2MzA3ZTc0YzBiZDVhNmI2Mzg3MDJjZTllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaApAQCAtODYsNiArODYsOCBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgY2FwdHVyZVNjcmVlbnNob3QoU3RyaW5nKikgeyByZXR1cm4gZmFsc2U7
IH0KIAorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVKYXZhU2NyaXB0RGlhbG9nKGJvb2wsIGNvbnN0
IFN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICBzdGF0aWMgYm9vbCBkb0Rpc3BhdGNo
TWVzc2FnZU9uRnJvbnRlbmRQYWdlKFBhZ2UqIGZyb250ZW5kUGFnZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggM2ExZTc5ZDllODM0ZTU0ZTFiNmJmODFkYTJl
NjhjZWY3OGVkZDYzYS4uZDdlYWFiOGMyYjkwMmNjNTM3ZDA1NWMyM2NiZGY0NjM4N2M1ZDVhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKQEAgLTk3NSw2ICs5NzUsMTggQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmcK
ICAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50LT5mcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0
aW9uKGZyYW1lKTsKIH0KIAordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmphdmFzY3Jp
cHREaWFsb2dPcGVuaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2Vu
dCogaW5zcGVjdG9yUGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFn
ZUFnZW50KCkpCisgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+amF2YXNjcmlwdERpYWxvZ09w
ZW5pbmcobWVzc2FnZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZh
c2NyaXB0RGlhbG9nQ2xvc2VkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzKQoreworICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgICAgICBp
bnNwZWN0b3JQYWdlQWdlbnQtPmphdmFzY3JpcHREaWFsb2dDbG9zZWQoKTsKK30KKwogdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95Q2FjaGVkUmVzb3VyY2VJbXBsKENh
Y2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICAgICBpZiAoIWluc3RydW1lbnRpbmdB
Z2VudHNTZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgKaW5kZXggMzFiZjdlOWFiYmYxYzdiODUxM2YwOTBkNWFiY2RmNGEyNTJj
MGJiNy4uMTc1ZTRhZDc5Mzk1NzY0ZGJmODNjNDU1MWFiMjM5NDA2Mzg2YTgyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApA
QCAtMjE1LDYgKzIxNSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBmcmFtZVN0b3BwZWRM
b2FkaW5nKEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9u
KEZyYW1lKiwgZG91YmxlIGRlbGF5KTsKICAgICBzdGF0aWMgdm9pZCBmcmFtZUNsZWFyZWRTY2hl
ZHVsZWROYXZpZ2F0aW9uKEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgamF2YXNjcmlwdERpYWxv
Z09wZW5pbmcoUGFnZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgc3RhdGljIHZvaWQg
amF2YXNjcmlwdERpYWxvZ0Nsb3NlZChQYWdlKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ry
b3lDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSopOwogCiAgICAgc3RhdGljIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MKERvY3VtZW50KiwgdW5zaWduZWQg
aW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSk7CkBAIC00MTgsNiArNDIwLDggQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBmcmFtZVN0b3BwZWRMb2FkaW5nSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBmcmFtZVNjaGVkdWxlZE5h
dmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSosIGRvdWJsZSBkZWxheSk7
CiAgICAgc3RhdGljIHZvaWQgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgamF2YXNjcmlwdERp
YWxvZ09wZW5pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpOworICAgIHN0YXRpYyB2b2lkIGphdmFzY3JpcHREaWFsb2dDbG9zZWRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMqKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGVzdHJveUNhY2hlZFJlc291cmNl
SW1wbChDYWNoZWRSZXNvdXJjZSopOwogCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWdu
ZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSwgRnJhbWUqKTsKQEAgLTE3MTIs
NiArMTcxNiwyMiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1l
Q2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqIGZyYQogI2VuZGlmCiB9CiAKK2lubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6amF2YXNjcmlwdERpYWxvZ09wZW5pbmco
UGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworI2lmIEVOQUJMRShJTlNQRUNU
T1IpCisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBp
bnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKKyAgICAgICAgamF2YXNjcmlwdERpYWxv
Z09wZW5pbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIG1lc3NhZ2UpOworI2VuZGlmCit9CisK
K2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6amF2YXNjcmlwdERpYWxvZ0Ns
b3NlZChQYWdlKiBwYWdlKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRz
Rm9yUGFnZShwYWdlKSkKKyAgICAgICAgamF2YXNjcmlwdERpYWxvZ0Nsb3NlZEltcGwoaW5zdHJ1
bWVudGluZ0FnZW50cyk7CisjZW5kaWYKK30KKwogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKiBjYWNo
ZWRSZXNvdXJjZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCBkMmI3MTA4MTQyNTZlOGQ3
ZDY1NmY4ODYwN2Q3MWE3NDM2MTU3YmM2Li4wMzc1ZmE2MmVlNmQ1Mzc4YjExNTg4MTU3OTU3NGFj
ZjYzMDVlYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFn
ZUFnZW50LmNwcApAQCAtOTM2LDYgKzkzNiwxNiBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSogZnJhbWUpCiAgICAgbV9mcm9u
dGVuZC0+ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihmcmFtZUlkKGZyYW1lKSk7CiB9
CiAKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpqYXZhc2NyaXB0RGlhbG9nT3BlbmluZyhjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgbV9mcm9udGVuZC0+amF2YXNjcmlwdERpYWxvZ09w
ZW5pbmcobWVzc2FnZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpqYXZhc2NyaXB0
RGlhbG9nQ2xvc2VkKCkKK3sKKyAgICBtX2Zyb250ZW5kLT5qYXZhc2NyaXB0RGlhbG9nQ2xvc2Vk
KCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphcHBseVNjcmVlbldpZHRoT3ZlcnJp
ZGUobG9uZyogd2lkdGgpCiB7CiAgICAgbG9uZyB3aWR0aE92ZXJyaWRlID0gbV9zdGF0ZS0+Z2V0
TG9uZyhQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50U2NyZWVuV2lkdGhPdmVycmlkZSk7CkBAIC0x
MjM1LDYgKzEyNDUsMTIgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhcHR1cmVTY3JlZW5z
aG90KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgU3RyaW5nKiBkYXQKICAgICAgICAgKmVycm9y
U3RyaW5nID0gIkNvdWxkIG5vdCBjYXB0dXJlIHNjcmVlbnNob3QiOwogfQogCit2b2lkIEluc3Bl
Y3RvclBhZ2VBZ2VudDo6aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcsIGJvb2wgYWNjZXB0LCBjb25zdCBTdHJpbmcqIHByb21wdFRleHQpCit7CisgICAgaWYg
KCFtX2NsaWVudC0+aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhhY2NlcHQsIHByb21wdFRleHQgPyAq
cHJvbXB0VGV4dCA6ICIiKSkKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIkNvdWxkIG5vdCBoYW5k
bGUgSmF2YVNjcmlwdCBkaWFsb2ciOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGRjODJhOTcwNTM0Mjk4YTBjODljMWJjNzRmZGE4Y2Ey
YTVhMjIzNGUuLjcxNjJkMTEwMmM0NmVhNWNkYTI1MTQyOTkzZDFmOTNkMDhjNGM3NGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTEyNiw2
ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldENvbXBvc2l0aW5nQm9yZGVy
c1Zpc2libGUoRXJyb3JTdHJpbmcqLCBib29sKiBvdXRfcGFyYW0pOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKEVycm9yU3RyaW5nKiwgYm9vbCk7CiAgICAg
dmlydHVhbCB2b2lkIGNhcHR1cmVTY3JlZW5zaG90KEVycm9yU3RyaW5nKiwgU3RyaW5nKiBkYXRh
KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSmF2YVNjcmlwdERpYWxvZyhFcnJvclN0cmluZyos
IGJvb2wgYWNjZXB0LCBjb25zdCBTdHJpbmcqIHByb21wdFRleHQpOwogCiAgICAgLy8gR2VvbG9j
YXRpb24gb3ZlcnJpZGUgaGVscGVycy4KICAgICBHZW9sb2NhdGlvblBvc2l0aW9uKiBvdmVycmlk
ZUdlb2xvY2F0aW9uUG9zaXRpb24oR2VvbG9jYXRpb25Qb3NpdGlvbiopOwpAQCAtMTQ0LDYgKzE0
NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGZyYW1lU3RvcHBlZExvYWRpbmcoRnJhbWUqKTsKICAg
ICB2b2lkIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSosIGRvdWJsZSBkZWxheSk7CiAg
ICAgdm9pZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKik7CisgICAgdm9p
ZCBqYXZhc2NyaXB0RGlhbG9nT3BlbmluZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHZv
aWQgamF2YXNjcmlwdERpYWxvZ0Nsb3NlZCgpOwogICAgIHZvaWQgYXBwbHlTY3JlZW5XaWR0aE92
ZXJyaWRlKGxvbmcqKTsKICAgICB2b2lkIGFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUobG9uZyop
OwogICAgIHZvaWQgYXBwbHlFbXVsYXRlZE1lZGlhKFN0cmluZyopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKaW5k
ZXggMGE4NzZlYmZjM2JiZDNmYzk0YmYxMWE0MTBlOGEzYzk1YmQzNTk3Yy4uZDNlNjFlYmVmMzhk
MjcwNmRkMWRlZmQ0YTNiYWM3NTRmYmI3NTM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzCkBAIC02MDMsMTYg
KzYwMywyOCBAQCBXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5fZnJhbWVEZXRhY2hlZChmcmFtZUlkKTsKICAg
ICB9LAogCi0gICAgZnJhbWVTdGFydGVkTG9hZGluZzogZnVuY3Rpb24oZnJhbWVJZCkgeworICAg
IGZyYW1lU3RhcnRlZExvYWRpbmc6IGZ1bmN0aW9uKGZyYW1lSWQpCisgICAgeworICAgIH0sCisK
KyAgICBmcmFtZVN0b3BwZWRMb2FkaW5nOiBmdW5jdGlvbihmcmFtZUlkKQorICAgIHsKKyAgICB9
LAorCisgICAgZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uOiBmdW5jdGlvbihmcmFtZUlkLCBkZWxh
eSkKKyAgICB7CiAgICAgfSwKIAotICAgIGZyYW1lU3RvcHBlZExvYWRpbmc6IGZ1bmN0aW9uKGZy
YW1lSWQpIHsKKyAgICBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uOiBmdW5jdGlvbihm
cmFtZUlkKQorICAgIHsKICAgICB9LAogCi0gICAgZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uOiBm
dW5jdGlvbihmcmFtZUlkLCBkZWxheSkgeworICAgIGphdmFzY3JpcHREaWFsb2dPcGVuaW5nOiBm
dW5jdGlvbihtZXNzYWdlKQorICAgIHsKICAgICB9LAogCi0gICAgZnJhbWVDbGVhcmVkU2NoZWR1
bGVkTmF2aWdhdGlvbjogZnVuY3Rpb24oZnJhbWVJZCkgeworICAgIGphdmFzY3JpcHREaWFsb2dD
bG9zZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
aW5kZXggODRkZmNiNDIzMjdjMDgzMDAxYTU1NDRlZjhjNzUyOWMyZTM4MzQyYy4uNjNmM2Q2ZTRm
ZmJkZmRmZmUzMmE2YjNhZjljZmMzYjdiNTdlN2U2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApA
QCAtMjkzLDcgKzI5MywxMCBAQCBib29sIENocm9tZTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqIGZyYW1lKQogICAgIC8vIG90aGVyd2lz
ZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9m
IGV4ZWN1dGluZyBKYXZhU2NyaXB0LgogICAgIFBhZ2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJl
cihtX3BhZ2UsIHRydWUpOwogCi0gICAgcmV0dXJuIG1fY2xpZW50LT5ydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwobWVzc2FnZSwgZnJhbWUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6amF2YXNjcmlwdERpYWxvZ09wZW5pbmcobV9wYWdlLCBtZXNzYWdlKTsKKyAgICBib29sIG9r
ID0gbV9jbGllbnQtPnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChtZXNzYWdlLCBmcmFtZSk7
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlhbG9nQ2xvc2VkKG1f
cGFnZSk7CisgICAgcmV0dXJuIG9rOwogfQogCiB2b2lkIENocm9tZTo6Y2xvc2VXaW5kb3dTb29u
KCkKQEAgLTMxMiw3ICszMTUsMTEgQEAgdm9pZCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRBbGVydChG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIAogICAgIEFTU0VSVChmcmFtZSk7
CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgbV9jbGllbnQtPnJ1bkph
dmFTY3JpcHRBbGVydChmcmFtZSwgZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rp
bmcobWVzc2FnZSkpOworICAgIFN0cmluZyBkaXNwbGF5TWVzc2FnZSA9IGZyYW1lLT5kaXNwbGF5
U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlhbG9nT3BlbmluZyhtX3BhZ2UsIGRpc3BsYXlNZXNzYWdl
KTsKKyAgICBtX2NsaWVudC0+cnVuSmF2YVNjcmlwdEFsZXJ0KGZyYW1lLCBkaXNwbGF5TWVzc2Fn
ZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlhbG9nQ2xvc2Vk
KG1fcGFnZSk7CiB9CiAKIGJvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSog
ZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTMyNiw3ICszMzMsMTIgQEAgYm9vbCBD
aHJvbWU6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogCiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNl
cnZlcnMoKTsKLSAgICByZXR1cm4gbV9jbGllbnQtPnJ1bkphdmFTY3JpcHRDb25maXJtKGZyYW1l
LCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKSk7CisgICAg
U3RyaW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5j
b2RpbmcobWVzc2FnZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmphdmFzY3Jp
cHREaWFsb2dPcGVuaW5nKG1fcGFnZSwgZGlzcGxheU1lc3NhZ2UpOworICAgIGJvb2wgb2sgPSBt
X2NsaWVudC0+cnVuSmF2YVNjcmlwdENvbmZpcm0oZnJhbWUsIGRpc3BsYXlNZXNzYWdlKTsKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmphdmFzY3JpcHREaWFsb2dDbG9zZWQobV9wYWdl
KTsKKyAgICByZXR1cm4gb2s7CiB9CiAKIGJvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0UHJvbXB0
KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVs
dFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKQEAgLTM0MCw3ICszNTIsMTEgQEAgYm9vbCBDaHJvbWU6
OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwg
Y29uc3QgU3RyaW4KIAogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5n
T2JzZXJ2ZXJzKCk7Ci0gICAgYm9vbCBvayA9IG1fY2xpZW50LT5ydW5KYXZhU2NyaXB0UHJvbXB0
KGZyYW1lLCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhwcm9tcHQpLCBm
cmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhkZWZhdWx0VmFsdWUpLCByZXN1
bHQpOworICAgIFN0cmluZyBkaXNwbGF5UHJvbXB0ID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2Rp
ZmllZEJ5RW5jb2RpbmcocHJvbXB0KTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
amF2YXNjcmlwdERpYWxvZ09wZW5pbmcobV9wYWdlLCBkaXNwbGF5UHJvbXB0KTsKKyAgICBib29s
IG9rID0gbV9jbGllbnQtPnJ1bkphdmFTY3JpcHRQcm9tcHQoZnJhbWUsIGRpc3BsYXlQcm9tcHQs
IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKGRlZmF1bHRWYWx1ZSksIHJl
c3VsdCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpqYXZhc2NyaXB0RGlhbG9nQ2xv
c2VkKG1fcGFnZSk7CiAKICAgICBpZiAob2spCiAgICAgICAgIHJlc3VsdCA9IGZyYW1lLT5kaXNw
bGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmgKaW5kZXggNGNjZmI1YTYzMjY2MTYz
ZmQwODIxNzhmNWNlZDIzNDExYTRjYzM0YS4uMWI1ZDRlZjA2MTZiM2YwYTQ5YWJjNmE5MzNmNDE0
ZTg5NjVkZjg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
RGV2VG9vbHNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRl
dlRvb2xzQWdlbnQuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6CiAgICAgZW51bSBCcm93c2Vy
RGF0YUhpbnQgewogICAgICAgICBCcm93c2VyRGF0YUhpbnROb25lID0gMCwKICAgICAgICAgQnJv
d3NlckRhdGFIaW50U2NyZWVuc2hvdCA9IDEsCisgICAgICAgIEJyb3dzZXJEYXRhSGludEFjY2Vw
dEphdmFTY3JpcHREaWFsb2cgPSAyLAorICAgICAgICBCcm93c2VyRGF0YUhpbnREaXNtaXNzSmF2
YVNjcmlwdERpYWxvZyA9IDMsCiAgICAgfTsKIAogICAgIHZpcnR1YWwgfldlYkRldlRvb2xzQWdl
bnQoKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9y
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGll
bnRJbXBsLmNwcAppbmRleCBlY2Y1Y2VjY2ZjMTg5NzI4YjA3ZWIyYWNlMGE0MDNhNDI1MDNjMjEz
Li4yYjYyZGQwMTdlMDRmMDdkMzRmYTVlNzhiMDljYzY1M2QwZjgwZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcApAQCAtMjA2
LDYgKzIwNiwxMyBAQCBib29sIEluc3BlY3RvckNsaWVudEltcGw6OmNhcHR1cmVTY3JlZW5zaG90
KFN0cmluZyogZGF0YSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgSW5zcGVjdG9yQ2xp
ZW50SW1wbDo6aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFjY2VwdCwgY29uc3QgU3RyaW5n
JiBwcm9tcHRUZXh0KQoreworICAgIGlmIChXZWJEZXZUb29sc0FnZW50SW1wbCogYWdlbnQgPSBk
ZXZUb29sc0FnZW50KCkpCisgICAgICAgIHJldHVybiBhZ2VudC0+aGFuZGxlSmF2YVNjcmlwdERp
YWxvZyhhY2NlcHQsIHByb21wdFRleHQpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogV2ViRGV2
VG9vbHNBZ2VudEltcGwqIEluc3BlY3RvckNsaWVudEltcGw6OmRldlRvb2xzQWdlbnQoKQogewog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJEZXZUb29sc0FnZW50SW1wbCo+KG1faW5zcGVjdGVk
V2ViVmlldy0+ZGV2VG9vbHNBZ2VudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0luc3BlY3RvckNsaWVudEltcGwuaAppbmRleCA4NzExOWUzOTM4NWFmMGFkMmMzZmQwNjA5
M2QxOWJkODRkYzMwOTk4Li4wZWI0Y2YxYjQzMzIwNWUyZTkwMjE2ZWIyZjZlNDg5MDUxODdkMjlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1w
bC5oCkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBjYXB0dXJl
U2NyZWVuc2hvdChXVEY6OlN0cmluZyogZGF0YSk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxl
SmF2YVNjcmlwdERpYWxvZyhib29sIGFjY2VwdCwgY29uc3QgV1RGOjpTdHJpbmcmIHByb21wdFRl
eHQpOworCiBwcml2YXRlOgogICAgIFdlYkRldlRvb2xzQWdlbnRJbXBsKiBkZXZUb29sc0FnZW50
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xz
QWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdl
bnRJbXBsLmNwcAppbmRleCBmNTQxNTJiZjM2MTJlYmI5ZTRkNWNmNmYzZTUwNjhkOGU5YTYyOGY2
Li4xNjA4MTM1OWRmMjlkOTQxNDUwMGJhZjU2YjFhODYzNGJjYjBhZGMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC04
Myw2ICs4Myw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBuYW1lc3BhY2UgQnJvd3NlckRhdGFI
aW50U3RyaW5nVmFsdWVzIHsKIHN0YXRpYyBjb25zdCBjaGFyIHNjcmVlbnNob3RbXSA9ICJzY3Jl
ZW5zaG90IjsKK3N0YXRpYyBjb25zdCBjaGFyIGFjY2VwdEphdmFTY3JpcHREaWFsb2dbXSA9ICJh
Y2NlcHRKYXZhU2NyaXB0RGlhbG9nIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRpc21pc3NKYXZhU2Ny
aXB0RGlhbG9nW10gPSAiZGlzbWlzc0phdmFTY3JpcHREaWFsb2ciOwogfQogCiBjbGFzcyBDbGll
bnRNZXNzYWdlTG9vcEFkYXB0ZXIgOiBwdWJsaWMgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpDbGll
bnRNZXNzYWdlTG9vcCB7CkBAIC01NzQsNyArNTc2LDcgQEAgdm9pZCBXZWJEZXZUb29sc0FnZW50
SW1wbDo6ZHVtcFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMoY29uc3QgSGFzaE1hcDxjb25zdCB2
b2kKICAgICBtX2NsaWVudC0+ZHVtcFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMoJnByb3ZpZGVy
KTsKIH0KIAotYm9vbCBXZWJEZXZUb29sc0FnZW50SW1wbDo6Y2FwdHVyZVNjcmVlbnNob3QoV1RG
OjpTdHJpbmcqIGRhdGEpCitib29sIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpjYXB0dXJlU2NyZWVu
c2hvdChTdHJpbmcqIGRhdGEpCiB7CiAgICAgLy8gVmFsdWUgaXMgZ29pbmcgdG8gYmUgc3Vic3Rp
dHV0ZWQgd2l0aCB0aGUgYWN0dWFsIGRhdGEgb24gdGhlIGJyb3dzZXIgbGV2ZWwuCiAgICAgKmRh
dGEgPSAie3NjcmVlbnNob3QtcGxhY2Vob2xkZXJ9IjsKQEAgLTU4Miw2ICs1ODQsMTQgQEAgYm9v
bCBXZWJEZXZUb29sc0FnZW50SW1wbDo6Y2FwdHVyZVNjcmVlbnNob3QoV1RGOjpTdHJpbmcqIGRh
dGEpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgV2ViRGV2VG9vbHNBZ2VudEltcGw6Omhh
bmRsZUphdmFTY3JpcHREaWFsb2coYm9vbCBhY2NlcHQsIGNvbnN0IFN0cmluZyYgcHJvbXB0VGV4
dCkKK3sKKyAgICAvLyBPcGVyYXRpb24gaXMgZ29pbmcgdG8gYmUgcGVyZm9ybWVkIG9uIHRoZSBi
cm93c2VyIGxldmVsLgorICAgIC8vIFRoZXJlJ3Mgbm90IGEgZ29vZCB3YXkgbm93IHRvIHBhc3Mg
cGFyYW1ldGVycyB0byB0aGUgYnJvd3NlciBsZXZlbCwgc28ganVzdCBpZ25vcmUgdGhlIHByb21w
dCB0ZXh0LgorICAgIG1fc2VuZFdpdGhCcm93c2VyRGF0YUhpbnQgPSBhY2NlcHQgPyBCcm93c2Vy
RGF0YUhpbnRBY2NlcHRKYXZhU2NyaXB0RGlhbG9nIDogQnJvd3NlckRhdGFIaW50RGlzbWlzc0ph
dmFTY3JpcHREaWFsb2c7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgV2ViRGV2VG9vbHNB
Z2VudEltcGw6OmRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kKGNvbnN0IFdlYlN0cmluZyYgbWVz
c2FnZSkKIHsKICAgICBpbnNwZWN0b3JDb250cm9sbGVyKCktPmRpc3BhdGNoTWVzc2FnZUZyb21G
cm9udGVuZChtZXNzYWdlKTsKQEAgLTY2MSw2ICs2NzEsMTAgQEAgc3RhdGljIFN0cmluZyBicm93
c2VySGludFRvU3RyaW5nKFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludCBkYXRhSGlu
dCkKICAgICBzd2l0Y2ggKGRhdGFIaW50KSB7CiAgICAgY2FzZSBXZWJEZXZUb29sc0FnZW50OjpC
cm93c2VyRGF0YUhpbnRTY3JlZW5zaG90OgogICAgICAgICByZXR1cm4gQnJvd3NlckRhdGFIaW50
U3RyaW5nVmFsdWVzOjpzY3JlZW5zaG90OworICAgIGNhc2UgV2ViRGV2VG9vbHNBZ2VudDo6QnJv
d3NlckRhdGFIaW50QWNjZXB0SmF2YVNjcmlwdERpYWxvZzoKKyAgICAgICAgcmV0dXJuIEJyb3dz
ZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6YWNjZXB0SmF2YVNjcmlwdERpYWxvZzsKKyAgICBjYXNl
IFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludERpc21pc3NKYXZhU2NyaXB0RGlhbG9n
OgorICAgICAgICByZXR1cm4gQnJvd3NlckRhdGFIaW50U3RyaW5nVmFsdWVzOjpkaXNtaXNzSmF2
YVNjcmlwdERpYWxvZzsKICAgICBjYXNlIFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGlu
dE5vbmU6CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02
NzIsNiArNjg2LDEwIEBAIHN0YXRpYyBXZWJEZXZUb29sc0FnZW50OjpCcm93c2VyRGF0YUhpbnQg
YnJvd3NlckhpbnRGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsCiB7CiAgICAgaWYgKHZhbHVl
ID09IEJyb3dzZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6c2NyZWVuc2hvdCkKICAgICAgICAgcmV0
dXJuIFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludFNjcmVlbnNob3Q7CisgICAgaWYg
KHZhbHVlID09IEJyb3dzZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6YWNjZXB0SmF2YVNjcmlwdERp
YWxvZykKKyAgICAgICAgcmV0dXJuIFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludEFj
Y2VwdEphdmFTY3JpcHREaWFsb2c7CisgICAgaWYgKHZhbHVlID09IEJyb3dzZXJEYXRhSGludFN0
cmluZ1ZhbHVlczo6ZGlzbWlzc0phdmFTY3JpcHREaWFsb2cpCisgICAgICAgIHJldHVybiBXZWJE
ZXZUb29sc0FnZW50OjpCcm93c2VyRGF0YUhpbnREaXNtaXNzSmF2YVNjcmlwdERpYWxvZzsKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gV2ViRGV2VG9vbHNBZ2VudDo6QnJv
d3NlckRhdGFIaW50Tm9uZTsKIH0KQEAgLTgyNyw2ICs4NDUsMTAgQEAgV2ViU3RyaW5nIFdlYkRl
dlRvb2xzQWdlbnQ6OnBhdGNoV2l0aEJyb3dzZXJEYXRhKGNvbnN0IFdlYlN0cmluZyYgbWVzc2Fn
ZSwgQnJvd3MKICAgICBjYXNlIEJyb3dzZXJEYXRhSGludFNjcmVlbnNob3Q6CiAgICAgICAgIHJl
c3VsdE9iamVjdC0+c2V0U3RyaW5nKCJkYXRhIiwgaGludERhdGEpOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIEJyb3dzZXJEYXRhSGludEFjY2VwdEphdmFTY3JpcHREaWFsb2c6CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQnJvd3NlckRhdGFIaW50RGlzbWlzc0phdmFTY3JpcHREaWFsb2c6
CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJvd3NlckRhdGFIaW50Tm9uZToKICAgICBkZWZh
dWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCmluZGV4IGZlMzQwZGQ3Nzg4ZGJi
YThhZTQxMjc1ZDBmOWY0MzJlNjQ3ZDg4MjAuLmI4MDgzYmM2ZTQ0YWNiNDNkYjEzM2UzNjcxOTlk
NzkzZjgyMmQ1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2
VG9vbHNBZ2VudEltcGwuaApAQCAtMTEzLDYgKzExMyw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgYm9vbCBjYXB0dXJlU2NyZWVuc2hvdChXVEY6OlN0cmluZyogZGF0YSk7CiAKKyAgICB2aXJ0
dWFsIGJvb2wgaGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFjY2VwdCwgY29uc3QgV1RGOjpT
dHJpbmcmIHByb21wdFRleHQpOworCiAgICAgaW50IGhvc3RJZCgpIHsgcmV0dXJuIG1faG9zdElk
OyB9CiAKICAgICAvLyBXZWJQYWdlT3ZlcmxheQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE1NWUxOGNlZjkwNTcxYjQyZDg2
YzFlZTg5Y2VkMGZlNGI4NjNmOWEuLjhlMWIyYjNmNjdjZDQ1MWVlZjA1NTRiOTE4YTAyYmFmZjM0
ODNmZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMS0zMCAgS2VuIEthbmlhICA8a2th
bmlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc3VwcG9ydCBm
b3IgaGFuZGxpbmcgbW9kYWwgZGlhbG9ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA3ODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIHN1cHBvcnQgZm9yIGJlaW5nIG5vdGlmaWVkIHdo
ZW4gYSBKYXZhU2NyaXB0IG1vZGFsIGRpYWxvZworICAgICAgICBpcyBvcGVuaW5nIGFuZCBjbG9z
aW5nLCBhcyB3ZWxsIGFzIGEgbmV3IGNvbW1hbmQgZm9yIGFjY2VwdGluZyBvcgorICAgICAgICBk
aXNtaXNzaW5nIHRoZSBkaWFsb2cuCisKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFn
ZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2ZW50cy5odG1sOiBBZGRl
ZC4KKwogMjAxMy0wMS0yOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXSBbV1RSXSBsYXlvdXRUZXN0Q29udHJvbGxlci5wYXRoVG9Mb2Nh
bFJlc291cmNlIG5lZWRzIHRvIGJlIHVwZGF0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9wYWdlL2phdmFzY3JpcHREaWFsb2dFdmVudHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2
ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTcyMGQ4Njg2ZDdjNTVkNzk3MzNlYmM0MTY4
ZmI5ZDM0MTg3MDk5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9wYWdlL2phdmFzY3JpcHREaWFsb2dFdmVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTMgQEAKK0NPTkZJUk0gTkFWSUdBVElPTjogYmVmb3JldW5sb2FkCitBTEVSVDogYWxlcnQK
K0NPTkZJUk06IGNvbmZpcm0KK1BST01QVDogcHJvbXB0LCBkZWZhdWx0IHRleHQ6IAorT3Blbmlu
ZyB3aXRoIG1lc3NhZ2U6IGJlZm9yZXVubG9hZAorQ2xvc2VkCitPcGVuaW5nIHdpdGggbWVzc2Fn
ZTogYWxlcnQKK0Nsb3NlZAorT3BlbmluZyB3aXRoIG1lc3NhZ2U6IGNvbmZpcm0KK0Nsb3NlZAor
T3BlbmluZyB3aXRoIG1lc3NhZ2U6IHByb21wdAorQ2xvc2VkCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2phdmFzY3JpcHREaWFsb2dFdmVudHMuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2phdmFzY3JpcHREaWFsb2dF
dmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yM2U2MGFkMmZhNzk3MjAzYjE3MjU5ZmM5NmYwMTcwYTdm
MDIyMDJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2ZW50cy5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2Fk
Iiwgb25CZWZvcmVVbmxvYWQpOworCitmdW5jdGlvbiBvbkJlZm9yZVVubG9hZCgpCit7CisgICAg
cmV0dXJuICJiZWZvcmV1bmxvYWQiOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5qYXZhc2NyaXB0RGlhbG9nT3BlbmluZyJdID0g
b25PcGVuaW5nOworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmphdmFzY3Jp
cHREaWFsb2dDbG9zZWQiXSA9IG9uQ2xvc2VkOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlBhZ2UuZW5hYmxlIiwge30pOworCisgICAgZnVuY3Rpb24gb25PcGVuaW5nKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIk9wZW5pbmcgd2l0aCBtZXNzYWdlOiAi
ICsgZXZlbnQucGFyYW1zLm1lc3NhZ2UpOworICAgIH0KKyAgICBmdW5jdGlvbiBvbkNsb3NlZCgp
CisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2xvc2VkIik7CisgICAgfQorCisg
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUGFnZS5uYXZpZ2F0ZSIsIHsgInVybCI6ICJu
b3N1Y2h1cmwiIH0pOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZh
bHVhdGUiLCB7ICJleHByZXNzaW9uIjogImFsZXJ0KCdhbGVydCcpIiB9KTsKKyAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyAiZXhwcmVzc2lvbiI6ICJj
b25maXJtKCdjb25maXJtJykiIH0pOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1
bnRpbWUuZXZhbHVhdGUiLCB7ICJleHByZXNzaW9uIjogInByb21wdCgncHJvbXB0JykiIH0sIG9u
RG9uZSk7CisKKyAgICBmdW5jdGlvbiBvbkRvbmUoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185791</attachid>
            <date>2013-01-31 08:41:27 -0800</date>
            <delta_ts>2013-01-31 10:12:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107883-20130131083810.patch</filename>
            <type>text/plain</type>
            <size>25850</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQ3ZDY5MTg0NjU3ODI3
Y2NjOTZmNTM1ZmVkYmQ2MmFmMDkwM2NiMi4uZDYwNWY1ODg1MTBiZDk3NjNlMGIyM2I2MTZjY2Vl
MjRiZTU0YWFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAxLTMxICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFk
ZCBzdXBwb3J0IGZvciBoYW5kbGluZyBtb2RhbCBkaWFsb2dzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2Ugc3VwcG9ydCBmb3IgYmVpbmcg
bm90aWZpZWQgd2hlbiBhIEphdmFTY3JpcHQgbW9kYWwgZGlhbG9nCisgICAgICAgIGlzIG9wZW5p
bmcgYW5kIGNsb3NpbmcsIGFzIHdlbGwgYXMgYSBuZXcgY29tbWFuZCBmb3IgYWNjZXB0aW5nIG9y
CisgICAgICAgIGRpc21pc3NpbmcgdGhlIGRpYWxvZy4KKworICAgICAgICBUZXN0OiBpbnNwZWN0
b3ItcHJvdG9jb2wvcGFnZS93aWxsUnVuSmF2YVNjcmlwdERpYWxvZy5odG1sCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50OjpoYW5kbGVKYXZh
U2NyaXB0RGlhbG9nKToKKyAgICAgICAgKEluc3BlY3RvckNsaWVudCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJ1bkphdmFT
Y3JpcHREaWFsb2dJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUnVuSmF2YVNjcmlwdERpYWxvZ0ltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxS
dW5KYXZhU2NyaXB0RGlhbG9nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSdW5KYXZhU2NyaXB0RGlhbG9nKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6d2lsbFJ1bkphdmFTY3JpcHREaWFsb2cpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZFJ1
bkphdmFTY3JpcHREaWFsb2cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50
OjpoYW5kbGVKYXZhU2NyaXB0RGlhbG9nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVN
b2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlzcGF0Y2hlci5wcm90b3R5cGUu
ZnJhbWVTdGFydGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNo
ZXIucHJvdG90eXBlLmZyYW1lU3RvcHBlZExvYWRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZS5mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZS5mcmFtZUNsZWFyZWRT
Y2hlZHVsZWROYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlzcGF0Y2hl
ci5wcm90b3R5cGUud2lsbFJ1bkphdmFTY3JpcHREaWFsb2cpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZS5kaWRSdW5KYXZhU2NyaXB0RGlhbG9nKToKKyAg
ICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkph
dmFTY3JpcHRBbGVydCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkphdmFTY3JpcHRD
b25maXJtKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdFByb21wdCk6
CisKIDIwMTMtMDEtMjggIFZsYWRpc2xhdiBLYXpuYWNoZWV2ICA8a2F6bmFjaGVldkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW5oZXJpdCBTaWRlYmFyUGFuZSBmcm9t
IFZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDFmNDFlOTg1OGRmZjkxNDk3NTU2
MWU0ODEyNTA2NDhkMGExYzgyZjkuLjMyNjEzMjk2ODAwN2JiYTQwN2Q0ZjUwMTIyNzQ3NjI2Yzhk
Y2ZmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTMt
MDEtMzEgIEtlbiBLYW5pYSAgPGtrYW5pYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogQWRkIHN1cHBvcnQgZm9yIGhhbmRsaW5nIG1vZGFsIGRpYWxvZ3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzg4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBzdXBwb3J0
IGZvciBiZWluZyBub3RpZmllZCB3aGVuIGEgSmF2YVNjcmlwdCBtb2RhbCBkaWFsb2cKKyAgICAg
ICAgaXMgb3BlbmluZyBhbmQgY2xvc2luZywgYXMgd2VsbCBhcyBhIG5ldyBjb21tYW5kIGZvciBh
Y2NlcHRpbmcgb3IKKyAgICAgICAgZGlzbWlzc2luZyB0aGUgZGlhbG9nLgorCisgICAgICAgICog
cHVibGljL1dlYkRldlRvb2xzQWdlbnQuaDoKKyAgICAgICAgKiBzcmMvSW5zcGVjdG9yQ2xpZW50
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudEltcGw6OmhhbmRsZUph
dmFTY3JpcHREaWFsb2cpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvSW5zcGVj
dG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoSW5zcGVjdG9yQ2xpZW50SW1wbCk6CisgICAgICAg
ICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAgKEJyb3dzZXJEYXRhSGlu
dFN0cmluZ1ZhbHVlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBsOjpj
YXB0dXJlU2NyZWVuc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBs
OjpoYW5kbGVKYXZhU2NyaXB0RGlhbG9nKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OmJyb3dzZXJIaW50VG9TdHJpbmcpOgorICAgICAgICAoV2ViS2l0Ojpicm93c2VySGlu
dEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50OjpwYXRjaFdp
dGhCcm93c2VyRGF0YSk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmg6Cisg
ICAgICAgIChXZWJEZXZUb29sc0FnZW50SW1wbCk6CisKIDIwMTMtMDEtMjggIE1pa2UgV2VzdCAg
PG1rd3N0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQgYnVp
bGQgZml4LCBtaXNzaW5nIGluY2x1ZGUgaW4gQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCBlYzAyN2UxYjE1ZDYwN2Q2Yjlm
ZDc3MGRjYWE1OTdhYzMxMWRmZDBhLi5jZmQ2MDVmYzIxMjUwZGU0Y2VkNzM4OTQyOWJiOGM5ZmIw
ZjQwZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC00ODAs
NiArNDgwLDE0IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJCYXNlNjQtZW5jb2RlZCBpbWFnZSBkYXRhIChQ
TkcpLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRy
dWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUi
OiAiaGFuZGxlSmF2YVNjcmlwdERpYWxvZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkFjY2VwdHMgb3IgZGlzbWlzc2VzIGEgSmF2YVNjcmlwdCBpbml0aWF0ZWQgZGlhbG9nIChh
bGVydCwgY29uZmlybSwgcHJvbXB0LCBvciBvbmJlZm9yZXVubG9hZCkuIiwKKyAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhY2Nl
cHQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIldoZXRoZXIgdG8gYWNjZXB0
IG9yIGRpc21pc3MgdGhlIGRpYWxvZy4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgICAgICJoaWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAg
ICJldmVudHMiOiBbCkBAIC01NDMsNiArNTUxLDE5IEBACiAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJkZXNjcmlwdGlv
biI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgY2xlYXJlZCBpdHMgc2NoZWR1bGVkIG5hdmln
YXRpb24uIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjog
dHJ1ZQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFt
ZSI6ICJ3aWxsUnVuSmF2YVNjcmlwdERpYWxvZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkZpcmVkIHdoZW4gYSBKYXZhU2NyaXB0IGluaXRpYXRlZCBkaWFsb2cgKGFsZXJ0LCBj
b25maXJtLCBwcm9tcHQsIG9yIG9uYmVmb3JldW5sb2FkKSBpcyBhYm91dCB0byBydW4uIiwKKyAg
ICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJtZXNzYWdlIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2Ug
dGhhdCB3aWxsIGJlIGRpc3BsYXllZCBieSB0aGUgZGlhbG9nLiIgfQorICAgICAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZGlkUnVuSmF2YVNjcmlwdERpYWxv
ZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gYSBKYXZhU2Ny
aXB0IGluaXRpYXRlZCBkaWFsb2cgKGFsZXJ0LCBjb25maXJtLCBwcm9tcHQsIG9yIG9uYmVmb3Jl
dW5sb2FkKSBoYXMgcnVuIGFuZCBiZWVuIGNsb3NlZC4iLAorICAgICAgICAgICAgICAgICJoaWRk
ZW4iOiB0cnVlCiAgICAgICAgICAgICB9CiAgICAgICAgIF0KICAgICB9LApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCmluZGV4IDBmMjhlYmM5MjU1OTk2ZWFiZjk1
MTNkNWUyMjczYmRkNGM4YTBjZmUuLmI5ZjhmNTYxMmY0N2Q1OTYzYWZhYjgyZGM3OWVmZjdmYmYz
NGM1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKQEAg
LTg2LDYgKzg2LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGNhcHR1cmVTY3JlZW5z
aG90KFN0cmluZyopIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxl
SmF2YVNjcmlwdERpYWxvZyhib29sKSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgc3RhdGljIGJv
b2wgZG9EaXNwYXRjaE1lc3NhZ2VPbkZyb250ZW5kUGFnZShQYWdlKiBmcm9udGVuZFBhZ2UsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDNhMWU3OWQ5ZTgzNGU1
NGUxYjZiZjgxZGEyZTY4Y2VmNzhlZGQ2M2EuLjAyNTc3ZDEzMWFkMGQyMWIxYWRiN2UyMmE0YzY4
MWRiNTAxZjgxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC05NzUsNiArOTc1LDE5IEBAIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uSW1wbChJ
bnN0cnVtZW50aW5nCiAgICAgICAgIGluc3BlY3RvclBhZ2VBZ2VudC0+ZnJhbWVDbGVhcmVkU2No
ZWR1bGVkTmF2aWdhdGlvbihmcmFtZSk7CiB9CiAKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSdW5KYXZhU2NyaXB0RGlhbG9nSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCit7CisgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAg
IGluc3BlY3RvclBhZ2VBZ2VudC0+d2lsbFJ1bkphdmFTY3JpcHREaWFsb2cobWVzc2FnZSk7Cisg
ICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZShpbnN0cnVtZW50aW5nQWdl
bnRzLCAwKTsKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJ1bkphdmFT
Y3JpcHREaWFsb2dJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYgY29v
a2llKQoreworICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCA9
IGNvb2tpZS5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAg
ICAgICBpbnNwZWN0b3JQYWdlQWdlbnQtPmRpZFJ1bkphdmFTY3JpcHREaWFsb2coKTsKK30KKwog
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEZXN0cm95Q2FjaGVkUmVzb3VyY2VJ
bXBsKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICAgICBpZiAoIWluc3RydW1l
bnRpbmdBZ2VudHNTZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggMzFiZjdlOWFiYmYxYzdiODUxM2YwOTBkNWFiY2Rm
NGEyNTJjMGJiNy4uMWZhOGRmYjNhMDZkMGMxNmM2YTUzOGY5ZTI1MjAwNjU0M2NkM2QyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaApAQCAtMjE1LDYgKzIxNSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBmcmFtZVN0
b3BwZWRMb2FkaW5nKEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZnJhbWVTY2hlZHVsZWROYXZp
Z2F0aW9uKEZyYW1lKiwgZG91YmxlIGRlbGF5KTsKICAgICBzdGF0aWMgdm9pZCBmcmFtZUNsZWFy
ZWRTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKik7CisgICAgc3RhdGljIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSB3aWxsUnVuSmF2YVNjcmlwdERpYWxvZyhQYWdlKiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRSdW5KYXZhU2NyaXB0RGlhbG9nKGNv
bnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyB2b2lkIHdp
bGxEZXN0cm95Q2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqKTsKIAogICAgIHN0YXRpYyBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFdyaXRlSFRNTChEb2N1bWVudCosIHVu
c2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpOwpAQCAtNDE4LDYgKzQy
MCw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZnJhbWVTdG9wcGVkTG9hZGluZ0ltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZnJhbWVTY2hl
ZHVsZWROYXZpZ2F0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqLCBkb3VibGUg
ZGVsYXkpOwogICAgIHN0YXRpYyB2b2lkIGZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb25J
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOworICAgIHN0YXRpYyBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUgd2lsbFJ1bkphdmFTY3JpcHREaWFsb2dJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHN0YXRpYyB2b2lkIGRp
ZFJ1bkphdmFTY3JpcHREaWFsb2dJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxEZXN0cm95Q2FjaGVkUmVzb3VyY2VJbXBsKENh
Y2hlZFJlc291cmNlKik7CiAKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIHdpbGxXcml0ZUhUTUxJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBpbnQg
bGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lLCBGcmFtZSopOwpAQCAtMTcxMiw2ICsxNzE2
LDMwIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVDbGVhcmVk
U2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSogZnJhCiAjZW5kaWYKIH0KIAoraW5saW5lIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxS
dW5KYXZhU2NyaXB0RGlhbG9nKFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sK
KyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKSk7CisgICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShw
YWdlKSkKKyAgICAgICAgcmV0dXJuIHdpbGxSdW5KYXZhU2NyaXB0RGlhbG9nSW1wbChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBtZXNzYWdlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwor
ICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlKTsKKyNlbmRpZgorICAgIHJldHVybiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUoKTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRSdW5KYXZhU2NyaXB0RGlhbG9nKGNvbnN0IEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSYgY29va2llKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRkFT
VF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKGNvb2tpZS5pc1ZhbGlk
KCkpCisgICAgICAgIGRpZFJ1bkphdmFTY3JpcHREaWFsb2dJbXBsKGNvb2tpZSk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShjb29raWUpOworI2VuZGlmCit9CisKIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggZDJiNzEw
ODE0MjU2ZThkN2Q2NTZmODg2MDdkNzFhNzQzNjE1N2JjNi4uY2I3MzI5NjJlZWVmZGIyOGExYjVh
ZjJhYjBiNTI1OWVlNjU2NjUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTkzNiw2ICs5MzYsMTYgQEAgdm9pZCBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqIGZyYW1lKQog
ICAgIG1fZnJvbnRlbmQtPmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oZnJhbWVJZChm
cmFtZSkpOwogfQogCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2lsbFJ1bkphdmFTY3JpcHRE
aWFsb2coY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIG1fZnJvbnRlbmQtPndpbGxSdW5K
YXZhU2NyaXB0RGlhbG9nKG1lc3NhZ2UpOworfQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
ZGlkUnVuSmF2YVNjcmlwdERpYWxvZygpCit7CisgICAgbV9mcm9udGVuZC0+ZGlkUnVuSmF2YVNj
cmlwdERpYWxvZygpOworfQorCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6YXBwbHlTY3JlZW5X
aWR0aE92ZXJyaWRlKGxvbmcqIHdpZHRoKQogewogICAgIGxvbmcgd2lkdGhPdmVycmlkZSA9IG1f
c3RhdGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbldpZHRoT3ZlcnJp
ZGUpOwpAQCAtMTIzNSw2ICsxMjQ1LDEyIEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpjYXB0
dXJlU2NyZWVuc2hvdChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIFN0cmluZyogZGF0CiAgICAg
ICAgICplcnJvclN0cmluZyA9ICJDb3VsZCBub3QgY2FwdHVyZSBzY3JlZW5zaG90IjsKIH0KIAor
dm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmhhbmRsZUphdmFTY3JpcHREaWFsb2coRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBib29sIGFjY2VwdCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LT5oYW5k
bGVKYXZhU2NyaXB0RGlhbG9nKGFjY2VwdCkpCisgICAgICAgICplcnJvclN0cmluZyA9ICJDb3Vs
ZCBub3QgaGFuZGxlIEphdmFTY3JpcHQgZGlhbG9nIjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCBkYzgyYTk3MDUzNDI5OGEwYzg5YzFi
Yzc0ZmRhOGNhMmE1YTIyMzRlLi4wZjlmZmQ2NmE0ZTE5NDVkMDRmNWNjMWJhNjFmNWViZjAxMDEx
MTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5o
CkBAIC0xMjYsNiArMTI2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRDb21wb3Np
dGluZ0JvcmRlcnNWaXNpYmxlKEVycm9yU3RyaW5nKiwgYm9vbCogb3V0X3BhcmFtKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZShFcnJvclN0cmluZyosIGJv
b2wpOwogICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJlU2NyZWVuc2hvdChFcnJvclN0cmluZyosIFN0
cmluZyogZGF0YSk7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUphdmFTY3JpcHREaWFsb2coRXJy
b3JTdHJpbmcqLCBib29sIGFjY2VwdCk7CiAKICAgICAvLyBHZW9sb2NhdGlvbiBvdmVycmlkZSBo
ZWxwZXJzLgogICAgIEdlb2xvY2F0aW9uUG9zaXRpb24qIG92ZXJyaWRlR2VvbG9jYXRpb25Qb3Np
dGlvbihHZW9sb2NhdGlvblBvc2l0aW9uKik7CkBAIC0xNDQsNiArMTQ1LDggQEAgcHVibGljOgog
ICAgIHZvaWQgZnJhbWVTdG9wcGVkTG9hZGluZyhGcmFtZSopOwogICAgIHZvaWQgZnJhbWVTY2hl
ZHVsZWROYXZpZ2F0aW9uKEZyYW1lKiwgZG91YmxlIGRlbGF5KTsKICAgICB2b2lkIGZyYW1lQ2xl
YXJlZFNjaGVkdWxlZE5hdmlnYXRpb24oRnJhbWUqKTsKKyAgICB2b2lkIHdpbGxSdW5KYXZhU2Ny
aXB0RGlhbG9nKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgdm9pZCBkaWRSdW5KYXZhU2Ny
aXB0RGlhbG9nKCk7CiAgICAgdm9pZCBhcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobG9uZyopOwog
ICAgIHZvaWQgYXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShsb25nKik7CiAgICAgdm9pZCBhcHBs
eUVtdWxhdGVkTWVkaWEoU3RyaW5nKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcwppbmRleCAwYTg3NmViZmMzYmJk
M2ZjOTRiZjExYTQxMGU4YTNjOTViZDM1OTdjLi5kNThmMmQ4NmZlY2ViZjg2NjI4OTdmNzlhZDhl
ZjljZGI4Y2ExYzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKQEAgLTYwMywxNiArNjAzLDI4IEBAIFdlYklu
c3BlY3Rvci5QYWdlRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Jlc291
cmNlVHJlZU1vZGVsLl9mcmFtZURldGFjaGVkKGZyYW1lSWQpOwogICAgIH0sCiAKLSAgICBmcmFt
ZVN0YXJ0ZWRMb2FkaW5nOiBmdW5jdGlvbihmcmFtZUlkKSB7CisgICAgZnJhbWVTdGFydGVkTG9h
ZGluZzogZnVuY3Rpb24oZnJhbWVJZCkKKyAgICB7CisgICAgfSwKKworICAgIGZyYW1lU3RvcHBl
ZExvYWRpbmc6IGZ1bmN0aW9uKGZyYW1lSWQpCisgICAgeworICAgIH0sCisKKyAgICBmcmFtZVNj
aGVkdWxlZE5hdmlnYXRpb246IGZ1bmN0aW9uKGZyYW1lSWQsIGRlbGF5KQorICAgIHsKICAgICB9
LAogCi0gICAgZnJhbWVTdG9wcGVkTG9hZGluZzogZnVuY3Rpb24oZnJhbWVJZCkgeworICAgIGZy
YW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb246IGZ1bmN0aW9uKGZyYW1lSWQpCisgICAgewog
ICAgIH0sCiAKLSAgICBmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb246IGZ1bmN0aW9uKGZyYW1lSWQs
IGRlbGF5KSB7CisgICAgd2lsbFJ1bkphdmFTY3JpcHREaWFsb2c6IGZ1bmN0aW9uKG1lc3NhZ2Up
CisgICAgewogICAgIH0sCiAKLSAgICBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uOiBm
dW5jdGlvbihmcmFtZUlkKSB7CisgICAgZGlkUnVuSmF2YVNjcmlwdERpYWxvZzogZnVuY3Rpb24o
KQorICAgIHsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCA4NGRmY2I0MjMy
N2MwODMwMDFhNTU0NGVmOGM3NTI5YzJlMzgzNDJjLi44NWE5NzU1MmFkZjUxZmZjNTdhZDRkYmI1
MGMwMjExNmYxNGU0YzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0yOTMsNyArMjkzLDEw
IEBAIGJvb2wgQ2hyb21lOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBGcmFtZSogZnJhbWUpCiAgICAgLy8gb3RoZXJ3aXNlIGNhdXNlIHRoZSBsb2Fk
IHRvIGNvbnRpbnVlIHdoaWxlIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgZXhlY3V0aW5nIEphdmFT
Y3JpcHQuCiAgICAgUGFnZUdyb3VwTG9hZERlZmVycmVyIGRlZmVycmVyKG1fcGFnZSwgdHJ1ZSk7
CiAKLSAgICByZXR1cm4gbV9jbGllbnQtPnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChtZXNz
YWdlLCBmcmFtZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJ1bkphdmFTY3JpcHREaWFsb2cobV9wYWdl
LCBtZXNzYWdlKTsKKyAgICBib29sIG9rID0gbV9jbGllbnQtPnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbChtZXNzYWdlLCBmcmFtZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRSdW5KYXZhU2NyaXB0RGlhbG9nKGNvb2tpZSk7CisgICAgcmV0dXJuIG9rOwogfQogCiB2b2lk
IENocm9tZTo6Y2xvc2VXaW5kb3dTb29uKCkKQEAgLTMxMiw3ICszMTUsMTEgQEAgdm9pZCBDaHJv
bWU6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKIAogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJz
KCk7Ci0gICAgbV9jbGllbnQtPnJ1bkphdmFTY3JpcHRBbGVydChmcmFtZSwgZnJhbWUtPmRpc3Bs
YXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSkpOworICAgIFN0cmluZyBkaXNwbGF5
TWVzc2FnZSA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2Up
OworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbFJ1bkphdmFTY3JpcHREaWFsb2cobV9wYWdlLCBkaXNwbGF5
TWVzc2FnZSk7CisgICAgbV9jbGllbnQtPnJ1bkphdmFTY3JpcHRBbGVydChmcmFtZSwgZGlzcGxh
eU1lc3NhZ2UpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUnVuSmF2YVNjcmlw
dERpYWxvZyhjb29raWUpOwogfQogCiBib29sIENocm9tZTo6cnVuSmF2YVNjcmlwdENvbmZpcm0o
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0zMjYsNyArMzMzLDEyIEBA
IGJvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKIAogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgbm90aWZ5UG9wdXBPcGVu
aW5nT2JzZXJ2ZXJzKCk7Ci0gICAgcmV0dXJuIG1fY2xpZW50LT5ydW5KYXZhU2NyaXB0Q29uZmly
bShmcmFtZSwgZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSkp
OworICAgIFN0cmluZyBkaXNwbGF5TWVzc2FnZSA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZp
ZWRCeUVuY29kaW5nKG1lc3NhZ2UpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJ1bkphdmFTY3JpcHRE
aWFsb2cobV9wYWdlLCBkaXNwbGF5TWVzc2FnZSk7CisgICAgYm9vbCBvayA9IG1fY2xpZW50LT5y
dW5KYXZhU2NyaXB0Q29uZmlybShmcmFtZSwgZGlzcGxheU1lc3NhZ2UpOworICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUnVuSmF2YVNjcmlwdERpYWxvZyhjb29raWUpOworICAgIHJl
dHVybiBvazsKIH0KIAogYm9vbCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZy
YW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0
cmluZyYgcmVzdWx0KQpAQCAtMzQwLDcgKzM1MiwxMSBAQCBib29sIENocm9tZTo6cnVuSmF2YVNj
cmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0LCBjb25zdCBTdHJp
bgogCiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMo
KTsKLSAgICBib29sIG9rID0gbV9jbGllbnQtPnJ1bkphdmFTY3JpcHRQcm9tcHQoZnJhbWUsIGZy
YW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHByb21wdCksIGZyYW1lLT5kaXNw
bGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKGRlZmF1bHRWYWx1ZSksIHJlc3VsdCk7CisgICAg
U3RyaW5nIGRpc3BsYXlQcm9tcHQgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNv
ZGluZyhwcm9tcHQpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tp
ZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJ1bkphdmFTY3JpcHREaWFsb2cobV9w
YWdlLCBkaXNwbGF5UHJvbXB0KTsKKyAgICBib29sIG9rID0gbV9jbGllbnQtPnJ1bkphdmFTY3Jp
cHRQcm9tcHQoZnJhbWUsIGRpc3BsYXlQcm9tcHQsIGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZp
ZWRCeUVuY29kaW5nKGRlZmF1bHRWYWx1ZSksIHJlc3VsdCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRSdW5KYXZhU2NyaXB0RGlhbG9nKGNvb2tpZSk7CiAKICAgICBpZiAob2sp
CiAgICAgICAgIHJlc3VsdCA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5n
KHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJE
ZXZUb29sc0FnZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29s
c0FnZW50LmgKaW5kZXggNGNjZmI1YTYzMjY2MTYzZmQwODIxNzhmNWNlZDIzNDExYTRjYzM0YS4u
ZjJmMDYwZjAzMGE1ZjRhNjJlMTQ5Nzk4ODI0ZTgyMTU2MWFlMTAzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaApAQCAtNTEsOCArNTEs
MTAgQEAgY2xhc3MgV2ViRGV2VG9vbHNBZ2VudCB7CiBwdWJsaWM6CiAgICAgLy8gSGludCBmb3Ig
dGhlIGJyb3dzZXIgb24gdGhlIGRhdGEgaXQgc2hvdWxkIHByZXBhcmUgZm9yIG1lc3NhZ2UgcGF0
Y2hpbmcuCiAgICAgZW51bSBCcm93c2VyRGF0YUhpbnQgewotICAgICAgICBCcm93c2VyRGF0YUhp
bnROb25lID0gMCwKLSAgICAgICAgQnJvd3NlckRhdGFIaW50U2NyZWVuc2hvdCA9IDEsCisgICAg
ICAgIEJyb3dzZXJEYXRhSGludE5vbmUsCisgICAgICAgIEJyb3dzZXJEYXRhSGludFNjcmVlbnNo
b3QsCisgICAgICAgIEJyb3dzZXJEYXRhSGludEFjY2VwdEphdmFTY3JpcHREaWFsb2csCisgICAg
ICAgIEJyb3dzZXJEYXRhSGludERpc21pc3NKYXZhU2NyaXB0RGlhbG9nLAogICAgIH07CiAKICAg
ICB2aXJ0dWFsIH5XZWJEZXZUb29sc0FnZW50KCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAKaW5kZXggZWNmNWNlY2NmYzE4OTcy
OGIwN2ViMmFjZTBhNDAzYTQyNTAzYzIxMy4uM2NmYmMyNjQ4NjAxODgyNDczYzAwMDdlYTU2OTFi
ZmUxMWNlYTY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVj
dG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVj
dG9yQ2xpZW50SW1wbC5jcHAKQEAgLTIwNiw2ICsyMDYsMTMgQEAgYm9vbCBJbnNwZWN0b3JDbGll
bnRJbXBsOjpjYXB0dXJlU2NyZWVuc2hvdChTdHJpbmcqIGRhdGEpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCitib29sIEluc3BlY3RvckNsaWVudEltcGw6OmhhbmRsZUphdmFTY3JpcHREaWFsb2co
Ym9vbCBhY2NlcHQpCit7CisgICAgaWYgKFdlYkRldlRvb2xzQWdlbnRJbXBsKiBhZ2VudCA9IGRl
dlRvb2xzQWdlbnQoKSkKKyAgICAgICAgcmV0dXJuIGFnZW50LT5oYW5kbGVKYXZhU2NyaXB0RGlh
bG9nKGFjY2VwdCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBXZWJEZXZUb29sc0FnZW50SW1w
bCogSW5zcGVjdG9yQ2xpZW50SW1wbDo6ZGV2VG9vbHNBZ2VudCgpCiB7CiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFdlYkRldlRvb2xzQWdlbnRJbXBsKj4obV9pbnNwZWN0ZWRXZWJWaWV3LT5kZXZU
b29sc0FnZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5z
cGVjdG9yQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9y
Q2xpZW50SW1wbC5oCmluZGV4IDg3MTE5ZTM5Mzg1YWYwYWQyYzNmZDA2MDkzZDE5YmQ4NGRjMzA5
OTguLmQxNzNmY2EyN2UwNTJiODM0NDEyZjg0Yzg1MjY1ZTUxODYzMGYzOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmgKQEAgLTg5LDYg
Kzg5LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGNhcHR1cmVTY3JlZW5zaG90KFdU
Rjo6U3RyaW5nKiBkYXRhKTsKIAorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVKYXZhU2NyaXB0RGlh
bG9nKGJvb2wgYWNjZXB0KTsKKwogcHJpdmF0ZToKICAgICBXZWJEZXZUb29sc0FnZW50SW1wbCog
ZGV2VG9vbHNBZ2VudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKaW5kZXggZjU0MTUyYmYzNjEyZWJiOWU0ZDVjZjZmM2U1
MDY4ZDhlOWE2MjhmNi4uNGVhNDYwYTEwYjYwODkxY2E1ZWVlY2RhYThmMzczNTU5Y2U4MThiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJ
bXBsLmNwcApAQCAtODMsNiArODMsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogbmFtZXNwYWNl
IEJyb3dzZXJEYXRhSGludFN0cmluZ1ZhbHVlcyB7CiBzdGF0aWMgY29uc3QgY2hhciBzY3JlZW5z
aG90W10gPSAic2NyZWVuc2hvdCI7CitzdGF0aWMgY29uc3QgY2hhciBhY2NlcHRKYXZhU2NyaXB0
RGlhbG9nW10gPSAiYWNjZXB0SmF2YVNjcmlwdERpYWxvZyI7CitzdGF0aWMgY29uc3QgY2hhciBk
aXNtaXNzSmF2YVNjcmlwdERpYWxvZ1tdID0gImRpc21pc3NKYXZhU2NyaXB0RGlhbG9nIjsKIH0K
IAogY2xhc3MgQ2xpZW50TWVzc2FnZUxvb3BBZGFwdGVyIDogcHVibGljIFBhZ2VTY3JpcHREZWJ1
Z1NlcnZlcjo6Q2xpZW50TWVzc2FnZUxvb3AgewpAQCAtNTc0LDE0ICs1NzYsMjEgQEAgdm9pZCBX
ZWJEZXZUb29sc0FnZW50SW1wbDo6ZHVtcFVuY291bnRlZEFsbG9jYXRlZE9iamVjdHMoY29uc3Qg
SGFzaE1hcDxjb25zdCB2b2kKICAgICBtX2NsaWVudC0+ZHVtcFVuY291bnRlZEFsbG9jYXRlZE9i
amVjdHMoJnByb3ZpZGVyKTsKIH0KIAotYm9vbCBXZWJEZXZUb29sc0FnZW50SW1wbDo6Y2FwdHVy
ZVNjcmVlbnNob3QoV1RGOjpTdHJpbmcqIGRhdGEpCitib29sIFdlYkRldlRvb2xzQWdlbnRJbXBs
OjpjYXB0dXJlU2NyZWVuc2hvdChTdHJpbmcqIGRhdGEpCiB7Ci0gICAgLy8gVmFsdWUgaXMgZ29p
bmcgdG8gYmUgc3Vic3RpdHV0ZWQgd2l0aCB0aGUgYWN0dWFsIGRhdGEgb24gdGhlIGJyb3dzZXIg
bGV2ZWwuCisgICAgLy8gVmFsdWUgaXMgZ29pbmcgdG8gYmUgc3Vic3RpdHV0ZWQgd2l0aCB0aGUg
YWN0dWFsIGRhdGEgaW4gdGhlIGJyb3dzZXIgcHJvY2Vzcy4KICAgICAqZGF0YSA9ICJ7c2NyZWVu
c2hvdC1wbGFjZWhvbGRlcn0iOwogICAgIG1fc2VuZFdpdGhCcm93c2VyRGF0YUhpbnQgPSBCcm93
c2VyRGF0YUhpbnRTY3JlZW5zaG90OwogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFdlYkRl
dlRvb2xzQWdlbnRJbXBsOjpoYW5kbGVKYXZhU2NyaXB0RGlhbG9nKGJvb2wgYWNjZXB0KQorewor
ICAgIC8vIE9wZXJhdGlvbiBpcyBnb2luZyB0byBiZSBwZXJmb3JtZWQgaW4gdGhlIGJyb3dzZXIg
cHJvY2Vzcy4KKyAgICBtX3NlbmRXaXRoQnJvd3NlckRhdGFIaW50ID0gYWNjZXB0ID8gQnJvd3Nl
ckRhdGFIaW50QWNjZXB0SmF2YVNjcmlwdERpYWxvZyA6IEJyb3dzZXJEYXRhSGludERpc21pc3NK
YXZhU2NyaXB0RGlhbG9nOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFdlYkRldlRvb2xz
QWdlbnRJbXBsOjpkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcmIG1l
c3NhZ2UpCiB7CiAgICAgaW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNwYXRjaE1lc3NhZ2VGcm9t
RnJvbnRlbmQobWVzc2FnZSk7CkBAIC02NjEsNiArNjcwLDEwIEBAIHN0YXRpYyBTdHJpbmcgYnJv
d3NlckhpbnRUb1N0cmluZyhXZWJEZXZUb29sc0FnZW50OjpCcm93c2VyRGF0YUhpbnQgZGF0YUhp
bnQpCiAgICAgc3dpdGNoIChkYXRhSGludCkgewogICAgIGNhc2UgV2ViRGV2VG9vbHNBZ2VudDo6
QnJvd3NlckRhdGFIaW50U2NyZWVuc2hvdDoKICAgICAgICAgcmV0dXJuIEJyb3dzZXJEYXRhSGlu
dFN0cmluZ1ZhbHVlczo6c2NyZWVuc2hvdDsKKyAgICBjYXNlIFdlYkRldlRvb2xzQWdlbnQ6OkJy
b3dzZXJEYXRhSGludEFjY2VwdEphdmFTY3JpcHREaWFsb2c6CisgICAgICAgIHJldHVybiBCcm93
c2VyRGF0YUhpbnRTdHJpbmdWYWx1ZXM6OmFjY2VwdEphdmFTY3JpcHREaWFsb2c7CisgICAgY2Fz
ZSBXZWJEZXZUb29sc0FnZW50OjpCcm93c2VyRGF0YUhpbnREaXNtaXNzSmF2YVNjcmlwdERpYWxv
ZzoKKyAgICAgICAgcmV0dXJuIEJyb3dzZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6ZGlzbWlzc0ph
dmFTY3JpcHREaWFsb2c7CiAgICAgY2FzZSBXZWJEZXZUb29sc0FnZW50OjpCcm93c2VyRGF0YUhp
bnROb25lOgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
NjcyLDYgKzY4NSwxMCBAQCBzdGF0aWMgV2ViRGV2VG9vbHNBZ2VudDo6QnJvd3NlckRhdGFIaW50
IGJyb3dzZXJIaW50RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbAogewogICAgIGlmICh2YWx1
ZSA9PSBCcm93c2VyRGF0YUhpbnRTdHJpbmdWYWx1ZXM6OnNjcmVlbnNob3QpCiAgICAgICAgIHJl
dHVybiBXZWJEZXZUb29sc0FnZW50OjpCcm93c2VyRGF0YUhpbnRTY3JlZW5zaG90OworICAgIGlm
ICh2YWx1ZSA9PSBCcm93c2VyRGF0YUhpbnRTdHJpbmdWYWx1ZXM6OmFjY2VwdEphdmFTY3JpcHRE
aWFsb2cpCisgICAgICAgIHJldHVybiBXZWJEZXZUb29sc0FnZW50OjpCcm93c2VyRGF0YUhpbnRB
Y2NlcHRKYXZhU2NyaXB0RGlhbG9nOworICAgIGlmICh2YWx1ZSA9PSBCcm93c2VyRGF0YUhpbnRT
dHJpbmdWYWx1ZXM6OmRpc21pc3NKYXZhU2NyaXB0RGlhbG9nKQorICAgICAgICByZXR1cm4gV2Vi
RGV2VG9vbHNBZ2VudDo6QnJvd3NlckRhdGFIaW50RGlzbWlzc0phdmFTY3JpcHREaWFsb2c7CiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFdlYkRldlRvb2xzQWdlbnQ6OkJy
b3dzZXJEYXRhSGludE5vbmU7CiB9CkBAIC04MjcsNiArODQ0LDEwIEBAIFdlYlN0cmluZyBXZWJE
ZXZUb29sc0FnZW50OjpwYXRjaFdpdGhCcm93c2VyRGF0YShjb25zdCBXZWJTdHJpbmcmIG1lc3Nh
Z2UsIEJyb3dzCiAgICAgY2FzZSBCcm93c2VyRGF0YUhpbnRTY3JlZW5zaG90OgogICAgICAgICBy
ZXN1bHRPYmplY3QtPnNldFN0cmluZygiZGF0YSIsIGhpbnREYXRhKTsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBCcm93c2VyRGF0YUhpbnRBY2NlcHRKYXZhU2NyaXB0RGlhbG9nOgorICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJyb3dzZXJEYXRhSGludERpc21pc3NKYXZhU2NyaXB0RGlhbG9n
OgorICAgICAgICBicmVhazsKICAgICBjYXNlIEJyb3dzZXJEYXRhSGludE5vbmU6CiAgICAgZGVm
YXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaAppbmRleCBmZTM0MGRkNzc4OGRi
YmE4YWU0MTI3NWQwZjlmNDMyZTY0N2Q4ODIwLi41ZThmMjQ1OTRjNGJjNDQyZmRlZjJkZDMwMjM5
MTM3Y2EyNGZiYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJE
ZXZUb29sc0FnZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIGJvb2wgY2FwdHVyZVNjcmVlbnNob3QoV1RGOjpTdHJpbmcqIGRhdGEpOwogCisgICAgdmly
dHVhbCBib29sIGhhbmRsZUphdmFTY3JpcHREaWFsb2coYm9vbCBhY2NlcHQpOworCiAgICAgaW50
IGhvc3RJZCgpIHsgcmV0dXJuIG1faG9zdElkOyB9CiAKICAgICAvLyBXZWJQYWdlT3ZlcmxheQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDE1NWUxOGNlZjkwNTcxYjQyZDg2YzFlZTg5Y2VkMGZlNGI4NjNmOWEuLjFkNzcyZjRl
ZjBkNjJiMTZjZmI0N2RjY2ZmYTgxN2M1NzAyZGExNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxMy0wMS0zMSAgS2VuIEthbmlhICA8a2thbmlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBBZGQgc3VwcG9ydCBmb3IgaGFuZGxpbmcgbW9kYWwgZGlhbG9ncworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3ODgzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIHN1
cHBvcnQgZm9yIGJlaW5nIG5vdGlmaWVkIHdoZW4gYSBKYXZhU2NyaXB0IG1vZGFsIGRpYWxvZwor
ICAgICAgICBpcyBvcGVuaW5nIGFuZCBjbG9zaW5nLCBhcyB3ZWxsIGFzIGEgbmV3IGNvbW1hbmQg
Zm9yIGFjY2VwdGluZyBvcgorICAgICAgICBkaXNtaXNzaW5nIHRoZSBkaWFsb2cuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS93aWxsUnVuSmF2YVNjcmlwdERpYWxvZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9wYWdlL3dpbGxS
dW5KYXZhU2NyaXB0RGlhbG9nLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAxLTI4ICBNYW51ZWwgUmVn
byBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFtXVFJdIGxh
eW91dFRlc3RDb250cm9sbGVyLnBhdGhUb0xvY2FsUmVzb3VyY2UgbmVlZHMgdG8gYmUgdXBkYXRl
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2Uvd2lsbFJ1
bkphdmFTY3JpcHREaWFsb2ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2Uvd2lsbFJ1bkphdmFTY3JpcHREaWFsb2ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU3ZjM1NjhhZjQ3YThmYWFhNTRlZGQxNzQ2ZjI4YjE3MWQxOWJhY2MKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS93aWxsUnVuSmF2YVNj
cmlwdERpYWxvZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09ORklSTSBOQVZJR0FU
SU9OOiBiZWZvcmV1bmxvYWQKK0FMRVJUOiBhbGVydAorQ09ORklSTTogY29uZmlybQorUFJPTVBU
OiBwcm9tcHQsIGRlZmF1bHQgdGV4dDogCitXaWxsIHJ1biB3aXRoIG1lc3NhZ2U6IGJlZm9yZXVu
bG9hZAorRGlkIHJ1bgorV2lsbCBydW4gd2l0aCBtZXNzYWdlOiBhbGVydAorRGlkIHJ1bgorV2ls
bCBydW4gd2l0aCBtZXNzYWdlOiBjb25maXJtCitEaWQgcnVuCitXaWxsIHJ1biB3aXRoIG1lc3Nh
Z2U6IHByb21wdAorRGlkIHJ1bgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvcGFnZS93aWxsUnVuSmF2YVNjcmlwdERpYWxvZy5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL3BhZ2Uvd2lsbFJ1bkphdmFTY3JpcHREaWFsb2cuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YTQ4NWU2ODJmMTg1NGQ0NjEwZjUwNzFhMDQyNmIxNDczMDhmODcwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2Uvd2lsbFJ1bkph
dmFTY3JpcHREaWFsb2cuaHRtbApAQCAtMCwwICsxLDQzIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsIG9uQmVmb3JlVW5s
b2FkKTsKKworZnVuY3Rpb24gb25CZWZvcmVVbmxvYWQoKQoreworICAgIHJldHVybiAiYmVmb3Jl
dW5sb2FkIjsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVu
dEhhbmRsZXJbIlBhZ2Uud2lsbFJ1bkphdmFTY3JpcHREaWFsb2ciXSA9IG9uV2lsbFJ1bjsKKyAg
ICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5kaWRSdW5KYXZhU2NyaXB0RGlhbG9n
Il0gPSBvbkRpZFJ1bjsKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQYWdlLmVuYWJs
ZSIsIHt9KTsKKworICAgIGZ1bmN0aW9uIG9uV2lsbFJ1bihldmVudCkKKyAgICB7CisgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJXaWxsIHJ1biB3aXRoIG1lc3NhZ2U6ICIgKyBldmVudC5wYXJh
bXMubWVzc2FnZSk7CisgICAgfQorICAgIGZ1bmN0aW9uIG9uRGlkUnVuKCkKKyAgICB7CisgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJEaWQgcnVuIik7CisgICAgfQorCisgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiUGFnZS5uYXZpZ2F0ZSIsIHsgInVybCI6ICJub3N1Y2h1cmwiIH0p
OworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ICJl
eHByZXNzaW9uIjogImFsZXJ0KCdhbGVydCcpIiB9KTsKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyAiZXhwcmVzc2lvbiI6ICJjb25maXJtKCdjb25m
aXJtJykiIH0pOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVh
dGUiLCB7ICJleHByZXNzaW9uIjogInByb21wdCgncHJvbXB0JykiIH0sIG9uRG9uZSk7CisKKyAg
ICBmdW5jdGlvbiBvbkRvbmUoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185803</attachid>
            <date>2013-01-31 10:12:40 -0800</date>
            <delta_ts>2013-02-01 00:51:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107883-20130131100924.patch</filename>
            <type>text/plain</type>
            <size>25825</size>
            <attacher name="Ken Kania">kkania</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQ3ZDY5MTg0NjU3ODI3
Y2NjOTZmNTM1ZmVkYmQ2MmFmMDkwM2NiMi4uZjg5ZWE4MGNlZDJmYWRjOGEyNTJmOTkxZjIzOWJm
ODI5NGIzZmQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAxLTMxICBLZW4g
S2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFk
ZCBzdXBwb3J0IGZvciBoYW5kbGluZyBtb2RhbCBkaWFsb2dzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2Ugc3VwcG9ydCBmb3IgYmVpbmcg
bm90aWZpZWQgd2hlbiBhIEphdmFTY3JpcHQgbW9kYWwgZGlhbG9nCisgICAgICAgIGlzIG9wZW5p
bmcgYW5kIGNsb3NpbmcsIGFzIHdlbGwgYXMgYSBuZXcgY29tbWFuZCBmb3IgYWNjZXB0aW5nIG9y
CisgICAgICAgIGRpc21pc3NpbmcgdGhlIGRpYWxvZy4KKworICAgICAgICBUZXN0OiBpbnNwZWN0
b3ItcHJvdG9jb2wvcGFnZS93aWxsUnVuSmF2YVNjcmlwdERpYWxvZy5odG1sCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50OjpoYW5kbGVKYXZh
U2NyaXB0RGlhbG9nKToKKyAgICAgICAgKEluc3BlY3RvckNsaWVudCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJ1bkphdmFT
Y3JpcHREaWFsb2dJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUnVuSmF2YVNjcmlwdERpYWxvZ0ltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxS
dW5KYXZhU2NyaXB0RGlhbG9nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSdW5KYXZhU2NyaXB0RGlhbG9nKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6d2lsbFJ1bkphdmFTY3JpcHREaWFsb2cpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZFJ1
bkphdmFTY3JpcHREaWFsb2cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50
OjpoYW5kbGVKYXZhU2NyaXB0RGlhbG9nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVN
b2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlzcGF0Y2hlci5wcm90b3R5cGUu
ZnJhbWVTdGFydGVkTG9hZGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNo
ZXIucHJvdG90eXBlLmZyYW1lU3RvcHBlZExvYWRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZS5mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZS5mcmFtZUNsZWFyZWRT
Y2hlZHVsZWROYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYWdlRGlzcGF0Y2hl
ci5wcm90b3R5cGUuamF2YXNjcmlwdERpYWxvZ09wZW5pbmcpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZS5qYXZhc2NyaXB0RGlhbG9nQ2xvc2VkKToKKyAg
ICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkph
dmFTY3JpcHRBbGVydCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkphdmFTY3JpcHRD
b25maXJtKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdFByb21wdCk6
CisKIDIwMTMtMDEtMjggIFZsYWRpc2xhdiBLYXpuYWNoZWV2ICA8a2F6bmFjaGVldkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW5oZXJpdCBTaWRlYmFyUGFuZSBmcm9t
IFZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDFmNDFlOTg1OGRmZjkxNDk3NTU2
MWU0ODEyNTA2NDhkMGExYzgyZjkuLjMyNjEzMjk2ODAwN2JiYTQwN2Q0ZjUwMTIyNzQ3NjI2Yzhk
Y2ZmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTMt
MDEtMzEgIEtlbiBLYW5pYSAgPGtrYW5pYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogQWRkIHN1cHBvcnQgZm9yIGhhbmRsaW5nIG1vZGFsIGRpYWxvZ3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzg4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBzdXBwb3J0
IGZvciBiZWluZyBub3RpZmllZCB3aGVuIGEgSmF2YVNjcmlwdCBtb2RhbCBkaWFsb2cKKyAgICAg
ICAgaXMgb3BlbmluZyBhbmQgY2xvc2luZywgYXMgd2VsbCBhcyBhIG5ldyBjb21tYW5kIGZvciBh
Y2NlcHRpbmcgb3IKKyAgICAgICAgZGlzbWlzc2luZyB0aGUgZGlhbG9nLgorCisgICAgICAgICog
cHVibGljL1dlYkRldlRvb2xzQWdlbnQuaDoKKyAgICAgICAgKiBzcmMvSW5zcGVjdG9yQ2xpZW50
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudEltcGw6OmhhbmRsZUph
dmFTY3JpcHREaWFsb2cpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvSW5zcGVj
dG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoSW5zcGVjdG9yQ2xpZW50SW1wbCk6CisgICAgICAg
ICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAgKEJyb3dzZXJEYXRhSGlu
dFN0cmluZ1ZhbHVlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBsOjpj
YXB0dXJlU2NyZWVuc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBs
OjpoYW5kbGVKYXZhU2NyaXB0RGlhbG9nKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OmJyb3dzZXJIaW50VG9TdHJpbmcpOgorICAgICAgICAoV2ViS2l0Ojpicm93c2VySGlu
dEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50OjpwYXRjaFdp
dGhCcm93c2VyRGF0YSk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmg6Cisg
ICAgICAgIChXZWJEZXZUb29sc0FnZW50SW1wbCk6CisKIDIwMTMtMDEtMjggIE1pa2UgV2VzdCAg
PG1rd3N0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQgYnVp
bGQgZml4LCBtaXNzaW5nIGluY2x1ZGUgaW4gQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCBlYzAyN2UxYjE1ZDYwN2Q2Yjlm
ZDc3MGRjYWE1OTdhYzMxMWRmZDBhLi4yZTA5YzgwZjUzNTNlMjc3NmRlNjZhOWFlNjAzOGJhOTY0
ZDIyODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC00ODAs
NiArNDgwLDE0IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJCYXNlNjQtZW5jb2RlZCBpbWFnZSBkYXRhIChQ
TkcpLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRy
dWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUi
OiAiaGFuZGxlSmF2YVNjcmlwdERpYWxvZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkFjY2VwdHMgb3IgZGlzbWlzc2VzIGEgSmF2YVNjcmlwdCBpbml0aWF0ZWQgZGlhbG9nIChh
bGVydCwgY29uZmlybSwgcHJvbXB0LCBvciBvbmJlZm9yZXVubG9hZCkuIiwKKyAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhY2Nl
cHQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIldoZXRoZXIgdG8gYWNjZXB0
IG9yIGRpc21pc3MgdGhlIGRpYWxvZy4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgICAgICJoaWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAg
ICJldmVudHMiOiBbCkBAIC01NDMsNiArNTUxLDE5IEBACiAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJkZXNjcmlwdGlv
biI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgY2xlYXJlZCBpdHMgc2NoZWR1bGVkIG5hdmln
YXRpb24uIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjog
dHJ1ZQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFt
ZSI6ICJqYXZhc2NyaXB0RGlhbG9nT3BlbmluZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkZpcmVkIHdoZW4gYSBKYXZhU2NyaXB0IGluaXRpYXRlZCBkaWFsb2cgKGFsZXJ0LCBj
b25maXJtLCBwcm9tcHQsIG9yIG9uYmVmb3JldW5sb2FkKSBpcyBhYm91dCB0byBvcGVuLiIsCisg
ICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAibWVzc2FnZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJNZXNzYWdl
IHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgYnkgdGhlIGRpYWxvZy4iIH0KKyAgICAgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImphdmFzY3JpcHREaWFsb2dDbG9z
ZWQiLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuIGEgSmF2YVNj
cmlwdCBpbml0aWF0ZWQgZGlhbG9nIChhbGVydCwgY29uZmlybSwgcHJvbXB0LCBvciBvbmJlZm9y
ZXVubG9hZCkgaGFzIGJlZW4gY2xvc2VkLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRy
dWUKICAgICAgICAgICAgIH0KICAgICAgICAgXQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggMGYyOGViYzkyNTU5OTZlYWJmOTUxM2Q1ZTIy
NzNiZGQ0YzhhMGNmZS4uYjlmOGY1NjEyZjQ3ZDU5NjNhZmFiODJkYzc5ZWZmN2ZiZjM0YzViZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaApAQCAtODYsNiAr
ODYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FwdHVyZVNjcmVlbnNob3QoU3Ry
aW5nKikgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVKYXZhU2Ny
aXB0RGlhbG9nKGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICBzdGF0aWMgYm9vbCBkb0Rp
c3BhdGNoTWVzc2FnZU9uRnJvbnRlbmRQYWdlKFBhZ2UqIGZyb250ZW5kUGFnZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggM2ExZTc5ZDllODM0ZTU0ZTFiNmJm
ODFkYTJlNjhjZWY3OGVkZDYzYS4uMDI1NzdkMTMxYWQwZDIxYjFhZGI3ZTIyYTRjNjgxZGI1MDFm
ODE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAKQEAgLTk3NSw2ICs5NzUsMTkgQEAgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb25JbXBsKEluc3RydW1l
bnRpbmcKICAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50LT5mcmFtZUNsZWFyZWRTY2hlZHVsZWRO
YXZpZ2F0aW9uKGZyYW1lKTsKIH0KIAorSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJ1bkphdmFTY3JpcHREaWFsb2dJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKK3sKKyAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBpbnNwZWN0b3JQYWdlQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKKyAgICAgICAgaW5zcGVj
dG9yUGFnZUFnZW50LT53aWxsUnVuSmF2YVNjcmlwdERpYWxvZyhtZXNzYWdlKTsKKyAgICByZXR1
cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKGluc3RydW1lbnRpbmdBZ2VudHMsIDAp
OworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUnVuSmF2YVNjcmlwdERp
YWxvZ0ltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiBjb29raWUpCit7
CisgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogaW5zcGVjdG9yUGFnZUFnZW50ID0gY29va2ll
Lmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIGlu
c3BlY3RvclBhZ2VBZ2VudC0+ZGlkUnVuSmF2YVNjcmlwdERpYWxvZygpOworfQorCiB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJjZUltcGwoQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQogewogICAgIGlmICghaW5zdHJ1bWVudGluZ0Fn
ZW50c1NldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaAppbmRleCAzMWJmN2U5YWJiZjFjN2I4NTEzZjA5MGQ1YWJjZGY0YTI1MmMw
YmI3Li4xZmE4ZGZiM2EwNmQwYzE2YzZhNTM4ZjllMjUyMDA2NTQzY2QzZDJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBA
IC0yMTUsNiArMjE1LDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGZyYW1lU3RvcHBlZExv
YWRpbmcoRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBmcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24o
RnJhbWUqLCBkb3VibGUgZGVsYXkpOwogICAgIHN0YXRpYyB2b2lkIGZyYW1lQ2xlYXJlZFNjaGVk
dWxlZE5hdmlnYXRpb24oRnJhbWUqKTsKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIHdpbGxSdW5KYXZhU2NyaXB0RGlhbG9nKFBhZ2UqLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpOworICAgIHN0YXRpYyB2b2lkIGRpZFJ1bkphdmFTY3JpcHREaWFsb2coY29uc3QgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ry
b3lDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSopOwogCiAgICAgc3RhdGljIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MKERvY3VtZW50KiwgdW5zaWduZWQg
aW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSk7CkBAIC00MTgsNiArNDIwLDggQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBmcmFtZVN0b3BwZWRMb2FkaW5nSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBmcmFtZVNjaGVkdWxlZE5h
dmlnYXRpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSosIGRvdWJsZSBkZWxheSk7
CiAgICAgc3RhdGljIHZvaWQgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbkltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CisgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSB3aWxsUnVuSmF2YVNjcmlwdERpYWxvZ0ltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgc3RhdGljIHZvaWQgZGlkUnVuSmF2
YVNjcmlwdERpYWxvZ0ltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7
CiAgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lDYWNoZWRSZXNvdXJjZUltcGwoQ2FjaGVkUmVz
b3VyY2UqKTsKIAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2ls
bFdyaXRlSFRNTEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGludCBsZW5ndGgs
IHVuc2lnbmVkIGludCBzdGFydExpbmUsIEZyYW1lKik7CkBAIC0xNzEyLDYgKzE3MTYsMzAgQEAg
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZUNsZWFyZWRTY2hlZHVs
ZWROYXZpZ2F0aW9uKEZyYW1lKiBmcmEKICNlbmRpZgogfQogCitpbmxpbmUgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJ1bkphdmFT
Y3JpcHREaWFsb2coUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworI2lmIEVO
QUJMRShJTlNQRUNUT1IpCisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSgpKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpKQor
ICAgICAgICByZXR1cm4gd2lsbFJ1bkphdmFTY3JpcHREaWFsb2dJbXBsKGluc3RydW1lbnRpbmdB
Z2VudHMsIG1lc3NhZ2UpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5V
U0VEX1BBUkFNKG1lc3NhZ2UpOworI2VuZGlmCisgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSgpOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZFJ1bkphdmFTY3JpcHREaWFsb2coY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llJiBjb29raWUpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBGQVNUX1JFVFVS
Tl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoY29va2llLmlzVmFsaWQoKSkKKyAg
ICAgICAgZGlkUnVuSmF2YVNjcmlwdERpYWxvZ0ltcGwoY29va2llKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGNvb2tpZSk7CisjZW5kaWYKK30KKwogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsRGVzdHJveUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKiBj
YWNoZWRSZXNvdXJjZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCBkMmI3MTA4MTQyNTZl
OGQ3ZDY1NmY4ODYwN2Q3MWE3NDM2MTU3YmM2Li5kOGNlNzk1YzI1ZjY1YjQ4ZGRlODZhZjJiMzg4
MGZmZmQ2M2U3YmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcApAQCAtOTM2LDYgKzkzNiwxNiBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSogZnJhbWUpCiAgICAgbV9m
cm9udGVuZC0+ZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihmcmFtZUlkKGZyYW1lKSk7
CiB9CiAKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojp3aWxsUnVuSmF2YVNjcmlwdERpYWxvZyhj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgbV9mcm9udGVuZC0+amF2YXNjcmlwdERpYWxv
Z09wZW5pbmcobWVzc2FnZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRSdW5K
YXZhU2NyaXB0RGlhbG9nKCkKK3sKKyAgICBtX2Zyb250ZW5kLT5qYXZhc2NyaXB0RGlhbG9nQ2xv
c2VkKCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphcHBseVNjcmVlbldpZHRoT3Zl
cnJpZGUobG9uZyogd2lkdGgpCiB7CiAgICAgbG9uZyB3aWR0aE92ZXJyaWRlID0gbV9zdGF0ZS0+
Z2V0TG9uZyhQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50U2NyZWVuV2lkdGhPdmVycmlkZSk7CkBA
IC0xMjM1LDYgKzEyNDUsMTIgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhcHR1cmVTY3Jl
ZW5zaG90KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgU3RyaW5nKiBkYXQKICAgICAgICAgKmVy
cm9yU3RyaW5nID0gIkNvdWxkIG5vdCBjYXB0dXJlIHNjcmVlbnNob3QiOwogfQogCit2b2lkIElu
c3BlY3RvclBhZ2VBZ2VudDo6aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhFcnJvclN0cmluZyogZXJy
b3JTdHJpbmcsIGJvb2wgYWNjZXB0KQoreworICAgIGlmICghbV9jbGllbnQtPmhhbmRsZUphdmFT
Y3JpcHREaWFsb2coYWNjZXB0KSkKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIkNvdWxkIG5vdCBo
YW5kbGUgSmF2YVNjcmlwdCBkaWFsb2ciOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGRjODJhOTcwNTM0Mjk4YTBjODljMWJjNzRmZGE4
Y2EyYTVhMjIzNGUuLjBmOWZmZDY2YTRlMTk0NWQwNGY1Y2MxYmE2MWY1ZWJmMDEwMTExMmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTEy
Niw2ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldENvbXBvc2l0aW5nQm9y
ZGVyc1Zpc2libGUoRXJyb3JTdHJpbmcqLCBib29sKiBvdXRfcGFyYW0pOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKEVycm9yU3RyaW5nKiwgYm9vbCk7CiAg
ICAgdmlydHVhbCB2b2lkIGNhcHR1cmVTY3JlZW5zaG90KEVycm9yU3RyaW5nKiwgU3RyaW5nKiBk
YXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSmF2YVNjcmlwdERpYWxvZyhFcnJvclN0cmlu
ZyosIGJvb2wgYWNjZXB0KTsKIAogICAgIC8vIEdlb2xvY2F0aW9uIG92ZXJyaWRlIGhlbHBlcnMu
CiAgICAgR2VvbG9jYXRpb25Qb3NpdGlvbiogb3ZlcnJpZGVHZW9sb2NhdGlvblBvc2l0aW9uKEdl
b2xvY2F0aW9uUG9zaXRpb24qKTsKQEAgLTE0NCw2ICsxNDUsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBmcmFtZVN0b3BwZWRMb2FkaW5nKEZyYW1lKik7CiAgICAgdm9pZCBmcmFtZVNjaGVkdWxlZE5h
dmlnYXRpb24oRnJhbWUqLCBkb3VibGUgZGVsYXkpOwogICAgIHZvaWQgZnJhbWVDbGVhcmVkU2No
ZWR1bGVkTmF2aWdhdGlvbihGcmFtZSopOworICAgIHZvaWQgd2lsbFJ1bkphdmFTY3JpcHREaWFs
b2coY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2b2lkIGRpZFJ1bkphdmFTY3JpcHREaWFs
b2coKTsKICAgICB2b2lkIGFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKik7CiAgICAgdm9p
ZCBhcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlKGxvbmcqKTsKICAgICB2b2lkIGFwcGx5RW11bGF0
ZWRNZWRpYShTdHJpbmcqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzCmluZGV4IDBhODc2ZWJmYzNiYmQzZmM5NGJm
MTFhNDEwZThhM2M5NWJkMzU5N2MuLmQzZTYxZWJlZjM4ZDI3MDZkZDFkZWZkNGEzYmFjNzU0ZmJi
NzUzNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VUcmVlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZVRyZWVNb2RlbC5qcwpAQCAtNjAzLDE2ICs2MDMsMjggQEAgV2ViSW5zcGVjdG9y
LlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcmVzb3VyY2VUcmVl
TW9kZWwuX2ZyYW1lRGV0YWNoZWQoZnJhbWVJZCk7CiAgICAgfSwKIAotICAgIGZyYW1lU3RhcnRl
ZExvYWRpbmc6IGZ1bmN0aW9uKGZyYW1lSWQpIHsKKyAgICBmcmFtZVN0YXJ0ZWRMb2FkaW5nOiBm
dW5jdGlvbihmcmFtZUlkKQorICAgIHsKKyAgICB9LAorCisgICAgZnJhbWVTdG9wcGVkTG9hZGlu
ZzogZnVuY3Rpb24oZnJhbWVJZCkKKyAgICB7CisgICAgfSwKKworICAgIGZyYW1lU2NoZWR1bGVk
TmF2aWdhdGlvbjogZnVuY3Rpb24oZnJhbWVJZCwgZGVsYXkpCisgICAgewogICAgIH0sCiAKLSAg
ICBmcmFtZVN0b3BwZWRMb2FkaW5nOiBmdW5jdGlvbihmcmFtZUlkKSB7CisgICAgZnJhbWVDbGVh
cmVkU2NoZWR1bGVkTmF2aWdhdGlvbjogZnVuY3Rpb24oZnJhbWVJZCkKKyAgICB7CiAgICAgfSwK
IAotICAgIGZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbjogZnVuY3Rpb24oZnJhbWVJZCwgZGVsYXkp
IHsKKyAgICBqYXZhc2NyaXB0RGlhbG9nT3BlbmluZzogZnVuY3Rpb24obWVzc2FnZSkKKyAgICB7
CiAgICAgfSwKIAotICAgIGZyYW1lQ2xlYXJlZFNjaGVkdWxlZE5hdmlnYXRpb246IGZ1bmN0aW9u
KGZyYW1lSWQpIHsKKyAgICBqYXZhc2NyaXB0RGlhbG9nQ2xvc2VkOiBmdW5jdGlvbigpCisgICAg
ewogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDg0ZGZjYjQyMzI3YzA4MzAw
MWE1NTQ0ZWY4Yzc1MjljMmUzODM0MmMuLjg1YTk3NTUyYWRmNTFmZmM1N2FkNGRiYjUwYzAyMTE2
ZjE0ZTRjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTI5Myw3ICsyOTMsMTAgQEAgYm9v
bCBDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIEZyYW1lKiBmcmFtZSkKICAgICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29u
dGludWUgd2hpbGUgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4K
ICAgICBQYWdlR3JvdXBMb2FkRGVmZXJyZXIgZGVmZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAg
IHJldHVybiBtX2NsaWVudC0+cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKG1lc3NhZ2UsIGZy
YW1lKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUnVuSmF2YVNjcmlwdERpYWxvZyhtX3BhZ2UsIG1lc3Nh
Z2UpOworICAgIGJvb2wgb2sgPSBtX2NsaWVudC0+cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KG1lc3NhZ2UsIGZyYW1lKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJ1bkph
dmFTY3JpcHREaWFsb2coY29va2llKTsKKyAgICByZXR1cm4gb2s7CiB9CiAKIHZvaWQgQ2hyb21l
OjpjbG9zZVdpbmRvd1Nvb24oKQpAQCAtMzEyLDcgKzMxNSwxMSBAQCB2b2lkIENocm9tZTo6cnVu
SmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogCiAg
ICAgQVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKLSAg
ICBtX2NsaWVudC0+cnVuSmF2YVNjcmlwdEFsZXJ0KGZyYW1lLCBmcmFtZS0+ZGlzcGxheVN0cmlu
Z01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKSk7CisgICAgU3RyaW5nIGRpc3BsYXlNZXNzYWdl
ID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSk7CisKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsUnVuSmF2YVNjcmlwdERpYWxvZyhtX3BhZ2UsIGRpc3BsYXlNZXNzYWdl
KTsKKyAgICBtX2NsaWVudC0+cnVuSmF2YVNjcmlwdEFsZXJ0KGZyYW1lLCBkaXNwbGF5TWVzc2Fn
ZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSdW5KYXZhU2NyaXB0RGlhbG9n
KGNvb2tpZSk7CiB9CiAKIGJvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSog
ZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTMyNiw3ICszMzMsMTIgQEAgYm9vbCBD
aHJvbWU6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogCiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNl
cnZlcnMoKTsKLSAgICByZXR1cm4gbV9jbGllbnQtPnJ1bkphdmFTY3JpcHRDb25maXJtKGZyYW1l
LCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKSk7CisgICAg
U3RyaW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5j
b2RpbmcobWVzc2FnZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29v
a2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUnVuSmF2YVNjcmlwdERpYWxvZyht
X3BhZ2UsIGRpc3BsYXlNZXNzYWdlKTsKKyAgICBib29sIG9rID0gbV9jbGllbnQtPnJ1bkphdmFT
Y3JpcHRDb25maXJtKGZyYW1lLCBkaXNwbGF5TWVzc2FnZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRSdW5KYXZhU2NyaXB0RGlhbG9nKGNvb2tpZSk7CisgICAgcmV0dXJuIG9r
OwogfQogCiBib29sIENocm9tZTo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNv
bnN0IFN0cmluZyYgcHJvbXB0LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiBy
ZXN1bHQpCkBAIC0zNDAsNyArMzUyLDExIEBAIGJvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0UHJv
bXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluCiAKICAg
ICBBU1NFUlQoZnJhbWUpOwogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwotICAg
IGJvb2wgb2sgPSBtX2NsaWVudC0+cnVuSmF2YVNjcmlwdFByb21wdChmcmFtZSwgZnJhbWUtPmRp
c3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocHJvbXB0KSwgZnJhbWUtPmRpc3BsYXlTdHJp
bmdNb2RpZmllZEJ5RW5jb2RpbmcoZGVmYXVsdFZhbHVlKSwgcmVzdWx0KTsKKyAgICBTdHJpbmcg
ZGlzcGxheVByb21wdCA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHBy
b21wdCk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUnVuSmF2YVNjcmlwdERpYWxvZyhtX3BhZ2UsIGRp
c3BsYXlQcm9tcHQpOworICAgIGJvb2wgb2sgPSBtX2NsaWVudC0+cnVuSmF2YVNjcmlwdFByb21w
dChmcmFtZSwgZGlzcGxheVByb21wdCwgZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5j
b2RpbmcoZGVmYXVsdFZhbHVlKSwgcmVzdWx0KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZFJ1bkphdmFTY3JpcHREaWFsb2coY29va2llKTsKIAogICAgIGlmIChvaykKICAgICAg
ICAgcmVzdWx0ID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocmVzdWx0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xz
QWdlbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQu
aAppbmRleCA0Y2NmYjVhNjMyNjYxNjNmZDA4MjE3OGY1Y2VkMjM0MTFhNGNjMzRhLi5mMmYwNjBm
MDMwYTVmNGE2MmUxNDk3OTg4MjRlODIxNTYxYWUxMDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oCkBAIC01MSw4ICs1MSwxMCBAQCBj
bGFzcyBXZWJEZXZUb29sc0FnZW50IHsKIHB1YmxpYzoKICAgICAvLyBIaW50IGZvciB0aGUgYnJv
d3NlciBvbiB0aGUgZGF0YSBpdCBzaG91bGQgcHJlcGFyZSBmb3IgbWVzc2FnZSBwYXRjaGluZy4K
ICAgICBlbnVtIEJyb3dzZXJEYXRhSGludCB7Ci0gICAgICAgIEJyb3dzZXJEYXRhSGludE5vbmUg
PSAwLAotICAgICAgICBCcm93c2VyRGF0YUhpbnRTY3JlZW5zaG90ID0gMSwKKyAgICAgICAgQnJv
d3NlckRhdGFIaW50Tm9uZSwKKyAgICAgICAgQnJvd3NlckRhdGFIaW50U2NyZWVuc2hvdCwKKyAg
ICAgICAgQnJvd3NlckRhdGFIaW50QWNjZXB0SmF2YVNjcmlwdERpYWxvZywKKyAgICAgICAgQnJv
d3NlckRhdGFIaW50RGlzbWlzc0phdmFTY3JpcHREaWFsb2csCiAgICAgfTsKIAogICAgIHZpcnR1
YWwgfldlYkRldlRvb2xzQWdlbnQoKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcAppbmRleCBlY2Y1Y2VjY2ZjMTg5NzI4YjA3ZWIy
YWNlMGE0MDNhNDI1MDNjMjEzLi4zY2ZiYzI2NDg2MDE4ODI0NzNjMDAwN2VhNTY5MWJmZTExY2Vh
Njg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGll
bnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGll
bnRJbXBsLmNwcApAQCAtMjA2LDYgKzIwNiwxMyBAQCBib29sIEluc3BlY3RvckNsaWVudEltcGw6
OmNhcHR1cmVTY3JlZW5zaG90KFN0cmluZyogZGF0YSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K2Jvb2wgSW5zcGVjdG9yQ2xpZW50SW1wbDo6aGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFj
Y2VwdCkKK3sKKyAgICBpZiAoV2ViRGV2VG9vbHNBZ2VudEltcGwqIGFnZW50ID0gZGV2VG9vbHNB
Z2VudCgpKQorICAgICAgICByZXR1cm4gYWdlbnQtPmhhbmRsZUphdmFTY3JpcHREaWFsb2coYWNj
ZXB0KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFdlYkRldlRvb2xzQWdlbnRJbXBsKiBJbnNw
ZWN0b3JDbGllbnRJbXBsOjpkZXZUb29sc0FnZW50KCkKIHsKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8V2ViRGV2VG9vbHNBZ2VudEltcGwqPihtX2luc3BlY3RlZFdlYlZpZXctPmRldlRvb2xzQWdl
bnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JD
bGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJ
bXBsLmgKaW5kZXggODcxMTllMzkzODVhZjBhZDJjM2ZkMDYwOTNkMTliZDg0ZGMzMDk5OC4uZDE3
M2ZjYTI3ZTA1MmI4MzQ0MTJmODRjODUyNjVlNTE4NjMwZjM4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaApAQCAtODksNiArODksOCBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FwdHVyZVNjcmVlbnNob3QoV1RGOjpTdHJp
bmcqIGRhdGEpOwogCisgICAgdmlydHVhbCBib29sIGhhbmRsZUphdmFTY3JpcHREaWFsb2coYm9v
bCBhY2NlcHQpOworCiBwcml2YXRlOgogICAgIFdlYkRldlRvb2xzQWdlbnRJbXBsKiBkZXZUb29s
c0FnZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRv
b2xzQWdlbnRJbXBsLmNwcAppbmRleCBmNTQxNTJiZjM2MTJlYmI5ZTRkNWNmNmYzZTUwNjhkOGU5
YTYyOGY2Li40ZWE0NjBhMTBiNjA4OTFjYTVlZWVjZGFhOGYzNzM1NTljZTgxOGIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3Bw
CkBAIC04Myw2ICs4Myw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBuYW1lc3BhY2UgQnJvd3Nl
ckRhdGFIaW50U3RyaW5nVmFsdWVzIHsKIHN0YXRpYyBjb25zdCBjaGFyIHNjcmVlbnNob3RbXSA9
ICJzY3JlZW5zaG90IjsKK3N0YXRpYyBjb25zdCBjaGFyIGFjY2VwdEphdmFTY3JpcHREaWFsb2db
XSA9ICJhY2NlcHRKYXZhU2NyaXB0RGlhbG9nIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRpc21pc3NK
YXZhU2NyaXB0RGlhbG9nW10gPSAiZGlzbWlzc0phdmFTY3JpcHREaWFsb2ciOwogfQogCiBjbGFz
cyBDbGllbnRNZXNzYWdlTG9vcEFkYXB0ZXIgOiBwdWJsaWMgUGFnZVNjcmlwdERlYnVnU2VydmVy
OjpDbGllbnRNZXNzYWdlTG9vcCB7CkBAIC01NzQsMTQgKzU3NiwyMSBAQCB2b2lkIFdlYkRldlRv
b2xzQWdlbnRJbXBsOjpkdW1wVW5jb3VudGVkQWxsb2NhdGVkT2JqZWN0cyhjb25zdCBIYXNoTWFw
PGNvbnN0IHZvaQogICAgIG1fY2xpZW50LT5kdW1wVW5jb3VudGVkQWxsb2NhdGVkT2JqZWN0cygm
cHJvdmlkZXIpOwogfQogCi1ib29sIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpjYXB0dXJlU2NyZWVu
c2hvdChXVEY6OlN0cmluZyogZGF0YSkKK2Jvb2wgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmNhcHR1
cmVTY3JlZW5zaG90KFN0cmluZyogZGF0YSkKIHsKLSAgICAvLyBWYWx1ZSBpcyBnb2luZyB0byBi
ZSBzdWJzdGl0dXRlZCB3aXRoIHRoZSBhY3R1YWwgZGF0YSBvbiB0aGUgYnJvd3NlciBsZXZlbC4K
KyAgICAvLyBWYWx1ZSBpcyBnb2luZyB0byBiZSBzdWJzdGl0dXRlZCB3aXRoIHRoZSBhY3R1YWwg
ZGF0YSBpbiB0aGUgYnJvd3NlciBwcm9jZXNzLgogICAgICpkYXRhID0gIntzY3JlZW5zaG90LXBs
YWNlaG9sZGVyfSI7CiAgICAgbV9zZW5kV2l0aEJyb3dzZXJEYXRhSGludCA9IEJyb3dzZXJEYXRh
SGludFNjcmVlbnNob3Q7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgV2ViRGV2VG9vbHNB
Z2VudEltcGw6OmhhbmRsZUphdmFTY3JpcHREaWFsb2coYm9vbCBhY2NlcHQpCit7CisgICAgLy8g
T3BlcmF0aW9uIGlzIGdvaW5nIHRvIGJlIHBlcmZvcm1lZCBpbiB0aGUgYnJvd3NlciBwcm9jZXNz
LgorICAgIG1fc2VuZFdpdGhCcm93c2VyRGF0YUhpbnQgPSBhY2NlcHQgPyBCcm93c2VyRGF0YUhp
bnRBY2NlcHRKYXZhU2NyaXB0RGlhbG9nIDogQnJvd3NlckRhdGFIaW50RGlzbWlzc0phdmFTY3Jp
cHREaWFsb2c7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudElt
cGw6OmRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kKGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSkK
IHsKICAgICBpbnNwZWN0b3JDb250cm9sbGVyKCktPmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVu
ZChtZXNzYWdlKTsKQEAgLTY2MSw2ICs2NzAsMTAgQEAgc3RhdGljIFN0cmluZyBicm93c2VySGlu
dFRvU3RyaW5nKFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludCBkYXRhSGludCkKICAg
ICBzd2l0Y2ggKGRhdGFIaW50KSB7CiAgICAgY2FzZSBXZWJEZXZUb29sc0FnZW50OjpCcm93c2Vy
RGF0YUhpbnRTY3JlZW5zaG90OgogICAgICAgICByZXR1cm4gQnJvd3NlckRhdGFIaW50U3RyaW5n
VmFsdWVzOjpzY3JlZW5zaG90OworICAgIGNhc2UgV2ViRGV2VG9vbHNBZ2VudDo6QnJvd3NlckRh
dGFIaW50QWNjZXB0SmF2YVNjcmlwdERpYWxvZzoKKyAgICAgICAgcmV0dXJuIEJyb3dzZXJEYXRh
SGludFN0cmluZ1ZhbHVlczo6YWNjZXB0SmF2YVNjcmlwdERpYWxvZzsKKyAgICBjYXNlIFdlYkRl
dlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludERpc21pc3NKYXZhU2NyaXB0RGlhbG9nOgorICAg
ICAgICByZXR1cm4gQnJvd3NlckRhdGFIaW50U3RyaW5nVmFsdWVzOjpkaXNtaXNzSmF2YVNjcmlw
dERpYWxvZzsKICAgICBjYXNlIFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludE5vbmU6
CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02NzIsNiAr
Njg1LDEwIEBAIHN0YXRpYyBXZWJEZXZUb29sc0FnZW50OjpCcm93c2VyRGF0YUhpbnQgYnJvd3Nl
ckhpbnRGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsCiB7CiAgICAgaWYgKHZhbHVlID09IEJy
b3dzZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6c2NyZWVuc2hvdCkKICAgICAgICAgcmV0dXJuIFdl
YkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludFNjcmVlbnNob3Q7CisgICAgaWYgKHZhbHVl
ID09IEJyb3dzZXJEYXRhSGludFN0cmluZ1ZhbHVlczo6YWNjZXB0SmF2YVNjcmlwdERpYWxvZykK
KyAgICAgICAgcmV0dXJuIFdlYkRldlRvb2xzQWdlbnQ6OkJyb3dzZXJEYXRhSGludEFjY2VwdEph
dmFTY3JpcHREaWFsb2c7CisgICAgaWYgKHZhbHVlID09IEJyb3dzZXJEYXRhSGludFN0cmluZ1Zh
bHVlczo6ZGlzbWlzc0phdmFTY3JpcHREaWFsb2cpCisgICAgICAgIHJldHVybiBXZWJEZXZUb29s
c0FnZW50OjpCcm93c2VyRGF0YUhpbnREaXNtaXNzSmF2YVNjcmlwdERpYWxvZzsKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gV2ViRGV2VG9vbHNBZ2VudDo6QnJvd3NlckRh
dGFIaW50Tm9uZTsKIH0KQEAgLTgyNyw2ICs4NDQsMTAgQEAgV2ViU3RyaW5nIFdlYkRldlRvb2xz
QWdlbnQ6OnBhdGNoV2l0aEJyb3dzZXJEYXRhKGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSwgQnJv
d3MKICAgICBjYXNlIEJyb3dzZXJEYXRhSGludFNjcmVlbnNob3Q6CiAgICAgICAgIHJlc3VsdE9i
amVjdC0+c2V0U3RyaW5nKCJkYXRhIiwgaGludERhdGEpOwogICAgICAgICBicmVhazsKKyAgICBj
YXNlIEJyb3dzZXJEYXRhSGludEFjY2VwdEphdmFTY3JpcHREaWFsb2c6CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJvd3NlckRhdGFIaW50RGlzbWlzc0phdmFTY3JpcHREaWFsb2c6CisgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQnJvd3NlckRhdGFIaW50Tm9uZToKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCmluZGV4IGZlMzQwZGQ3Nzg4ZGJiYThhZTQx
Mjc1ZDBmOWY0MzJlNjQ3ZDg4MjAuLjVlOGYyNDU5NGM0YmM0NDJmZGVmMmRkMzAyMzkxMzdjYTI0
ZmJiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xz
QWdlbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNB
Z2VudEltcGwuaApAQCAtMTEzLDYgKzExMyw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9v
bCBjYXB0dXJlU2NyZWVuc2hvdChXVEY6OlN0cmluZyogZGF0YSk7CiAKKyAgICB2aXJ0dWFsIGJv
b2wgaGFuZGxlSmF2YVNjcmlwdERpYWxvZyhib29sIGFjY2VwdCk7CisKICAgICBpbnQgaG9zdElk
KCkgeyByZXR1cm4gbV9ob3N0SWQ7IH0KIAogICAgIC8vIFdlYlBhZ2VPdmVybGF5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MTU1ZTE4Y2VmOTA1NzFiNDJkODZjMWVlODljZWQwZmU0Yjg2M2Y5YS4uOWNkNTlmODU5NjBlYjcy
ODBhZDkyN2ZkZWRiZTQzZGE4OWJhZDQ3NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAx
LTMxICBLZW4gS2FuaWEgIDxra2FuaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEFkZCBzdXBwb3J0IGZvciBoYW5kbGluZyBtb2RhbCBkaWFsb2dzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4ODMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2Ugc3VwcG9ydCBm
b3IgYmVpbmcgbm90aWZpZWQgd2hlbiBhIEphdmFTY3JpcHQgbW9kYWwgZGlhbG9nCisgICAgICAg
IGlzIG9wZW5pbmcgYW5kIGNsb3NpbmcsIGFzIHdlbGwgYXMgYSBuZXcgY29tbWFuZCBmb3IgYWNj
ZXB0aW5nIG9yCisgICAgICAgIGRpc21pc3NpbmcgdGhlIGRpYWxvZy4KKworICAgICAgICAqIGlu
c3BlY3Rvci1wcm90b2NvbC9wYWdlL2phdmFzY3JpcHREaWFsb2dFdmVudHMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9qYXZhc2NyaXB0RGlh
bG9nRXZlbnRzLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAxLTI4ICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFtXVFJdIGxheW91dFRlc3RD
b250cm9sbGVyLnBhdGhUb0xvY2FsUmVzb3VyY2UgbmVlZHMgdG8gYmUgdXBkYXRlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvamF2YXNjcmlwdERpYWxv
Z0V2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFn
ZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzIwZDg2
ODZkN2M1NWQ3OTczM2ViYzQxNjhmYjlkMzQxODcwOTk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2ZW50cy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09ORklSTSBOQVZJR0FUSU9OOiBiZWZvcmV1
bmxvYWQKK0FMRVJUOiBhbGVydAorQ09ORklSTTogY29uZmlybQorUFJPTVBUOiBwcm9tcHQsIGRl
ZmF1bHQgdGV4dDogCitPcGVuaW5nIHdpdGggbWVzc2FnZTogYmVmb3JldW5sb2FkCitDbG9zZWQK
K09wZW5pbmcgd2l0aCBtZXNzYWdlOiBhbGVydAorQ2xvc2VkCitPcGVuaW5nIHdpdGggbWVzc2Fn
ZTogY29uZmlybQorQ2xvc2VkCitPcGVuaW5nIHdpdGggbWVzc2FnZTogcHJvbXB0CitDbG9zZWQK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvamF2YXNj
cmlwdERpYWxvZ0V2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Bh
Z2UvamF2YXNjcmlwdERpYWxvZ0V2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzZTYwYWQyZmE3OTcy
MDNiMTcyNTlmYzk2ZjAxNzBhN2YwMjIwMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLmh0bWwKQEAg
LTAsMCArMSw0MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9w
cm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJiZWZvcmV1bmxvYWQiLCBvbkJlZm9yZVVubG9hZCk7CisKK2Z1bmN0aW9uIG9uQmVm
b3JlVW5sb2FkKCkKK3sKKyAgICByZXR1cm4gImJlZm9yZXVubG9hZCI7Cit9CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmphdmFzY3Jp
cHREaWFsb2dPcGVuaW5nIl0gPSBvbk9wZW5pbmc7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhh
bmRsZXJbIlBhZ2UuamF2YXNjcmlwdERpYWxvZ0Nsb3NlZCJdID0gb25DbG9zZWQ7CisgICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUGFnZS5lbmFibGUiLCB7fSk7CisKKyAgICBmdW5jdGlv
biBvbk9wZW5pbmcoZXZlbnQpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiT3Bl
bmluZyB3aXRoIG1lc3NhZ2U6ICIgKyBldmVudC5wYXJhbXMubWVzc2FnZSk7CisgICAgfQorICAg
IGZ1bmN0aW9uIG9uQ2xvc2VkKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJD
bG9zZWQiKTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQYWdlLm5h
dmlnYXRlIiwgeyAidXJsIjogIm5vc3VjaHVybCIgfSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsgImV4cHJlc3Npb24iOiAiYWxlcnQoJ2FsZXJ0
JykiIH0pOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUi
LCB7ICJleHByZXNzaW9uIjogImNvbmZpcm0oJ2NvbmZpcm0nKSIgfSk7CisgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsgImV4cHJlc3Npb24iOiAicHJv
bXB0KCdwcm9tcHQnKSIgfSwgb25Eb25lKTsKKworICAgIGZ1bmN0aW9uIG9uRG9uZSgpCisgICAg
eworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKworPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>