<?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>121194</bug_id>
          
          <creation_ts>2013-09-11 17:34:29 -0700</creation_ts>
          <short_desc>Removed some unused functions from the debugger interface</short_desc>
          <delta_ts>2013-09-11 20:08:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mark.lam</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>928061</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-11 17:34:29 -0700</bug_when>
    <thetext>Removed some unused functions from the debugger interface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928063</commentid>
    <comment_count>1</comment_count>
      <attachid>211369</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-11 17:36:56 -0700</bug_when>
    <thetext>Created attachment 211369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928064</commentid>
    <comment_count>2</comment_count>
      <attachid>211370</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-11 17:40:15 -0700</bug_when>
    <thetext>Created attachment 211370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928066</commentid>
    <comment_count>3</comment_count>
      <attachid>211371</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-11 17:43:44 -0700</bug_when>
    <thetext>Created attachment 211371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928070</commentid>
    <comment_count>4</comment_count>
      <attachid>211373</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-11 17:46:39 -0700</bug_when>
    <thetext>Created attachment 211373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928082</commentid>
    <comment_count>5</comment_count>
      <attachid>211373</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-11 18:13:34 -0700</bug_when>
    <thetext>Comment on attachment 211373
Patch

Looks like I need to update a layout tests. Stay tuned...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928083</commentid>
    <comment_count>6</comment_count>
      <attachid>211373</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-09-11 18:14:02 -0700</bug_when>
    <thetext>Comment on attachment 211373
Patch

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

&gt; Source/WebCore/inspector/InjectedScript.cpp:-101
&gt; -    ScriptFunctionCall function(injectedScriptObject(), &quot;restartFrame&quot;);

restartFrame can be removed from InjectedScriptSource.js too.

&gt; Source/WebCore/inspector/InjectedScript.cpp:-121
&gt; -    ScriptFunctionCall function(injectedScriptObject(), &quot;setVariableValue&quot;);

setVariableValue can be removed from InjectedScriptSource.js too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928110</commentid>
    <comment_count>7</comment_count>
      <attachid>211387</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-11 19:30:12 -0700</bug_when>
    <thetext>Created attachment 211387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928113</commentid>
    <comment_count>8</comment_count>
      <attachid>211387</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-09-11 19:39:52 -0700</bug_when>
    <thetext>Comment on attachment 211387
Patch

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

r=me

&gt; Source/WebCore/inspector/InjectedScriptSource.js:-692
&gt; -            setter = InjectedScriptHost.setFunctionVariableValue.bind(InjectedScriptHost, func); 

This is the only user of InjectedScriptHost.setFunctionVariableValue.bind. It is equally stubbed so you can remove that too!

  - WebCore/bindings/js/JSInjectedScriptHostCustom.cpp stub
  - WebCore/inspector/InjectedScriptExterns.js stub
  - WebCore/inspector/InjectedScriptHost.idl [Custom]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928118</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-11 20:07:21 -0700</bug_when>
    <thetext>Committed r155589: &lt;http://trac.webkit.org/changeset/155589&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928119</commentid>
    <comment_count>10</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-11 20:08:01 -0700</bug_when>
    <thetext>Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211369</attachid>
            <date>2013-09-11 17:36:56 -0700</date>
            <delta_ts>2013-09-11 17:40:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121194-20130911173652.patch</filename>
            <type>text/plain</type>
            <size>2719</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTU4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTA5LTExICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCBzb21lIHVudXNl
ZCBmdW5jdGlvbnMgZnJvbSB0aGUgZGVidWdnZXIgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjExOTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBwbGFuIHRvIHVzZSB0aGUgImV2YWx1
YXRlIiBBUEkgYW5kIGRlYnVnZ2VyIGFjdGl2YXRpb24gcHJvcGVydHkgYWNjZXNzIGZvciBhbGwg
dGhlIGZlYXR1cmVzIHdlIG5lZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0phdmFTY3Jp
cHRDYWxsRnJhbWVDdXN0b20uY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9KYXZhU2NyaXB0Q2Fs
bEZyYW1lLmlkbDoKKwogMjAxMy0wOS0xMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFTdHJlYW0gQVBJXSBVcGRhdGluZyBOYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvciB0byBtYXRjaCB0aGUgc3BlYwpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3Bw
CShyZXZpc2lvbiAxNTU1NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFT
Y3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMiArNDgsNiBA
QCBKU1ZhbHVlIEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6ZXZhbHVhdGUoCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotSlNWYWx1ZSBKU0phdmFTY3JpcHRDYWxsRnJhbWU6OnJlc3RhcnQoRXhlY1N0
YXRlKikKLXsKLSAgICAvLyBGSVhNRSg0MDMwMCk6IGltcGxlbWVudCB0aGlzLgotICAgIHJldHVy
biBKU1ZhbHVlKEpTVmFsdWU6OkpTRmFsc2UpOwotfQotCiBKU1ZhbHVlIEpTSmF2YVNjcmlwdENh
bGxGcmFtZTo6dGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdAogewogICAgIHJldHVybiBpbXBs
KCktPnRoaXNPYmplY3QoKSA/IEpTVmFsdWUoaW1wbCgpLT50aGlzT2JqZWN0KCkpIDoganNOdWxs
KCk7CkBAIC0xMzAsMTMgKzEyNCw2IEBAIEpTVmFsdWUgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpz
Y29wZVR5cGUKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotSlNWYWx1ZSBKU0phdmFT
Y3JpcHRDYWxsRnJhbWU6OnNldFZhcmlhYmxlVmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCi17
Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA3ODMwCi0gICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVj
LCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlZhcmlhYmxlIHZhbHVlIG11dGF0aW9uIGlzIG5vdCBz
dXBwb3J0ZWQiKSk7Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlk
bAkocmV2aXNpb24gMTU1NTc5KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0phdmFTY3Jp
cHRDYWxsRnJhbWUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMSArMzgsNyBAQAogICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IENBVENIX1NDT1BFID0gNDsKIAogICAgIFtDdXN0b21dIHZvaWQg
ZXZhbHVhdGUoRE9NU3RyaW5nIHNjcmlwdCk7Ci0gICAgW0N1c3RvbV0gYW55IHJlc3RhcnQoKTsK
ICAgICAKLSAgICAvLyBPbmx5IGRlY2xhcmF0aXZlIHNjb3BlIChsb2NhbCwgd2l0aCBhbmQgY2F0
Y2gpIGlzIGFjY2VwdGVkLiBSZXR1cm5zIHVuZGVmaW5lZC4gCi0gICAgW0N1c3RvbV0gYW55IHNl
dFZhcmlhYmxlVmFsdWUoaW50IHNjb3BlSW5kZXgsIERPTVN0cmluZyB2YXJpYWJsZU5hbWUsIGFu
eSBuZXdWYWx1ZSk7Ci0KICAgICByZWFkb25seSBhdHRyaWJ1dGUgSmF2YVNjcmlwdENhbGxGcmFt
ZSBjYWxsZXI7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgc291cmNlSUQ7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGxvbmcgbGluZTsKQEAgLTUzLDQgKzQ5LDMgQEAKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZ1bmN0aW9uTmFtZTsKICAgICBbQ3VzdG9tR2V0dGVyXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiB9OwotCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211370</attachid>
            <date>2013-09-11 17:40:15 -0700</date>
            <delta_ts>2013-09-11 17:43:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121194-20130911174011.patch</filename>
            <type>text/plain</type>
            <size>13525</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTU4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTA5LTExICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCBzb21lIHVudXNl
ZCBmdW5jdGlvbnMgZnJvbSB0aGUgZGVidWdnZXIgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjExOTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBwbGFuIHRvIHVzZSB0aGUgImV2YWx1
YXRlIiBBUEkgYW5kIGRlYnVnZ2VyIGFjdGl2YXRpb24gcHJvcGVydHkgYWNjZXNzIGZvciBhbGwg
dGhlIGZlYXR1cmVzIHdlIG5lZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0phdmFTY3Jp
cHRDYWxsRnJhbWVDdXN0b20uY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9KYXZhU2NyaXB0Q2Fs
bEZyYW1lLmlkbDoKKwogMjAxMy0wOS0xMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFTdHJlYW0gQVBJXSBVcGRhdGluZyBOYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvciB0byBtYXRjaCB0aGUgc3BlYwpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3Bw
CShyZXZpc2lvbiAxNTU1NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFT
Y3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMiArNDgsNiBA
QCBKU1ZhbHVlIEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6ZXZhbHVhdGUoCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotSlNWYWx1ZSBKU0phdmFTY3JpcHRDYWxsRnJhbWU6OnJlc3RhcnQoRXhlY1N0
YXRlKikKLXsKLSAgICAvLyBGSVhNRSg0MDMwMCk6IGltcGxlbWVudCB0aGlzLgotICAgIHJldHVy
biBKU1ZhbHVlKEpTVmFsdWU6OkpTRmFsc2UpOwotfQotCiBKU1ZhbHVlIEpTSmF2YVNjcmlwdENh
bGxGcmFtZTo6dGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdAogewogICAgIHJldHVybiBpbXBs
KCktPnRoaXNPYmplY3QoKSA/IEpTVmFsdWUoaW1wbCgpLT50aGlzT2JqZWN0KCkpIDoganNOdWxs
KCk7CkBAIC0xMzAsMTMgKzEyNCw2IEBAIEpTVmFsdWUgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpz
Y29wZVR5cGUKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotSlNWYWx1ZSBKU0phdmFT
Y3JpcHRDYWxsRnJhbWU6OnNldFZhcmlhYmxlVmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCi17
Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA3ODMwCi0gICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVj
LCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlZhcmlhYmxlIHZhbHVlIG11dGF0aW9uIGlzIG5vdCBz
dXBwb3J0ZWQiKSk7Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCShyZXZpc2lv
biAxNTU1NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05Niw1NiArOTYsNiBAQCB2b2lkIEluamVjdGVkU2NyaXB0Ojpl
dmFsdWF0ZU9uQ2FsbEZyYW1lCiAgICAgbWFrZUV2YWxDYWxsKGVycm9yU3RyaW5nLCBmdW5jdGlv
biwgcmVzdWx0LCB3YXNUaHJvd24pOwogfQogCi12b2lkIEluamVjdGVkU2NyaXB0OjpyZXN0YXJ0
RnJhbWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTY3JpcHRWYWx1ZSYgY2FsbEZy
YW1lcywgY29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4q
IHJlc3VsdCkKLXsKLSAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3Jp
cHRPYmplY3QoKSwgInJlc3RhcnRGcmFtZSIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50
KGNhbGxGcmFtZXMpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxGcmFtZUlkKTsK
LSAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHJlc3VsdFZhbHVlOwotICAgIG1ha2VDYWxsKGZ1
bmN0aW9uLCAmcmVzdWx0VmFsdWUpOwotICAgIGlmIChyZXN1bHRWYWx1ZSkgewotICAgICAgICBp
ZiAocmVzdWx0VmFsdWUtPnR5cGUoKSA9PSBJbnNwZWN0b3JWYWx1ZTo6VHlwZVN0cmluZykgewot
ICAgICAgICAgICAgcmVzdWx0VmFsdWUtPmFzU3RyaW5nKGVycm9yU3RyaW5nKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0VmFsdWUtPnR5cGUoKSA9
PSBJbnNwZWN0b3JWYWx1ZTo6VHlwZU9iamVjdCkgewotICAgICAgICAgICAgKnJlc3VsdCA9IHJl
c3VsdFZhbHVlLT5hc09iamVjdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgfQotICAgICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvciI7Ci19Ci0KLXZvaWQgSW5q
ZWN0ZWRTY3JpcHQ6OnNldFZhcmlhYmxlVmFsdWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBj
b25zdCBTY3JpcHRWYWx1ZSYgY2FsbEZyYW1lcywgY29uc3QgU3RyaW5nKiBjYWxsRnJhbWVJZE9w
dCwgY29uc3QgU3RyaW5nKiBmdW5jdGlvbk9iamVjdElkT3B0LCBpbnQgc2NvcGVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgdmFyaWFibGVOYW1lLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlU3RyKQotewot
ICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVjdCgpLCAi
c2V0VmFyaWFibGVWYWx1ZSIpOwotICAgIGlmIChjYWxsRnJhbWVJZE9wdCkgewotICAgICAgICBm
dW5jdGlvbi5hcHBlbmRBcmd1bWVudChjYWxsRnJhbWVzKTsKLSAgICAgICAgZnVuY3Rpb24uYXBw
ZW5kQXJndW1lbnQoKmNhbGxGcmFtZUlkT3B0KTsKLSAgICB9IGVsc2UgewotICAgICAgICBmdW5j
dGlvbi5hcHBlbmRBcmd1bWVudChmYWxzZSk7Ci0gICAgICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3Vt
ZW50KGZhbHNlKTsKLSAgICB9Ci0gICAgaWYgKGZ1bmN0aW9uT2JqZWN0SWRPcHQpCi0gICAgICAg
IGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KCpmdW5jdGlvbk9iamVjdElkT3B0KTsKLSAgICBlbHNl
Ci0gICAgICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGZhbHNlKTsKLSAgICBmdW5jdGlvbi5h
cHBlbmRBcmd1bWVudChzY29wZU51bWJlcik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQo
dmFyaWFibGVOYW1lKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChuZXdWYWx1ZVN0cik7
Ci0gICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHRWYWx1ZTsKLSAgICBtYWtlQ2FsbChm
dW5jdGlvbiwgJnJlc3VsdFZhbHVlKTsKLSAgICBpZiAoIXJlc3VsdFZhbHVlKSB7Ci0gICAgICAg
ICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvciI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0gICAgaWYgKHJlc3VsdFZhbHVlLT50eXBlKCkgPT0gSW5zcGVjdG9yVmFsdWU6OlR5cGVTdHJp
bmcpIHsKLSAgICAgICAgcmVzdWx0VmFsdWUtPmFzU3RyaW5nKGVycm9yU3RyaW5nKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLSAgICAvLyBOb3JtYWwgcmV0dXJuLgotfQotCiB2b2lkIEluamVj
dGVkU2NyaXB0OjpnZXRGdW5jdGlvbkRldGFpbHMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGZ1bmN0aW9uSWQsIFJlZlB0cjxGdW5jdGlvbkRldGFpbHM+KiByZXN1bHQp
CiB7CiAgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKGluamVjdGVkU2NyaXB0T2JqZWN0
KCksICJnZXRGdW5jdGlvbkRldGFpbHMiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdC5oCShyZXZpc2lvbiAxNTU1NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAkod29ya2luZyBjb3B5KQpAQCAtODAsOCArODAsNiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZ2VuZXJhdGVQcmV2
aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1
bnRpbWU6OlJlbW90ZU9iamVjdD4qIHJlc3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKTsKLSAgICB2b2lkIHJl
c3RhcnRGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBj
b25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0
KTsKLSAgICB2b2lkIHNldFZhcmlhYmxlVmFsdWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTY3JpcHRW
YWx1ZSYgY2FsbEZyYW1lcywgY29uc3QgU3RyaW5nKiBjYWxsRnJhbWVJZE9wdCwgY29uc3QgU3Ry
aW5nKiBmdW5jdGlvbk9iamVjdElkT3B0LCBpbnQgc2NvcGVOdW1iZXIsIGNvbnN0IFN0cmluZyYg
dmFyaWFibGVOYW1lLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlU3RyKTsKICAgICB2b2lkIGdldEZ1
bmN0aW9uRGV0YWlscyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnVuY3Rpb25JZCwgUmVm
UHRyPFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6RnVuY3Rpb25EZXRhaWxzPiogcmVzdWx0KTsKICAg
ICB2b2lkIGdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElk
LCBib29sIG93blByb3BlcnRpZXMsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxk
ZXI6OlJ1bnRpbWU6OlByb3BlcnR5RGVzY3JpcHRvcj4gPiogcmVzdWx0KTsKICAgICB2b2lkIGdl
dEludGVybmFsUHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQs
IFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkludGVybmFs
UHJvcGVydHlEZXNjcmlwdG9yPiA+KiByZXN1bHQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3IuanNvbgkocmV2aXNpb24gMTU1NTc5KQorKysgU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0yODM4LDE3ICsyODM4
LDYgQEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRWRpdHMgSmF2YVNjcmlwdCBz
b3VyY2UgbGl2ZS4iCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICJuYW1lIjogInJlc3RhcnRGcmFtZSIsCi0gICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FsbEZyYW1lSWQiLCAiJHJlZiI6
ICJDYWxsRnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJDYWxsIGZyYW1lIGlkZW50aWZpZXIgdG8g
ZXZhbHVhdGUgb24uIiB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAicmV0
dXJucyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjYWxsRnJhbWVzIiwgInR5
cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNhbGxGcmFtZSJ9LCAiZGVzY3JpcHRp
b24iOiAiTmV3IHN0YWNrIHRyYWNlLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJyZXN1bHQiLCAidHlwZSI6ICJvYmplY3QiLCAiZGVzY3JpcHRpb24iOiAiVk0tc3BlY2lmaWMg
ZGVzY3JpcHRpb24uIiB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiUmVzdGFydHMgcGFydGljdWxhciBjYWxsIGZyYW1lIGZyb20gdGhlIGJlZ2lu
bmluZy4iCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJu
YW1lIjogImdldFNjcmlwdFNvdXJjZSIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBb
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2NyaXB0SWQiLCAiJHJlZiI6ICJTY3Jp
cHRJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgc2NyaXB0IHRvIGdldCBzb3VyY2UgZm9y
LiIgfQpAQCAtMjkyNSwxNyArMjkxNCw2IEBACiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2V0cyBvdmVybGF5IG1lc3NhZ2UuIgogICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRWYXJpYWJs
ZVZhbHVlIiwKLSAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJzY29wZU51bWJlciIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3Jp
cHRpb24iOiAiMC1iYXNlZCBudW1iZXIgb2Ygc2NvcGUgYXMgd2FzIGxpc3RlZCBpbiBzY29wZSBj
aGFpbi4gT25seSAnbG9jYWwnLCAnY2xvc3VyZScgYW5kICdjYXRjaCcgc2NvcGUgdHlwZXMgYXJl
IGFsbG93ZWQuIE90aGVyIHNjb3BlcyBjb3VsZCBiZSBtYW5pcHVsYXRlZCBtYW51YWxseS4iIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidmFyaWFibGVOYW1lIiwgInR5cGUiOiAi
c3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlZhcmlhYmxlIG5hbWUuIiB9LAotICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm5ld1ZhbHVlIiwgIiRyZWYiOiAiUnVudGltZS5DYWxsQXJndW1l
bnQiLCAiZGVzY3JpcHRpb24iOiAiTmV3IHZhcmlhYmxlIHZhbHVlLiIgfSwKLSAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJjYWxsRnJhbWVJZCIsICIkcmVmIjogIkNhbGxGcmFtZUlkIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklkIG9mIGNhbGxmcmFtZSB0aGF0IGhv
bGRzIHZhcmlhYmxlLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmdW5jdGlv
bk9iamVjdElkIiwgIiRyZWYiOiAiUnVudGltZS5SZW1vdGVPYmplY3RJZCIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJPYmplY3QgaWQgb2YgY2xvc3VyZSAoZnVuY3Rpb24pIHRo
YXQgaG9sZHMgdmFyaWFibGUuIiB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB2YWx1ZSBvZiB2YXJpYWJsZSBpbiBhIGNhbGxmcmFt
ZSBvciBhIGNsb3N1cmUuIEVpdGhlciBjYWxsZnJhbWUgb3IgZnVuY3Rpb24gbXVzdCBiZSBzcGVj
aWZpZWQuIE9iamVjdC1iYXNlZCBzY29wZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYW5kIG11c3QgYmUg
bXV0YXRlZCBtYW51YWxseS4iCi0gICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJl
dmVudHMiOiBbCiAgICAgICAgICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCShyZXZpc2lvbiAxNTU1NzkpCisr
KyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ2OSwxOCArNDY5LDYgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpzZXRTY3JpcHRTbwogICAgIGlmIChvYmplY3QpCiAgICAgICAgIHJlc3VsdCA9IG9iamVj
dDsKIH0KLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6cmVzdGFydEZyYW1lKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgUmVmUHRyPEFycmF5
PFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6Q2FsbEZyYW1lPiA+JiBuZXdDYWxsRnJhbWVzLCBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiYgcmVzdWx0KQotewotICAgIEluamVjdGVkU2NyaXB0IGluamVj
dGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2Jq
ZWN0SWQoY2FsbEZyYW1lSWQpOwotICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkp
IHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gIkluc3BlY3RlZCBmcmFtZSBoYXMgZ29uZSI7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpbmplY3RlZFNjcmlwdC5yZXN0YXJ0RnJhbWUo
ZXJyb3JTdHJpbmcsIG1fY3VycmVudENhbGxTdGFjaywgY2FsbEZyYW1lSWQsICZyZXN1bHQpOwot
ICAgIHNjcmlwdERlYnVnU2VydmVyKCkudXBkYXRlQ2FsbFN0YWNrKCZtX2N1cnJlbnRDYWxsU3Rh
Y2spOwotICAgIG5ld0NhbGxGcmFtZXMgPSBjdXJyZW50Q2FsbEZyYW1lcygpOwotfQogCiB2b2lk
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmdldFNjcmlwdFNvdXJjZShFcnJvclN0cmluZyogZXJy
b3IsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIFN0cmluZyogc2NyaXB0U291cmNlKQogewpAQCAt
NjY3LDMwICs2NTUsNiBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldE92ZXJsYXlN
CiB7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0VmFyaWFibGVWYWx1ZShF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBzY29wZU51bWJlciwgY29uc3QgU3RyaW5nJiB2
YXJpYWJsZU5hbWUsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBuZXdWYWx1ZSwgY29u
c3QgU3RyaW5nKiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nKiBmdW5jdGlvbk9iamVjdElkKQot
ewotICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0OwotICAgIGlmIChjYWxsRnJhbWVJ
ZCkgewotICAgICAgICBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5p
bmplY3RlZFNjcmlwdEZvck9iamVjdElkKCpjYWxsRnJhbWVJZCk7Ci0gICAgICAgIGlmIChpbmpl
Y3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKLSAgICAgICAgICAgICplcnJvclN0cmluZyA9ICJJ
bnNwZWN0ZWQgZnJhbWUgaGFzIGdvbmUiOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0gICAgfSBlbHNlIGlmIChmdW5jdGlvbk9iamVjdElkKSB7Ci0gICAgICAgIGluamVjdGVkU2Ny
aXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQo
KmZ1bmN0aW9uT2JqZWN0SWQpOwotICAgICAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1
ZSgpKSB7Ci0gICAgICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRnVuY3Rpb24gb2JqZWN0IGlkIGNh
bm5vdCBiZSByZXNvbHZlZCI7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9
IGVsc2UgewotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRWl0aGVyIGNhbGwgZnJhbWUgb3IgZnVu
Y3Rpb24gb2JqZWN0IG11c3QgYmUgc3BlY2lmaWVkIjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBTdHJpbmcgbmV3VmFsdWVTdHJpbmcgPSBuZXdWYWx1ZS0+dG9KU09OU3RyaW5nKCk7Ci0K
LSAgICBpbmplY3RlZFNjcmlwdC5zZXRWYXJpYWJsZVZhbHVlKGVycm9yU3RyaW5nLCBtX2N1cnJl
bnRDYWxsU3RhY2ssIGNhbGxGcmFtZUlkLCBmdW5jdGlvbk9iamVjdElkLCBzY29wZU51bWJlciwg
dmFyaWFibGVOYW1lLCBuZXdWYWx1ZVN0cmluZyk7Ci19Ci0KIHZvaWQgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6c2NyaXB0RXhlY3V0aW9uQmxvY2tlZEJ5Q1NQKGNvbnN0IFN0cmluZyYgZGlyZWN0
aXZlVGV4dCkKIHsKICAgICBpZiAoc2NyaXB0RGVidWdTZXJ2ZXIoKS5wYXVzZU9uRXhjZXB0aW9u
c1N0YXRlKCkgIT0gU2NyaXB0RGVidWdTZXJ2ZXI6OkRvbnRQYXVzZU9uRXhjZXB0aW9ucykgewpJ
bmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJB
Z2VudC5oCShyZXZpc2lvbiAxNTU1NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw2IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hJbkNvbnRlbnQoRXJyb3JTdHJpbmcqLCBj
b25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBib29sKiBv
cHRpb25hbENhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIG9wdGlvbmFsSXNSZWdleCwgUmVmUHRy
PFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6UGFnZTo6U2VhcmNoTWF0Y2g+ID4mKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBzY3JpcHRJZCwgY29uc3QgU3RyaW5nJiBuZXdDb250ZW50LCBjb25zdCBib29sKiBwcmV2
aWV3LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6Q2Fs
bEZyYW1lPiA+JiBuZXdDYWxsRnJhbWVzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgcmVzdWx0
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdGFydEZyYW1lKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBjYWxsRnJhbWVJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6
RGVidWdnZXI6OkNhbGxGcmFtZT4gPiYgbmV3Q2FsbEZyYW1lcywgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4mIHJlc3VsdCk7CiAgICAgdmlydHVhbCB2b2lkIGdldFNjcmlwdFNvdXJjZShFcnJvclN0
cmluZyosIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIFN0cmluZyogc2NyaXB0U291cmNlKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0RnVuY3Rpb25EZXRhaWxzKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBmdW5jdGlvbklkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpGdW5jdGlvbkRl
dGFpbHM+Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhdXNlKEVycm9yU3RyaW5nKik7CkBAIC0xMTMs
NyArMTEyLDYgQEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZVNjcmlwdChFcnJvclN0cmluZyos
IGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFR5cGVC
dWlsZGVyOjpPcHRPdXRwdXQ8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpTY3JpcHRJZD4qLCBUeXBl
QnVpbGRlcjo6T3B0T3V0cHV0PFN0cmluZz4qIHN5bnRheEVycm9yTWVzc2FnZSk7CiAgICAgdm9p
ZCBydW5TY3JpcHQoRXJyb3JTdHJpbmcqLCBjb25zdCBUeXBlQnVpbGRlcjo6RGVidWdnZXI6OlNj
cmlwdElkJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQsIGNvbnN0IFN0cmluZyogb2Jq
ZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29s
ZSwgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsIFR5
cGVCdWlsZGVyOjpPcHRPdXRwdXQ8Ym9vbD4qIHdhc1Rocm93bik7CiAgICAgdmlydHVhbCB2b2lk
IHNldE92ZXJsYXlNZXNzYWdlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nKik7Ci0gICAgdmly
dHVhbCB2b2lkIHNldFZhcmlhYmxlVmFsdWUoRXJyb3JTdHJpbmcqLCBpbnQgaW5fc2NvcGVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgaW5fdmFyaWFibGVOYW1lLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiYgaW5fbmV3VmFsdWUsIGNvbnN0IFN0cmluZyogaW5fY2FsbEZyYW1lLCBjb25zdCBT
dHJpbmcqIGluX2Z1bmN0aW9uT2JqZWN0SWQpOwogCiAgICAgdm9pZCBzY2hlZHVsZVBhdXNlT25O
ZXh0U3RhdGVtZW50KEluc3BlY3RvckZyb250ZW5kOjpEZWJ1Z2dlcjo6UmVhc29uOjpFbnVtIGJy
ZWFrUmVhc29uLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSk7CiAgICAgdm9pZCBj
YW5jZWxQYXVzZU9uTmV4dFN0YXRlbWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbAkocmV2aXNpb24gMTU1NTc5KQorKysg
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCwxMSArMzgsNyBAQAogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENBVENI
X1NDT1BFID0gNDsKIAogICAgIFtDdXN0b21dIHZvaWQgZXZhbHVhdGUoRE9NU3RyaW5nIHNjcmlw
dCk7Ci0gICAgW0N1c3RvbV0gYW55IHJlc3RhcnQoKTsKICAgICAKLSAgICAvLyBPbmx5IGRlY2xh
cmF0aXZlIHNjb3BlIChsb2NhbCwgd2l0aCBhbmQgY2F0Y2gpIGlzIGFjY2VwdGVkLiBSZXR1cm5z
IHVuZGVmaW5lZC4gCi0gICAgW0N1c3RvbV0gYW55IHNldFZhcmlhYmxlVmFsdWUoaW50IHNjb3Bl
SW5kZXgsIERPTVN0cmluZyB2YXJpYWJsZU5hbWUsIGFueSBuZXdWYWx1ZSk7Ci0KICAgICByZWFk
b25seSBhdHRyaWJ1dGUgSmF2YVNjcmlwdENhbGxGcmFtZSBjYWxsZXI7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGxvbmcgc291cmNlSUQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGlu
ZTsKQEAgLTUzLDQgKzQ5LDMgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZ1
bmN0aW9uTmFtZTsKICAgICBbQ3VzdG9tR2V0dGVyXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHR5cGU7CiB9OwotCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211371</attachid>
            <date>2013-09-11 17:43:44 -0700</date>
            <delta_ts>2013-09-11 17:46:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121194-20130911174340.patch</filename>
            <type>text/plain</type>
            <size>16592</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTU4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTA5LTExICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCBzb21lIHVudXNl
ZCBmdW5jdGlvbnMgZnJvbSB0aGUgZGVidWdnZXIgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjExOTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBwbGFuIHRvIHVzZSB0aGUgImV2YWx1
YXRlIiBBUEkgYW5kIGRlYnVnZ2VyIGFjdGl2YXRpb24gcHJvcGVydHkgYWNjZXNzIGZvciBhbGwg
dGhlIGZlYXR1cmVzIHdlIG5lZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0phdmFTY3Jp
cHRDYWxsRnJhbWVDdXN0b20uY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9KYXZhU2NyaXB0Q2Fs
bEZyYW1lLmlkbDoKKwogMjAxMy0wOS0xMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFTdHJlYW0gQVBJXSBVcGRhdGluZyBOYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvciB0byBtYXRjaCB0aGUgc3BlYwpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3Bw
CShyZXZpc2lvbiAxNTU1NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFT
Y3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMiArNDgsNiBA
QCBKU1ZhbHVlIEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6ZXZhbHVhdGUoCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotSlNWYWx1ZSBKU0phdmFTY3JpcHRDYWxsRnJhbWU6OnJlc3RhcnQoRXhlY1N0
YXRlKikKLXsKLSAgICAvLyBGSVhNRSg0MDMwMCk6IGltcGxlbWVudCB0aGlzLgotICAgIHJldHVy
biBKU1ZhbHVlKEpTVmFsdWU6OkpTRmFsc2UpOwotfQotCiBKU1ZhbHVlIEpTSmF2YVNjcmlwdENh
bGxGcmFtZTo6dGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdAogewogICAgIHJldHVybiBpbXBs
KCktPnRoaXNPYmplY3QoKSA/IEpTVmFsdWUoaW1wbCgpLT50aGlzT2JqZWN0KCkpIDoganNOdWxs
KCk7CkBAIC0xMzAsMTMgKzEyNCw2IEBAIEpTVmFsdWUgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpz
Y29wZVR5cGUKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotSlNWYWx1ZSBKU0phdmFT
Y3JpcHRDYWxsRnJhbWU6OnNldFZhcmlhYmxlVmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCi17
Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA3ODMwCi0gICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVj
LCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlZhcmlhYmxlIHZhbHVlIG11dGF0aW9uIGlzIG5vdCBz
dXBwb3J0ZWQiKSk7Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCShyZXZpc2lv
biAxNTU1NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05Niw1NiArOTYsNiBAQCB2b2lkIEluamVjdGVkU2NyaXB0Ojpl
dmFsdWF0ZU9uQ2FsbEZyYW1lCiAgICAgbWFrZUV2YWxDYWxsKGVycm9yU3RyaW5nLCBmdW5jdGlv
biwgcmVzdWx0LCB3YXNUaHJvd24pOwogfQogCi12b2lkIEluamVjdGVkU2NyaXB0OjpyZXN0YXJ0
RnJhbWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTY3JpcHRWYWx1ZSYgY2FsbEZy
YW1lcywgY29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4q
IHJlc3VsdCkKLXsKLSAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3Jp
cHRPYmplY3QoKSwgInJlc3RhcnRGcmFtZSIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50
KGNhbGxGcmFtZXMpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxGcmFtZUlkKTsK
LSAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHJlc3VsdFZhbHVlOwotICAgIG1ha2VDYWxsKGZ1
bmN0aW9uLCAmcmVzdWx0VmFsdWUpOwotICAgIGlmIChyZXN1bHRWYWx1ZSkgewotICAgICAgICBp
ZiAocmVzdWx0VmFsdWUtPnR5cGUoKSA9PSBJbnNwZWN0b3JWYWx1ZTo6VHlwZVN0cmluZykgewot
ICAgICAgICAgICAgcmVzdWx0VmFsdWUtPmFzU3RyaW5nKGVycm9yU3RyaW5nKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAocmVzdWx0VmFsdWUtPnR5cGUoKSA9
PSBJbnNwZWN0b3JWYWx1ZTo6VHlwZU9iamVjdCkgewotICAgICAgICAgICAgKnJlc3VsdCA9IHJl
c3VsdFZhbHVlLT5hc09iamVjdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgfQotICAgICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvciI7Ci19Ci0KLXZvaWQgSW5q
ZWN0ZWRTY3JpcHQ6OnNldFZhcmlhYmxlVmFsdWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBj
b25zdCBTY3JpcHRWYWx1ZSYgY2FsbEZyYW1lcywgY29uc3QgU3RyaW5nKiBjYWxsRnJhbWVJZE9w
dCwgY29uc3QgU3RyaW5nKiBmdW5jdGlvbk9iamVjdElkT3B0LCBpbnQgc2NvcGVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgdmFyaWFibGVOYW1lLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlU3RyKQotewot
ICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVjdCgpLCAi
c2V0VmFyaWFibGVWYWx1ZSIpOwotICAgIGlmIChjYWxsRnJhbWVJZE9wdCkgewotICAgICAgICBm
dW5jdGlvbi5hcHBlbmRBcmd1bWVudChjYWxsRnJhbWVzKTsKLSAgICAgICAgZnVuY3Rpb24uYXBw
ZW5kQXJndW1lbnQoKmNhbGxGcmFtZUlkT3B0KTsKLSAgICB9IGVsc2UgewotICAgICAgICBmdW5j
dGlvbi5hcHBlbmRBcmd1bWVudChmYWxzZSk7Ci0gICAgICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3Vt
ZW50KGZhbHNlKTsKLSAgICB9Ci0gICAgaWYgKGZ1bmN0aW9uT2JqZWN0SWRPcHQpCi0gICAgICAg
IGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KCpmdW5jdGlvbk9iamVjdElkT3B0KTsKLSAgICBlbHNl
Ci0gICAgICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGZhbHNlKTsKLSAgICBmdW5jdGlvbi5h
cHBlbmRBcmd1bWVudChzY29wZU51bWJlcik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQo
dmFyaWFibGVOYW1lKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChuZXdWYWx1ZVN0cik7
Ci0gICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHRWYWx1ZTsKLSAgICBtYWtlQ2FsbChm
dW5jdGlvbiwgJnJlc3VsdFZhbHVlKTsKLSAgICBpZiAoIXJlc3VsdFZhbHVlKSB7Ci0gICAgICAg
ICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvciI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0gICAgaWYgKHJlc3VsdFZhbHVlLT50eXBlKCkgPT0gSW5zcGVjdG9yVmFsdWU6OlR5cGVTdHJp
bmcpIHsKLSAgICAgICAgcmVzdWx0VmFsdWUtPmFzU3RyaW5nKGVycm9yU3RyaW5nKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLSAgICAvLyBOb3JtYWwgcmV0dXJuLgotfQotCiB2b2lkIEluamVj
dGVkU2NyaXB0OjpnZXRGdW5jdGlvbkRldGFpbHMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGZ1bmN0aW9uSWQsIFJlZlB0cjxGdW5jdGlvbkRldGFpbHM+KiByZXN1bHQp
CiB7CiAgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKGluamVjdGVkU2NyaXB0T2JqZWN0
KCksICJnZXRGdW5jdGlvbkRldGFpbHMiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdC5oCShyZXZpc2lvbiAxNTU1NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAkod29ya2luZyBjb3B5KQpAQCAtODAsOCArODAsNiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZ2VuZXJhdGVQcmV2
aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1
bnRpbWU6OlJlbW90ZU9iamVjdD4qIHJlc3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKTsKLSAgICB2b2lkIHJl
c3RhcnRGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBj
b25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0
KTsKLSAgICB2b2lkIHNldFZhcmlhYmxlVmFsdWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTY3JpcHRW
YWx1ZSYgY2FsbEZyYW1lcywgY29uc3QgU3RyaW5nKiBjYWxsRnJhbWVJZE9wdCwgY29uc3QgU3Ry
aW5nKiBmdW5jdGlvbk9iamVjdElkT3B0LCBpbnQgc2NvcGVOdW1iZXIsIGNvbnN0IFN0cmluZyYg
dmFyaWFibGVOYW1lLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlU3RyKTsKICAgICB2b2lkIGdldEZ1
bmN0aW9uRGV0YWlscyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnVuY3Rpb25JZCwgUmVm
UHRyPFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6RnVuY3Rpb25EZXRhaWxzPiogcmVzdWx0KTsKICAg
ICB2b2lkIGdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElk
LCBib29sIG93blByb3BlcnRpZXMsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxk
ZXI6OlJ1bnRpbWU6OlByb3BlcnR5RGVzY3JpcHRvcj4gPiogcmVzdWx0KTsKICAgICB2b2lkIGdl
dEludGVybmFsUHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQs
IFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkludGVybmFs
UHJvcGVydHlEZXNjcmlwdG9yPiA+KiByZXN1bHQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3IuanNvbgkocmV2aXNpb24gMTU1NTc5KQorKysgU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0yODM4LDE3ICsyODM4
LDYgQEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRWRpdHMgSmF2YVNjcmlwdCBz
b3VyY2UgbGl2ZS4iCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICJuYW1lIjogInJlc3RhcnRGcmFtZSIsCi0gICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FsbEZyYW1lSWQiLCAiJHJlZiI6
ICJDYWxsRnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJDYWxsIGZyYW1lIGlkZW50aWZpZXIgdG8g
ZXZhbHVhdGUgb24uIiB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAicmV0
dXJucyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjYWxsRnJhbWVzIiwgInR5
cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNhbGxGcmFtZSJ9LCAiZGVzY3JpcHRp
b24iOiAiTmV3IHN0YWNrIHRyYWNlLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJyZXN1bHQiLCAidHlwZSI6ICJvYmplY3QiLCAiZGVzY3JpcHRpb24iOiAiVk0tc3BlY2lmaWMg
ZGVzY3JpcHRpb24uIiB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiUmVzdGFydHMgcGFydGljdWxhciBjYWxsIGZyYW1lIGZyb20gdGhlIGJlZ2lu
bmluZy4iCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJu
YW1lIjogImdldFNjcmlwdFNvdXJjZSIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBb
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2NyaXB0SWQiLCAiJHJlZiI6ICJTY3Jp
cHRJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgc2NyaXB0IHRvIGdldCBzb3VyY2UgZm9y
LiIgfQpAQCAtMjkyNCwxNyArMjkxMyw2IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAibWVzc2FnZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJPdmVybGF5IG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHBhdXNlZCBpbiBkZWJ1Z2dl
ci4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJTZXRzIG92ZXJsYXkgbWVzc2FnZS4iCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICJuYW1lIjogInNldFZhcmlhYmxlVmFsdWUiLAotICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNjb3Bl
TnVtYmVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICIwLWJhc2VkIG51bWJl
ciBvZiBzY29wZSBhcyB3YXMgbGlzdGVkIGluIHNjb3BlIGNoYWluLiBPbmx5ICdsb2NhbCcsICdj
bG9zdXJlJyBhbmQgJ2NhdGNoJyBzY29wZSB0eXBlcyBhcmUgYWxsb3dlZC4gT3RoZXIgc2NvcGVz
IGNvdWxkIGJlIG1hbmlwdWxhdGVkIG1hbnVhbGx5LiIgfSwKLSAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJ2YXJpYWJsZU5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiVmFyaWFibGUgbmFtZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmV3
VmFsdWUiLCAiJHJlZiI6ICJSdW50aW1lLkNhbGxBcmd1bWVudCIsICJkZXNjcmlwdGlvbiI6ICJO
ZXcgdmFyaWFibGUgdmFsdWUuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNh
bGxGcmFtZUlkIiwgIiRyZWYiOiAiQ2FsbEZyYW1lSWQiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiSWQgb2YgY2FsbGZyYW1lIHRoYXQgaG9sZHMgdmFyaWFibGUuIiB9LAotICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZ1bmN0aW9uT2JqZWN0SWQiLCAiJHJlZiI6ICJS
dW50aW1lLlJlbW90ZU9iamVjdElkIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
Ik9iamVjdCBpZCBvZiBjbG9zdXJlIChmdW5jdGlvbikgdGhhdCBob2xkcyB2YXJpYWJsZS4iIH0K
LSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFu
Z2VzIHZhbHVlIG9mIHZhcmlhYmxlIGluIGEgY2FsbGZyYW1lIG9yIGEgY2xvc3VyZS4gRWl0aGVy
IGNhbGxmcmFtZSBvciBmdW5jdGlvbiBtdXN0IGJlIHNwZWNpZmllZC4gT2JqZWN0LWJhc2VkIHNj
b3BlcyBhcmUgbm90IHN1cHBvcnRlZCBhbmQgbXVzdCBiZSBtdXRhdGVkIG1hbnVhbGx5LiIKICAg
ICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAJ
KHJldmlzaW9uIDE1NTU3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDY5LDE4ICs0NjksNiBAQCB2b2lk
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldFNjcmlwdFNvCiAgICAgaWYgKG9iamVjdCkKICAg
ICAgICAgcmVzdWx0ID0gb2JqZWN0OwogfQotdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpy
ZXN0YXJ0RnJhbWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGNhbGxG
cmFtZUlkLCBSZWZQdHI8QXJyYXk8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpDYWxsRnJhbWU+ID4m
IG5ld0NhbGxGcmFtZXMsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiByZXN1bHQpCi17Ci0gICAg
SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+
aW5qZWN0ZWRTY3JpcHRGb3JPYmplY3RJZChjYWxsRnJhbWVJZCk7Ci0gICAgaWYgKGluamVjdGVk
U2NyaXB0Lmhhc05vVmFsdWUoKSkgewotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiSW5zcGVjdGVk
IGZyYW1lIGhhcyBnb25lIjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGluamVjdGVk
U2NyaXB0LnJlc3RhcnRGcmFtZShlcnJvclN0cmluZywgbV9jdXJyZW50Q2FsbFN0YWNrLCBjYWxs
RnJhbWVJZCwgJnJlc3VsdCk7Ci0gICAgc2NyaXB0RGVidWdTZXJ2ZXIoKS51cGRhdGVDYWxsU3Rh
Y2soJm1fY3VycmVudENhbGxTdGFjayk7Ci0gICAgbmV3Q2FsbEZyYW1lcyA9IGN1cnJlbnRDYWxs
RnJhbWVzKCk7Ci19CiAKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Z2V0U2NyaXB0U291
cmNlKEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgU3RyaW5nKiBz
Y3JpcHRTb3VyY2UpCiB7CkBAIC02NjcsMzAgKzY1NSw2IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6c2V0T3ZlcmxheU0KIHsKIH0KIAotdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpzZXRWYXJpYWJsZVZhbHVlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IHNjb3BlTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHZhcmlhYmxlTmFtZSwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4mIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcqIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcq
IGZ1bmN0aW9uT2JqZWN0SWQpCi17Ci0gICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQ7
Ci0gICAgaWYgKGNhbGxGcmFtZUlkKSB7Ci0gICAgICAgIGluamVjdGVkU2NyaXB0ID0gbV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQoKmNhbGxGcmFtZUlk
KTsKLSAgICAgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkgewotICAgICAgICAg
ICAgKmVycm9yU3RyaW5nID0gIkluc3BlY3RlZCBmcmFtZSBoYXMgZ29uZSI7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGZ1bmN0aW9uT2JqZWN0SWQpIHsK
LSAgICAgICAgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0
ZWRTY3JpcHRGb3JPYmplY3RJZCgqZnVuY3Rpb25PYmplY3RJZCk7Ci0gICAgICAgIGlmIChpbmpl
Y3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKLSAgICAgICAgICAgICplcnJvclN0cmluZyA9ICJG
dW5jdGlvbiBvYmplY3QgaWQgY2Fubm90IGJlIHJlc29sdmVkIjsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgICplcnJvclN0cmluZyA9ICJFaXRo
ZXIgY2FsbCBmcmFtZSBvciBmdW5jdGlvbiBvYmplY3QgbXVzdCBiZSBzcGVjaWZpZWQiOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotICAgIFN0cmluZyBuZXdWYWx1ZVN0cmluZyA9IG5ld1ZhbHVl
LT50b0pTT05TdHJpbmcoKTsKLQotICAgIGluamVjdGVkU2NyaXB0LnNldFZhcmlhYmxlVmFsdWUo
ZXJyb3JTdHJpbmcsIG1fY3VycmVudENhbGxTdGFjaywgY2FsbEZyYW1lSWQsIGZ1bmN0aW9uT2Jq
ZWN0SWQsIHNjb3BlTnVtYmVyLCB2YXJpYWJsZU5hbWUsIG5ld1ZhbHVlU3RyaW5nKTsKLX0KLQog
dm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzY3JpcHRFeGVjdXRpb25CbG9ja2VkQnlDU1Ao
Y29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0KQogewogICAgIGlmIChzY3JpcHREZWJ1Z1NlcnZl
cigpLnBhdXNlT25FeGNlcHRpb25zU3RhdGUoKSAhPSBTY3JpcHREZWJ1Z1NlcnZlcjo6RG9udFBh
dXNlT25FeGNlcHRpb25zKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRGVidWdnZXJBZ2VudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgJKHJldmlzaW9uIDE1NTU3OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTkxLDcgKzkxLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNlYXJjaEluQ29u
dGVudChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIGNvbnN0IFN0cmluZyYg
cXVlcnksIGNvbnN0IGJvb2wqIG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogb3B0
aW9uYWxJc1JlZ2V4LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpQYWdl
OjpTZWFyY2hNYXRjaD4gPiYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JpcHRTb3VyY2UoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25zdCBTdHJpbmcmIG5ld0NvbnRl
bnQsIGNvbnN0IGJvb2wqIHByZXZpZXcsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1
aWxkZXI6OkRlYnVnZ2VyOjpDYWxsRnJhbWU+ID4mIG5ld0NhbGxGcmFtZXMsIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+JiByZXN1bHQpOwotICAgIHZpcnR1YWwgdm9pZCByZXN0YXJ0RnJhbWUoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6
OkFycmF5PFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6Q2FsbEZyYW1lPiA+JiBuZXdDYWxsRnJhbWVz
LCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgcmVzdWx0KTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgU3RyaW5n
KiBzY3JpcHRTb3VyY2UpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRGdW5jdGlvbkRldGFpbHMoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6
RGVidWdnZXI6OkZ1bmN0aW9uRGV0YWlscz4mKTsKICAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoRXJy
b3JTdHJpbmcqKTsKQEAgLTExMyw3ICsxMTIsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxl
U2NyaXB0KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxUeXBlQnVpbGRlcjo6RGVidWdn
ZXI6OlNjcmlwdElkPiosIFR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8U3RyaW5nPiogc3ludGF4RXJy
b3JNZXNzYWdlKTsKICAgICB2b2lkIHJ1blNjcmlwdChFcnJvclN0cmluZyosIGNvbnN0IFR5cGVC
dWlsZGVyOjpEZWJ1Z2dlcjo6U2NyaXB0SWQmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJ
ZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogZG9Ob3RQYXVzZU9uRXhj
ZXB0aW9uc0FuZE11dGVDb25zb2xlLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90
ZU9iamVjdD4mIHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3du
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3ZlcmxheU1lc3NhZ2UoRXJyb3JTdHJpbmcqLCBjb25z
dCBTdHJpbmcqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFyaWFibGVWYWx1ZShFcnJvclN0cmlu
ZyosIGludCBpbl9zY29wZU51bWJlciwgY29uc3QgU3RyaW5nJiBpbl92YXJpYWJsZU5hbWUsIGNv
bnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBpbl9uZXdWYWx1ZSwgY29uc3QgU3RyaW5nKiBp
bl9jYWxsRnJhbWUsIGNvbnN0IFN0cmluZyogaW5fZnVuY3Rpb25PYmplY3RJZCk7CiAKICAgICB2
b2lkIHNjaGVkdWxlUGF1c2VPbk5leHRTdGF0ZW1lbnQoSW5zcGVjdG9yRnJvbnRlbmQ6OkRlYnVn
Z2VyOjpSZWFzb246OkVudW0gYnJlYWtSZWFzb24sIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBkYXRhKTsKICAgICB2b2lkIGNhbmNlbFBhdXNlT25OZXh0U3RhdGVtZW50KCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaWRsCShy
ZXZpc2lvbiAxNTU1NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENh
bGxGcmFtZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM4LDExICszOCw3IEBACiAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQ0FUQ0hfU0NPUEUgPSA0OwogCiAgICAgW0N1c3RvbV0gdm9pZCBldmFs
dWF0ZShET01TdHJpbmcgc2NyaXB0KTsKLSAgICBbQ3VzdG9tXSBhbnkgcmVzdGFydCgpOwogICAg
IAotICAgIC8vIE9ubHkgZGVjbGFyYXRpdmUgc2NvcGUgKGxvY2FsLCB3aXRoIGFuZCBjYXRjaCkg
aXMgYWNjZXB0ZWQuIFJldHVybnMgdW5kZWZpbmVkLiAKLSAgICBbQ3VzdG9tXSBhbnkgc2V0VmFy
aWFibGVWYWx1ZShpbnQgc2NvcGVJbmRleCwgRE9NU3RyaW5nIHZhcmlhYmxlTmFtZSwgYW55IG5l
d1ZhbHVlKTsKLQogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBKYXZhU2NyaXB0Q2FsbEZyYW1lIGNh
bGxlcjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBzb3VyY2VJRDsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyBsaW5lOwpAQCAtNTMsNCArNDksMyBAQAogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgZnVuY3Rpb25OYW1lOwogICAgIFtDdXN0b21HZXR0ZXJdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKIH07Ci0KSW5kZXg6IFNvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbnNwZWN0b3JCYWNr
ZW5kQ29tbWFuZHMuanMJKHJldmlzaW9uIDE1NTU3OSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMjk3LDcgKzI5Nyw2IEBAIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJE
ZWJ1Z2cKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJEZWJ1Z2dlci5zZWFyY2hJ
bkNvbnRlbnQiLCBbeyJuYW1lIjogInNjcmlwdElkIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlv
bmFsIjogZmFsc2V9LCB7Im5hbWUiOiAicXVlcnkiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9u
YWwiOiBmYWxzZX0sIHsibmFtZSI6ICJjYXNlU2Vuc2l0aXZlIiwgInR5cGUiOiAiYm9vbGVhbiIs
ICJvcHRpb25hbCI6IHRydWV9LCB7Im5hbWUiOiAiaXNSZWdleCIsICJ0eXBlIjogImJvb2xlYW4i
LCAib3B0aW9uYWwiOiB0cnVlfV0sIFsicmVzdWx0Il0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdp
c3RlckNvbW1hbmQoIkRlYnVnZ2VyLmNhblNldFNjcmlwdFNvdXJjZSIsIFtdLCBbInJlc3VsdCJd
KTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJEZWJ1Z2dlci5zZXRTY3JpcHRT
b3VyY2UiLCBbeyJuYW1lIjogInNjcmlwdElkIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFs
IjogZmFsc2V9LCB7Im5hbWUiOiAic2NyaXB0U291cmNlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAicHJldmlldyIsICJ0eXBlIjogImJvb2xlYW4iLCAi
b3B0aW9uYWwiOiB0cnVlfV0sIFsiY2FsbEZyYW1lcyIsICJyZXN1bHQiXSk7Ci1JbnNwZWN0b3JC
YWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiRGVidWdnZXIucmVzdGFydEZyYW1lIiwgW3sibmFtZSI6
ICJjYWxsRnJhbWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfV0sIFsi
Y2FsbEZyYW1lcyIsICJyZXN1bHQiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFu
ZCgiRGVidWdnZXIuZ2V0U2NyaXB0U291cmNlIiwgW3sibmFtZSI6ICJzY3JpcHRJZCIsICJ0eXBl
IjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfV0sIFsic2NyaXB0U291cmNlIl0pOwogSW5z
cGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkRlYnVnZ2VyLmdldEZ1bmN0aW9uRGV0YWls
cyIsIFt7Im5hbWUiOiAiZnVuY3Rpb25JZCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6
IGZhbHNlfV0sIFsiZGV0YWlscyJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5k
KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIFt7Im5hbWUiOiAic3RhdGUiLCAidHlw
ZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbXSk7CkBAIC0zMDUsNyArMzA0LDYg
QEAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkRlYnVnZwogSW5zcGVjdG9yQmFj
a2VuZC5yZWdpc3RlckNvbW1hbmQoIkRlYnVnZ2VyLmNvbXBpbGVTY3JpcHQiLCBbeyJuYW1lIjog
ImV4cHJlc3Npb24iLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFt
ZSI6ICJzb3VyY2VVUkwiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBb
InNjcmlwdElkIiwgInN5bnRheEVycm9yTWVzc2FnZSJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVn
aXN0ZXJDb21tYW5kKCJEZWJ1Z2dlci5ydW5TY3JpcHQiLCBbeyJuYW1lIjogInNjcmlwdElkIiwg
InR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAiY29udGV4dElk
IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZX0sIHsibmFtZSI6ICJvYmplY3RH
cm91cCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWV9LCB7Im5hbWUiOiAiZG9O
b3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJv
cHRpb25hbCI6IHRydWV9XSwgWyJyZXN1bHQiLCAid2FzVGhyb3duIl0pOwogSW5zcGVjdG9yQmFj
a2VuZC5yZWdpc3RlckNvbW1hbmQoIkRlYnVnZ2VyLnNldE92ZXJsYXlNZXNzYWdlIiwgW3sibmFt
ZSI6ICJtZXNzYWdlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZX1dLCBbXSk7
Ci1JbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiRGVidWdnZXIuc2V0VmFyaWFibGVW
YWx1ZSIsIFt7Im5hbWUiOiAic2NvcGVOdW1iZXIiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9u
YWwiOiBmYWxzZX0sIHsibmFtZSI6ICJ2YXJpYWJsZU5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAi
b3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJuZXdWYWx1ZSIsICJ0eXBlIjogIm9iamVjdCIs
ICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogImNhbGxGcmFtZUlkIiwgInR5cGUiOiAic3Ry
aW5nIiwgIm9wdGlvbmFsIjogdHJ1ZX0sIHsibmFtZSI6ICJmdW5jdGlvbk9iamVjdElkIiwgInR5
cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZX1dLCBbXSk7CiAKIC8vIERPTURlYnVnZ2Vy
LgogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIkRPTURlYnVnZ2VyLkRPTUJyZWFrcG9p
bnRUeXBlIiwge1N1YnRyZWVNb2RpZmllZDogInN1YnRyZWUtbW9kaWZpZWQiLCBBdHRyaWJ1dGVN
b2RpZmllZDogImF0dHJpYnV0ZS1tb2RpZmllZCIsIE5vZGVSZW1vdmVkOiAibm9kZS1yZW1vdmVk
In0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211373</attachid>
            <date>2013-09-11 17:46:39 -0700</date>
            <delta_ts>2013-09-11 19:30:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121194-20130911174635.patch</filename>
            <type>text/plain</type>
            <size>17808</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTU4MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDEzLTA5LTExICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCBzb21lIHVudXNl
ZCBmdW5jdGlvbnMgZnJvbSB0aGUgZGVidWdnZXIgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjExOTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBwbGFuIHRvIHVzZSB0aGUgImV2YWx1
YXRlIiBBUEkgYW5kIGRlYnVnZ2VyIGFjdGl2YXRpb24gcHJvcGVydHkgYWNjZXNzIGZvciBhbGwg
dGhlIGZlYXR1cmVzIHdlIG5lZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSmF2YVNjcmlwdENh
bGxGcmFtZS5pZGw6IFRoZXNlIGFyZSB0aGUgaW50ZXJmYWNlcyBJIHJlbW92ZWQuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldFNjcmlwdFNvdXJjZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaDogVGhlc2UgZmlsZXMgYXJlIG1l
Y2hhbmljYWwgcmVtb3ZhbHMgb2YgY29kZSB0aGF0IHVzZWQKKyAgICAgICAgb3IgaW1wbGVtZW50
ZWQgdGhlIGludGVyZmFjZXMgSSByZW1vdmVkLgorCiAyMDEzLTA5LTExICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVhbSBBUEldIFVw
ZGF0aW5nIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yIHRvIG1hdGNoIHRoZSBzcGVjCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSmF2YVNjcmlwdENh
bGxGcmFtZUN1c3RvbS5jcHAJKHJldmlzaW9uIDE1NTU3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ4LDEyICs0OCw2IEBAIEpTVmFsdWUgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpldmFsdWF0
ZSgKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU1ZhbHVlIEpTSmF2YVNjcmlwdENhbGxGcmFt
ZTo6cmVzdGFydChFeGVjU3RhdGUqKQotewotICAgIC8vIEZJWE1FKDQwMzAwKTogaW1wbGVtZW50
IHRoaXMuCi0gICAgcmV0dXJuIEpTVmFsdWUoSlNWYWx1ZTo6SlNGYWxzZSk7Ci19Ci0KIEpTVmFs
dWUgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjp0aGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGltcGwoKS0+dGhpc09iamVjdCgpID8gSlNWYWx1ZShpbXBsKCktPnRoaXNP
YmplY3QoKSkgOiBqc051bGwoKTsKQEAgLTEzMCwxMyArMTI0LDYgQEAgSlNWYWx1ZSBKU0phdmFT
Y3JpcHRDYWxsRnJhbWU6OnNjb3BlVHlwZQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQog
Ci1KU1ZhbHVlIEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6c2V0VmFyaWFibGVWYWx1ZShKU0M6OkV4
ZWNTdGF0ZSogZXhlYykKLXsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMuIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4MzAKLSAgICBleGVjLT52bSgpLnRo
cm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiVmFyaWFibGUgdmFsdWUg
bXV0YXRpb24gaXMgbm90IHN1cHBvcnRlZCIpKTsKLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdC5jcHAJKHJldmlzaW9uIDE1NTU3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDU2ICs5Niw2IEBAIHZvaWQg
SW5qZWN0ZWRTY3JpcHQ6OmV2YWx1YXRlT25DYWxsRnJhbWUKICAgICBtYWtlRXZhbENhbGwoZXJy
b3JTdHJpbmcsIGZ1bmN0aW9uLCByZXN1bHQsIHdhc1Rocm93bik7CiB9CiAKLXZvaWQgSW5qZWN0
ZWRTY3JpcHQ6OnJlc3RhcnRGcmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFNj
cmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KQotewotICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5j
dGlvbihpbmplY3RlZFNjcmlwdE9iamVjdCgpLCAicmVzdGFydEZyYW1lIik7Ci0gICAgZnVuY3Rp
b24uYXBwZW5kQXJndW1lbnQoY2FsbEZyYW1lcyk7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQoY2FsbEZyYW1lSWQpOwotICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gcmVzdWx0VmFsdWU7
Ci0gICAgbWFrZUNhbGwoZnVuY3Rpb24sICZyZXN1bHRWYWx1ZSk7Ci0gICAgaWYgKHJlc3VsdFZh
bHVlKSB7Ci0gICAgICAgIGlmIChyZXN1bHRWYWx1ZS0+dHlwZSgpID09IEluc3BlY3RvclZhbHVl
OjpUeXBlU3RyaW5nKSB7Ci0gICAgICAgICAgICByZXN1bHRWYWx1ZS0+YXNTdHJpbmcoZXJyb3JT
dHJpbmcpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1
bHRWYWx1ZS0+dHlwZSgpID09IEluc3BlY3RvclZhbHVlOjpUeXBlT2JqZWN0KSB7Ci0gICAgICAg
ICAgICAqcmVzdWx0ID0gcmVzdWx0VmFsdWUtPmFzT2JqZWN0KCk7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgKmVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9y
IjsKLX0KLQotdm9pZCBJbmplY3RlZFNjcmlwdDo6c2V0VmFyaWFibGVWYWx1ZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBTdHJp
bmcqIGNhbGxGcmFtZUlkT3B0LCBjb25zdCBTdHJpbmcqIGZ1bmN0aW9uT2JqZWN0SWRPcHQsIGlu
dCBzY29wZU51bWJlciwgY29uc3QgU3RyaW5nJiB2YXJpYWJsZU5hbWUsIGNvbnN0IFN0cmluZyYg
bmV3VmFsdWVTdHIpCi17Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKGluamVjdGVk
U2NyaXB0T2JqZWN0KCksICJzZXRWYXJpYWJsZVZhbHVlIik7Ci0gICAgaWYgKGNhbGxGcmFtZUlk
T3B0KSB7Ci0gICAgICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxGcmFtZXMpOwotICAg
ICAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudCgqY2FsbEZyYW1lSWRPcHQpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGZhbHNlKTsKLSAgICAgICAgZnVu
Y3Rpb24uYXBwZW5kQXJndW1lbnQoZmFsc2UpOwotICAgIH0KLSAgICBpZiAoZnVuY3Rpb25PYmpl
Y3RJZE9wdCkKLSAgICAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoKmZ1bmN0aW9uT2JqZWN0
SWRPcHQpOwotICAgIGVsc2UKLSAgICAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZmFsc2Up
OwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHNjb3BlTnVtYmVyKTsKLSAgICBmdW5jdGlv
bi5hcHBlbmRBcmd1bWVudCh2YXJpYWJsZU5hbWUpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3Vt
ZW50KG5ld1ZhbHVlU3RyKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHJlc3VsdFZhbHVl
OwotICAgIG1ha2VDYWxsKGZ1bmN0aW9uLCAmcmVzdWx0VmFsdWUpOwotICAgIGlmICghcmVzdWx0
VmFsdWUpIHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yIjsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAocmVzdWx0VmFsdWUtPnR5cGUoKSA9PSBJbnNwZWN0
b3JWYWx1ZTo6VHlwZVN0cmluZykgewotICAgICAgICByZXN1bHRWYWx1ZS0+YXNTdHJpbmcoZXJy
b3JTdHJpbmcpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIC8vIE5vcm1hbCByZXR1cm4u
Ci19Ci0KIHZvaWQgSW5qZWN0ZWRTY3JpcHQ6OmdldEZ1bmN0aW9uRGV0YWlscyhFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb25JZCwgUmVmUHRyPEZ1bmN0aW9u
RGV0YWlscz4qIHJlc3VsdCkKIHsKICAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5q
ZWN0ZWRTY3JpcHRPYmplY3QoKSwgImdldEZ1bmN0aW9uRGV0YWlscyIpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgJKHJldmlzaW9uIDE1NTU3OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC04MCw4ICs4MCw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBnZW5lcmF0ZVByZXZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZlB0
cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiogcmVzdWx0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJv
d24pOwotICAgIHZvaWQgcmVzdGFydEZyYW1lKEVycm9yU3RyaW5nKiwgY29uc3QgU2NyaXB0VmFs
dWUmIGNhbGxGcmFtZXMsIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+KiByZXN1bHQpOwotICAgIHZvaWQgc2V0VmFyaWFibGVWYWx1ZShFcnJvclN0cmlu
ZyosIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBTdHJpbmcqIGNhbGxGcmFt
ZUlkT3B0LCBjb25zdCBTdHJpbmcqIGZ1bmN0aW9uT2JqZWN0SWRPcHQsIGludCBzY29wZU51bWJl
ciwgY29uc3QgU3RyaW5nJiB2YXJpYWJsZU5hbWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWVTdHIp
OwogICAgIHZvaWQgZ2V0RnVuY3Rpb25EZXRhaWxzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
JiBmdW5jdGlvbklkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpGdW5jdGlvbkRldGFp
bHM+KiByZXN1bHQpOwogICAgIHZvaWQgZ2V0UHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgb2JqZWN0SWQsIGJvb2wgb3duUHJvcGVydGllcywgUmVmUHRyPFR5cGVCdWlsZGVy
OjpBcnJheTxUeXBlQnVpbGRlcjo6UnVudGltZTo6UHJvcGVydHlEZXNjcmlwdG9yPiA+KiByZXN1
bHQpOwogICAgIHZvaWQgZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgY29uc3Qg
U3RyaW5nJiBvYmplY3RJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6
UnVudGltZTo6SW50ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3I+ID4qIHJlc3VsdCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCShyZXZpc2lvbiAxNTU1NzkpCisr
KyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24JKHdvcmtpbmcgY29weSkK
QEAgLTI4MzgsMTcgKzI4MzgsNiBAQAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJF
ZGl0cyBKYXZhU2NyaXB0IHNvdXJjZSBsaXZlLiIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAicmVzdGFydEZyYW1lIiwKLSAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjYWxs
RnJhbWVJZCIsICIkcmVmIjogIkNhbGxGcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIkNhbGwgZnJh
bWUgaWRlbnRpZmllciB0byBldmFsdWF0ZSBvbi4iIH0KLSAgICAgICAgICAgICAgICBdLAotICAg
ICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNhbGxGcmFtZXMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiQ2FsbEZy
YW1lIn0sICJkZXNjcmlwdGlvbiI6ICJOZXcgc3RhY2sgdHJhY2UuIiB9LAotICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICJ0eXBlIjogIm9iamVjdCIsICJkZXNjcmlwdGlv
biI6ICJWTS1zcGVjaWZpYyBkZXNjcmlwdGlvbi4iIH0KLSAgICAgICAgICAgICAgICBdLAotICAg
ICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXN0YXJ0cyBwYXJ0aWN1bGFyIGNhbGwgZnJh
bWUgZnJvbSB0aGUgYmVnaW5uaW5nLiIKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0U2NyaXB0U291cmNlIiwKICAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3JpcHRJ
ZCIsICIkcmVmIjogIlNjcmlwdElkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBzY3JpcHQg
dG8gZ2V0IHNvdXJjZSBmb3IuIiB9CkBAIC0yOTI0LDE3ICsyOTEzLDYgQEAKICAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJtZXNzYWdlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk92ZXJsYXkgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4g
cGF1c2VkIGluIGRlYnVnZ2VyLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlNldHMgb3ZlcmxheSBtZXNzYWdlLiIKLSAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAic2V0VmFyaWFibGVWYWx1
ZSIsCi0gICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAic2NvcGVOdW1iZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9u
IjogIjAtYmFzZWQgbnVtYmVyIG9mIHNjb3BlIGFzIHdhcyBsaXN0ZWQgaW4gc2NvcGUgY2hhaW4u
IE9ubHkgJ2xvY2FsJywgJ2Nsb3N1cmUnIGFuZCAnY2F0Y2gnIHNjb3BlIHR5cGVzIGFyZSBhbGxv
d2VkLiBPdGhlciBzY29wZXMgY291bGQgYmUgbWFuaXB1bGF0ZWQgbWFudWFsbHkuIiB9LAotICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInZhcmlhYmxlTmFtZSIsICJ0eXBlIjogInN0cmlu
ZyIsICJkZXNjcmlwdGlvbiI6ICJWYXJpYWJsZSBuYW1lLiIgfSwKLSAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJuZXdWYWx1ZSIsICIkcmVmIjogIlJ1bnRpbWUuQ2FsbEFyZ3VtZW50Iiwg
ImRlc2NyaXB0aW9uIjogIk5ldyB2YXJpYWJsZSB2YWx1ZS4iIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiY2FsbEZyYW1lSWQiLCAiJHJlZiI6ICJDYWxsRnJhbWVJZCIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiBjYWxsZnJhbWUgdGhhdCBob2xkcyB2
YXJpYWJsZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnVuY3Rpb25PYmpl
Y3RJZCIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0SWQiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiT2JqZWN0IGlkIG9mIGNsb3N1cmUgKGZ1bmN0aW9uKSB0aGF0IGhv
bGRzIHZhcmlhYmxlLiIgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIkNoYW5nZXMgdmFsdWUgb2YgdmFyaWFibGUgaW4gYSBjYWxsZnJhbWUgb3Ig
YSBjbG9zdXJlLiBFaXRoZXIgY2FsbGZyYW1lIG9yIGZ1bmN0aW9uIG11c3QgYmUgc3BlY2lmaWVk
LiBPYmplY3QtYmFzZWQgc2NvcGVzIGFyZSBub3Qgc3VwcG9ydGVkIGFuZCBtdXN0IGJlIG11dGF0
ZWQgbWFudWFsbHkuIgogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgICAgICAiZXZlbnRz
IjogWwpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdl
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcAkocmV2aXNpb24gMTU1NTc5KQorKysgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Njks
MTggKzQ2OSw2IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0U2NyaXB0U28KICAg
ICBpZiAob2JqZWN0KQogICAgICAgICByZXN1bHQgPSBvYmplY3Q7CiB9Ci12b2lkIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6OnJlc3RhcnRGcmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNv
bnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIFJlZlB0cjxBcnJheTxUeXBlQnVpbGRlcjo6RGVidWdn
ZXI6OkNhbGxGcmFtZT4gPiYgbmV3Q2FsbEZyYW1lcywgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4m
IHJlc3VsdCkKLXsKLSAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZvck9iamVjdElkKGNhbGxGcmFtZUlkKTsK
LSAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKSB7Ci0gICAgICAgICplcnJvclN0
cmluZyA9ICJJbnNwZWN0ZWQgZnJhbWUgaGFzIGdvbmUiOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgaW5qZWN0ZWRTY3JpcHQucmVzdGFydEZyYW1lKGVycm9yU3RyaW5nLCBtX2N1cnJl
bnRDYWxsU3RhY2ssIGNhbGxGcmFtZUlkLCAmcmVzdWx0KTsKLSAgICBzY3JpcHREZWJ1Z1NlcnZl
cigpLnVwZGF0ZUNhbGxTdGFjaygmbV9jdXJyZW50Q2FsbFN0YWNrKTsKLSAgICBuZXdDYWxsRnJh
bWVzID0gY3VycmVudENhbGxGcmFtZXMoKTsKLX0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpnZXRTY3JpcHRTb3VyY2UoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIHNj
cmlwdElkLCBTdHJpbmcqIHNjcmlwdFNvdXJjZSkKIHsKQEAgLTY2NywzMCArNjU1LDYgQEAgdm9p
ZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRPdmVybGF5TQogewogfQogCi12b2lkIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ6OnNldFZhcmlhYmxlVmFsdWUoRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCBpbnQgc2NvcGVOdW1iZXIsIGNvbnN0IFN0cmluZyYgdmFyaWFibGVOYW1lLCBjb25zdCBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyogY2FsbEZyYW1l
SWQsIGNvbnN0IFN0cmluZyogZnVuY3Rpb25PYmplY3RJZCkKLXsKLSAgICBJbmplY3RlZFNjcmlw
dCBpbmplY3RlZFNjcmlwdDsKLSAgICBpZiAoY2FsbEZyYW1lSWQpIHsKLSAgICAgICAgaW5qZWN0
ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3JPYmpl
Y3RJZCgqY2FsbEZyYW1lSWQpOwotICAgICAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1
ZSgpKSB7Ci0gICAgICAgICAgICAqZXJyb3JTdHJpbmcgPSAiSW5zcGVjdGVkIGZyYW1lIGhhcyBn
b25lIjsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoZnVu
Y3Rpb25PYmplY3RJZCkgewotICAgICAgICBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZvck9iamVjdElkKCpmdW5jdGlvbk9iamVjdElkKTsK
LSAgICAgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkgewotICAgICAgICAgICAg
KmVycm9yU3RyaW5nID0gIkZ1bmN0aW9uIG9iamVjdCBpZCBjYW5ub3QgYmUgcmVzb2x2ZWQiOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgKmVy
cm9yU3RyaW5nID0gIkVpdGhlciBjYWxsIGZyYW1lIG9yIGZ1bmN0aW9uIG9iamVjdCBtdXN0IGJl
IHNwZWNpZmllZCI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgU3RyaW5nIG5ld1ZhbHVl
U3RyaW5nID0gbmV3VmFsdWUtPnRvSlNPTlN0cmluZygpOwotCi0gICAgaW5qZWN0ZWRTY3JpcHQu
c2V0VmFyaWFibGVWYWx1ZShlcnJvclN0cmluZywgbV9jdXJyZW50Q2FsbFN0YWNrLCBjYWxsRnJh
bWVJZCwgZnVuY3Rpb25PYmplY3RJZCwgc2NvcGVOdW1iZXIsIHZhcmlhYmxlTmFtZSwgbmV3VmFs
dWVTdHJpbmcpOwotfQotCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNjcmlwdEV4ZWN1
dGlvbkJsb2NrZWRCeUNTUChjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQpCiB7CiAgICAgaWYg
KHNjcmlwdERlYnVnU2VydmVyKCkucGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSgpICE9IFNjcmlwdERl
YnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnMpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAkocmV2aXNpb24gMTU1
NTc5KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtOTEsNyArOTEsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2VhcmNoSW5Db250ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzY3JpcHRJ
ZCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3QgYm9vbCogb3B0aW9uYWxDYXNlU2Vuc2l0aXZl
LCBjb25zdCBib29sKiBvcHRpb25hbElzUmVnZXgsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8
VHlwZUJ1aWxkZXI6OlBhZ2U6OlNlYXJjaE1hdGNoPiA+Jik7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFNjcmlwdFNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIGNvbnN0
IFN0cmluZyYgbmV3Q29udGVudCwgY29uc3QgYm9vbCogcHJldmlldywgUmVmUHRyPFR5cGVCdWls
ZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6RGVidWdnZXI6OkNhbGxGcmFtZT4gPiYgbmV3Q2FsbEZy
YW1lcywgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHJlc3VsdCk7Ci0gICAgdmlydHVhbCB2b2lk
IHJlc3RhcnRGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIFJl
ZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpDYWxsRnJhbWU+
ID4mIG5ld0NhbGxGcmFtZXMsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiByZXN1bHQpOwogICAg
IHZpcnR1YWwgdm9pZCBnZXRTY3JpcHRTb3VyY2UoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IHNjcmlwdElkLCBTdHJpbmcqIHNjcmlwdFNvdXJjZSk7CiAgICAgdmlydHVhbCB2b2lkIGdldEZ1
bmN0aW9uRGV0YWlscyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnVuY3Rpb25JZCwgUmVm
UHRyPFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6RnVuY3Rpb25EZXRhaWxzPiYpOwogICAgIHZpcnR1
YWwgdm9pZCBwYXVzZShFcnJvclN0cmluZyopOwpAQCAtMTEzLDcgKzExMiw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNvbXBpbGVTY3JpcHQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGV4cHJl
c3Npb24sIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PFR5
cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6U2NyaXB0SWQ+KiwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxT
dHJpbmc+KiBzeW50YXhFcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgcnVuU2NyaXB0KEVycm9yU3Ry
aW5nKiwgY29uc3QgVHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpTY3JpcHRJZCYsIGNvbnN0IGludCog
ZXhlY3V0aW9uQ29udGV4dElkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBjb25zdCBib29s
KiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIFJlZlB0cjxUeXBlQnVpbGRl
cjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0
PGJvb2w+KiB3YXNUaHJvd24pOwogICAgIHZpcnR1YWwgdm9pZCBzZXRPdmVybGF5TWVzc2FnZShF
cnJvclN0cmluZyosIGNvbnN0IFN0cmluZyopOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYXJpYWJs
ZVZhbHVlKEVycm9yU3RyaW5nKiwgaW50IGluX3Njb3BlTnVtYmVyLCBjb25zdCBTdHJpbmcmIGlu
X3ZhcmlhYmxlTmFtZSwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGluX25ld1ZhbHVl
LCBjb25zdCBTdHJpbmcqIGluX2NhbGxGcmFtZSwgY29uc3QgU3RyaW5nKiBpbl9mdW5jdGlvbk9i
amVjdElkKTsKIAogICAgIHZvaWQgc2NoZWR1bGVQYXVzZU9uTmV4dFN0YXRlbWVudChJbnNwZWN0
b3JGcm9udGVuZDo6RGVidWdnZXI6OlJlYXNvbjo6RW51bSBicmVha1JlYXNvbiwgUGFzc1JlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEpOwogICAgIHZvaWQgY2FuY2VsUGF1c2VPbk5leHRTdGF0
ZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZy
YW1lLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSmF2YVNjcmlw
dENhbGxGcmFtZS5pZGwJKHJldmlzaW9uIDE1NTU3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTEgKzM4
LDcgQEAKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDQVRDSF9TQ09QRSA9IDQ7CiAKICAgICBb
Q3VzdG9tXSB2b2lkIGV2YWx1YXRlKERPTVN0cmluZyBzY3JpcHQpOwotICAgIFtDdXN0b21dIGFu
eSByZXN0YXJ0KCk7CiAgICAgCi0gICAgLy8gT25seSBkZWNsYXJhdGl2ZSBzY29wZSAobG9jYWws
IHdpdGggYW5kIGNhdGNoKSBpcyBhY2NlcHRlZC4gUmV0dXJucyB1bmRlZmluZWQuIAotICAgIFtD
dXN0b21dIGFueSBzZXRWYXJpYWJsZVZhbHVlKGludCBzY29wZUluZGV4LCBET01TdHJpbmcgdmFy
aWFibGVOYW1lLCBhbnkgbmV3VmFsdWUpOwotCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEphdmFT
Y3JpcHRDYWxsRnJhbWUgY2FsbGVyOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHNvdXJj
ZUlEOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxpbmU7CkBAIC01Myw0ICs0OSwzIEBA
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBmdW5jdGlvbk5hbWU7CiAgICAgW0N1
c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogfTsKLQpJbmRl
eDogU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTU1ODEpCisrKyBTb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTMtMDktMTEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW1vdmVkIHNvbWUgdW51c2VkIGZ1bmN0aW9ucyBmcm9tIHRoZSBkZWJ1Z2dlciBpbnRlcmZhY2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTE5NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHBsYW4g
dG8gdXNlIHRoZSAiZXZhbHVhdGUiIEFQSSBhbmQgZGVidWdnZXIgYWN0aXZhdGlvbiBwcm9wZXJ0
eSBhY2Nlc3MgZm9yIGFsbCB0aGUgZmVhdHVyZXMgd2UgbmVlZC4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzOiBVcGRhdGVkIGJ5IHNjcmlwdC4K
KwogMjAxMy0wOS0wNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IERvd25sb2FkIEFyY2hpdmUgYnV0dG9uIGluY29ycmVjdGx5
IHN0eWxlZCB3aGVuIGRpc2FibGVkIGFuZCB0cmVlIGVsZW1lbnQgaXMgbm90LXNlbGVjdGVkCklu
ZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbnNwZWN0b3JCYWNrZW5k
Q29tbWFuZHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCShyZXZpc2lvbiAxNTU1NzkpCisrKyBT
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbnNwZWN0b3JCYWNrZW5kQ29tbWFu
ZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTI5Nyw3ICsyOTcsNiBAQCBJbnNwZWN0b3JCYWNrZW5k
LnJlZ2lzdGVyQ29tbWFuZCgiRGVidWdnCiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFu
ZCgiRGVidWdnZXIuc2VhcmNoSW5Db250ZW50IiwgW3sibmFtZSI6ICJzY3JpcHRJZCIsICJ0eXBl
IjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogInF1ZXJ5IiwgInR5cGUi
OiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAiY2FzZVNlbnNpdGl2ZSIs
ICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlfSwgeyJuYW1lIjogImlzUmVnZXgi
LCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZX1dLCBbInJlc3VsdCJdKTsKIElu
c3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJEZWJ1Z2dlci5jYW5TZXRTY3JpcHRTb3Vy
Y2UiLCBbXSwgWyJyZXN1bHQiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgi
RGVidWdnZXIuc2V0U2NyaXB0U291cmNlIiwgW3sibmFtZSI6ICJzY3JpcHRJZCIsICJ0eXBlIjog
InN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogInNjcmlwdFNvdXJjZSIsICJ0
eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogInByZXZpZXciLCAi
dHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZX1dLCBbImNhbGxGcmFtZXMiLCAicmVz
dWx0Il0pOwotSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkRlYnVnZ2VyLnJlc3Rh
cnRGcmFtZSIsIFt7Im5hbWUiOiAiY2FsbEZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0
aW9uYWwiOiBmYWxzZX1dLCBbImNhbGxGcmFtZXMiLCAicmVzdWx0Il0pOwogSW5zcGVjdG9yQmFj
a2VuZC5yZWdpc3RlckNvbW1hbmQoIkRlYnVnZ2VyLmdldFNjcmlwdFNvdXJjZSIsIFt7Im5hbWUi
OiAic2NyaXB0SWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInNj
cmlwdFNvdXJjZSJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJEZWJ1Z2dl
ci5nZXRGdW5jdGlvbkRldGFpbHMiLCBbeyJuYW1lIjogImZ1bmN0aW9uSWQiLCAidHlwZSI6ICJz
dHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbImRldGFpbHMiXSk7CiBJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyQ29tbWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCBbeyJu
YW1lIjogInN0YXRlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgW10p
OwpAQCAtMzA1LDcgKzMwNCw2IEBAIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJE
ZWJ1Z2cKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJEZWJ1Z2dlci5jb21waWxl
U2NyaXB0IiwgW3sibmFtZSI6ICJleHByZXNzaW9uIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlv
bmFsIjogZmFsc2V9LCB7Im5hbWUiOiAic291cmNlVVJMIiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogZmFsc2V9XSwgWyJzY3JpcHRJZCIsICJzeW50YXhFcnJvck1lc3NhZ2UiXSk7CiBJ
bnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiRGVidWdnZXIucnVuU2NyaXB0IiwgW3si
bmFtZSI6ICJzY3JpcHRJZCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfSwg
eyJuYW1lIjogImNvbnRleHRJZCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWV9
LCB7Im5hbWUiOiAib2JqZWN0R3JvdXAiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0
cnVlfSwgeyJuYW1lIjogImRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSIsICJ0
eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlfV0sIFsicmVzdWx0IiwgIndhc1Rocm93
biJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJEZWJ1Z2dlci5zZXRPdmVy
bGF5TWVzc2FnZSIsIFt7Im5hbWUiOiAibWVzc2FnZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRp
b25hbCI6IHRydWV9XSwgW10pOwotSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkRl
YnVnZ2VyLnNldFZhcmlhYmxlVmFsdWUiLCBbeyJuYW1lIjogInNjb3BlTnVtYmVyIiwgInR5cGUi
OiAibnVtYmVyIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAidmFyaWFibGVOYW1lIiwg
InR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAibmV3VmFsdWUi
LCAidHlwZSI6ICJvYmplY3QiLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJjYWxsRnJh
bWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWV9LCB7Im5hbWUiOiAiZnVu
Y3Rpb25PYmplY3RJZCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWV9XSwgW10p
OwogCiAvLyBET01EZWJ1Z2dlci4KIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJET01E
ZWJ1Z2dlci5ET01CcmVha3BvaW50VHlwZSIsIHtTdWJ0cmVlTW9kaWZpZWQ6ICJzdWJ0cmVlLW1v
ZGlmaWVkIiwgQXR0cmlidXRlTW9kaWZpZWQ6ICJhdHRyaWJ1dGUtbW9kaWZpZWQiLCBOb2RlUmVt
b3ZlZDogIm5vZGUtcmVtb3ZlZCJ9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211387</attachid>
            <date>2013-09-11 19:30:12 -0700</date>
            <delta_ts>2013-09-11 19:39:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121194-20130911193007.patch</filename>
            <type>text/plain</type>
            <size>27524</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTU4NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDEzLTA5LTExICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCBzb21lIHVudXNl
ZCBmdW5jdGlvbnMgZnJvbSB0aGUgZGVidWdnZXIgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjExOTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBwbGFuIHRvIHVzZSB0aGUgImV2YWx1
YXRlIiBBUEkgYW5kIGRlYnVnZ2VyIGFjdGl2YXRpb24gcHJvcGVydHkgYWNjZXNzIGZvciBhbGwg
dGhlIGZlYXR1cmVzIHdlIG5lZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSmF2YVNjcmlwdENh
bGxGcmFtZS5pZGw6IFRoZXNlIGFyZSB0aGUgaW50ZXJmYWNlcyBJIHJlbW92ZWQuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNl
LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0phdmFTY3Jp
cHRDYWxsRnJhbWUuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2Jq
ZWN0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5
VmFsdWUpOiBUaGVzZSBmaWxlcyBhcmUgbWVjaGFuaWNhbCByZW1vdmFscyBvZiBjb2RlIHRoYXQg
dXNlZAorICAgICAgICBvciBpbXBsZW1lbnRlZCB0aGUgaW50ZXJmYWNlcyBJIHJlbW92ZWQuCisK
IDIwMTMtMDktMTEgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgRE9NUGFyc2VyLnBhcnNlRnJvbVN0cmluZygpIHNob3VsZCBzdXBwb3J0IGNyZWF0aW5n
IEhUTUwgRG9jdW1lbnQgd2l0aCBtaW1lLXR5cGUgdGV4dC9odG1sCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSmF2YVNjcmlwdENhbGxGcmFtZUN1
c3RvbS5jcHAJKHJldmlzaW9uIDE1NTU3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDEy
ICs0OCw2IEBAIEpTVmFsdWUgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpldmFsdWF0ZSgKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1KU1ZhbHVlIEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6cmVzdGFy
dChFeGVjU3RhdGUqKQotewotICAgIC8vIEZJWE1FKDQwMzAwKTogaW1wbGVtZW50IHRoaXMuCi0g
ICAgcmV0dXJuIEpTVmFsdWUoSlNWYWx1ZTo6SlNGYWxzZSk7Ci19Ci0KIEpTVmFsdWUgSlNKYXZh
U2NyaXB0Q2FsbEZyYW1lOjp0aGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGltcGwoKS0+dGhpc09iamVjdCgpID8gSlNWYWx1ZShpbXBsKCktPnRoaXNPYmplY3QoKSkg
OiBqc051bGwoKTsKQEAgLTEzMCwxMyArMTI0LDYgQEAgSlNWYWx1ZSBKU0phdmFTY3JpcHRDYWxs
RnJhbWU6OnNjb3BlVHlwZQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1KU1ZhbHVl
IEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6c2V0VmFyaWFibGVWYWx1ZShKU0M6OkV4ZWNTdGF0ZSog
ZXhlYykKLXsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMuIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc4MzAKLSAgICBleGVjLT52bSgpLnRocm93RXhjZXB0
aW9uKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiVmFyaWFibGUgdmFsdWUgbXV0YXRpb24g
aXMgbm90IHN1cHBvcnRlZCIpKTsKLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdH
RVIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAJ
KHJldmlzaW9uIDE1NTU3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDU2ICs5Niw2IEBAIHZvaWQgSW5qZWN0ZWRT
Y3JpcHQ6OmV2YWx1YXRlT25DYWxsRnJhbWUKICAgICBtYWtlRXZhbENhbGwoZXJyb3JTdHJpbmcs
IGZ1bmN0aW9uLCByZXN1bHQsIHdhc1Rocm93bik7CiB9CiAKLXZvaWQgSW5qZWN0ZWRTY3JpcHQ6
OnJlc3RhcnRGcmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFNjcmlwdFZhbHVl
JiBjYWxsRnJhbWVzLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiogcmVzdWx0KQotewotICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmpl
Y3RlZFNjcmlwdE9iamVjdCgpLCAicmVzdGFydEZyYW1lIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5k
QXJndW1lbnQoY2FsbEZyYW1lcyk7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY2FsbEZy
YW1lSWQpOwotICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gcmVzdWx0VmFsdWU7Ci0gICAgbWFr
ZUNhbGwoZnVuY3Rpb24sICZyZXN1bHRWYWx1ZSk7Ci0gICAgaWYgKHJlc3VsdFZhbHVlKSB7Ci0g
ICAgICAgIGlmIChyZXN1bHRWYWx1ZS0+dHlwZSgpID09IEluc3BlY3RvclZhbHVlOjpUeXBlU3Ry
aW5nKSB7Ci0gICAgICAgICAgICByZXN1bHRWYWx1ZS0+YXNTdHJpbmcoZXJyb3JTdHJpbmcpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHRWYWx1ZS0+
dHlwZSgpID09IEluc3BlY3RvclZhbHVlOjpUeXBlT2JqZWN0KSB7Ci0gICAgICAgICAgICAqcmVz
dWx0ID0gcmVzdWx0VmFsdWUtPmFzT2JqZWN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICB9Ci0gICAgKmVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yIjsKLX0KLQot
dm9pZCBJbmplY3RlZFNjcmlwdDo6c2V0VmFyaWFibGVWYWx1ZShFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcsIGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBTdHJpbmcqIGNhbGxG
cmFtZUlkT3B0LCBjb25zdCBTdHJpbmcqIGZ1bmN0aW9uT2JqZWN0SWRPcHQsIGludCBzY29wZU51
bWJlciwgY29uc3QgU3RyaW5nJiB2YXJpYWJsZU5hbWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWVT
dHIpCi17Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKGluamVjdGVkU2NyaXB0T2Jq
ZWN0KCksICJzZXRWYXJpYWJsZVZhbHVlIik7Ci0gICAgaWYgKGNhbGxGcmFtZUlkT3B0KSB7Ci0g
ICAgICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxGcmFtZXMpOwotICAgICAgICBmdW5j
dGlvbi5hcHBlbmRBcmd1bWVudCgqY2FsbEZyYW1lSWRPcHQpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGZhbHNlKTsKLSAgICAgICAgZnVuY3Rpb24uYXBw
ZW5kQXJndW1lbnQoZmFsc2UpOwotICAgIH0KLSAgICBpZiAoZnVuY3Rpb25PYmplY3RJZE9wdCkK
LSAgICAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoKmZ1bmN0aW9uT2JqZWN0SWRPcHQpOwot
ICAgIGVsc2UKLSAgICAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZmFsc2UpOwotICAgIGZ1
bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHNjb3BlTnVtYmVyKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRB
cmd1bWVudCh2YXJpYWJsZU5hbWUpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KG5ld1Zh
bHVlU3RyKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHJlc3VsdFZhbHVlOwotICAgIG1h
a2VDYWxsKGZ1bmN0aW9uLCAmcmVzdWx0VmFsdWUpOwotICAgIGlmICghcmVzdWx0VmFsdWUpIHsK
LSAgICAgICAgKmVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yIjsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLSAgICBpZiAocmVzdWx0VmFsdWUtPnR5cGUoKSA9PSBJbnNwZWN0b3JWYWx1ZTo6
VHlwZVN0cmluZykgewotICAgICAgICByZXN1bHRWYWx1ZS0+YXNTdHJpbmcoZXJyb3JTdHJpbmcp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIC8vIE5vcm1hbCByZXR1cm4uCi19Ci0KIHZv
aWQgSW5qZWN0ZWRTY3JpcHQ6OmdldEZ1bmN0aW9uRGV0YWlscyhFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb25JZCwgUmVmUHRyPEZ1bmN0aW9uRGV0YWlscz4q
IHJlc3VsdCkKIHsKICAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3Jp
cHRPYmplY3QoKSwgImdldEZ1bmN0aW9uRGV0YWlscyIpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgJKHJldmlzaW9uIDE1NTU3OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCw4
ICs4MCw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBnZW5l
cmF0ZVByZXZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxUeXBlQnVp
bGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiogcmVzdWx0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pOwotICAg
IHZvaWQgcmVzdGFydEZyYW1lKEVycm9yU3RyaW5nKiwgY29uc3QgU2NyaXB0VmFsdWUmIGNhbGxG
cmFtZXMsIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
KiByZXN1bHQpOwotICAgIHZvaWQgc2V0VmFyaWFibGVWYWx1ZShFcnJvclN0cmluZyosIGNvbnN0
IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBTdHJpbmcqIGNhbGxGcmFtZUlkT3B0LCBj
b25zdCBTdHJpbmcqIGZ1bmN0aW9uT2JqZWN0SWRPcHQsIGludCBzY29wZU51bWJlciwgY29uc3Qg
U3RyaW5nJiB2YXJpYWJsZU5hbWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWVTdHIpOwogICAgIHZv
aWQgZ2V0RnVuY3Rpb25EZXRhaWxzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmdW5jdGlv
bklkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpGdW5jdGlvbkRldGFpbHM+KiByZXN1
bHQpOwogICAgIHZvaWQgZ2V0UHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYg
b2JqZWN0SWQsIGJvb2wgb3duUHJvcGVydGllcywgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxU
eXBlQnVpbGRlcjo6UnVudGltZTo6UHJvcGVydHlEZXNjcmlwdG9yPiA+KiByZXN1bHQpOwogICAg
IHZvaWQgZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBv
YmplY3RJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6UnVudGltZTo6
SW50ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3I+ID4qIHJlc3VsdCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCShyZXZpc2lvbiAx
NTU1NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anMJKHdvcmtpbmcgY29weSkKQEAgLTY1Myw2NyArNjUzLDYgQEAgSW5qZWN0ZWRTY3JpcHQucHJv
dG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7T2JqZWN0fSB0b3BDYWxsRnJhbWUK
ICAgICAgKiBAcGFyYW0ge3N0cmluZ30gY2FsbEZyYW1lSWQKLSAgICAgKiBAcmV0dXJuIHsqfQot
ICAgICAqLwotICAgIHJlc3RhcnRGcmFtZTogZnVuY3Rpb24odG9wQ2FsbEZyYW1lLCBjYWxsRnJh
bWVJZCkKLSAgICB7Ci0gICAgICAgIHZhciBjYWxsRnJhbWUgPSB0aGlzLl9jYWxsRnJhbWVGb3JJ
ZCh0b3BDYWxsRnJhbWUsIGNhbGxGcmFtZUlkKTsKLSAgICAgICAgaWYgKCFjYWxsRnJhbWUpCi0g
ICAgICAgICAgICByZXR1cm4gIkNvdWxkIG5vdCBmaW5kIGNhbGwgZnJhbWUgd2l0aCBnaXZlbiBp
ZCI7Ci0gICAgICAgIHZhciByZXN1bHQgPSBjYWxsRnJhbWUucmVzdGFydCgpOwotICAgICAgICBp
ZiAocmVzdWx0ID09PSBmYWxzZSkKLSAgICAgICAgICAgIHJlc3VsdCA9ICJSZXN0YXJ0IGZyYW1l
IGlzIG5vdCBzdXBwb3J0ZWQiOyAKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9LAotCi0g
ICAgLyoqCi0gICAgICogRWl0aGVyIGNhbGxGcmFtZUlkIG9yIGZ1bmN0aW9uT2JqZWN0SWQgbXVz
dCBiZSBzcGVjaWZpZWQuCi0gICAgICogQHBhcmFtIHtPYmplY3R9IHRvcENhbGxGcmFtZQotICAg
ICAqIEBwYXJhbSB7c3RyaW5nfGJvb2xlYW59IGNhbGxGcmFtZUlkIG9yIGZhbHNlCi0gICAgICog
QHBhcmFtIHtzdHJpbmd8Ym9vbGVhbn0gZnVuY3Rpb25PYmplY3RJZCBvciBmYWxzZQotICAgICAq
IEBwYXJhbSB7bnVtYmVyfSBzY29wZU51bWJlcgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YXJp
YWJsZU5hbWUKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3VmFsdWVKc29uU3RyaW5nIFJ1bnRp
bWVBZ2VudC5DYWxsQXJndW1lbnQgc3RydWN0dXJlIHNlcmlhbGl6ZWQgYXMgc3RyaW5nIAotICAg
ICAqIEByZXR1cm4ge3N0cmluZ3x1bmRlZmluZWR9IHVuZGVmaW5lZCBpZiBzdWNjZXNzIG9yIGFu
IGVycm9yIG1lc3NhZ2UgCi0gICAgICovCi0gICAgc2V0VmFyaWFibGVWYWx1ZTogZnVuY3Rpb24o
dG9wQ2FsbEZyYW1lLCBjYWxsRnJhbWVJZCwgZnVuY3Rpb25PYmplY3RJZCwgc2NvcGVOdW1iZXIs
IHZhcmlhYmxlTmFtZSwgbmV3VmFsdWVKc29uU3RyaW5nKQotICAgIHsgICAKLSAgICAgICAgdmFy
IHNldHRlcjsKLSAgICAgICAgaWYgKHR5cGVvZiBjYWxsRnJhbWVJZCA9PT0gInN0cmluZyIpIHsK
LSAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSB0aGlzLl9jYWxsRnJhbWVGb3JJZCh0b3BDYWxs
RnJhbWUsIGNhbGxGcmFtZUlkKTsKLSAgICAgICAgICAgIGlmICghY2FsbEZyYW1lKQotICAgICAg
ICAgICAgICAgIHJldHVybiAiQ291bGQgbm90IGZpbmQgY2FsbCBmcmFtZSB3aXRoIGdpdmVuIGlk
IjsKLSAgICAgICAgICAgIHNldHRlciA9IGNhbGxGcmFtZS5zZXRWYXJpYWJsZVZhbHVlLmJpbmQo
Y2FsbEZyYW1lKTsgICAgCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB2YXIgcGFyc2Vk
RnVuY3Rpb25JZCA9IHRoaXMuX3BhcnNlT2JqZWN0SWQoLyoqIEB0eXBlIHtzdHJpbmd9ICovKGZ1
bmN0aW9uT2JqZWN0SWQpKTsKLSAgICAgICAgICAgIHZhciBmdW5jID0gdGhpcy5fb2JqZWN0Rm9y
SWQocGFyc2VkRnVuY3Rpb25JZCk7Ci0gICAgICAgICAgICBpZiAodHlwZW9mIGZ1bmMgIT09ICJm
dW5jdGlvbiIpCi0gICAgICAgICAgICAgICAgcmV0dXJuICJDYW5ub3QgcmVzb2x2ZSBmdW5jdGlv
biBieSBpZC4iOwotICAgICAgICAgICAgc2V0dGVyID0gSW5qZWN0ZWRTY3JpcHRIb3N0LnNldEZ1
bmN0aW9uVmFyaWFibGVWYWx1ZS5iaW5kKEluamVjdGVkU2NyaXB0SG9zdCwgZnVuYyk7IAotICAg
ICAgICB9Ci0gICAgICAgIHZhciBuZXdWYWx1ZUpzb247Ci0gICAgICAgIHRyeSB7Ci0gICAgICAg
ICAgICBuZXdWYWx1ZUpzb24gPSBJbmplY3RlZFNjcmlwdEhvc3QuZXZhbHVhdGUoIigiICsgbmV3
VmFsdWVKc29uU3RyaW5nICsgIikiKTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAg
ICAgcmV0dXJuICJGYWlsZWQgdG8gcGFyc2UgbmV3IHZhbHVlIEpTT04gIiArIG5ld1ZhbHVlSnNv
blN0cmluZyArICIgOiAiICsgZTsKLSAgICAgICAgfQotICAgICAgICB2YXIgcmVzb2x2ZWRWYWx1
ZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHJlc29sdmVkVmFsdWUgPSB0aGlzLl9yZXNv
bHZlQ2FsbEFyZ3VtZW50KG5ld1ZhbHVlSnNvbik7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAg
ICAgICAgICAgIHJldHVybiBTdHJpbmcoZSk7Ci0gICAgICAgIH0KLSAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgIHNldHRlcihzY29wZU51bWJlciwgdmFyaWFibGVOYW1lLCByZXNvbHZlZFZhbHVl
KTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgcmV0dXJuICJGYWlsZWQgdG8g
Y2hhbmdlIHZhcmlhYmxlIHZhbHVlOiAiICsgZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
dW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge09iamVjdH0gdG9w
Q2FsbEZyYW1lCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IGNhbGxGcmFtZUlkCiAgICAgICogQHJl
dHVybiB7T2JqZWN0fQogICAgICAqLwogICAgIF9jYWxsRnJhbWVGb3JJZDogZnVuY3Rpb24odG9w
Q2FsbEZyYW1lLCBjYWxsRnJhbWVJZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb24JKHJldmlzaW9uIDE1NTU3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMjgzOCwxNyArMjgzOCw2IEBACiAg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkVkaXRzIEphdmFTY3JpcHQgc291cmNlIGxp
dmUuIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFt
ZSI6ICJyZXN0YXJ0RnJhbWUiLAotICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNhbGxGcmFtZUlkIiwgIiRyZWYiOiAiQ2FsbEZy
YW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiQ2FsbCBmcmFtZSBpZGVudGlmaWVyIHRvIGV2YWx1YXRl
IG9uLiIgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgInJldHVybnMiOiBb
Ci0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FsbEZyYW1lcyIsICJ0eXBlIjogImFy
cmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDYWxsRnJhbWUifSwgImRlc2NyaXB0aW9uIjogIk5l
dyBzdGFjayB0cmFjZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0
IiwgInR5cGUiOiAib2JqZWN0IiwgImRlc2NyaXB0aW9uIjogIlZNLXNwZWNpZmljIGRlc2NyaXB0
aW9uLiIgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlJlc3RhcnRzIHBhcnRpY3VsYXIgY2FsbCBmcmFtZSBmcm9tIHRoZSBiZWdpbm5pbmcuIgot
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJn
ZXRTY3JpcHRTb3VyY2UiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcmlwdElkIiwgIiRyZWYiOiAiU2NyaXB0SWQiLCAi
ZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIHNjcmlwdCB0byBnZXQgc291cmNlIGZvci4iIH0KQEAg
LTI5MjQsMTcgKzI5MTMsNiBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1lc3Nh
Z2UiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
T3ZlcmxheSBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBwYXVzZWQgaW4gZGVidWdnZXIuIiB9CiAg
ICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2V0cyBv
dmVybGF5IG1lc3NhZ2UuIgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAibmFtZSI6ICJzZXRWYXJpYWJsZVZhbHVlIiwKLSAgICAgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY29wZU51bWJlciIs
ICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiMC1iYXNlZCBudW1iZXIgb2Ygc2Nv
cGUgYXMgd2FzIGxpc3RlZCBpbiBzY29wZSBjaGFpbi4gT25seSAnbG9jYWwnLCAnY2xvc3VyZScg
YW5kICdjYXRjaCcgc2NvcGUgdHlwZXMgYXJlIGFsbG93ZWQuIE90aGVyIHNjb3BlcyBjb3VsZCBi
ZSBtYW5pcHVsYXRlZCBtYW51YWxseS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAidmFyaWFibGVOYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlZhcmlh
YmxlIG5hbWUuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5ld1ZhbHVlIiwg
IiRyZWYiOiAiUnVudGltZS5DYWxsQXJndW1lbnQiLCAiZGVzY3JpcHRpb24iOiAiTmV3IHZhcmlh
YmxlIHZhbHVlLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjYWxsRnJhbWVJ
ZCIsICIkcmVmIjogIkNhbGxGcmFtZUlkIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIklkIG9mIGNhbGxmcmFtZSB0aGF0IGhvbGRzIHZhcmlhYmxlLiIgfSwKLSAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJmdW5jdGlvbk9iamVjdElkIiwgIiRyZWYiOiAiUnVudGltZS5S
ZW1vdGVPYmplY3RJZCIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJPYmplY3Qg
aWQgb2YgY2xvc3VyZSAoZnVuY3Rpb24pIHRoYXQgaG9sZHMgdmFyaWFibGUuIiB9Ci0gICAgICAg
ICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB2YWx1
ZSBvZiB2YXJpYWJsZSBpbiBhIGNhbGxmcmFtZSBvciBhIGNsb3N1cmUuIEVpdGhlciBjYWxsZnJh
bWUgb3IgZnVuY3Rpb24gbXVzdCBiZSBzcGVjaWZpZWQuIE9iamVjdC1iYXNlZCBzY29wZXMgYXJl
IG5vdCBzdXBwb3J0ZWQgYW5kIG11c3QgYmUgbXV0YXRlZCBtYW51YWxseS4iCiAgICAgICAgICAg
ICB9CiAgICAgICAgIF0sCiAgICAgICAgICJldmVudHMiOiBbCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCShyZXZpc2lv
biAxNTU1NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJB
Z2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2OSwxOCArNDY5LDYgQEAgdm9pZCBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjpzZXRTY3JpcHRTbwogICAgIGlmIChvYmplY3QpCiAgICAgICAgIHJl
c3VsdCA9IG9iamVjdDsKIH0KLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6cmVzdGFydEZy
YW1lKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwg
UmVmUHRyPEFycmF5PFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6Q2FsbEZyYW1lPiA+JiBuZXdDYWxs
RnJhbWVzLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgcmVzdWx0KQotewotICAgIEluamVjdGVk
U2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVk
U2NyaXB0Rm9yT2JqZWN0SWQoY2FsbEZyYW1lSWQpOwotICAgIGlmIChpbmplY3RlZFNjcmlwdC5o
YXNOb1ZhbHVlKCkpIHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gIkluc3BlY3RlZCBmcmFtZSBo
YXMgZ29uZSI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpbmplY3RlZFNjcmlwdC5y
ZXN0YXJ0RnJhbWUoZXJyb3JTdHJpbmcsIG1fY3VycmVudENhbGxTdGFjaywgY2FsbEZyYW1lSWQs
ICZyZXN1bHQpOwotICAgIHNjcmlwdERlYnVnU2VydmVyKCkudXBkYXRlQ2FsbFN0YWNrKCZtX2N1
cnJlbnRDYWxsU3RhY2spOwotICAgIG5ld0NhbGxGcmFtZXMgPSBjdXJyZW50Q2FsbEZyYW1lcygp
OwotfQogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmdldFNjcmlwdFNvdXJjZShFcnJv
clN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIFN0cmluZyogc2NyaXB0U291
cmNlKQogewpAQCAtNjY3LDMwICs2NTUsNiBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OnNldE92ZXJsYXlNCiB7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0VmFy
aWFibGVWYWx1ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBzY29wZU51bWJlciwgY29u
c3QgU3RyaW5nJiB2YXJpYWJsZU5hbWUsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBu
ZXdWYWx1ZSwgY29uc3QgU3RyaW5nKiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nKiBmdW5jdGlv
bk9iamVjdElkKQotewotICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0OwotICAgIGlm
IChjYWxsRnJhbWVJZCkgewotICAgICAgICBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZvck9iamVjdElkKCpjYWxsRnJhbWVJZCk7Ci0gICAg
ICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKLSAgICAgICAgICAgICplcnJv
clN0cmluZyA9ICJJbnNwZWN0ZWQgZnJhbWUgaGFzIGdvbmUiOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChmdW5jdGlvbk9iamVjdElkKSB7Ci0gICAgICAg
IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0
Rm9yT2JqZWN0SWQoKmZ1bmN0aW9uT2JqZWN0SWQpOwotICAgICAgICBpZiAoaW5qZWN0ZWRTY3Jp
cHQuaGFzTm9WYWx1ZSgpKSB7Ci0gICAgICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRnVuY3Rpb24g
b2JqZWN0IGlkIGNhbm5vdCBiZSByZXNvbHZlZCI7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRWl0aGVyIGNhbGwg
ZnJhbWUgb3IgZnVuY3Rpb24gb2JqZWN0IG11c3QgYmUgc3BlY2lmaWVkIjsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLSAgICBTdHJpbmcgbmV3VmFsdWVTdHJpbmcgPSBuZXdWYWx1ZS0+dG9KU09O
U3RyaW5nKCk7Ci0KLSAgICBpbmplY3RlZFNjcmlwdC5zZXRWYXJpYWJsZVZhbHVlKGVycm9yU3Ry
aW5nLCBtX2N1cnJlbnRDYWxsU3RhY2ssIGNhbGxGcmFtZUlkLCBmdW5jdGlvbk9iamVjdElkLCBz
Y29wZU51bWJlciwgdmFyaWFibGVOYW1lLCBuZXdWYWx1ZVN0cmluZyk7Ci19Ci0KIHZvaWQgSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6c2NyaXB0RXhlY3V0aW9uQmxvY2tlZEJ5Q1NQKGNvbnN0IFN0
cmluZyYgZGlyZWN0aXZlVGV4dCkKIHsKICAgICBpZiAoc2NyaXB0RGVidWdTZXJ2ZXIoKS5wYXVz
ZU9uRXhjZXB0aW9uc1N0YXRlKCkgIT0gU2NyaXB0RGVidWdTZXJ2ZXI6OkRvbnRQYXVzZU9uRXhj
ZXB0aW9ucykgewpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRGVidWdnZXJBZ2VudC5oCShyZXZpc2lvbiAxNTU1NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3
ICs5MSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hJbkNvbnRlbnQoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBj
b25zdCBib29sKiBvcHRpb25hbENhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIG9wdGlvbmFsSXNS
ZWdleCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6UGFnZTo6U2VhcmNo
TWF0Y2g+ID4mKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgY29uc3QgU3RyaW5nJiBuZXdDb250ZW50LCBjb25z
dCBib29sKiBwcmV2aWV3LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpE
ZWJ1Z2dlcjo6Q2FsbEZyYW1lPiA+JiBuZXdDYWxsRnJhbWVzLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiYgcmVzdWx0KTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdGFydEZyYW1lKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxU
eXBlQnVpbGRlcjo6RGVidWdnZXI6OkNhbGxGcmFtZT4gPiYgbmV3Q2FsbEZyYW1lcywgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4mIHJlc3VsdCk7CiAgICAgdmlydHVhbCB2b2lkIGdldFNjcmlwdFNv
dXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIFN0cmluZyogc2NyaXB0
U291cmNlKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RnVuY3Rpb25EZXRhaWxzKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbklkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkRlYnVnZ2Vy
OjpGdW5jdGlvbkRldGFpbHM+Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhdXNlKEVycm9yU3RyaW5n
Kik7CkBAIC0xMTMsNyArMTEyLDYgQEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZVNjcmlwdChF
cnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIFR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpTY3Jp
cHRJZD4qLCBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PFN0cmluZz4qIHN5bnRheEVycm9yTWVzc2Fn
ZSk7CiAgICAgdm9pZCBydW5TY3JpcHQoRXJyb3JTdHJpbmcqLCBjb25zdCBUeXBlQnVpbGRlcjo6
RGVidWdnZXI6OlNjcmlwdElkJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQsIGNvbnN0
IFN0cmluZyogb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNB
bmRNdXRlQ29uc29sZSwgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+
JiByZXN1bHQsIFR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8Ym9vbD4qIHdhc1Rocm93bik7CiAgICAg
dmlydHVhbCB2b2lkIHNldE92ZXJsYXlNZXNzYWdlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
Kik7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhcmlhYmxlVmFsdWUoRXJyb3JTdHJpbmcqLCBpbnQg
aW5fc2NvcGVOdW1iZXIsIGNvbnN0IFN0cmluZyYgaW5fdmFyaWFibGVOYW1lLCBjb25zdCBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiYgaW5fbmV3VmFsdWUsIGNvbnN0IFN0cmluZyogaW5fY2FsbEZy
YW1lLCBjb25zdCBTdHJpbmcqIGluX2Z1bmN0aW9uT2JqZWN0SWQpOwogCiAgICAgdm9pZCBzY2hl
ZHVsZVBhdXNlT25OZXh0U3RhdGVtZW50KEluc3BlY3RvckZyb250ZW5kOjpEZWJ1Z2dlcjo6UmVh
c29uOjpFbnVtIGJyZWFrUmVhc29uLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSk7
CiAgICAgdm9pZCBjYW5jZWxQYXVzZU9uTmV4dFN0YXRlbWVudCgpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbAkocmV2aXNpb24g
MTU1NTc5KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMSArMzgsNyBAQAogICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IENBVENIX1NDT1BFID0gNDsKIAogICAgIFtDdXN0b21dIHZvaWQgZXZhbHVhdGUoRE9N
U3RyaW5nIHNjcmlwdCk7Ci0gICAgW0N1c3RvbV0gYW55IHJlc3RhcnQoKTsKICAgICAKLSAgICAv
LyBPbmx5IGRlY2xhcmF0aXZlIHNjb3BlIChsb2NhbCwgd2l0aCBhbmQgY2F0Y2gpIGlzIGFjY2Vw
dGVkLiBSZXR1cm5zIHVuZGVmaW5lZC4gCi0gICAgW0N1c3RvbV0gYW55IHNldFZhcmlhYmxlVmFs
dWUoaW50IHNjb3BlSW5kZXgsIERPTVN0cmluZyB2YXJpYWJsZU5hbWUsIGFueSBuZXdWYWx1ZSk7
Ci0KICAgICByZWFkb25seSBhdHRyaWJ1dGUgSmF2YVNjcmlwdENhbGxGcmFtZSBjYWxsZXI7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgc291cmNlSUQ7CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGxvbmcgbGluZTsKQEAgLTUzLDQgKzQ5LDMgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGZ1bmN0aW9uTmFtZTsKICAgICBbQ3VzdG9tR2V0dGVyXSByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiB9OwotCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwkocmV2aXNpb24gMTU1NTc5KQor
KysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMJKHdv
cmtpbmcgY29weSkKQEAgLTI2MiwxMCArMjYyLDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAodGhpcy5fc2NvcGVSZWYpCi0gICAgICAgICAg
ICAgICAgdGhpcy5fc2V0RGVjbGFyYXRpdmVWYXJpYWJsZVZhbHVlKHJlc3VsdCwgbmFtZSwgY2Fs
bGJhY2spOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRoaXMuX3NldE9iamVj
dFByb3BlcnR5VmFsdWUocmVzdWx0LCBuYW1lLCBjYWxsYmFjayk7CisgICAgICAgICAgICB0aGlz
Ll9zZXRPYmplY3RQcm9wZXJ0eVZhbHVlKHJlc3VsdCwgbmFtZSwgY2FsbGJhY2spOwogCiAgICAg
ICAgICAgICBpZiAocmVzdWx0Ll9vYmplY3RJZCkKICAgICAgICAgICAgICAgICBSdW50aW1lQWdl
bnQucmVsZWFzZU9iamVjdChyZXN1bHQuX29iamVjdElkKTsKQEAgLTMwNiw0MiArMzAzLDYgQEAg
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8q
KgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gcmVzdWx0Ci0gICAg
ICogQHBhcmFtIHtzdHJpbmd9IG5hbWUKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZz0p
fSBjYWxsYmFjawotICAgICAqLwotICAgIF9zZXREZWNsYXJhdGl2ZVZhcmlhYmxlVmFsdWU6IGZ1
bmN0aW9uKHJlc3VsdCwgbmFtZSwgY2FsbGJhY2spCi0gICAgewotICAgICAgICB2YXIgbmV3VmFs
dWU7Ci0gICAgICAgIAotICAgICAgICBzd2l0Y2ggKHJlc3VsdC50eXBlKSB7Ci0gICAgICAgICAg
ICBjYXNlICJ1bmRlZmluZWQiOgotICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0ge307Ci0gICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICJvYmplY3QiOgotICAgICAgICAg
ICAgY2FzZSAiZnVuY3Rpb24iOgotICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0geyBvYmplY3RJ
ZDogcmVzdWx0Lm9iamVjdElkIH07Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0geyB2YWx1ZTogcmVzdWx0LnZh
bHVlIH07Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIERlYnVnZ2VyQWdlbnQuc2V0VmFy
aWFibGVWYWx1ZSh0aGlzLl9zY29wZVJlZi5udW1iZXIsIG5hbWUsIG5ld1ZhbHVlLCB0aGlzLl9z
Y29wZVJlZi5jYWxsRnJhbWVJZCwgdGhpcy5fc2NvcGVSZWYuZnVuY3Rpb25JZCwgc2V0VmFyaWFi
bGVWYWx1ZUNhbGxiYWNrLmJpbmQodGhpcykpOwotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBA
cGFyYW0gez9Qcm90b2NvbC5FcnJvcn0gZXJyb3IKLSAgICAgICAgICovCi0gICAgICAgIGZ1bmN0
aW9uIHNldFZhcmlhYmxlVmFsdWVDYWxsYmFjayhlcnJvcikKLSAgICAgICAgewotICAgICAgICAg
ICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IpOwotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhbGxiYWNrKCk7
Ci0gICAgICAgIH0KLSAgICB9LAotCi0gICAgLyoqCiAgICAgICogQHBhcmFtIHtmdW5jdGlvbig/
RE9NQWdlbnQuTm9kZUlkKX0gY2FsbGJhY2sKICAgICAgKi8KICAgICBwdXNoTm9kZVRvRnJvbnRl
bmQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQpJbmRleDogU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNTU1ODcpCisrKyBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDktMTEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmVkIHNvbWUgdW51c2VkIGZ1bmN0aW9ucyBm
cm9tIHRoZSBkZWJ1Z2dlciBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMTE5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlIHBsYW4gdG8gdXNlIHRoZSAiZXZhbHVhdGUiIEFQSSBhbmQg
ZGVidWdnZXIgYWN0aXZhdGlvbiBwcm9wZXJ0eSBhY2Nlc3MgZm9yIGFsbCB0aGUgZmVhdHVyZXMg
d2UgbmVlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW5zcGVjdG9yQmFja2VuZENvbW1h
bmRzLmpzOiBVcGRhdGVkIGJ5IHNjcmlwdC4KKwogMjAxMy0wOS0wNiAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IERvd25sb2Fk
IEFyY2hpdmUgYnV0dG9uIGluY29ycmVjdGx5IHN0eWxlZCB3aGVuIGRpc2FibGVkIGFuZCB0cmVl
IGVsZW1lbnQgaXMgbm90LXNlbGVjdGVkCkluZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRz
LmpzCShyZXZpc2lvbiAxNTU1NzkpCisrKyBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTI5Nyw3
ICsyOTcsNiBAQCBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiRGVidWdnCiBJbnNw
ZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiRGVidWdnZXIuc2VhcmNoSW5Db250ZW50Iiwg
W3sibmFtZSI6ICJzY3JpcHRJZCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNl
fSwgeyJuYW1lIjogInF1ZXJ5IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9
LCB7Im5hbWUiOiAiY2FzZVNlbnNpdGl2ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwi
OiB0cnVlfSwgeyJuYW1lIjogImlzUmVnZXgiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFs
IjogdHJ1ZX1dLCBbInJlc3VsdCJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5k
KCJEZWJ1Z2dlci5jYW5TZXRTY3JpcHRTb3VyY2UiLCBbXSwgWyJyZXN1bHQiXSk7CiBJbnNwZWN0
b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiRGVidWdnZXIuc2V0U2NyaXB0U291cmNlIiwgW3si
bmFtZSI6ICJzY3JpcHRJZCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfSwg
eyJuYW1lIjogInNjcmlwdFNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZh
bHNlfSwgeyJuYW1lIjogInByZXZpZXciLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjog
dHJ1ZX1dLCBbImNhbGxGcmFtZXMiLCAicmVzdWx0Il0pOwotSW5zcGVjdG9yQmFja2VuZC5yZWdp
c3RlckNvbW1hbmQoIkRlYnVnZ2VyLnJlc3RhcnRGcmFtZSIsIFt7Im5hbWUiOiAiY2FsbEZyYW1l
SWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbImNhbGxGcmFtZXMi
LCAicmVzdWx0Il0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkRlYnVnZ2Vy
LmdldFNjcmlwdFNvdXJjZSIsIFt7Im5hbWUiOiAic2NyaXB0SWQiLCAidHlwZSI6ICJzdHJpbmci
LCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInNjcmlwdFNvdXJjZSJdKTsKIEluc3BlY3RvckJhY2tl
bmQucmVnaXN0ZXJDb21tYW5kKCJEZWJ1Z2dlci5nZXRGdW5jdGlvbkRldGFpbHMiLCBbeyJuYW1l
IjogImZ1bmN0aW9uSWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBb
ImRldGFpbHMiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiRGVidWdnZXIu
c2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCBbeyJuYW1lIjogInN0YXRlIiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgW10pOwpAQCAtMzA1LDcgKzMwNCw2IEBAIEluc3BlY3Rv
ckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJEZWJ1Z2cKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0
ZXJDb21tYW5kKCJEZWJ1Z2dlci5jb21waWxlU2NyaXB0IiwgW3sibmFtZSI6ICJleHByZXNzaW9u
IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAic291cmNl
VVJMIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgWyJzY3JpcHRJZCIs
ICJzeW50YXhFcnJvck1lc3NhZ2UiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFu
ZCgiRGVidWdnZXIucnVuU2NyaXB0IiwgW3sibmFtZSI6ICJzY3JpcHRJZCIsICJ0eXBlIjogInN0
cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogImNvbnRleHRJZCIsICJ0eXBlIjog
Im51bWJlciIsICJvcHRpb25hbCI6IHRydWV9LCB7Im5hbWUiOiAib2JqZWN0R3JvdXAiLCAidHlw
ZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlfSwgeyJuYW1lIjogImRvTm90UGF1c2VPbkV4
Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0
cnVlfV0sIFsicmVzdWx0IiwgIndhc1Rocm93biJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0
ZXJDb21tYW5kKCJEZWJ1Z2dlci5zZXRPdmVybGF5TWVzc2FnZSIsIFt7Im5hbWUiOiAibWVzc2Fn
ZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWV9XSwgW10pOwotSW5zcGVjdG9y
QmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkRlYnVnZ2VyLnNldFZhcmlhYmxlVmFsdWUiLCBbeyJu
YW1lIjogInNjb3BlTnVtYmVyIiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogZmFsc2V9
LCB7Im5hbWUiOiAidmFyaWFibGVOYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjog
ZmFsc2V9LCB7Im5hbWUiOiAibmV3VmFsdWUiLCAidHlwZSI6ICJvYmplY3QiLCAib3B0aW9uYWwi
OiBmYWxzZX0sIHsibmFtZSI6ICJjYWxsRnJhbWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRp
b25hbCI6IHRydWV9LCB7Im5hbWUiOiAiZnVuY3Rpb25PYmplY3RJZCIsICJ0eXBlIjogInN0cmlu
ZyIsICJvcHRpb25hbCI6IHRydWV9XSwgW10pOwogCiAvLyBET01EZWJ1Z2dlci4KIEluc3BlY3Rv
ckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJET01EZWJ1Z2dlci5ET01CcmVha3BvaW50VHlwZSIsIHtT
dWJ0cmVlTW9kaWZpZWQ6ICJzdWJ0cmVlLW1vZGlmaWVkIiwgQXR0cmlidXRlTW9kaWZpZWQ6ICJh
dHRyaWJ1dGUtbW9kaWZpZWQiLCBOb2RlUmVtb3ZlZDogIm5vZGUtcmVtb3ZlZCJ9KTsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE1NTU4NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA5LTExICBHZW9mZnJleSBHYXJlbiAgPGdnYXJl
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCBzb21lIHVudXNlZCBmdW5jdGlvbnMgZnJv
bSB0aGUgZGVidWdnZXIgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjExOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXZSBwbGFuIHRvIHVzZSB0aGUgImV2YWx1YXRlIiBBUEkgYW5kIGRl
YnVnZ2VyIGFjdGl2YXRpb24gcHJvcGVydHkgYWNjZXNzIGZvciBhbGwgdGhlIGZlYXR1cmVzIHdl
IG5lZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZh
cmlhYmxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLmh0bWw6IFJlbW92ZWQuIFRoaXMgdGVzdCB3YXMg
ZmFpbGluZworICAgICAgICBiZWNhdXNlIHdlIGRvbid0IHN1cHBvcnQgdGhpcyBBUEkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1l
eHBlY3RlZC50eHQ6IFRoaXMgdGVzdCBjaGFuZ2VkIGxpbmUgbnVtYmVycworICAgICAgICBiZWNh
dXNlIEkgY2hhbmdlZCBpbnNwZWN0b3IgLmpzIGZpbGVzLgorCiAyMDEzLTA5LTExICBWaXZlayBH
YWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgogCiAgICAgICAgIERPTVBhcnNlci5wYXJz
ZUZyb21TdHJpbmcoKSBzaG91bGQgc3VwcG9ydCBjcmVhdGluZyBIVE1MIERvY3VtZW50IHdpdGgg
bWltZS10eXBlIHRleHQvaHRtbApJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2RlYnVnZ2VyLWNoYW5nZS12YXJpYWJsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNoYW5nZS12YXJpYWJsZS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE1NTU3OSkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9kZWJ1Z2dlci1jaGFuZ2UtdmFyaWFibGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDExICswLDAgQEAKLVRlc3RzIHRoYXQgbW9kaWZ5aW5nIGxvY2FsIHZhcmlhYmxlcyB3
b3JrcyBmaW5lLgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLVNldCB0aW1lciBmb3IgdGVzdCBm
dW5jdGlvbi4KLVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotRXZhbHVhdGVkIHNjcmlwdCBvbiB0
aGUgY2FsbGluZyBmcmFtZTogMzEwCi1TZXQgcHJvcGVydHkgdmFsdWUgZXJyb3I6IEZhaWxlZCB0
byBjaGFuZ2UgdmFyaWFibGUgdmFsdWU6IFR5cGVFcnJvcjogVmFyaWFibGUgdmFsdWUgbXV0YXRp
b24gaXMgbm90IHN1cHBvcnRlZAotRXZhbHVhdGVkIHNjcmlwdCBvbiB0aGUgY2FsbGluZyBmcmFt
ZSAoYWZ0ZXIgdmFsdWUgbW9kaWZpY2F0aW9uKTogMzEwCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3Vt
ZWQuCi1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KSW5kZXg6IExheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9kZWJ1Z2dlci1jaGFuZ2UtdmFyaWFibGUuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY2hhbmdlLXZhcmlhYmxlLmh0
bWwJKHJldmlzaW9uIDE1NTU3OSkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1jaGFuZ2UtdmFyaWFibGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3MyArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHNsYXZlKHgpCi17Ci0gICAgdmFyIHkgPSAyMDsKLSAgICBkZWJ1Z2dlcjsKLX0K
LQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkKLXsKLSAgICB2YXIgbG9jYWxPYmplY3QgPSB7IGE6
IDMxMCB9OwotICAgIHNsYXZlKDQwMDApOwotfQotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLQotICAgIGZ1bmN0
aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucnVuVGVzdEZ1bmN0aW9u
QW5kV2FpdFVudGlsUGF1c2VkKHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMihj
YWxsRnJhbWVzKQotICAgIHsKLSAgICAgICAgdmFyIHBhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxz
LnNjcmlwdHMuc2lkZWJhclBhbmVzLmNhbGxzdGFjazsKLSAgICAgICAgcGFuZS5fcGxhY2FyZFNl
bGVjdGVkKHBhbmUucGxhY2FyZHNbMV0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVy
UGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkK
LSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImxvY2FsT2Jq
ZWN0LmEiLCBzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDQocmVzdWx0KQotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV2YWx1YXRlZCBzY3JpcHQgb24g
dGhlIGNhbGxpbmcgZnJhbWU6ICIgKyByZXN1bHQpOwotCi0gICAgICAgIHZhciBwYW5lID0gV2Vi
SW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy5zY29wZWNoYWluOwotICAgICAg
ICB2YXIgbG9jYWxzU2VjdGlvbiA9IHBhbmUuX3NlY3Rpb25zWzBdOwotICAgICAgICBsb2NhbHNT
ZWN0aW9uLm9iamVjdC5zZXRQcm9wZXJ0eVZhbHVlKCJsb2NhbE9iamVjdCIsICIoeyBhOiAtMjkw
fSkiLCBzdGVwNSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDUoZXJyb3IpCi0gICAgewot
ICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
U2V0IHByb3BlcnR5IHZhbHVlIGVycm9yOiAiICsgZXJyb3IpOwotCi0gICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImxvY2FsT2JqZWN0LmEiLCBzdGVwNik7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDYocmVzdWx0KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkV2YWx1YXRlZCBzY3JpcHQgb24gdGhlIGNhbGxpbmcgZnJhbWUgKGFmdGVy
IHZhbHVlIG1vZGlmaWNhdGlvbik6ICIgKyByZXN1bHQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IG1vZGlmeWluZyBs
b2NhbCB2YXJpYWJsZXMgd29ya3MgZmluZS4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2luc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGlu
ZS1hcGktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMTU1NTc5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2luc3BlY3Rvci9jb25zb2xl
L2NvbW1hbmQtbGluZS1hcGktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEs
NCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyMjc6IFRoZSBjb25zb2xlIGZ1bmN0aW9uICQo
KSBoYXMgY2hhbmdlZCBmcm9tICQ9Z2V0RWxlbWVudEJ5SWQoaWQpIHRvICQ9cXVlcnlTZWxlY3Rv
cihzZWxlY3RvcikuIFlvdSBtaWdodCB0cnkgJCgiIyVzIikKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMTY2OiBUaGUgY29uc29sZSBmdW5jdGlvbiAkKCkgaGFzIGNoYW5nZWQgZnJvbSAkPWdldEVs
ZW1lbnRCeUlkKGlkKSB0byAkPXF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpLiBZb3UgbWlnaHQgdHJ5
ICQoIiMlcyIpCiBUZXN0cyB0aGF0IGNvbW1hbmQgbGluZSBhcGkgd29ya3MuCiAKIAo=
</data>
<flag name="review"
          id="233470"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>