<?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>100850</bug_id>
          
          <creation_ts>2012-10-31 06:39:18 -0700</creation_ts>
          <short_desc>Prefer document-&gt;addConsoleMessage to document-&gt;domWindow-&gt;console-&gt;addMessage.</short_desc>
          <delta_ts>2012-11-02 09:39:25 -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>
          
          <blocked>100650</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>japhet</cc>
    
    <cc>mifenton</cc>
    
    <cc>mjs</cc>
    
    <cc>pfeldman</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>755237</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-31 06:39:18 -0700</bug_when>
    <thetext>Prefer document-&gt;addConsoleMessage to document-&gt;domWindow-&gt;console-&gt;addMessage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755239</commentid>
    <comment_count>1</comment_count>
      <attachid>171638</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-31 06:42:32 -0700</bug_when>
    <thetext>Created attachment 171638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755240</commentid>
    <comment_count>2</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-31 06:43:44 -0700</bug_when>
    <thetext>Hi Pavel! I lied. Splitting this out from 100650 makes things clearer.

Mind having a quick look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755253</commentid>
    <comment_count>3</comment_count>
      <attachid>171644</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-31 06:58:41 -0700</bug_when>
    <thetext>Created attachment 171644
Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755265</commentid>
    <comment_count>4</comment_count>
      <attachid>171644</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-31 07:06:51 -0700</bug_when>
    <thetext>Comment on attachment 171644
Rebased.

Attachment 171644 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14677165</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755267</commentid>
    <comment_count>5</comment_count>
      <attachid>171644</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-31 07:08:29 -0700</bug_when>
    <thetext>Comment on attachment 171644
Rebased.

Attachment 171644 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14661235</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755275</commentid>
    <comment_count>6</comment_count>
      <attachid>171651</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-31 07:16:00 -0700</bug_when>
    <thetext>Created attachment 171651
*ahem*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755504</commentid>
    <comment_count>7</comment_count>
      <attachid>171651</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-31 11:47:53 -0700</bug_when>
    <thetext>Comment on attachment 171651
*ahem*

Clearing flags on attachment: 171651

Committed r133053: &lt;http://trac.webkit.org/changeset/133053&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755505</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-31 11:47:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756396</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-01 10:11:12 -0700</bug_when>
    <thetext>There is a WebKit design question here, that this change touches on.

How many different commonly used functions do we reflect on core objects like Document and, say, Frame rather than leaving them out on the more specific objects at the periphery? There was a time where all the functions were on Document and Frame, making those sort of “mega classes”. Having those important helpful functions there does make it easier to correctly call the functions, but the size and complexity of the classes was a problem before.

This patch doesn’t add a new function to Document, but to me it brings that basic design issue to mind. There’s no question in my mind that it’s easier to write code that deals directly with the more familiar objects such as Document rather than having to dig through pointers that might be null to get to the more special purpose ones, but I am not sure how scalable this approach is.

There’s a similar issue with almost every Page function. There could be a Document or Frame function that calls through to Page and does the often-needed null check.

My design question is this: What is it about the addConsoleMessage function that makes it important enough that it gets a coveted spot in the Document class? How can that help us decide when to do this and when to not do it in the future?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756445</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-01 10:49:08 -0700</bug_when>
    <thetext>&gt; My design question is this: What is it about the addConsoleMessage function that makes it important enough that it gets a coveted spot in the Document class?

That&apos;s a good question.  I&apos;ve generally been in favor of removing these sorts of functions if they are just thunks.  For example, we used to follow the pattern that code outside of Chrome.cpp should talk directly to ChromeClient, but now we let code call chrome()-&gt;client() functions directly, letting us remove a bunch of thunks from Chrome.cpp.

In this case Document::addMessage does more work than just thunking to domWindow()-&gt;console():

http://trac.webkit.org/browser/trunk/Source/WebCore/dom/Document.cpp#L4873

Now, some of that work (like checking which thread we&apos;re on) isn&apos;t needed for all callers (because many callers know they&apos;re already on the main thread), but the null checks are useful.  For example,

https://bugs.webkit.org/attachment.cgi?id=169966&amp;action=review

is a case where we crashed because of a missing null check on Console.  That case is an obscure race that involves a worker thread shutting down at just the right moment in the middle of navigation.  It&apos;s not clear to me how many callers of addMessage need to worry about such things, but you can imagine that we might try to log console messages in the middle of disruptive changes, like navigating the frame.

&gt; How can that help us decide when to do this and when to not do it in the future?

I guess I&apos;m in favor of removing these sorts of functions when they&apos;re easy to inline into their callers and when its likely that future code will do the right thing.  In this case, it seems like many callers will omit the Console null check, rightly or wrongly.  Given that this isn&apos;t performance sensitive code, I&apos;d rather have these callers go through this common point where we can remember to null check Console and have a test that reminds us why we do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757266</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-02 09:39:25 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; In this case, it seems like many callers will omit the Console null check, rightly or wrongly.

Sure, makes sense.

I think almost all calls Page functions have the same issue, yet I don’t want to reflect all of them on Document or Frame, so I’m not sure how to apply this insight more widely across the project.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171638</attachid>
            <date>2012-10-31 06:42:32 -0700</date>
            <delta_ts>2012-10-31 06:58:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100850-20121031144055.patch</filename>
            <type>text/plain</type>
            <size>17047</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyOTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNjMTg3NWYyNTRjNjM5
MDUwMzE2MWM2M2QyN2ZlNzk4MWQ0YzY3NS4uYzc3YTk2ZTUxMzM3MTZjNGZlM2VkMWY1OTAzMDBi
NzZiYzE4ZTFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTEwLTMxICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJlZmVyIGRvY3VtZW50LT5h
ZGRDb25zb2xlTWVzc2FnZSB0byBkb2N1bWVudC0+ZG9tV2luZG93LT5jb25zb2xlLT5hZGRNZXNz
YWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
ODUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9y
IGhpc3RvcmljYWwgcmVhc29ucywgYSBmZXcgcGxhY2VzIGluIFdlYkNvcmUgdGFsayB0byBDb25z
b2xlIGRpcmVjdGx5CisgICAgICAgIHZpYSAnZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNv
bGUoKS0+YWRkTWVzc2FnZSguLi4pJy4gVGhpcyBpcyBtb3JlCisgICAgICAgIHNhZmVseSB3cmFw
cGVkIGJ5IGNhbGxpbmcgJ2FkZENvbnNvbGVNZXNzYWdlJyBvbiB0aGUgRG9jdW1lbnQgaXRzZWxm
LgorCisgICAgICAgIE5vIHZpc2libGUgZnVuY3Rpb25hbGl0eSBzaG91bGQgY2hhbmdlOyB3ZSds
bCBzaW1wbHkgYXZvaWQgcG90ZW50aWFsCisgICAgICAgIG51bGwgZGVyZWZlcmVuY2VzIGluIHRo
ZSBmdXR1cmUuCisKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OnZhbGlkYXRlSW50ZXJhY3RpdmVseSk6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpwcmludFdh
cm5pbmdUb0NvbnNvbGUpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKToKKyAgICAg
ICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
aW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiBsb2FkZXIv
TWl4ZWRDb250ZW50Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNaXhlZENvbnRlbnRD
aGVja2VyOjpsb2dXYXJuaW5nKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91
cDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUdyb3Vw
OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6
OmRpZFJlY2VpdmVNYW5pZmVzdFJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0
aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZ01hbmlmZXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y2hlY2tJZkxvYWRJc0NvbXBsZXRlKToKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByaW50QWNjZXNzRGVuaWVkTWVzc2FnZSk6CisK
IDIwMTItMTAtMzEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFNwYXRpYWxpemVkIHBhbm5pbmcgcmVuZGVycyBpbmNvcnJlY3RseSB3aXRoIFVTRV9D
T05DQVRFTkFURURfSU1QVUxTRV9SRVNQT05TRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggMDVkNTRhNWEyNTViODBlMjczNzA1ZTNkY2EzZTJhYjQwYjE0ZDk2Yy4uYzFiZTg2Yzg4ZmFi
MmZiZDg0MzVjZWE2NzljZDhmMGJhYzI0ZjhkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMC0zMSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFByZWZlciBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UgdG8gZG9j
dW1lbnQtPmRvbVdpbmRvdy0+Y29uc29sZS0+YWRkTWVzc2FnZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDg1MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGEg
ZmV3IHBsYWNlcyBpbiBXZWJDb3JlIHRhbGsgdG8gQ29uc29sZSBkaXJlY3RseQorICAgICAgICB2
aWEgJ2RvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoLi4uKScu
IFRoaXMgaXMgbW9yZQorICAgICAgICBzYWZlbHkgd3JhcHBlZCBieSBjYWxsaW5nICdhZGRDb25z
b2xlTWVzc2FnZScgb24gdGhlIERvY3VtZW50IGl0c2VsZi4KKworICAgICAgICBObyB2aXNpYmxl
IGZ1bmN0aW9uYWxpdHkgc2hvdWxkIGNoYW5nZTsgd2UnbGwgc2ltcGx5IGF2b2lkIHBvdGVudGlh
bAorICAgICAgICBudWxsIGRlcmVmZXJlbmNlcyBpbiB0aGUgZnV0dXJlLgorCisgICAgICAgICog
c3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6YWRk
TWVzc2FnZVRvQ29uc29sZSk6CisKIDIwMTItMTAtMzAgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1h
Y2xlYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVHJhbnNmb3JtIG1vdXNl
L2dlc3R1cmUgZXZlbnQgY29vcmRpbmF0ZXMgdG8gYWNjb3VudCBmb3IgcGluY2gtem9vbSBpbiBj
b21wb3NpdG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4IDBh
MjUxNDE1ZmJkNzBiNGQyOGJlY2UwNmYzMGRiNTliZDIzYjBmZTUuLmRkZTVmZmEzMTYzYmQwY2Vk
ZTJjZDg4NDU3NjMxZjgwYjA5MzViNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxl
bWVudC5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIK
IAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRl
ICJET01Gb3JtRGF0YS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCkBAIC0yNTcsNyArMjU2LDcgQEAgYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OnZhbGlkYXRl
SW50ZXJhY3RpdmVseShFdmVudCogZXZlbnQpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSgiQW4gaW52YWxpZCBmb3JtIGNvbnRyb2wgd2l0aCBu
YW1lPSclbmFtZScgaXMgbm90IGZvY3VzYWJsZS4iKTsKICAgICAgICAgICAgIG1lc3NhZ2UucmVw
bGFjZSgiJW5hbWUiLCB1bmhhbmRsZWRBc3NvY2lhdGVkRWxlbWVudC0+bmFtZSgpKTsKLSAgICAg
ICAgICAgIGRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRN
TE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2Fn
ZSwgZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpOworICAgICAgICAgICAgZG9jdW1lbnQoKS0+
YWRkQ29uc29sZU1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAg
ICAgICB9CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDg4NzRlYTlhZTUz
YTg1ODQwZDg4ZmU3MjJkMTE0ZDRlNTAyMzZkMmEuLmM3MGY0MGZiNTIxZjQ0YjllNTk4MjRhMjAw
NzBiNDU5MWYyYWFlMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMzEsNyArMzEsNiBAQAogCiAjaW5jbHVkZSAi
Q2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDaGVja2VkSW50LmgiCi0jaW5jbHVkZSAiQ29uc29s
ZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTUyMDcsMjAgKzUy
MDYsMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnByaW50V2FybmluZ1RvQ29uc29s
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKCFjYW52YXMoKSkKICAgICAgICAg
cmV0dXJuOwotICAgIC8vIEZJWE1FOiBUaGlzIGdpYW50IGNhc2NhZGUgb2YgbnVsbCBjaGVja3Mg
c2VlbXMgYSBiaXQgcGFyYW5vaWQuCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY2FudmFzKCkt
PmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIEZy
YW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAg
IHJldHVybjsKLSAgICBET01XaW5kb3cqIHdpbmRvdyA9IGRvY3VtZW50LT5kb21XaW5kb3coKTsK
LSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuOwotICAgIENvbnNvbGUqIGNvbnNvbGUg
PSB3aW5kb3ctPmNvbnNvbGUoKTsKLSAgICBpZiAoIWNvbnNvbGUpCi0gICAgICAgIHJldHVybjsK
LSAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgZG9jdW1lbnQtPnVybCgpLnN0cmluZygp
KTsKKyAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBkb2N1bWVudC0+dXJs
KCkuc3RyaW5nKCkpOwogfQogCiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVG
cmFtZWJ1ZmZlckZ1bmNQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKaW5kZXggZTE0ZGUwYjZiNGYzZGZkNTk5OTBjMDg5YzllZTQyNDQwZTdmMzhhYi4u
YzMyYTVhNGMyZjIzNzVjZWZhNTdlZmFhNzBjMGViNzI5YTQxMGU1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xMzkyLDcgKzEzOTIsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHVy
bCkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBmcmFtZS0+ZG9jdW1l
bnQoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIk5vdCBhbGxvd2VkIHRvIGxvYWQg
bG9jYWwgcmVzb3VyY2U6ICIgKyB1cmwpOworICAgIGZyYW1lLT5kb2N1bWVudCgpLT5hZGRDb25z
b2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VM
ZXZlbCwgIk5vdCBhbGxvd2VkIHRvIGxvYWQgbG9jYWwgcmVzb3VyY2U6ICIgKyB1cmwpOwogfQog
CiBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIEZyYW1lTG9hZGVyOjppbml0aWFsUmVxdWVzdCgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDhmMjZhNWRiMTJjMGQ1NDUwZDhjMDY5NmE3MjRiMjU5NjczYTE2NDYuLjUzMTM0OTVlODcwZGE2
YTVkMWY2N2NmMDc4Nzc3NTZmYTA2ZTU0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
YWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBNYWluUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQog
ICAgICAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCktPnNob3VsZEludGVycnVwdExvYWRGb3JYRnJh
bWVPcHRpb25zKGNvbnRlbnQsIHIudXJsKCkpKSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmNvbnRpbnVlQWZ0ZXJYRnJhbWVPcHRpb25zRGVuaWVkKG1fZnJhbWUuZ2V0
KCksIGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSwgcik7CiAgICAgICAgICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJl
ZnVzZWQgdG8gZGlzcGxheSBkb2N1bWVudCBiZWNhdXNlIGRpc3BsYXkgZm9yYmlkZGVuIGJ5IFgt
RnJhbWUtT3B0aW9ucy5cbiIpKSk7Ci0gICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5k
b21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVz
c2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSk7CisgICAgICAgICAg
ICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UpOwogCiAg
ICAgICAgICAgICBjYW5jZWwoKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcAppbmRleCA3MWZkMmIzNmVhYmIzOTFh
NjQ4MzJkOTU0MWM1MmY5NTk1NGIxNDY4Li5hZThhODlhMzEyODAzOGI0OWQxYTc0ZDQ2NDNhZmE2
ODc5YjIzOTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50
Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNr
ZXIuY3BwCkBAIC05OCwxMSArOTgsMTAgQEAgYm9vbCBNaXhlZENvbnRlbnRDaGVja2VyOjpjYW5S
dW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLAogCiB2b2lk
IE1peGVkQ29udGVudENoZWNrZXI6OmxvZ1dhcm5pbmcoYm9vbCBhbGxvd2VkLCBjb25zdCBTdHJp
bmcmIGFjdGlvbiwgY29uc3QgS1VSTCYgdGFyZ2V0KSBjb25zdAogewotICAgIENvbnNvbGUqIGNv
bnNvbGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOwogICAg
IC8vIEZJWE1FOiBXaHkgZG9lcyB0aGlzIG1lc3NhZ2Ugbm90IGhhdmUgYSBzb3VyY2UgVVJMIG9y
IGEgbGluZSBudW1iZXI/IHdlYmtpdC5vcmcvYi85Nzk3OQogICAgIFN0cmluZyBtZXNzYWdlID0g
U3RyaW5nOjpmb3JtYXQoIiVzVGhlIHBhZ2UgYXQgJXMgJXMgaW5zZWN1cmUgY29udGVudCBmcm9t
ICVzLlxuIiwKICAgICAgICAgKGFsbG93ZWQgPyAiIiA6ICJbYmxvY2tlZF0gIiksIGFzVVRGOCht
X2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSkuZGF0YSgpLCBhY3Rpb24udXRmOCgpLmRhdGEoKSwg
YXNVVEY4KHRhcmdldCkuZGF0YSgpKTsKLSAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEhUTUxNZXNz
YWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7
CisgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoSFRNTE1lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCA0ZGUzYTQ5YjVk
NDRlYTVlYWE2OTY1YjJlYzQ0Y2ViYWE4YWFiMzMxLi4xMThlZTFhNWQ4NWQzNzBkMzY1MDU1ZjMx
NWUzMDZmODZjNGEyMjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNDc0LDcgKzQ3NCw3IEBAIHZv
aWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjphYm9ydChGcmFtZSogZnJhbWUpCiAgICAgaWYgKG1f
Y29tcGxldGlvblR5cGUgIT0gTm9uZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZnJhbWUtPmRv
Y3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdl
U291cmNlLCBMb2dNZXNzYWdlVHlwZSwgVGlwTWVzc2FnZUxldmVsLCAiQXBwbGljYXRpb24gQ2Fj
aGUgZG93bmxvYWQgcHJvY2VzcyB3YXMgYWJvcnRlZC4iKTsKKyAgICBmcmFtZS0+ZG9jdW1lbnQo
KS0+YWRkQ29uc29sZU1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
VGlwTWVzc2FnZUxldmVsLCAiQXBwbGljYXRpb24gQ2FjaGUgZG93bmxvYWQgcHJvY2VzcyB3YXMg
YWJvcnRlZC4iKTsKICAgICBjYWNoZVVwZGF0ZUZhaWxlZCgpOwogfQogCkBAIC01NjgsNyArNTY4
LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNv
dXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXMKIAogICAgIGlmIChyZXNwb25zZS5odHRwU3Rh
dHVzQ29kZSgpIC8gMTAwICE9IDIgfHwgcmVzcG9uc2UudXJsKCkgIT0gbV9jdXJyZW50SGFuZGxl
LT5maXJzdFJlcXVlc3QoKS51cmwoKSkgewogICAgICAgICBpZiAoKHR5cGUgJiBBcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0KSB8fCAodHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZTo6RmFsbGJhY2spKSB7Ci0gICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kb21X
aW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVz
c2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQXBwbGljYXRpb24gQ2FjaGUgdXBkYXRlIGZh
aWxlZCwgYmVjYXVzZSAiICsgbV9jdXJyZW50SGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5z
dHJpbmcoKSArIAorICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1l
c3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSB1cGRhdGUgZmFpbGVkLCBiZWNhdXNlICIgKyBtX2N1cnJl
bnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpICsgCiAgICAgICAgICAgICAg
ICAgKChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpIC8gMTAwICE9IDIpID8gIiBjb3VsZCBub3Qg
YmUgZmV0Y2hlZC4iIDogIiB3YXMgcmVkaXJlY3RlZC4iKSk7CiAgICAgICAgICAgICAvLyBOb3Rl
IHRoYXQgY2FjaGVVcGRhdGVGYWlsZWQoKSBjYW4gY2F1c2UgdGhlIGNhY2hlIGdyb3VwIHRvIGJl
IGRlbGV0ZWQuCiAgICAgICAgICAgICBjYWNoZVVwZGF0ZUZhaWxlZCgpOwpAQCAtNjQ1LDcgKzY0
NSw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291
cmNlSGFuZGxlKiBoYW5kbGUsIGRvdWJsZSBmaW5pCiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBi
cmVhayBlYXJsaWVyIGFuZCBwcmV2ZW50IHJlZG93bmxvYWRpbmcgb24gbGF0ZXIgcGFnZSBsb2Fk
cz8KICAgICBpZiAobV9vcmlnaW5RdW90YUV4Y2VlZGVkUHJldmlvdXNseSAmJiBtX2F2YWlsYWJs
ZVNwYWNlSW5RdW90YSA8IG1fY2FjaGVCZWluZ1VwZGF0ZWQtPmVzdGltYXRlZFNpemVJblN0b3Jh
Z2UoKSkgewogICAgICAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IDA7Ci0gICAgICAgIG1fZnJhbWUt
PmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoT3RoZXJNZXNz
YWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlv
biBDYWNoZSB1cGRhdGUgZmFpbGVkLCBiZWNhdXNlIHNpemUgcXVvdGEgd2FzIGV4Y2VlZGVkLiIp
OworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShPdGhlck1l
c3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0
aW9uIENhY2hlIHVwZGF0ZSBmYWlsZWQsIGJlY2F1c2Ugc2l6ZSBxdW90YSB3YXMgZXhjZWVkZWQu
Iik7CiAgICAgICAgIGNhY2hlVXBkYXRlRmFpbGVkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC02NzgsNyArNjc4LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZhaWwo
UmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzb3VyY2VFcnJvciYKICAgICBtX3BlbmRp
bmdFbnRyaWVzLnJlbW92ZSh1cmwpOwogCiAgICAgaWYgKCh0eXBlICYgQXBwbGljYXRpb25DYWNo
ZVJlc291cmNlOjpFeHBsaWNpdCkgfHwgKHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6
OkZhbGxiYWNrKSkgewotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+
Y29uc29sZSgpLT5hZGRNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCAiQXBwbGljYXRpb24gQ2FjaGUgdXBkYXRlIGZhaWxlZCwgYmVj
YXVzZSAiICsgdXJsLnN0cmluZygpICsgIiBjb3VsZCBub3QgYmUgZmV0Y2hlZC4iKTsKKyAgICAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoT3RoZXJNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNo
ZSB1cGRhdGUgZmFpbGVkLCBiZWNhdXNlICIgKyB1cmwuc3RyaW5nKCkgKyAiIGNvdWxkIG5vdCBi
ZSBmZXRjaGVkLiIpOwogICAgICAgICAvLyBOb3RlIHRoYXQgY2FjaGVVcGRhdGVGYWlsZWQoKSBj
YW4gY2F1c2UgdGhlIGNhY2hlIGdyb3VwIHRvIGJlIGRlbGV0ZWQuCiAgICAgICAgIGNhY2hlVXBk
YXRlRmFpbGVkKCk7CiAgICAgfSBlbHNlIHsKQEAgLTcwNywxMyArNzA3LDEzIEBAIHZvaWQgQXBw
bGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlTWFuaWZlc3RSZXNwb25zZShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChyZXNwb25zZS5odHRw
U3RhdHVzQ29kZSgpIC8gMTAwICE9IDIpIHsKLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0aW9uIENhY2hlIG1hbmlm
ZXN0IGNvdWxkIG5vdCBiZSBmZXRjaGVkLiIpOworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgp
LT5hZGRDb25zb2xlTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0aW9uIENhY2hlIG1hbmlmZXN0IGNvdWxkIG5vdCBi
ZSBmZXRjaGVkLiIpOwogICAgICAgICBjYWNoZVVwZGF0ZUZhaWxlZCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgaWYgKHJlc3BvbnNlLnVybCgpICE9IG1fbWFuaWZlc3RIYW5kbGUt
PmZpcnN0UmVxdWVzdCgpLnVybCgpKSB7Ci0gICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmRv
bVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSBtYW5pZmVz
dCBjb3VsZCBub3QgYmUgZmV0Y2hlZCwgYmVjYXVzZSBhIHJlZGlyZWN0aW9uIHdhcyBhdHRlbXB0
ZWQuIik7CisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE90
aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQXBw
bGljYXRpb24gQ2FjaGUgbWFuaWZlc3QgY291bGQgbm90IGJlIGZldGNoZWQsIGJlY2F1c2UgYSBy
ZWRpcmVjdGlvbiB3YXMgYXR0ZW1wdGVkLiIpOwogICAgICAgICBjYWNoZVVwZGF0ZUZhaWxlZCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNzMzLDcgKzczMyw3IEBAIHZvaWQgQXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nTWFuaWZlc3QoKQogCiAgICAgaWYgKCFp
c1VwZ3JhZGVBdHRlbXB0ICYmICFtX21hbmlmZXN0UmVzb3VyY2UpIHsKICAgICAgICAgLy8gVGhl
IHNlcnZlciByZXR1cm5lZCAzMDQgTm90IE1vZGlmaWVkIGV2ZW4gdGhvdWdoIHdlIGRpZG4ndCBz
ZW5kIGEgY29uZGl0aW9uYWwgcmVxdWVzdC4KLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0aW9uIENhY2hlIG1hbmlm
ZXN0IGNvdWxkIG5vdCBiZSBmZXRjaGVkIGJlY2F1c2Ugb2YgYW4gdW5leHBlY3RlZCAzMDQgTm90
IE1vZGlmaWVkIHNlcnZlciByZXNwb25zZS4iKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+YWRkQ29uc29sZU1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSBtYW5pZmVzdCBjb3VsZCBub3Qg
YmUgZmV0Y2hlZCBiZWNhdXNlIG9mIGFuIHVuZXhwZWN0ZWQgMzA0IE5vdCBNb2RpZmllZCBzZXJ2
ZXIgcmVzcG9uc2UuIik7CiAgICAgICAgIGNhY2hlVXBkYXRlRmFpbGVkKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC03NTksNyArNzU5LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3Jv
dXA6OmRpZEZpbmlzaExvYWRpbmdNYW5pZmVzdCgpCiAgICAgTWFuaWZlc3QgbWFuaWZlc3Q7CiAg
ICAgaWYgKCFwYXJzZU1hbmlmZXN0KG1fbWFuaWZlc3RVUkwsIG1fbWFuaWZlc3RSZXNvdXJjZS0+
ZGF0YSgpLT5kYXRhKCksIG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgpLT5zaXplKCksIG1hbmlm
ZXN0KSkgewogICAgICAgICAvLyBBdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcsIGxhY2sgb2Yg
IkNBQ0hFIE1BTklGRVNUIiBzaWduYXR1cmUgaXMgdGhlIG9ubHkgcmVhc29uIGZvciBwYXJzZU1h
bmlmZXN0IHRvIGZhaWwuCi0gICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygp
LT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSBtYW5pZmVzdCBjb3VsZCBu
b3QgYmUgcGFyc2VkLiBEb2VzIGl0IHN0YXJ0IHdpdGggQ0FDSEUgTUFOSUZFU1Q/Iik7CisgICAg
ICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE90aGVyTWVzc2FnZVNv
dXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQXBwbGljYXRpb24gQ2Fj
aGUgbWFuaWZlc3QgY291bGQgbm90IGJlIHBhcnNlZC4gRG9lcyBpdCBzdGFydCB3aXRoIENBQ0hF
IE1BTklGRVNUPyIpOwogICAgICAgICBjYWNoZVVwZGF0ZUZhaWxlZCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtOTQ4LDcgKzk0OCw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3Vw
OjpjaGVja0lmTG9hZElzQ29tcGxldGUoKQogICAgICAgICAgICAgICAgIC8vIFdlIHJhbiBvdXQg
b2Ygc3BhY2UgZm9yIHRoaXMgb3JpZ2luLiBGYWxsIGRvd24gdG8gdGhlIG5vcm1hbCBlcnJvciBo
YW5kbGluZwogICAgICAgICAgICAgICAgIC8vIGFmdGVyIHJlY29yZGluZyB0aGlzIHN0YXRlLgog
ICAgICAgICAgICAgICAgIG1fb3JpZ2luUXVvdGFFeGNlZWRlZFByZXZpb3VzbHkgPSB0cnVlOwot
ICAgICAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xl
KCktPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSB1cGRhdGUgZmFpbGVkLCBiZWNhdXNlIHNp
emUgcXVvdGEgd2FzIGV4Y2VlZGVkLiIpOworICAgICAgICAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5
cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQXBwbGljYXRpb24gQ2FjaGUgdXBkYXRlIGZhaWxlZCwg
YmVjYXVzZSBzaXplIHF1b3RhIHdhcyBleGNlZWRlZC4iKTsKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgaWYgKGZhaWx1cmVSZWFzb24gPT0gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OlRv
dGFsUXVvdGFSZWFjaGVkICYmICFtX2NhbGxlZFJlYWNoZWRNYXhBcHBDYWNoZVNpemUpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IDUwZjI3Y2FlYWJkMzUwMmE3OGQ5OWRjMzBlOWE1MmE4MzUxZjU4OGIuLjQwNThk
YmM4NzQyMTFkM2FlN2JmNzA5ZGY0MzdlNTI2NTI0ODdhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNjI3LDcg
KzYyNyw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByaW50QWNjZXNzRGVuaWVkTWVz
c2FnZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiAgICAgICAgIG1lc3NhZ2UgPSAiVW5zYWZlIGF0
dGVtcHQgdG8gbG9hZCBVUkwgIiArIHVybC5zdHJpbmcoKSArICIgZnJvbSBmcmFtZSB3aXRoIFVS
TCAiICsgbV9kb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkgKyAiLiBEb21haW5zLCBwcm90b2NvbHMg
YW5kIHBvcnRzIG11c3QgbWF0Y2guXG4iOwogCiAgICAgLy8gRklYTUU6IHByb3ZpZGUgbGluZSBu
dW1iZXIgYW5kIHNvdXJjZSBVUkwuCi0gICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93
KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VU
eXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CisgICAgZnJhbWUoKS0+ZG9jdW1lbnQo
KS0+YWRkQ29uc29sZU1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOwogfQogCiB2b2lkIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpzZXRBdXRvTG9hZEltYWdlcyhib29sIGVuYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IDllNmVhYzQ0ZDRkOWU0NzA1NmUzZGYzNjQw
MThjOWI5MTJhODdhYjUuLjViZDFmMTVjNTIwYjhhOGY2NzBjOWI1ZjYwY2MyYmRmMjE1MzU2NTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtODUy
LDcgKzg1Miw3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjphZGRNZXNzYWdlVG9Db25zb2xlKGNvbnN0
IFdlYkNvbnNvbGVNZXNzYWdlJiBtZXNzYWdlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2Fn
ZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCB3ZWJDb3JlTWVzc2FnZUxldmVs
LCBtZXNzYWdlLnRleHQpOworICAgIGZyYW1lKCktPmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNz
YWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIHdlYkNvcmVNZXNzYWdlTGV2
ZWwsIG1lc3NhZ2UudGV4dCk7CiB9CiAKIHZvaWQgV2ViRnJhbWVJbXBsOjpjb2xsZWN0R2FyYmFn
ZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171644</attachid>
            <date>2012-10-31 06:58:41 -0700</date>
            <delta_ts>2012-10-31 07:15:54 -0700</delta_ts>
            <desc>Rebased.</desc>
            <filename>bug-100850-20121031145703.patch</filename>
            <type>text/plain</type>
            <size>15870</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZmYTg2MDZmNDM2Yjg5
ZmIxNWQ2Zjc0OGY5YjE4NWIzYWNhODA1Yi4uZTk0NmVlZmNlMGRmNGZiODQyMTA1NDY3MzBlNWYw
ZTRiYTQyNWJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDEyLTEwLTMxICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUHJlZmVyIGRvY3VtZW50LT5h
ZGRDb25zb2xlTWVzc2FnZSB0byBkb2N1bWVudC0+ZG9tV2luZG93LT5jb25zb2xlLT5hZGRNZXNz
YWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
ODUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9y
IGhpc3RvcmljYWwgcmVhc29ucywgYSBmZXcgcGxhY2VzIGluIFdlYkNvcmUgdGFsayB0byBDb25z
b2xlIGRpcmVjdGx5CisgICAgICAgIHZpYSAnZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNv
bGUoKS0+YWRkTWVzc2FnZSguLi4pJy4gVGhpcyBpcyBtb3JlCisgICAgICAgIHNhZmVseSB3cmFw
cGVkIGJ5IGNhbGxpbmcgJ2FkZENvbnNvbGVNZXNzYWdlJyBvbiB0aGUgRG9jdW1lbnQgaXRzZWxm
LgorCisgICAgICAgIE5vIHZpc2libGUgZnVuY3Rpb25hbGl0eSBzaG91bGQgY2hhbmdlOyB3ZSds
bCBzaW1wbHkgYXZvaWQgcG90ZW50aWFsCisgICAgICAgIG51bGwgZGVyZWZlcmVuY2VzIGluIHRo
ZSBmdXR1cmUuCisKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OnZhbGlkYXRlSW50ZXJhY3RpdmVseSk6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpwcmludFdh
cm5pbmdUb0NvbnNvbGUpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKToKKyAgICAg
ICAgKiBsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
aXhlZENvbnRlbnRDaGVja2VyOjpsb2dXYXJuaW5nKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0
aW9uQ2FjaGVHcm91cDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNo
ZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRp
b25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlv
bkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVNYW5pZmVzdFJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZ01hbmlmZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y2hlY2tJZkxvYWRJc0NvbXBs
ZXRlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByaW50QWNjZXNzRGVuaWVk
TWVzc2FnZSk6CisKKzIwMTItMTAtMzEgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4K
KwogICAgICAgICBYLUZyYW1lLU9wdGlvbnMgY29uc29sZSBtZXNzYWdlIHNob3VsZCBiZSBhc3Nv
Y2lhdGVkIHdpdGggYSByZXF1ZXN0LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAwNzM1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDhi
NWQwY2YzYzliZTU4OGUwNzQ4Y2E4ZjRkZDY5YWJhNjIxMDI3MS4uMzgxODkzYmEyMDRjYmQzYjBi
NzM1ZmVkMDg4ODQ5NTkzZDM0MzYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0xMC0zMSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFByZWZlciBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UgdG8gZG9jdW1lbnQt
PmRvbVdpbmRvdy0+Y29uc29sZS0+YWRkTWVzc2FnZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDg1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGEgZmV3IHBs
YWNlcyBpbiBXZWJDb3JlIHRhbGsgdG8gQ29uc29sZSBkaXJlY3RseQorICAgICAgICB2aWEgJ2Rv
Y3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoLi4uKScuIFRoaXMg
aXMgbW9yZQorICAgICAgICBzYWZlbHkgd3JhcHBlZCBieSBjYWxsaW5nICdhZGRDb25zb2xlTWVz
c2FnZScgb24gdGhlIERvY3VtZW50IGl0c2VsZi4KKworICAgICAgICBObyB2aXNpYmxlIGZ1bmN0
aW9uYWxpdHkgc2hvdWxkIGNoYW5nZTsgd2UnbGwgc2ltcGx5IGF2b2lkIHBvdGVudGlhbAorICAg
ICAgICBudWxsIGRlcmVmZXJlbmNlcyBpbiB0aGUgZnV0dXJlLgorCisgICAgICAgICogc3JjL1dl
YkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6YWRkTWVzc2Fn
ZVRvQ29uc29sZSk6CisKIDIwMTItMTAtMzEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJlbW92ZSBjb2RlIHRvIGhpZGUvcmVzaG93IHRleHQgY2FyZXQgZm9y
IFBhZ2VQb3B1cHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCAw
YTI1MTQxNWZiZDcwYjRkMjhiZWNlMDZmMzBkYjU5YmQyM2IwZmU1Li5kZGU1ZmZhMzE2M2JkMGNl
ZGUyY2Q4ODQ1NzYzMWY4MGIwOTM1YjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CiAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVk
ZSAiRE9NRm9ybURhdGEuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgpAQCAtMjU3LDcgKzI1Niw3IEBAIGJvb2wgSFRNTEZvcm1FbGVtZW50Ojp2YWxpZGF0
ZUludGVyYWN0aXZlbHkoRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UoIkFuIGludmFsaWQgZm9ybSBjb250cm9sIHdpdGgg
bmFtZT0nJW5hbWUnIGlzIG5vdCBmb2N1c2FibGUuIik7CiAgICAgICAgICAgICBtZXNzYWdlLnJl
cGxhY2UoIiVuYW1lIiwgdW5oYW5kbGVkQXNzb2NpYXRlZEVsZW1lbnQtPm5hbWUoKSk7Ci0gICAg
ICAgICAgICBkb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhU
TUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3Nh
Z2UsIGRvY3VtZW50KCktPnVybCgpLnN0cmluZygpKTsKKyAgICAgICAgICAgIGRvY3VtZW50KCkt
PmFkZENvbnNvbGVNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGRvY3VtZW50KCktPnVybCgpLnN0cmluZygpKTsKICAg
ICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA4ODc0ZWE5YWU1
M2E4NTg0MGQ4OGZlNzIyZDExNGQ0ZTUwMjM2ZDJhLi5jNzBmNDBmYjUyMWY0NGI5ZTU5ODI0YTIw
MDcwYjQ1OTFmMmFhZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKIAogI2luY2x1ZGUg
IkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2hlY2tlZEludC5oIgotI2luY2x1ZGUgIkNvbnNv
bGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJFWFRUZXh0dXJlRmlsdGVy
QW5pc290cm9waWMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC01MjA3LDIwICs1
MjA2LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpwcmludFdhcm5pbmdUb0NvbnNv
bGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlmICghY2FudmFzKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICAvLyBGSVhNRTogVGhpcyBnaWFudCBjYXNjYWRlIG9mIG51bGwgY2hlY2tz
IHNlZW1zIGEgYml0IHBhcmFub2lkLgogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNhbnZhcygp
LT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBG
cmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAg
ICByZXR1cm47Ci0gICAgRE9NV2luZG93KiB3aW5kb3cgPSBkb2N1bWVudC0+ZG9tV2luZG93KCk7
Ci0gICAgaWYgKCF3aW5kb3cpCi0gICAgICAgIHJldHVybjsKLSAgICBDb25zb2xlKiBjb25zb2xl
ID0gd2luZG93LT5jb25zb2xlKCk7Ci0gICAgaWYgKCFjb25zb2xlKQotICAgICAgICByZXR1cm47
Ci0gICAgY29uc29sZS0+YWRkTWVzc2FnZShIVE1MTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5
cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGRvY3VtZW50LT51cmwoKS5zdHJpbmco
KSk7CisgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgZG9jdW1lbnQtPnVy
bCgpLnN0cmluZygpKTsKIH0KIAogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
RnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCmluZGV4IGUxNGRlMGI2YjRmM2RmZDU5OTkwYzA4OWM5ZWU0MjQ0MGU3ZjM4YWIu
LmMzMmE1YTRjMmYyMzc1Y2VmYTU3ZWZhYTcwYzBlYjcyOWE0MTBlNTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTM5Miw3ICsxMzkyLDcgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiB1
cmwpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZnJhbWUtPmRvY3Vt
ZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNl
LCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJOb3QgYWxsb3dlZCB0byBsb2Fk
IGxvY2FsIHJlc291cmNlOiAiICsgdXJsKTsKKyAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29u
c29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdl
TGV2ZWwsICJOb3QgYWxsb3dlZCB0byBsb2FkIGxvY2FsIHJlc291cmNlOiAiICsgdXJsKTsKIH0K
IAogY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBGcmFtZUxvYWRlcjo6aW5pdGlhbFJlcXVlc3QoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwCmlu
ZGV4IDcxZmQyYjM2ZWFiYjM5MWE2NDgzMmQ5NTQxYzUyZjk1OTU0YjE0NjguLmFlOGE4OWEzMTI4
MDM4YjQ5ZDFhNzRkNDY0M2FmYTY4NzliMjM5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAKQEAgLTk4LDExICs5OCwxMCBAQCBib29sIE1peGVk
Q29udGVudENoZWNrZXI6OmNhblJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogc2Vj
dXJpdHlPcmlnaW4sCiAKIHZvaWQgTWl4ZWRDb250ZW50Q2hlY2tlcjo6bG9nV2FybmluZyhib29s
IGFsbG93ZWQsIGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBLVVJMJiB0YXJnZXQpIGNvbnN0
CiB7Ci0gICAgQ29uc29sZSogY29uc29sZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRv
dygpLT5jb25zb2xlKCk7CiAgICAgLy8gRklYTUU6IFdoeSBkb2VzIHRoaXMgbWVzc2FnZSBub3Qg
aGF2ZSBhIHNvdXJjZSBVUkwgb3IgYSBsaW5lIG51bWJlcj8gd2Via2l0Lm9yZy9iLzk3OTc5CiAg
ICAgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiJXNUaGUgcGFnZSBhdCAlcyAlcyBp
bnNlY3VyZSBjb250ZW50IGZyb20gJXMuXG4iLAogICAgICAgICAoYWxsb3dlZCA/ICIiIDogIlti
bG9ja2VkXSAiKSwgYXNVVEY4KG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpKS5kYXRhKCksIGFj
dGlvbi51dGY4KCkuZGF0YSgpLCBhc1VURjgodGFyZ2V0KS5kYXRhKCkpOwotICAgIGNvbnNvbGUt
PmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVz
c2FnZUxldmVsLCBtZXNzYWdlKTsKKyAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5hZGRDb25zb2xl
TWVzc2FnZShIVE1MTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdl
TGV2ZWwsIG1lc3NhZ2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAu
Y3BwCmluZGV4IDRkZTNhNDliNWQ0NGVhNWVhYTY5NjViMmVjNDRjZWJhYThhYWIzMzEuLjExOGVl
MWE1ZDg1ZDM3MGQzNjUwNTVmMzE1ZTMwNmY4NmM0YTIyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBA
IC00NzQsNyArNDc0LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmFib3J0KEZyYW1l
KiBmcmFtZSkKICAgICBpZiAobV9jb21wbGV0aW9uVHlwZSAhPSBOb25lKQogICAgICAgICByZXR1
cm47CiAKLSAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRk
TWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBUaXBNZXNzYWdlTGV2
ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSBkb3dubG9hZCBwcm9jZXNzIHdhcyBhYm9ydGVkLiIpOwor
ICAgIGZyYW1lLT5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShPdGhlck1lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBUaXBNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSBk
b3dubG9hZCBwcm9jZXNzIHdhcyBhYm9ydGVkLiIpOwogICAgIGNhY2hlVXBkYXRlRmFpbGVkKCk7
CiB9CiAKQEAgLTU2OCw3ICs1NjgsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlcwogCiAgICAg
aWYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgLyAxMDAgIT0gMiB8fCByZXNwb25zZS51cmwo
KSAhPSBtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKSB7CiAgICAgICAgIGlm
ICgodHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RXhwbGljaXQpIHx8ICh0eXBlICYg
QXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpGYWxsYmFjaykpIHsKLSAgICAgICAgICAgIG1fZnJh
bWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoT3RoZXJN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJBcHBsaWNh
dGlvbiBDYWNoZSB1cGRhdGUgZmFpbGVkLCBiZWNhdXNlICIgKyBtX2N1cnJlbnRIYW5kbGUtPmZp
cnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpICsgCisgICAgICAgICAgICBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VU
eXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWlsZWQs
IGJlY2F1c2UgIiArIG1fY3VycmVudEhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkuc3RyaW5n
KCkgKyAKICAgICAgICAgICAgICAgICAoKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgLyAxMDAg
IT0gMikgPyAiIGNvdWxkIG5vdCBiZSBmZXRjaGVkLiIgOiAiIHdhcyByZWRpcmVjdGVkLiIpKTsK
ICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBjYWNoZVVwZGF0ZUZhaWxlZCgpIGNhbiBjYXVzZSB0
aGUgY2FjaGUgZ3JvdXAgdG8gYmUgZGVsZXRlZC4KICAgICAgICAgICAgIGNhY2hlVXBkYXRlRmFp
bGVkKCk7CkBAIC02NDUsNyArNjQ1LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgZG91YmxlIGZpbmkKICAgICAv
LyBGSVhNRTogU2hvdWxkIHdlIGJyZWFrIGVhcmxpZXIgYW5kIHByZXZlbnQgcmVkb3dubG9hZGlu
ZyBvbiBsYXRlciBwYWdlIGxvYWRzPwogICAgIGlmIChtX29yaWdpblF1b3RhRXhjZWVkZWRQcmV2
aW91c2x5ICYmIG1fYXZhaWxhYmxlU3BhY2VJblF1b3RhIDwgbV9jYWNoZUJlaW5nVXBkYXRlZC0+
ZXN0aW1hdGVkU2l6ZUluU3RvcmFnZSgpKSB7CiAgICAgICAgIG1fY3VycmVudFJlc291cmNlID0g
MDsKLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+
YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3Nh
Z2VMZXZlbCwgIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWlsZWQsIGJlY2F1c2Ugc2l6ZSBx
dW90YSB3YXMgZXhjZWVkZWQuIik7CisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmFkZENv
bnNvbGVNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVz
c2FnZUxldmVsLCAiQXBwbGljYXRpb24gQ2FjaGUgdXBkYXRlIGZhaWxlZCwgYmVjYXVzZSBzaXpl
IHF1b3RhIHdhcyBleGNlZWRlZC4iKTsKICAgICAgICAgY2FjaGVVcGRhdGVGYWlsZWQoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTY3OCw3ICs2NzgsNyBAQCB2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6ZGlkRmFpbChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJj
ZUVycm9yJgogICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7CiAKICAgICBpZiAoKHR5
cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0KSB8fCAodHlwZSAmIEFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZTo6RmFsbGJhY2spKSB7Ci0gICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNo
ZSB1cGRhdGUgZmFpbGVkLCBiZWNhdXNlICIgKyB1cmwuc3RyaW5nKCkgKyAiIGNvdWxkIG5vdCBi
ZSBmZXRjaGVkLiIpOworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVz
c2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZl
bCwgIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWlsZWQsIGJlY2F1c2UgIiArIHVybC5zdHJp
bmcoKSArICIgY291bGQgbm90IGJlIGZldGNoZWQuIik7CiAgICAgICAgIC8vIE5vdGUgdGhhdCBj
YWNoZVVwZGF0ZUZhaWxlZCgpIGNhbiBjYXVzZSB0aGUgY2FjaGUgZ3JvdXAgdG8gYmUgZGVsZXRl
ZC4KICAgICAgICAgY2FjaGVVcGRhdGVGYWlsZWQoKTsKICAgICB9IGVsc2UgewpAQCAtNzA3LDEz
ICs3MDcsMTMgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVNYW5pZmVz
dFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgLyAxMDAgIT0gMikgewotICAgICAgICBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKE90
aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQXBw
bGljYXRpb24gQ2FjaGUgbWFuaWZlc3QgY291bGQgbm90IGJlIGZldGNoZWQuIik7CisgICAgICAg
IG1fZnJhbWUtPmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQXBwbGljYXRpb24gQ2FjaGUg
bWFuaWZlc3QgY291bGQgbm90IGJlIGZldGNoZWQuIik7CiAgICAgICAgIGNhY2hlVXBkYXRlRmFp
bGVkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAocmVzcG9uc2UudXJsKCkg
IT0gbV9tYW5pZmVzdEhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkpIHsKLSAgICAgICAgbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShPdGhl
ck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxp
Y2F0aW9uIENhY2hlIG1hbmlmZXN0IGNvdWxkIG5vdCBiZSBmZXRjaGVkLCBiZWNhdXNlIGEgcmVk
aXJlY3Rpb24gd2FzIGF0dGVtcHRlZC4iKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
YWRkQ29uc29sZU1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSBtYW5pZmVzdCBjb3VsZCBub3QgYmUg
ZmV0Y2hlZCwgYmVjYXVzZSBhIHJlZGlyZWN0aW9uIHdhcyBhdHRlbXB0ZWQuIik7CiAgICAgICAg
IGNhY2hlVXBkYXRlRmFpbGVkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC03MzMsNyAr
NzMzLDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlzaExvYWRpbmdNYW5p
ZmVzdCgpCiAKICAgICBpZiAoIWlzVXBncmFkZUF0dGVtcHQgJiYgIW1fbWFuaWZlc3RSZXNvdXJj
ZSkgewogICAgICAgICAvLyBUaGUgc2VydmVyIHJldHVybmVkIDMwNCBOb3QgTW9kaWZpZWQgZXZl
biB0aG91Z2ggd2UgZGlkbid0IHNlbmQgYSBjb25kaXRpb25hbCByZXF1ZXN0LgotICAgICAgICBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKE90
aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQXBw
bGljYXRpb24gQ2FjaGUgbWFuaWZlc3QgY291bGQgbm90IGJlIGZldGNoZWQgYmVjYXVzZSBvZiBh
biB1bmV4cGVjdGVkIDMwNCBOb3QgTW9kaWZpZWQgc2VydmVyIHJlc3BvbnNlLiIpOworICAgICAg
ICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShPdGhlck1lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0aW9uIENhY2hl
IG1hbmlmZXN0IGNvdWxkIG5vdCBiZSBmZXRjaGVkIGJlY2F1c2Ugb2YgYW4gdW5leHBlY3RlZCAz
MDQgTm90IE1vZGlmaWVkIHNlcnZlciByZXNwb25zZS4iKTsKICAgICAgICAgY2FjaGVVcGRhdGVG
YWlsZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTc1OSw3ICs3NTksNyBAQCB2b2lk
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZ01hbmlmZXN0KCkKICAgICBN
YW5pZmVzdCBtYW5pZmVzdDsKICAgICBpZiAoIXBhcnNlTWFuaWZlc3QobV9tYW5pZmVzdFVSTCwg
bV9tYW5pZmVzdFJlc291cmNlLT5kYXRhKCktPmRhdGEoKSwgbV9tYW5pZmVzdFJlc291cmNlLT5k
YXRhKCktPnNpemUoKSwgbWFuaWZlc3QpKSB7CiAgICAgICAgIC8vIEF0IHRoZSB0aW1lIG9mIHRo
aXMgd3JpdGluZywgbGFjayBvZiAiQ0FDSEUgTUFOSUZFU1QiIHNpZ25hdHVyZSBpcyB0aGUgb25s
eSByZWFzb24gZm9yIHBhcnNlTWFuaWZlc3QgdG8gZmFpbC4KLSAgICAgICAgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0aW9uIENh
Y2hlIG1hbmlmZXN0IGNvdWxkIG5vdCBiZSBwYXJzZWQuIERvZXMgaXQgc3RhcnQgd2l0aCBDQUNI
RSBNQU5JRkVTVD8iKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1l
c3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSBtYW5pZmVzdCBjb3VsZCBub3QgYmUgcGFyc2VkLiBEb2Vz
IGl0IHN0YXJ0IHdpdGggQ0FDSEUgTUFOSUZFU1Q/Iik7CiAgICAgICAgIGNhY2hlVXBkYXRlRmFp
bGVkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC05NDgsNyArOTQ4LDcgQEAgdm9pZCBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNoZWNrSWZMb2FkSXNDb21wbGV0ZSgpCiAgICAgICAgICAg
ICAgICAgLy8gV2UgcmFuIG91dCBvZiBzcGFjZSBmb3IgdGhpcyBvcmlnaW4uIEZhbGwgZG93biB0
byB0aGUgbm9ybWFsIGVycm9yIGhhbmRsaW5nCiAgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgcmVj
b3JkaW5nIHRoaXMgc3RhdGUuCiAgICAgICAgICAgICAgICAgbV9vcmlnaW5RdW90YUV4Y2VlZGVk
UHJldmlvdXNseSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0
ZSBmYWlsZWQsIGJlY2F1c2Ugc2l6ZSBxdW90YSB3YXMgZXhjZWVkZWQuIik7CisgICAgICAgICAg
ICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoT3RoZXJNZXNzYWdl
U291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBD
YWNoZSB1cGRhdGUgZmFpbGVkLCBiZWNhdXNlIHNpemUgcXVvdGEgd2FzIGV4Y2VlZGVkLiIpOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoZmFpbHVyZVJlYXNvbiA9PSBBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6VG90YWxRdW90YVJlYWNoZWQgJiYgIW1fY2FsbGVkUmVhY2hlZE1h
eEFwcENhY2hlU2l6ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggODljODNlMGQ5OWE3NzIxOWY3NzY5Nzg0Yjlh
YWIwY2UxZTI0ZGY3NC4uNzY5ZmQ4ZDBmNDIwNDEwYmQ2ZmNlZGVlOTYzNTg5YTU1OGJlYmI1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC02MjksNyArNjI5LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cHJpbnRBY2Nlc3NEZW5pZWRNZXNzYWdlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKICAgICAgICAg
bWVzc2FnZSA9ICJVbnNhZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCAiICsgdXJsLnN0cmluZygpICsg
IiBmcm9tIGZyYW1lIHdpdGggVVJMICIgKyBtX2RvY3VtZW50LT51cmwoKS5zdHJpbmcoKSArICIu
IERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC5cbiI7CiAKICAgICAvLyBG
SVhNRTogcHJvdmlkZSBsaW5lIG51bWJlciBhbmQgc291cmNlIFVSTC4KLSAgICBmcmFtZSgpLT5k
b2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKE90aGVyTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKKyAg
ICBmcmFtZSgpLT5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShPdGhlck1lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CiB9CiAKIHZv
aWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNldEF1dG9Mb2FkSW1hZ2VzKGJvb2wgZW5hYmxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggZTExNDk5
ZWVlZjFiMmIzMDU1Yzk5Njg5MjZiMDhlYmE2NjVkY2M4Yi4uMTkzNjQ3NmYzYWUxYTIwMTQwMzNk
YzNmZGI3ZTBjYWI1Y2E4YzdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuY3BwCkBAIC04NTksNyArODU5LDcgQEAgdm9pZCBXZWJGcmFtZUltcGw6OmFkZE1l
c3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29uc29sZU1lc3NhZ2UmIG1lc3NhZ2UpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBmcmFtZSgpLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+
Y29uc29sZSgpLT5hZGRNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IHdlYkNvcmVNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UudGV4dCk7CisgICAgZnJhbWUoKS0+ZG9jdW1l
bnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgd2ViQ29yZU1lc3NhZ2VMZXZlbCwgbWVzc2FnZS50ZXh0KTsKIH0KIAogdm9pZCBXZWJGcmFt
ZUltcGw6OmNvbGxlY3RHYXJiYWdlKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171651</attachid>
            <date>2012-10-31 07:16:00 -0700</date>
            <delta_ts>2012-10-31 11:47:53 -0700</delta_ts>
            <desc>*ahem*</desc>
            <filename>bug-100850-20121031151422.patch</filename>
            <type>text/plain</type>
            <size>16545</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZmYTg2MDZmNDM2Yjg5
ZmIxNWQ2Zjc0OGY5YjE4NWIzYWNhODA1Yi4uZTk0NmVlZmNlMGRmNGZiODQyMTA1NDY3MzBlNWYw
ZTRiYTQyNWJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDEyLTEwLTMxICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUHJlZmVyIGRvY3VtZW50LT5h
ZGRDb25zb2xlTWVzc2FnZSB0byBkb2N1bWVudC0+ZG9tV2luZG93LT5jb25zb2xlLT5hZGRNZXNz
YWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
ODUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9y
IGhpc3RvcmljYWwgcmVhc29ucywgYSBmZXcgcGxhY2VzIGluIFdlYkNvcmUgdGFsayB0byBDb25z
b2xlIGRpcmVjdGx5CisgICAgICAgIHZpYSAnZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNv
bGUoKS0+YWRkTWVzc2FnZSguLi4pJy4gVGhpcyBpcyBtb3JlCisgICAgICAgIHNhZmVseSB3cmFw
cGVkIGJ5IGNhbGxpbmcgJ2FkZENvbnNvbGVNZXNzYWdlJyBvbiB0aGUgRG9jdW1lbnQgaXRzZWxm
LgorCisgICAgICAgIE5vIHZpc2libGUgZnVuY3Rpb25hbGl0eSBzaG91bGQgY2hhbmdlOyB3ZSds
bCBzaW1wbHkgYXZvaWQgcG90ZW50aWFsCisgICAgICAgIG51bGwgZGVyZWZlcmVuY2VzIGluIHRo
ZSBmdXR1cmUuCisKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OnZhbGlkYXRlSW50ZXJhY3RpdmVseSk6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpwcmludFdh
cm5pbmdUb0NvbnNvbGUpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKToKKyAgICAg
ICAgKiBsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
aXhlZENvbnRlbnRDaGVja2VyOjpsb2dXYXJuaW5nKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0
aW9uQ2FjaGVHcm91cDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNo
ZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRp
b25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlv
bkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVNYW5pZmVzdFJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZ01hbmlmZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y2hlY2tJZkxvYWRJc0NvbXBs
ZXRlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByaW50QWNjZXNzRGVuaWVk
TWVzc2FnZSk6CisKKzIwMTItMTAtMzEgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4K
KwogICAgICAgICBYLUZyYW1lLU9wdGlvbnMgY29uc29sZSBtZXNzYWdlIHNob3VsZCBiZSBhc3Nv
Y2lhdGVkIHdpdGggYSByZXF1ZXN0LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAwNzM1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDhi
NWQwY2YzYzliZTU4OGUwNzQ4Y2E4ZjRkZDY5YWJhNjIxMDI3MS4uMzgxODkzYmEyMDRjYmQzYjBi
NzM1ZmVkMDg4ODQ5NTkzZDM0MzYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0xMC0zMSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFByZWZlciBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UgdG8gZG9jdW1lbnQt
PmRvbVdpbmRvdy0+Y29uc29sZS0+YWRkTWVzc2FnZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDg1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGEgZmV3IHBs
YWNlcyBpbiBXZWJDb3JlIHRhbGsgdG8gQ29uc29sZSBkaXJlY3RseQorICAgICAgICB2aWEgJ2Rv
Y3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoLi4uKScuIFRoaXMg
aXMgbW9yZQorICAgICAgICBzYWZlbHkgd3JhcHBlZCBieSBjYWxsaW5nICdhZGRDb25zb2xlTWVz
c2FnZScgb24gdGhlIERvY3VtZW50IGl0c2VsZi4KKworICAgICAgICBObyB2aXNpYmxlIGZ1bmN0
aW9uYWxpdHkgc2hvdWxkIGNoYW5nZTsgd2UnbGwgc2ltcGx5IGF2b2lkIHBvdGVudGlhbAorICAg
ICAgICBudWxsIGRlcmVmZXJlbmNlcyBpbiB0aGUgZnV0dXJlLgorCisgICAgICAgICogc3JjL1dl
YkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6YWRkTWVzc2Fn
ZVRvQ29uc29sZSk6CisKIDIwMTItMTAtMzEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJlbW92ZSBjb2RlIHRvIGhpZGUvcmVzaG93IHRleHQgY2FyZXQgZm9y
IFBhZ2VQb3B1cHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
CmluZGV4IDM0MjQ4ZjRjMmRjMzNlMTM0ZTJhMDBjMmIzNjg1OGVlZDM0Mjg4YjMuLmI4ZGNhMjkw
NmZkMzlkNDdiOThlNDFkNDViZWViZDM4MzQxMDgzOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbnNvbGVUeXBlcy5oIgogI2luY2x1ZGUgIktV
UkwuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTZWN1cml0eUNv
bnRleHQuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CkBAIC01Myw3ICs1NCw2IEBAIGNsYXNzIEV2ZW50TGlzdGVuZXI7CiBjbGFzcyBFdmVu
dFF1ZXVlOwogY2xhc3MgRXZlbnRUYXJnZXQ7CiBjbGFzcyBNZXNzYWdlUG9ydDsKLWNsYXNzIFNj
cmlwdENhbGxTdGFjazsKIAogI2lmIEVOQUJMRShCTE9CKQogY2xhc3MgUHVibGljVVJMTWFuYWdl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCAwYTI1MTQxNWZi
ZDcwYjRkMjhiZWNlMDZmMzBkYjU5YmQyM2IwZmU1Li5kZGU1ZmZhMzE2M2JkMGNlZGUyY2Q4ODQ1
NzYzMWY4MGIwOTM1YjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3Bw
CkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAKICNpbmNs
dWRlICJBdHRyaWJ1dGUuaCIKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NRm9y
bURhdGEuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpA
QCAtMjU3LDcgKzI1Niw3IEBAIGJvb2wgSFRNTEZvcm1FbGVtZW50Ojp2YWxpZGF0ZUludGVyYWN0
aXZlbHkoRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgU3RyaW5nIG1lc3NhZ2UoIkFuIGludmFsaWQgZm9ybSBjb250cm9sIHdpdGggbmFtZT0nJW5h
bWUnIGlzIG5vdCBmb2N1c2FibGUuIik7CiAgICAgICAgICAgICBtZXNzYWdlLnJlcGxhY2UoIiVu
YW1lIiwgdW5oYW5kbGVkQXNzb2NpYXRlZEVsZW1lbnQtPm5hbWUoKSk7Ci0gICAgICAgICAgICBk
b2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdl
U291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGRvY3Vt
ZW50KCktPnVybCgpLnN0cmluZygpKTsKKyAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNv
bGVNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdl
TGV2ZWwsIG1lc3NhZ2UsIGRvY3VtZW50KCktPnVybCgpLnN0cmluZygpKTsKICAgICAgICAgfQog
ICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA4ODc0ZWE5YWU1M2E4NTg0MGQ4
OGZlNzIyZDExNGQ0ZTUwMjM2ZDJhLi5jNzBmNDBmYjUyMWY0NGI5ZTU5ODI0YTIwMDcwYjQ1OTFm
MmFhZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKIAogI2luY2x1ZGUgIkNhY2hlZElt
YWdlLmgiCiAjaW5jbHVkZSAiQ2hlY2tlZEludC5oIgotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9w
aWMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC01MjA3LDIwICs1MjA2LDEwIEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpwcmludFdhcm5pbmdUb0NvbnNvbGUoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlmICghY2FudmFzKCkpCiAgICAgICAgIHJldHVybjsK
LSAgICAvLyBGSVhNRTogVGhpcyBnaWFudCBjYXNjYWRlIG9mIG51bGwgY2hlY2tzIHNlZW1zIGEg
Yml0IHBhcmFub2lkLgogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNhbnZhcygpLT5kb2N1bWVu
dCgpOwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBGcmFtZSogZnJh
bWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm47
Ci0gICAgRE9NV2luZG93KiB3aW5kb3cgPSBkb2N1bWVudC0+ZG9tV2luZG93KCk7Ci0gICAgaWYg
KCF3aW5kb3cpCi0gICAgICAgIHJldHVybjsKLSAgICBDb25zb2xlKiBjb25zb2xlID0gd2luZG93
LT5jb25zb2xlKCk7Ci0gICAgaWYgKCFjb25zb2xlKQotICAgICAgICByZXR1cm47Ci0gICAgY29u
c29sZS0+YWRkTWVzc2FnZShIVE1MTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5p
bmdNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKSk7CisgICAg
ZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdl
VHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgZG9jdW1lbnQtPnVybCgpLnN0cmlu
ZygpKTsKIH0KIAogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlRnJhbWVidWZm
ZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGVudW0gYXR0YWNobWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CmluZGV4IGUxNGRlMGI2YjRmM2RmZDU5OTkwYzA4OWM5ZWU0MjQ0MGU3ZjM4YWIuLmMzMmE1YTRj
MmYyMzc1Y2VmYTU3ZWZhYTcwYzBlYjcyOWE0MTBlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcApAQCAtMTM5Miw3ICsxMzkyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6cmVw
b3J0TG9jYWxMb2FkRmFpbGVkKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiB1cmwpCiAgICAg
aWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZnJhbWUtPmRvY3VtZW50KCktPmRv
bVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNz
YWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJOb3QgYWxsb3dlZCB0byBsb2FkIGxvY2FsIHJl
c291cmNlOiAiICsgdXJsKTsKKyAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJO
b3QgYWxsb3dlZCB0byBsb2FkIGxvY2FsIHJlc291cmNlOiAiICsgdXJsKTsKIH0KIAogY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiBGcmFtZUxvYWRlcjo6aW5pdGlhbFJlcXVlc3QoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwCmluZGV4IDcxZmQy
YjM2ZWFiYjM5MWE2NDgzMmQ5NTQxYzUyZjk1OTU0YjE0NjguLmFlOGE4OWEzMTI4MDM4YjQ5ZDFh
NzRkNDY0M2FmYTY4NzliMjM5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRD
b250ZW50Q2hlY2tlci5jcHAKQEAgLTk4LDExICs5OCwxMCBAQCBib29sIE1peGVkQ29udGVudENo
ZWNrZXI6OmNhblJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmln
aW4sCiAKIHZvaWQgTWl4ZWRDb250ZW50Q2hlY2tlcjo6bG9nV2FybmluZyhib29sIGFsbG93ZWQs
IGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBLVVJMJiB0YXJnZXQpIGNvbnN0CiB7Ci0gICAg
Q29uc29sZSogY29uc29sZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25z
b2xlKCk7CiAgICAgLy8gRklYTUU6IFdoeSBkb2VzIHRoaXMgbWVzc2FnZSBub3QgaGF2ZSBhIHNv
dXJjZSBVUkwgb3IgYSBsaW5lIG51bWJlcj8gd2Via2l0Lm9yZy9iLzk3OTc5CiAgICAgU3RyaW5n
IG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiJXNUaGUgcGFnZSBhdCAlcyAlcyBpbnNlY3VyZSBj
b250ZW50IGZyb20gJXMuXG4iLAogICAgICAgICAoYWxsb3dlZCA/ICIiIDogIltibG9ja2VkXSAi
KSwgYXNVVEY4KG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpKS5kYXRhKCksIGFjdGlvbi51dGY4
KCkuZGF0YSgpLCBhc1VURjgodGFyZ2V0KS5kYXRhKCkpOwotICAgIGNvbnNvbGUtPmFkZE1lc3Nh
Z2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVs
LCBtZXNzYWdlKTsKKyAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShI
VE1MTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIG1l
c3NhZ2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4
IDRkZTNhNDliNWQ0NGVhNWVhYTY5NjViMmVjNDRjZWJhYThhYWIzMzEuLjExOGVlMWE1ZDg1ZDM3
MGQzNjUwNTVmMzE1ZTMwNmY4NmM0YTIyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC00NzQsNyAr
NDc0LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmFib3J0KEZyYW1lKiBmcmFtZSkK
ICAgICBpZiAobV9jb21wbGV0aW9uVHlwZSAhPSBOb25lKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShP
dGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBUaXBNZXNzYWdlTGV2ZWwsICJBcHBs
aWNhdGlvbiBDYWNoZSBkb3dubG9hZCBwcm9jZXNzIHdhcyBhYm9ydGVkLiIpOworICAgIGZyYW1l
LT5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VUeXBlLCBUaXBNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSBkb3dubG9hZCBw
cm9jZXNzIHdhcyBhYm9ydGVkLiIpOwogICAgIGNhY2hlVXBkYXRlRmFpbGVkKCk7CiB9CiAKQEAg
LTU2OCw3ICs1NjgsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlcwogCiAgICAgaWYgKHJlc3Bv
bnNlLmh0dHBTdGF0dXNDb2RlKCkgLyAxMDAgIT0gMiB8fCByZXNwb25zZS51cmwoKSAhPSBtX2N1
cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKSB7CiAgICAgICAgIGlmICgodHlwZSAm
IEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RXhwbGljaXQpIHx8ICh0eXBlICYgQXBwbGljYXRp
b25DYWNoZVJlc291cmNlOjpGYWxsYmFjaykpIHsKLSAgICAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNo
ZSB1cGRhdGUgZmFpbGVkLCBiZWNhdXNlICIgKyBtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVz
dCgpLnVybCgpLnN0cmluZygpICsgCisgICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5h
ZGRDb25zb2xlTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWlsZWQsIGJlY2F1c2Ug
IiArIG1fY3VycmVudEhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCkgKyAKICAg
ICAgICAgICAgICAgICAoKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgLyAxMDAgIT0gMikgPyAi
IGNvdWxkIG5vdCBiZSBmZXRjaGVkLiIgOiAiIHdhcyByZWRpcmVjdGVkLiIpKTsKICAgICAgICAg
ICAgIC8vIE5vdGUgdGhhdCBjYWNoZVVwZGF0ZUZhaWxlZCgpIGNhbiBjYXVzZSB0aGUgY2FjaGUg
Z3JvdXAgdG8gYmUgZGVsZXRlZC4KICAgICAgICAgICAgIGNhY2hlVXBkYXRlRmFpbGVkKCk7CkBA
IC02NDUsNyArNjQ1LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgZG91YmxlIGZpbmkKICAgICAvLyBGSVhNRTog
U2hvdWxkIHdlIGJyZWFrIGVhcmxpZXIgYW5kIHByZXZlbnQgcmVkb3dubG9hZGluZyBvbiBsYXRl
ciBwYWdlIGxvYWRzPwogICAgIGlmIChtX29yaWdpblF1b3RhRXhjZWVkZWRQcmV2aW91c2x5ICYm
IG1fYXZhaWxhYmxlU3BhY2VJblF1b3RhIDwgbV9jYWNoZUJlaW5nVXBkYXRlZC0+ZXN0aW1hdGVk
U2l6ZUluU3RvcmFnZSgpKSB7CiAgICAgICAgIG1fY3VycmVudFJlc291cmNlID0gMDsKLSAgICAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2Fn
ZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwg
IkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWlsZWQsIGJlY2F1c2Ugc2l6ZSBxdW90YSB3YXMg
ZXhjZWVkZWQuIik7CisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNz
YWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVs
LCAiQXBwbGljYXRpb24gQ2FjaGUgdXBkYXRlIGZhaWxlZCwgYmVjYXVzZSBzaXplIHF1b3RhIHdh
cyBleGNlZWRlZC4iKTsKICAgICAgICAgY2FjaGVVcGRhdGVGYWlsZWQoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTY3OCw3ICs2NzgsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91
cDo6ZGlkRmFpbChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZUVycm9yJgog
ICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7CiAKICAgICBpZiAoKHR5cGUgJiBBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0KSB8fCAodHlwZSAmIEFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZTo6RmFsbGJhY2spKSB7Ci0gICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmRv
bVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSB1cGRhdGUg
ZmFpbGVkLCBiZWNhdXNlICIgKyB1cmwuc3RyaW5nKCkgKyAiIGNvdWxkIG5vdCBiZSBmZXRjaGVk
LiIpOworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShPdGhl
ck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxp
Y2F0aW9uIENhY2hlIHVwZGF0ZSBmYWlsZWQsIGJlY2F1c2UgIiArIHVybC5zdHJpbmcoKSArICIg
Y291bGQgbm90IGJlIGZldGNoZWQuIik7CiAgICAgICAgIC8vIE5vdGUgdGhhdCBjYWNoZVVwZGF0
ZUZhaWxlZCgpIGNhbiBjYXVzZSB0aGUgY2FjaGUgZ3JvdXAgdG8gYmUgZGVsZXRlZC4KICAgICAg
ICAgY2FjaGVVcGRhdGVGYWlsZWQoKTsKICAgICB9IGVsc2UgewpAQCAtNzA3LDEzICs3MDcsMTMg
QEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVNYW5pZmVzdFJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHJl
c3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgLyAxMDAgIT0gMikgewotICAgICAgICBtX2ZyYW1lLT5k
b2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKE90aGVyTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQXBwbGljYXRpb24g
Q2FjaGUgbWFuaWZlc3QgY291bGQgbm90IGJlIGZldGNoZWQuIik7CisgICAgICAgIG1fZnJhbWUt
PmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVz
c2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQXBwbGljYXRpb24gQ2FjaGUgbWFuaWZlc3Qg
Y291bGQgbm90IGJlIGZldGNoZWQuIik7CiAgICAgICAgIGNhY2hlVXBkYXRlRmFpbGVkKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAocmVzcG9uc2UudXJsKCkgIT0gbV9tYW5p
ZmVzdEhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkpIHsKLSAgICAgICAgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0aW9uIENh
Y2hlIG1hbmlmZXN0IGNvdWxkIG5vdCBiZSBmZXRjaGVkLCBiZWNhdXNlIGEgcmVkaXJlY3Rpb24g
d2FzIGF0dGVtcHRlZC4iKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29s
ZU1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdl
TGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSBtYW5pZmVzdCBjb3VsZCBub3QgYmUgZmV0Y2hlZCwg
YmVjYXVzZSBhIHJlZGlyZWN0aW9uIHdhcyBhdHRlbXB0ZWQuIik7CiAgICAgICAgIGNhY2hlVXBk
YXRlRmFpbGVkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC03MzMsNyArNzMzLDcgQEAg
dm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlzaExvYWRpbmdNYW5pZmVzdCgpCiAK
ICAgICBpZiAoIWlzVXBncmFkZUF0dGVtcHQgJiYgIW1fbWFuaWZlc3RSZXNvdXJjZSkgewogICAg
ICAgICAvLyBUaGUgc2VydmVyIHJldHVybmVkIDMwNCBOb3QgTW9kaWZpZWQgZXZlbiB0aG91Z2gg
d2UgZGlkbid0IHNlbmQgYSBjb25kaXRpb25hbCByZXF1ZXN0LgotICAgICAgICBtX2ZyYW1lLT5k
b2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKE90aGVyTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQXBwbGljYXRpb24g
Q2FjaGUgbWFuaWZlc3QgY291bGQgbm90IGJlIGZldGNoZWQgYmVjYXVzZSBvZiBhbiB1bmV4cGVj
dGVkIDMwNCBOb3QgTW9kaWZpZWQgc2VydmVyIHJlc3BvbnNlLiIpOworICAgICAgICBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0aW9uIENhY2hlIG1hbmlmZXN0
IGNvdWxkIG5vdCBiZSBmZXRjaGVkIGJlY2F1c2Ugb2YgYW4gdW5leHBlY3RlZCAzMDQgTm90IE1v
ZGlmaWVkIHNlcnZlciByZXNwb25zZS4iKTsKICAgICAgICAgY2FjaGVVcGRhdGVGYWlsZWQoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTc1OSw3ICs3NTksNyBAQCB2b2lkIEFwcGxpY2F0
aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZ01hbmlmZXN0KCkKICAgICBNYW5pZmVzdCBt
YW5pZmVzdDsKICAgICBpZiAoIXBhcnNlTWFuaWZlc3QobV9tYW5pZmVzdFVSTCwgbV9tYW5pZmVz
dFJlc291cmNlLT5kYXRhKCktPmRhdGEoKSwgbV9tYW5pZmVzdFJlc291cmNlLT5kYXRhKCktPnNp
emUoKSwgbWFuaWZlc3QpKSB7CiAgICAgICAgIC8vIEF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGlu
ZywgbGFjayBvZiAiQ0FDSEUgTUFOSUZFU1QiIHNpZ25hdHVyZSBpcyB0aGUgb25seSByZWFzb24g
Zm9yIHBhcnNlTWFuaWZlc3QgdG8gZmFpbC4KLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0aW9uIENhY2hlIG1hbmlm
ZXN0IGNvdWxkIG5vdCBiZSBwYXJzZWQuIERvZXMgaXQgc3RhcnQgd2l0aCBDQUNIRSBNQU5JRkVT
VD8iKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoT3Ro
ZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJBcHBs
aWNhdGlvbiBDYWNoZSBtYW5pZmVzdCBjb3VsZCBub3QgYmUgcGFyc2VkLiBEb2VzIGl0IHN0YXJ0
IHdpdGggQ0FDSEUgTUFOSUZFU1Q/Iik7CiAgICAgICAgIGNhY2hlVXBkYXRlRmFpbGVkKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC05NDgsNyArOTQ4LDcgQEAgdm9pZCBBcHBsaWNhdGlv
bkNhY2hlR3JvdXA6OmNoZWNrSWZMb2FkSXNDb21wbGV0ZSgpCiAgICAgICAgICAgICAgICAgLy8g
V2UgcmFuIG91dCBvZiBzcGFjZSBmb3IgdGhpcyBvcmlnaW4uIEZhbGwgZG93biB0byB0aGUgbm9y
bWFsIGVycm9yIGhhbmRsaW5nCiAgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgcmVjb3JkaW5nIHRo
aXMgc3RhdGUuCiAgICAgICAgICAgICAgICAgbV9vcmlnaW5RdW90YUV4Y2VlZGVkUHJldmlvdXNs
eSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93
KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VU
eXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWlsZWQs
IGJlY2F1c2Ugc2l6ZSBxdW90YSB3YXMgZXhjZWVkZWQuIik7CisgICAgICAgICAgICAgICAgbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJBcHBsaWNhdGlvbiBDYWNoZSB1cGRh
dGUgZmFpbGVkLCBiZWNhdXNlIHNpemUgcXVvdGEgd2FzIGV4Y2VlZGVkLiIpOwogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICBpZiAoZmFpbHVyZVJlYXNvbiA9PSBBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6VG90YWxRdW90YVJlYWNoZWQgJiYgIW1fY2FsbGVkUmVhY2hlZE1heEFwcENhY2hl
U2l6ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggODljODNlMGQ5OWE3NzIxOWY3NzY5Nzg0YjlhYWIwY2UxZTI0
ZGY3NC4uNzY5ZmQ4ZDBmNDIwNDEwYmQ2ZmNlZGVlOTYzNTg5YTU1OGJlYmI1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CkBAIC02MjksNyArNjI5LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJpbnRBY2Nl
c3NEZW5pZWRNZXNzYWdlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKICAgICAgICAgbWVzc2FnZSA9
ICJVbnNhZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCAiICsgdXJsLnN0cmluZygpICsgIiBmcm9tIGZy
YW1lIHdpdGggVVJMICIgKyBtX2RvY3VtZW50LT51cmwoKS5zdHJpbmcoKSArICIuIERvbWFpbnMs
IHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC5cbiI7CiAKICAgICAvLyBGSVhNRTogcHJv
dmlkZSBsaW5lIG51bWJlciBhbmQgc291cmNlIFVSTC4KLSAgICBmcmFtZSgpLT5kb2N1bWVudCgp
LT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKKyAgICBmcmFtZSgp
LT5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CiB9CiAKIHZvaWQgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnNldEF1dG9Mb2FkSW1hZ2VzKGJvb2wgZW5hYmxlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggZTExNDk5ZWVlZjFiMmIz
MDU1Yzk5Njg5MjZiMDhlYmE2NjVkY2M4Yi4uMTkzNjQ3NmYzYWUxYTIwMTQwMzNkYzNmZGI3ZTBj
YWI1Y2E4YzdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJh
bWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
Y3BwCkBAIC04NTksNyArODU5LDcgQEAgdm9pZCBXZWJGcmFtZUltcGw6OmFkZE1lc3NhZ2VUb0Nv
bnNvbGUoY29uc3QgV2ViQ29uc29sZU1lc3NhZ2UmIG1lc3NhZ2UpCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBmcmFtZSgpLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgp
LT5hZGRNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIHdlYkNvcmVN
ZXNzYWdlTGV2ZWwsIG1lc3NhZ2UudGV4dCk7CisgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+YWRk
Q29uc29sZU1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgd2ViQ29y
ZU1lc3NhZ2VMZXZlbCwgbWVzc2FnZS50ZXh0KTsKIH0KIAogdm9pZCBXZWJGcmFtZUltcGw6OmNv
bGxlY3RHYXJiYWdlKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>