<?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>62933</bug_id>
          
          <creation_ts>2011-06-18 11:16:41 -0700</creation_ts>
          <short_desc>Various editing functions take boolean userTriggered but should be replaced by an enum</short_desc>
          <delta_ts>2011-06-20 15:38:13 -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>HTML Editing</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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>423134</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-06-18 11:16:41 -0700</bug_when>
    <thetext>Quite few editing functions take boolean userTriggered argument.  We should replace it by an enum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423892</commentid>
    <comment_count>1</comment_count>
      <attachid>97844</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-06-20 13:10:58 -0700</bug_when>
    <thetext>Created attachment 97844
cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423894</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-20 13:13:05 -0700</bug_when>
    <thetext>Does this need to be FrameSelection::UserTrigggered? or can we have it be global?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423897</commentid>
    <comment_count>3</comment_count>
      <attachid>97844</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-20 13:15:49 -0700</bug_when>
    <thetext>Comment on attachment 97844
cleanup

Does the enum really need to be a member of FrameSelection? Can’t it be a namespace-level enum?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423899</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-20 13:16:42 -0700</bug_when>
    <thetext>Heh, Eric and I said the same thing, but I didn’t read his comment until after I posted mine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423902</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-06-20 13:18:50 -0700</bug_when>
    <thetext>Thank for the review.  I&apos;ll move EUserTriggered out of FrameSelection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423979</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-06-20 15:03:33 -0700</bug_when>
    <thetext>Committed r89293: &lt;http://trac.webkit.org/changeset/89293&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423999</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-06-20 15:38:13 -0700</bug_when>
    <thetext>EFL WinCE build fixes: http://trac.webkit.org/changeset/89298
Bit flag collision fix: http://trac.webkit.org/changeset/89299</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97844</attachid>
            <date>2011-06-20 13:10:58 -0700</date>
            <delta_ts>2011-06-20 13:15:49 -0700</delta_ts>
            <desc>cleanup</desc>
            <filename>bug-62933-20110620131057.patch</filename>
            <type>text/plain</type>
            <size>41250</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5Mjc5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODIgQEAKKzIwMTEtMDYtMjAgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVmFyaW91cyBlZGl0aW5nIGZ1bmN0aW9ucyB0YWtlIGJvb2xlYW4g
dXNlclRyaWdnZXJlZCBidXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGFuIGVudW0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMzCisKKyAgICAgICAg
UmVwbGFjZWQgYm9vbGVhbiB1c2VyVHJpZ2dlcmVkIGluIG1hbnkgZnVuY3Rpb25zIGJ5IG5ldyBF
VXNlclRyaWdnZXJlZCBlbnVtLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IEZyYW1lU2Vs
ZWN0aW9uOjptb2RpZnkncyBzaWduYXR1cmUgY2hhbmdlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSk6
IENhbGxzIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8uCisgICAgICAgICogZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3ZlQmFja3dhcmQpOiBDYWxs
cyBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5LgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1vdmVC
YWNrd2FyZEFuZE1vZGlmeVNlbGVjdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZXhl
Y3V0ZU1vdmVEb3duKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZURvd25B
bmRNb2RpZnlTZWxlY3Rpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3Zl
Rm9yd2FyZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1vdmVGb3J3YXJkQW5k
TW9kaWZ5U2VsZWN0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZUxl
ZnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3ZlTGVmdEFuZE1vZGlmeVNl
bGVjdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1vdmVQYWdlRG93bik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1vdmVQYWdlRG93bkFuZE1vZGlmeVNl
bGVjdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1vdmVQYWdlVXApOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3ZlUGFnZVVwQW5kTW9kaWZ5U2VsZWN0
aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZVJpZ2h0KTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZVJpZ2h0QW5kTW9kaWZ5U2VsZWN0aW9uKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVu
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1vdmVUb0JlZ2lubmluZ09mRG9j
dW1lbnRBbmRNb2RpZnlTZWxlY3Rpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1
dGVNb3ZlVG9CZWdpbm5pbmdPZkxpbmUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1
dGVNb3ZlVG9CZWdpbm5pbmdPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24pOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3ZlVG9CZWdpbm5pbmdPZlBhcmFncmFwaCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1vdmVUb0JlZ2lubmluZ09mUGFyYWdyYXBoQW5kTW9k
aWZ5U2VsZWN0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZVRvQmVn
aW5uaW5nT2ZTZW50ZW5jZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1vdmVU
b0JlZ2lubmluZ09mU2VudGVuY2VBbmRNb2RpZnlTZWxlY3Rpb24pOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OmV4ZWN1dGVNb3ZlVG9FbmRPZkRvY3VtZW50KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpleGVjdXRlTW92ZVRvRW5kT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbik6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1vdmVUb0VuZE9mU2VudGVuY2UpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3ZlVG9FbmRPZlNlbnRlbmNlQW5kTW9kaWZ5
U2VsZWN0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZVRvRW5kT2ZM
aW5lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZVRvRW5kT2ZMaW5lQW5k
TW9kaWZ5U2VsZWN0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZVRv
RW5kT2ZQYXJhZ3JhcGgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3ZlVG9F
bmRPZlBhcmFncmFwaEFuZE1vZGlmeVNlbGVjdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6ZXhlY3V0ZU1vdmVQYXJhZ3JhcGhCYWNrd2FyZEFuZE1vZGlmeVNlbGVjdGlvbik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1vdmVQYXJhZ3JhcGhGb3J3YXJkQW5kTW9kaWZ5
U2VsZWN0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZVVwKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZVVwQW5kTW9kaWZ5U2VsZWN0aW9uKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZVdvcmRCYWNrd2FyZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1vdmVXb3JkQmFja3dhcmRBbmRNb2RpZnlTZWxl
Y3Rpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3ZlV29yZEZvcndhcmQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3ZlV29yZEZvcndhcmRBbmRNb2Rp
ZnlTZWxlY3Rpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3ZlV29yZExl
ZnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3ZlV29yZExlZnRBbmRNb2Rp
ZnlTZWxlY3Rpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3ZlV29yZFJp
Z2h0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTW92ZVdvcmRSaWdodEFuZE1v
ZGlmeVNlbGVjdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1vdmVUb0xl
ZnRFbmRPZkxpbmUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNb3ZlVG9MZWZ0
RW5kT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpl
eGVjdXRlTW92ZVRvUmlnaHRFbmRPZkxpbmUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV4
ZWN1dGVNb3ZlVG9SaWdodEVuZE9mTGluZUFuZE1vZGlmeVNlbGVjdGlvbik6IERpdHRvLgorICAg
ICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246Om1vdmVUbyk6IFRha2VzIEVVc2VyVHJpZ2dlcmVkIGluc3RlYWQgb2YgYSBi
b29sZWFuLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFN0YXJ0KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0RW5kKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0QmFzZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnNldEV4dGVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVTZWxlY3Rpb246Om5vdGlmeVJlbmRlcmVyT2ZTZWxlY3Rpb25DaGFuZ2UpOiBEaXR0by4K
KyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6IEV4dHJhY3RlZCBFVXNlclRyaWdn
ZXJlZCBvdXQgb2YgU2V0U2VsZWN0aW9uT3B0aW9uOyBTZXRTZWxlY3Rpb25PcHRpb25zCisgICAg
ICAgIG5vdyB0YWtlcyB0aGUgdW5pb24gb2YgdmFsdWVzIG9mIFNldFNlbGVjdGlvbk9wdGlvbiBh
bmQgRVVzZXJUcmlnZ2VyZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uT3B0aW9uc1RvVXNlclRyaWdnZXJlZCk6IENvbnZlcnRzIFNldFNlbGVjdGlvbk9wdGlv
bnMgdG8KKyAgICAgICAgRVVzZXJUcmlnZ2VyZWQuIAorICAgICAgICAqIHBhZ2UvRE9NU2VsZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6bW9kaWZ5KTogQ2FsbHMg
RnJhbWVTZWxlY3Rpb246Om1vZGlmeS4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVt
ZW50KTogRGl0dG8uCisKIDIwMTEtMDYtMjAgIEFsZXggTWlsb3dza2kgIDxhbGV4QG1pbG93c2tp
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCShyZXZpc2lvbiA4OTI2NCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0zNTQsNyArMzU0LDcgQEAgX19aTjdXZWJDb3JlMTRGcmFt
ZVNlbGVjdGlvbjE1cmV2ZWFsU2VsZQogX19aTjdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjE2c2V0
U2VsZWN0ZWRSYW5nZUVQTlNfNVJhbmdlRU5TXzlFQWZmaW5pdHlFYgogX19aTjdXZWJDb3JlMTRG
cmFtZVNlbGVjdGlvbjIwc2V0U2VsZWN0aW9uRnJvbU5vbmVFdgogX19aTjdXZWJDb3JlMTRGcmFt
ZVNlbGVjdGlvbjVjbGVhckV2Ci1fX1pON1dlYkNvcmUxNEZyYW1lU2VsZWN0aW9uNm1vZGlmeUVO
UzBfMTFFQWx0ZXJhdGlvbkVOU18xOFNlbGVjdGlvbkRpcmVjdGlvbkVOU18xNVRleHRHcmFudWxh
cml0eUViCitfX1pON1dlYkNvcmUxNEZyYW1lU2VsZWN0aW9uNm1vZGlmeUVOUzBfMTFFQWx0ZXJh
dGlvbkVOU18xOFNlbGVjdGlvbkRpcmVjdGlvbkVOU18xNVRleHRHcmFudWxhcml0eUVOUzBfMTRF
VXNlclRyaWdnZXJlZEUKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb245c2VsZWN0QWxsRXYK
IF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb25DMUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3Jl
MTRSZXNvdXJjZUhhbmRsZTEycmVsZWFzZVByb3h5RXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAkocmV2aXNpb24gODkyNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTc1LDcgKzI1NzUs
NyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjCiAgICAgCiAgICAg
Ly8gbWFrZSBzZWxlY3Rpb24gYW5kIHRlbGwgdGhlIGRvY3VtZW50IHRvIHVzZSBpdC4gaWYgaXQn
cyB6ZXJvIGxlbmd0aCwgdGhlbiBtb3ZlIHRvIHRoYXQgcG9zaXRpb24KICAgICBpZiAocmFuZ2Uu
c3RhcnQgPT0gcmFuZ2UuZW5kKQotICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLT5zZWxlY3Rp
b24oKS0+bW92ZVRvKHJhbmdlLnN0YXJ0LCB0cnVlKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJh
bWUoKS0+c2VsZWN0aW9uKCktPm1vdmVUbyhyYW5nZS5zdGFydCwgRnJhbWVTZWxlY3Rpb246OlVz
ZXJUcmlnZ2VyZWQpOwogICAgIGVsc2UgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7CiAgICAg
ICAgIG1fcmVuZGVyZXItPmZyYW1lKCktPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAko
cmV2aXNpb24gODkyNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDYsNDcgKzYwNiw0NyBAQCBzdGF0aWMgYm9vbCBleGVj
dXRlTWFrZVRleHRXcml0aW5nRGlyZWN0CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlQmFja3dh
cmQoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmlu
ZyYpCiB7Ci0gICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFs
dGVyYXRpb25Nb3ZlLCBEaXJlY3Rpb25CYWNrd2FyZCwgQ2hhcmFjdGVyR3JhbnVsYXJpdHksIHRy
dWUpOworICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRl
cmF0aW9uTW92ZSwgRGlyZWN0aW9uQmFja3dhcmQsIENoYXJhY3RlckdyYW51bGFyaXR5LCBGcmFt
ZVNlbGVjdGlvbjo6VXNlclRyaWdnZXJlZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRp
YyBib29sIGV4ZWN1dGVNb3ZlQmFja3dhcmRBbmRNb2RpZnlTZWxlY3Rpb24oRnJhbWUqIGZyYW1l
LCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgZnJh
bWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25FeHRlbmQs
IERpcmVjdGlvbkJhY2t3YXJkLCBDaGFyYWN0ZXJHcmFudWxhcml0eSwgdHJ1ZSk7CisgICAgZnJh
bWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25FeHRlbmQs
IERpcmVjdGlvbkJhY2t3YXJkLCBDaGFyYWN0ZXJHcmFudWxhcml0eSwgRnJhbWVTZWxlY3Rpb246
OlVzZXJUcmlnZ2VyZWQpOwogICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBleGVj
dXRlTW92ZURvd24oRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNv
bnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0dXJuIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZy
YW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSwgRGlyZWN0aW9uRm9yd2FyZCwgTGluZUdyYW51
bGFyaXR5LCB0cnVlKTsKKyAgICByZXR1cm4gZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJh
bWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlLCBEaXJlY3Rpb25Gb3J3YXJkLCBMaW5lR3JhbnVs
YXJpdHksIEZyYW1lU2VsZWN0aW9uOjpVc2VyVHJpZ2dlcmVkKTsKIH0KIAogc3RhdGljIGJvb2wg
ZXhlY3V0ZU1vdmVEb3duQW5kTW9kaWZ5U2VsZWN0aW9uKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBF
ZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5zZWxlY3Rp
b24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBEaXJlY3Rpb25G
b3J3YXJkLCBMaW5lR3JhbnVsYXJpdHksIHRydWUpOworICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+
bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBEaXJlY3Rpb25Gb3J3YXJk
LCBMaW5lR3JhbnVsYXJpdHksIEZyYW1lU2VsZWN0aW9uOjpVc2VyVHJpZ2dlcmVkKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZU1vdmVGb3J3YXJkKEZyYW1lKiBm
cmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAg
IGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92
ZSwgRGlyZWN0aW9uRm9yd2FyZCwgQ2hhcmFjdGVyR3JhbnVsYXJpdHksIHRydWUpOworICAgIGZy
YW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSwg
RGlyZWN0aW9uRm9yd2FyZCwgQ2hhcmFjdGVyR3JhbnVsYXJpdHksIEZyYW1lU2VsZWN0aW9uOjpV
c2VyVHJpZ2dlcmVkKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0
ZU1vdmVGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0
b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5zZWxlY3Rpb24o
KS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBEaXJlY3Rpb25Gb3J3
YXJkLCBDaGFyYWN0ZXJHcmFudWxhcml0eSwgdHJ1ZSk7CisgICAgZnJhbWUtPnNlbGVjdGlvbigp
LT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25FeHRlbmQsIERpcmVjdGlvbkZvcndh
cmQsIENoYXJhY3RlckdyYW51bGFyaXR5LCBGcmFtZVNlbGVjdGlvbjo6VXNlclRyaWdnZXJlZCk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlTGVmdChGcmFt
ZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsK
LSAgICByZXR1cm4gZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFs
dGVyYXRpb25Nb3ZlLCBEaXJlY3Rpb25MZWZ0LCBDaGFyYWN0ZXJHcmFudWxhcml0eSwgdHJ1ZSk7
CisgICAgcmV0dXJuIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpB
bHRlcmF0aW9uTW92ZSwgRGlyZWN0aW9uTGVmdCwgQ2hhcmFjdGVyR3JhbnVsYXJpdHksIEZyYW1l
U2VsZWN0aW9uOjpVc2VyVHJpZ2dlcmVkKTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZU1vdmVM
ZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5k
U291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5
KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBEaXJlY3Rpb25MZWZ0LCBDaGFyYWN0
ZXJHcmFudWxhcml0eSwgdHJ1ZSk7CisgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJh
bWVTZWxlY3Rpb246OkFsdGVyYXRpb25FeHRlbmQsIERpcmVjdGlvbkxlZnQsIENoYXJhY3Rlckdy
YW51bGFyaXR5LCBGcmFtZVNlbGVjdGlvbjo6VXNlclRyaWdnZXJlZCk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTY1NSw3ICs2NTUsOCBAQCBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVBhZ2VE
b3duKEZyYW1lKiBmCiAgICAgdW5zaWduZWQgZGlzdGFuY2UgPSB2ZXJ0aWNhbFNjcm9sbERpc3Rh
bmNlKGZyYW1lKTsKICAgICBpZiAoIWRpc3RhbmNlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgcmV0dXJuIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRl
cmF0aW9uTW92ZSwgZGlzdGFuY2UsIEZyYW1lU2VsZWN0aW9uOjpEaXJlY3Rpb25Eb3duLCB0cnVl
LCBGcmFtZVNlbGVjdGlvbjo6QWxpZ25DdXJzb3JPblNjcm9sbEFsd2F5cyk7CisgICAgcmV0dXJu
IGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92
ZSwgZGlzdGFuY2UsIEZyYW1lU2VsZWN0aW9uOjpEaXJlY3Rpb25Eb3duLAorICAgICAgICBGcmFt
ZVNlbGVjdGlvbjo6VXNlclRyaWdnZXJlZCwgRnJhbWVTZWxlY3Rpb246OkFsaWduQ3Vyc29yT25T
Y3JvbGxBbHdheXMpOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVBhZ2VEb3duQW5kTW9k
aWZ5U2VsZWN0aW9uKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBj
b25zdCBTdHJpbmcmKQpAQCAtNjYzLDcgKzY2NCw4IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVNb3Zl
UGFnZURvd25BbmRNb2RpZnkKICAgICB1bnNpZ25lZCBkaXN0YW5jZSA9IHZlcnRpY2FsU2Nyb2xs
RGlzdGFuY2UoZnJhbWUpOwogICAgIGlmICghZGlzdGFuY2UpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICByZXR1cm4gZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246
OkFsdGVyYXRpb25FeHRlbmQsIGRpc3RhbmNlLCBGcmFtZVNlbGVjdGlvbjo6RGlyZWN0aW9uRG93
biwgdHJ1ZSwgRnJhbWVTZWxlY3Rpb246OkFsaWduQ3Vyc29yT25TY3JvbGxBbHdheXMpOworICAg
IHJldHVybiBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJh
dGlvbkV4dGVuZCwgZGlzdGFuY2UsIEZyYW1lU2VsZWN0aW9uOjpEaXJlY3Rpb25Eb3duLAorICAg
ICAgICBGcmFtZVNlbGVjdGlvbjo6VXNlclRyaWdnZXJlZCwgRnJhbWVTZWxlY3Rpb246OkFsaWdu
Q3Vyc29yT25TY3JvbGxBbHdheXMpOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVBhZ2VV
cChGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5n
JikKQEAgLTY3MSw3ICs2NzMsOCBAQCBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVBhZ2VVcChGcmFt
ZSogZnJhCiAgICAgdW5zaWduZWQgZGlzdGFuY2UgPSB2ZXJ0aWNhbFNjcm9sbERpc3RhbmNlKGZy
YW1lKTsKICAgICBpZiAoIWRpc3RhbmNlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0
dXJuIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9u
TW92ZSwgZGlzdGFuY2UsIEZyYW1lU2VsZWN0aW9uOjpEaXJlY3Rpb25VcCwgdHJ1ZSwgRnJhbWVT
ZWxlY3Rpb246OkFsaWduQ3Vyc29yT25TY3JvbGxBbHdheXMpOworICAgIHJldHVybiBmcmFtZS0+
c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUsIGRpc3Rh
bmNlLCBGcmFtZVNlbGVjdGlvbjo6RGlyZWN0aW9uVXAsCisgICAgICAgIEZyYW1lU2VsZWN0aW9u
OjpVc2VyVHJpZ2dlcmVkLCBGcmFtZVNlbGVjdGlvbjo6QWxpZ25DdXJzb3JPblNjcm9sbEFsd2F5
cyk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlUGFnZVVwQW5kTW9kaWZ5U2VsZWN0aW9u
KEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcm
KQpAQCAtNjc5LDIwOCArNjgyLDIwOSBAQCBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVBhZ2VVcEFu
ZE1vZGlmeVNlCiAgICAgdW5zaWduZWQgZGlzdGFuY2UgPSB2ZXJ0aWNhbFNjcm9sbERpc3RhbmNl
KGZyYW1lKTsKICAgICBpZiAoIWRpc3RhbmNlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
cmV0dXJuIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0
aW9uRXh0ZW5kLCBkaXN0YW5jZSwgRnJhbWVTZWxlY3Rpb246OkRpcmVjdGlvblVwLCB0cnVlLCBG
cmFtZVNlbGVjdGlvbjo6QWxpZ25DdXJzb3JPblNjcm9sbEFsd2F5cyk7CisgICAgcmV0dXJuIGZy
YW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5k
LCBkaXN0YW5jZSwgRnJhbWVTZWxlY3Rpb246OkRpcmVjdGlvblVwLAorICAgICAgICBGcmFtZVNl
bGVjdGlvbjo6VXNlclRyaWdnZXJlZCwgRnJhbWVTZWxlY3Rpb246OkFsaWduQ3Vyc29yT25TY3Jv
bGxBbHdheXMpOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVJpZ2h0KEZyYW1lKiBmcmFt
ZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIHJl
dHVybiBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlv
bk1vdmUsIERpcmVjdGlvblJpZ2h0LCBDaGFyYWN0ZXJHcmFudWxhcml0eSwgdHJ1ZSk7CisgICAg
cmV0dXJuIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0
aW9uTW92ZSwgRGlyZWN0aW9uUmlnaHQsIENoYXJhY3RlckdyYW51bGFyaXR5LCBGcmFtZVNlbGVj
dGlvbjo6VXNlclRyaWdnZXJlZCk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlUmlnaHRB
bmRNb2RpZnlTZWxlY3Rpb24oRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3Vy
Y2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJh
bWVTZWxlY3Rpb246OkFsdGVyYXRpb25FeHRlbmQsIERpcmVjdGlvblJpZ2h0LCBDaGFyYWN0ZXJH
cmFudWxhcml0eSwgdHJ1ZSk7CisgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVT
ZWxlY3Rpb246OkFsdGVyYXRpb25FeHRlbmQsIERpcmVjdGlvblJpZ2h0LCBDaGFyYWN0ZXJHcmFu
dWxhcml0eSwgRnJhbWVTZWxlY3Rpb246OlVzZXJUcmlnZ2VyZWQpOwogICAgIHJldHVybiB0cnVl
OwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudChGcmFt
ZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsK
LSAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlv
bk1vdmUsIERpcmVjdGlvbkJhY2t3YXJkLCBEb2N1bWVudEJvdW5kYXJ5LCB0cnVlKTsKKyAgICBm
cmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUs
IERpcmVjdGlvbkJhY2t3YXJkLCBEb2N1bWVudEJvdW5kYXJ5LCBGcmFtZVNlbGVjdGlvbjo6VXNl
clRyaWdnZXJlZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVN
b3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uKEZyYW1lKiBmcmFtZSwg
RXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1l
LT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBE
aXJlY3Rpb25CYWNrd2FyZCwgRG9jdW1lbnRCb3VuZGFyeSwgdHJ1ZSk7CisgICAgZnJhbWUtPnNl
bGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25FeHRlbmQsIERpcmVj
dGlvbkJhY2t3YXJkLCBEb2N1bWVudEJvdW5kYXJ5LCBGcmFtZVNlbGVjdGlvbjo6VXNlclRyaWdn
ZXJlZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlVG9C
ZWdpbm5pbmdPZkxpbmUoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Us
IGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVT
ZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlLCBEaXJlY3Rpb25CYWNrd2FyZCwgTGluZUJvdW5kYXJ5
LCB0cnVlKTsKKyAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6
QWx0ZXJhdGlvbk1vdmUsIERpcmVjdGlvbkJhY2t3YXJkLCBMaW5lQm91bmRhcnksIEZyYW1lU2Vs
ZWN0aW9uOjpVc2VyVHJpZ2dlcmVkKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJv
b2wgZXhlY3V0ZU1vdmVUb0JlZ2lubmluZ09mTGluZUFuZE1vZGlmeVNlbGVjdGlvbihGcmFtZSog
ZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAg
ICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbkV4
dGVuZCwgRGlyZWN0aW9uQmFja3dhcmQsIExpbmVCb3VuZGFyeSwgdHJ1ZSk7CisgICAgZnJhbWUt
PnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25FeHRlbmQsIERp
cmVjdGlvbkJhY2t3YXJkLCBMaW5lQm91bmRhcnksIEZyYW1lU2VsZWN0aW9uOjpVc2VyVHJpZ2dl
cmVkKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZU1vdmVUb0Jl
Z2lubmluZ09mUGFyYWdyYXBoKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291
cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZy
YW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSwgRGlyZWN0aW9uQmFja3dhcmQsIFBhcmFncmFw
aEJvdW5kYXJ5LCB0cnVlKTsKKyAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNl
bGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUsIERpcmVjdGlvbkJhY2t3YXJkLCBQYXJhZ3JhcGhCb3Vu
ZGFyeSwgRnJhbWVTZWxlY3Rpb246OlVzZXJUcmlnZ2VyZWQpOwogICAgIHJldHVybiB0cnVlOwog
fQogCiBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVRvQmVnaW5uaW5nT2ZQYXJhZ3JhcGhBbmRNb2Rp
ZnlTZWxlY3Rpb24oRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNv
bnN0IFN0cmluZyYpCiB7Ci0gICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxl
Y3Rpb246OkFsdGVyYXRpb25FeHRlbmQsIERpcmVjdGlvbkJhY2t3YXJkLCBQYXJhZ3JhcGhCb3Vu
ZGFyeSwgdHJ1ZSk7CisgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rp
b246OkFsdGVyYXRpb25FeHRlbmQsIERpcmVjdGlvbkJhY2t3YXJkLCBQYXJhZ3JhcGhCb3VuZGFy
eSwgRnJhbWVTZWxlY3Rpb246OlVzZXJUcmlnZ2VyZWQpOwogICAgIHJldHVybiB0cnVlOwogfQog
CiBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVRvQmVnaW5uaW5nT2ZTZW50ZW5jZShGcmFtZSogZnJh
bWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBm
cmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUs
IERpcmVjdGlvbkJhY2t3YXJkLCBTZW50ZW5jZUJvdW5kYXJ5LCB0cnVlKTsKKyAgICBmcmFtZS0+
c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUsIERpcmVj
dGlvbkJhY2t3YXJkLCBTZW50ZW5jZUJvdW5kYXJ5LCBGcmFtZVNlbGVjdGlvbjo6VXNlclRyaWdn
ZXJlZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlVG9C
ZWdpbm5pbmdPZlNlbnRlbmNlQW5kTW9kaWZ5U2VsZWN0aW9uKEZyYW1lKiBmcmFtZSwgRXZlbnQq
LCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5zZWxl
Y3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBEaXJlY3Rp
b25CYWNrd2FyZCwgU2VudGVuY2VCb3VuZGFyeSwgdHJ1ZSk7CisgICAgZnJhbWUtPnNlbGVjdGlv
bigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25FeHRlbmQsIERpcmVjdGlvbkJh
Y2t3YXJkLCBTZW50ZW5jZUJvdW5kYXJ5LCBGcmFtZVNlbGVjdGlvbjo6VXNlclRyaWdnZXJlZCk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlVG9FbmRPZkRv
Y3VtZW50KEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBT
dHJpbmcmKQogewotICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9u
OjpBbHRlcmF0aW9uTW92ZSwgRGlyZWN0aW9uRm9yd2FyZCwgRG9jdW1lbnRCb3VuZGFyeSwgdHJ1
ZSk7CisgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVy
YXRpb25Nb3ZlLCBEaXJlY3Rpb25Gb3J3YXJkLCBEb2N1bWVudEJvdW5kYXJ5LCBGcmFtZVNlbGVj
dGlvbjo6VXNlclRyaWdnZXJlZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29s
IGV4ZWN1dGVNb3ZlVG9FbmRPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uKEZyYW1lKiBmcmFt
ZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZy
YW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5k
LCBEaXJlY3Rpb25Gb3J3YXJkLCBEb2N1bWVudEJvdW5kYXJ5LCB0cnVlKTsKKyAgICBmcmFtZS0+
c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbkV4dGVuZCwgRGly
ZWN0aW9uRm9yd2FyZCwgRG9jdW1lbnRCb3VuZGFyeSwgRnJhbWVTZWxlY3Rpb246OlVzZXJUcmln
Z2VyZWQpOwogICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVRv
RW5kT2ZTZW50ZW5jZShGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwg
Y29uc3QgU3RyaW5nJikKIHsKLSAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNl
bGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUsIERpcmVjdGlvbkZvcndhcmQsIFNlbnRlbmNlQm91bmRh
cnksIHRydWUpOworICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9u
OjpBbHRlcmF0aW9uTW92ZSwgRGlyZWN0aW9uRm9yd2FyZCwgU2VudGVuY2VCb3VuZGFyeSwgRnJh
bWVTZWxlY3Rpb246OlVzZXJUcmlnZ2VyZWQpOwogICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0
aWMgYm9vbCBleGVjdXRlTW92ZVRvRW5kT2ZTZW50ZW5jZUFuZE1vZGlmeVNlbGVjdGlvbihGcmFt
ZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsK
LSAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlv
bkV4dGVuZCwgRGlyZWN0aW9uRm9yd2FyZCwgU2VudGVuY2VCb3VuZGFyeSwgdHJ1ZSk7CisgICAg
ZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25FeHRl
bmQsIERpcmVjdGlvbkZvcndhcmQsIFNlbnRlbmNlQm91bmRhcnksIEZyYW1lU2VsZWN0aW9uOjpV
c2VyVHJpZ2dlcmVkKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0
ZU1vdmVUb0VuZE9mTGluZShGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJj
ZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFt
ZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUsIERpcmVjdGlvbkZvcndhcmQsIExpbmVCb3VuZGFy
eSwgdHJ1ZSk7CisgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246
OkFsdGVyYXRpb25Nb3ZlLCBEaXJlY3Rpb25Gb3J3YXJkLCBMaW5lQm91bmRhcnksIEZyYW1lU2Vs
ZWN0aW9uOjpVc2VyVHJpZ2dlcmVkKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJv
b2wgZXhlY3V0ZU1vdmVUb0VuZE9mTGluZUFuZE1vZGlmeVNlbGVjdGlvbihGcmFtZSogZnJhbWUs
IEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBmcmFt
ZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbkV4dGVuZCwg
RGlyZWN0aW9uRm9yd2FyZCwgTGluZUJvdW5kYXJ5LCB0cnVlKTsKKyAgICBmcmFtZS0+c2VsZWN0
aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbkV4dGVuZCwgRGlyZWN0aW9u
Rm9yd2FyZCwgTGluZUJvdW5kYXJ5LCBGcmFtZVNlbGVjdGlvbjo6VXNlclRyaWdnZXJlZCk7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlVG9FbmRPZlBhcmFn
cmFwaChGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3Ry
aW5nJikKIHsKLSAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6
QWx0ZXJhdGlvbk1vdmUsIERpcmVjdGlvbkZvcndhcmQsIFBhcmFncmFwaEJvdW5kYXJ5LCB0cnVl
KTsKKyAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJh
dGlvbk1vdmUsIERpcmVjdGlvbkZvcndhcmQsIFBhcmFncmFwaEJvdW5kYXJ5LCBGcmFtZVNlbGVj
dGlvbjo6VXNlclRyaWdnZXJlZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29s
IGV4ZWN1dGVNb3ZlVG9FbmRPZlBhcmFncmFwaEFuZE1vZGlmeVNlbGVjdGlvbihGcmFtZSogZnJh
bWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBm
cmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbkV4dGVu
ZCwgRGlyZWN0aW9uRm9yd2FyZCwgUGFyYWdyYXBoQm91bmRhcnksIHRydWUpOworICAgIGZyYW1l
LT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBE
aXJlY3Rpb25Gb3J3YXJkLCBQYXJhZ3JhcGhCb3VuZGFyeSwgRnJhbWVTZWxlY3Rpb246OlVzZXJU
cmlnZ2VyZWQpOwogICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlTW92
ZVBhcmFncmFwaEJhY2t3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uKEZyYW1lKiBmcmFtZSwgRXZlbnQq
LCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5zZWxl
Y3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBEaXJlY3Rp
b25CYWNrd2FyZCwgUGFyYWdyYXBoR3JhbnVsYXJpdHksIHRydWUpOworICAgIGZyYW1lLT5zZWxl
Y3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBEaXJlY3Rp
b25CYWNrd2FyZCwgUGFyYWdyYXBoR3JhbnVsYXJpdHksIEZyYW1lU2VsZWN0aW9uOjpVc2VyVHJp
Z2dlcmVkKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZU1vdmVQ
YXJhZ3JhcGhGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBF
ZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5zZWxlY3Rp
b24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBEaXJlY3Rpb25G
b3J3YXJkLCBQYXJhZ3JhcGhHcmFudWxhcml0eSwgdHJ1ZSk7CisgICAgZnJhbWUtPnNlbGVjdGlv
bigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25FeHRlbmQsIERpcmVjdGlvbkZv
cndhcmQsIFBhcmFncmFwaEdyYW51bGFyaXR5LCBGcmFtZVNlbGVjdGlvbjo6VXNlclRyaWdnZXJl
ZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlVXAoRnJh
bWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7
Ci0gICAgcmV0dXJuIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpB
bHRlcmF0aW9uTW92ZSwgRGlyZWN0aW9uQmFja3dhcmQsIExpbmVHcmFudWxhcml0eSwgdHJ1ZSk7
CisgICAgcmV0dXJuIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpB
bHRlcmF0aW9uTW92ZSwgRGlyZWN0aW9uQmFja3dhcmQsIExpbmVHcmFudWxhcml0eSwgRnJhbWVT
ZWxlY3Rpb246OlVzZXJUcmlnZ2VyZWQpOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVVw
QW5kTW9kaWZ5U2VsZWN0aW9uKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291
cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZy
YW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBEaXJlY3Rpb25CYWNrd2FyZCwgTGluZUdy
YW51bGFyaXR5LCB0cnVlKTsKKyAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNl
bGVjdGlvbjo6QWx0ZXJhdGlvbkV4dGVuZCwgRGlyZWN0aW9uQmFja3dhcmQsIExpbmVHcmFudWxh
cml0eSwgRnJhbWVTZWxlY3Rpb246OlVzZXJUcmlnZ2VyZWQpOwogICAgIHJldHVybiB0cnVlOwog
fQogCiBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVdvcmRCYWNrd2FyZChGcmFtZSogZnJhbWUsIEV2
ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBmcmFtZS0+
c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUsIERpcmVj
dGlvbkJhY2t3YXJkLCBXb3JkR3JhbnVsYXJpdHksIHRydWUpOworICAgIGZyYW1lLT5zZWxlY3Rp
b24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSwgRGlyZWN0aW9uQmFj
a3dhcmQsIFdvcmRHcmFudWxhcml0eSwgRnJhbWVTZWxlY3Rpb246OlVzZXJUcmlnZ2VyZWQpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlTW92ZVdvcmRCYWNrd2Fy
ZEFuZE1vZGlmeVNlbGVjdGlvbihGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNv
dXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShG
cmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbkV4dGVuZCwgRGlyZWN0aW9uQmFja3dhcmQsIFdvcmRH
cmFudWxhcml0eSwgdHJ1ZSk7CisgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVT
ZWxlY3Rpb246OkFsdGVyYXRpb25FeHRlbmQsIERpcmVjdGlvbkJhY2t3YXJkLCBXb3JkR3JhbnVs
YXJpdHksIEZyYW1lU2VsZWN0aW9uOjpVc2VyVHJpZ2dlcmVkKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZU1vdmVXb3JkRm9yd2FyZChGcmFtZSogZnJhbWUsIEV2
ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBmcmFtZS0+
c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUsIERpcmVj
dGlvbkZvcndhcmQsIFdvcmRHcmFudWxhcml0eSwgdHJ1ZSk7CisgICAgZnJhbWUtPnNlbGVjdGlv
bigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlLCBEaXJlY3Rpb25Gb3J3
YXJkLCBXb3JkR3JhbnVsYXJpdHksIEZyYW1lU2VsZWN0aW9uOjpVc2VyVHJpZ2dlcmVkKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZU1vdmVXb3JkRm9yd2FyZEFu
ZE1vZGlmeVNlbGVjdGlvbihGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJj
ZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFt
ZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbkV4dGVuZCwgRGlyZWN0aW9uRm9yd2FyZCwgV29yZEdyYW51
bGFyaXR5LCB0cnVlKTsKKyAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVj
dGlvbjo6QWx0ZXJhdGlvbkV4dGVuZCwgRGlyZWN0aW9uRm9yd2FyZCwgV29yZEdyYW51bGFyaXR5
LCBGcmFtZVNlbGVjdGlvbjo6VXNlclRyaWdnZXJlZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
IHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlV29yZExlZnQoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVk
aXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgZnJhbWUtPnNlbGVjdGlv
bigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlLCBEaXJlY3Rpb25MZWZ0
LCBXb3JkR3JhbnVsYXJpdHksIHRydWUpOworICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5
KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSwgRGlyZWN0aW9uTGVmdCwgV29yZEdyYW51
bGFyaXR5LCBGcmFtZVNlbGVjdGlvbjo6VXNlclRyaWdnZXJlZCk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlV29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24o
RnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYp
CiB7Ci0gICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVy
YXRpb25FeHRlbmQsIERpcmVjdGlvbkxlZnQsIFdvcmRHcmFudWxhcml0eSwgdHJ1ZSk7CisgICAg
ZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25FeHRl
bmQsIERpcmVjdGlvbkxlZnQsIFdvcmRHcmFudWxhcml0eSwgRnJhbWVTZWxlY3Rpb246OlVzZXJU
cmlnZ2VyZWQpOwogICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlTW92
ZVdvcmRSaWdodChGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29u
c3QgU3RyaW5nJikKIHsKLSAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVj
dGlvbjo6QWx0ZXJhdGlvbk1vdmUsIERpcmVjdGlvblJpZ2h0LCBXb3JkR3JhbnVsYXJpdHksIHRy
dWUpOworICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRl
cmF0aW9uTW92ZSwgRGlyZWN0aW9uUmlnaHQsIFdvcmRHcmFudWxhcml0eSwgRnJhbWVTZWxlY3Rp
b246OlVzZXJUcmlnZ2VyZWQpOwogICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBl
eGVjdXRlTW92ZVdvcmRSaWdodEFuZE1vZGlmeVNlbGVjdGlvbihGcmFtZSogZnJhbWUsIEV2ZW50
KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBmcmFtZS0+c2Vs
ZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbkV4dGVuZCwgRGlyZWN0
aW9uUmlnaHQsIFdvcmRHcmFudWxhcml0eSwgdHJ1ZSk7CisgICAgZnJhbWUtPnNlbGVjdGlvbigp
LT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25FeHRlbmQsIERpcmVjdGlvblJpZ2h0
LCBXb3JkR3JhbnVsYXJpdHksIEZyYW1lU2VsZWN0aW9uOjpVc2VyVHJpZ2dlcmVkKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZU1vdmVUb0xlZnRFbmRPZkxpbmUo
RnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYp
CiB7Ci0gICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVy
YXRpb25Nb3ZlLCBEaXJlY3Rpb25MZWZ0LCBMaW5lQm91bmRhcnksIHRydWUpOworICAgIGZyYW1l
LT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSwgRGly
ZWN0aW9uTGVmdCwgTGluZUJvdW5kYXJ5LCBGcmFtZVNlbGVjdGlvbjo6VXNlclRyaWdnZXJlZCk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlVG9MZWZ0RW5k
T2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21t
YW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9k
aWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBEaXJlY3Rpb25MZWZ0LCBMaW5l
Qm91bmRhcnksIHRydWUpOworICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2Vs
ZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kLCBEaXJlY3Rpb25MZWZ0LCBMaW5lQm91bmRhcnksIEZy
YW1lU2VsZWN0aW9uOjpVc2VyVHJpZ2dlcmVkKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3Rh
dGljIGJvb2wgZXhlY3V0ZU1vdmVUb1JpZ2h0RW5kT2ZMaW5lKEZyYW1lKiBmcmFtZSwgRXZlbnQq
LCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5zZWxl
Y3Rpb24oKS0+bW9kaWZ5KEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSwgRGlyZWN0aW9u
UmlnaHQsIExpbmVCb3VuZGFyeSwgdHJ1ZSk7CisgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2Rp
ZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlLCBEaXJlY3Rpb25SaWdodCwgTGluZUJv
dW5kYXJ5LCBGcmFtZVNlbGVjdGlvbjo6VXNlclRyaWdnZXJlZCk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVNb3ZlVG9SaWdodEVuZE9mTGluZUFuZE1vZGlmeVNl
bGVjdGlvbihGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3Qg
U3RyaW5nJikKIHsKLSAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShGcmFtZVNlbGVjdGlv
bjo6QWx0ZXJhdGlvbkV4dGVuZCwgRGlyZWN0aW9uUmlnaHQsIExpbmVCb3VuZGFyeSwgdHJ1ZSk7
CisgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRp
b25FeHRlbmQsIERpcmVjdGlvblJpZ2h0LCBMaW5lQm91bmRhcnksIEZyYW1lU2VsZWN0aW9uOjpV
c2VyVHJpZ2dlcmVkKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHJldmlzaW9uIDg5MjY0KQorKysgU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
Myw0NCArMTAzLDM0IEBAIEZyYW1lU2VsZWN0aW9uOjpGcmFtZVNlbGVjdGlvbihGcmFtZSogZnIK
ICAgICBzZXRJc0RpcmVjdGlvbmFsKGZhbHNlKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6
bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBib29sIHVzZXJUcmlnZ2VyZWQsIEN1
cnNvckFsaWduT25TY3JvbGwgYWxpZ24pCit2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29u
c3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQsIEN1
cnNvckFsaWduT25TY3JvbGwgYWxpZ24pCiB7Ci0gICAgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRp
b25zID0gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlOwotICAgIGlmICh1c2VyVHJpZ2dl
cmVkKQotICAgICAgICBvcHRpb25zIHw9IFVzZXJUcmlnZ2VyZWQ7CisgICAgU2V0U2VsZWN0aW9u
T3B0aW9ucyBvcHRpb25zID0gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwgdXNlclRy
aWdnZXJlZDsKICAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2
YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpKSwgb3B0aW9ucywg
YWxpZ24pOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwgYm9vbCB1c2VyVHJp
Z2dlcmVkKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlv
biAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVz
ZXJUcmlnZ2VyZWQpCiB7Ci0gICAgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gQ2xvc2VU
eXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlOwotICAgIGlmICh1c2VyVHJpZ2dlcmVkKQotICAgICAg
ICBvcHRpb25zIHw9IFVzZXJUcmlnZ2VyZWQ7CisgICAgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRp
b25zID0gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwgdXNlclRyaWdnZXJlZDsKICAg
ICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihiYXNlLmRlZXBFcXVpdmFsZW50KCksIGV4
dGVudC5kZWVwRXF1aXZhbGVudCgpLCBiYXNlLmFmZmluaXR5KCkpLCBvcHRpb25zKTsKIH0KIAot
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFBvc2l0aW9uICZwb3MsIEVBZmZpbml0
eSBhZmZpbml0eSwgYm9vbCB1c2VyVHJpZ2dlcmVkKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92
ZVRvKGNvbnN0IFBvc2l0aW9uICZwb3MsIEVBZmZpbml0eSBhZmZpbml0eSwgRVVzZXJUcmlnZ2Vy
ZWQgdXNlclRyaWdnZXJlZCkKIHsKLSAgICBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBD
bG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGU7Ci0gICAgaWYgKHVzZXJUcmlnZ2VyZWQpCi0g
ICAgICAgIG9wdGlvbnMgfD0gVXNlclRyaWdnZXJlZDsKKyAgICBTZXRTZWxlY3Rpb25PcHRpb25z
IG9wdGlvbnMgPSBDbG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCB1c2VyVHJpZ2dlcmVk
OwogICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcywgYWZmaW5pdHkpLCBvcHRp
b25zKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFJhbmdlICpyLCBF
QWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgdXNlclRyaWdnZXJlZCkKK3ZvaWQgRnJhbWVTZWxlY3Rp
b246Om1vdmVUbyhjb25zdCBSYW5nZSAqciwgRUFmZmluaXR5IGFmZmluaXR5LCBFVXNlclRyaWdn
ZXJlZCB1c2VyVHJpZ2dlcmVkKQogewotICAgIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucyA9
IENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZTsKLSAgICBpZiAodXNlclRyaWdnZXJlZCkK
LSAgICAgICAgb3B0aW9ucyB8PSBVc2VyVHJpZ2dlcmVkOworICAgIFNldFNlbGVjdGlvbk9wdGlv
bnMgb3B0aW9ucyA9IENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8IHVzZXJUcmlnZ2Vy
ZWQ7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24gPSByID8gVmlzaWJsZVNlbGVjdGlv
bihyLT5zdGFydFBvc2l0aW9uKCksIHItPmVuZFBvc2l0aW9uKCksIGFmZmluaXR5KSA6IFZpc2li
bGVTZWxlY3Rpb24oUG9zaXRpb24oKSwgUG9zaXRpb24oKSwgYWZmaW5pdHkpOwogICAgIHNldFNl
bGVjdGlvbihzZWxlY3Rpb24sIG9wdGlvbnMpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpt
b3ZlVG8oY29uc3QgUG9zaXRpb24gJmJhc2UsIGNvbnN0IFBvc2l0aW9uICZleHRlbnQsIEVBZmZp
bml0eSBhZmZpbml0eSwgYm9vbCB1c2VyVHJpZ2dlcmVkKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6
bW92ZVRvKGNvbnN0IFBvc2l0aW9uICZiYXNlLCBjb25zdCBQb3NpdGlvbiAmZXh0ZW50LCBFQWZm
aW5pdHkgYWZmaW5pdHksIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7Ci0gICAgU2V0
U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxl
OwotICAgIGlmICh1c2VyVHJpZ2dlcmVkKQotICAgICAgICBvcHRpb25zIHw9IFVzZXJUcmlnZ2Vy
ZWQ7CisgICAgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gQ2xvc2VUeXBpbmcgfCBDbGVh
clR5cGluZ1N0eWxlIHwgdXNlclRyaWdnZXJlZDsKICAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNl
bGVjdGlvbihiYXNlLCBleHRlbnQsIGFmZmluaXR5KSwgb3B0aW9ucyk7CiB9CiAKQEAgLTE2Nyw3
ICsxNTcsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgCiAKICAg
ICBib29sIGNsb3NlVHlwaW5nID0gb3B0aW9ucyAmIENsb3NlVHlwaW5nOwogICAgIGJvb2wgc2hv
dWxkQ2xlYXJUeXBpbmdTdHlsZSA9IG9wdGlvbnMgJiBDbGVhclR5cGluZ1N0eWxlOwotICAgIGJv
b2wgdXNlclRyaWdnZXJlZCA9IG9wdGlvbnMgJiBVc2VyVHJpZ2dlcmVkOworICAgIEVVc2VyVHJp
Z2dlcmVkIHVzZXJUcmlnZ2VyZWQgPSBzZWxlY3Rpb25PcHRpb25zVG9Vc2VyVHJpZ2dlcmVkKG9w
dGlvbnMpOwogCiAgICAgc2V0SXNEaXJlY3Rpb25hbChkaXJlY3Rpb25hbGl0eVBvbGljeSA9PSBN
YWtlRGlyZWN0aW9uYWxTZWxlY3Rpb24pOwogCkBAIC0yMTQsNyArMjA0LDcgQEAgdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IAogICAgIHNlbGVjdEZyYW1lRWxlbWVudElu
UGFyZW50SWZGdWxseVNlbGVjdGVkKCk7CiAgICAgbm90aWZ5UmVuZGVyZXJPZlNlbGVjdGlvbkNo
YW5nZSh1c2VyVHJpZ2dlcmVkKTsKICAgICBtX2ZyYW1lLT5lZGl0b3IoKS0+cmVzcG9uZFRvQ2hh
bmdlZFNlbGVjdGlvbihvbGRTZWxlY3Rpb24sIG9wdGlvbnMpOwotICAgIGlmICh1c2VyVHJpZ2dl
cmVkKSB7CisgICAgaWYgKHVzZXJUcmlnZ2VyZWQgPT0gVXNlclRyaWdnZXJlZCkgewogICAgICAg
ICBTY3JvbGxBbGlnbm1lbnQgYWxpZ25tZW50OwogCiAgICAgICAgIGlmIChtX2ZyYW1lLT5lZGl0
b3IoKS0+YmVoYXZpb3IoKS5zaG91bGRDZW50ZXJBbGlnbldoZW5TZWxlY3Rpb25Jc1JldmVhbGVk
KCkpCkBAIC03ODcsMTMgKzc3NywxMyBAQCBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFu
dWxhcml0eSBnCiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFu
dWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJv
dW5kYXJ5OwogfSAgICAKIAotYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9u
IGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHksIGJvb2wgdXNlclRyaWdnZXJlZCkKK2Jvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlm
eShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdy
YW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewot
ICAgIGlmICh1c2VyVHJpZ2dlcmVkKSB7CisgICAgaWYgKHVzZXJUcmlnZ2VyZWQgPT0gVXNlclRy
aWdnZXJlZCkgewogICAgICAgICBGcmFtZVNlbGVjdGlvbiB0cmlhbEZyYW1lU2VsZWN0aW9uOwog
ICAgICAgICB0cmlhbEZyYW1lU2VsZWN0aW9uLnNldFNlbGVjdGlvbihtX3NlbGVjdGlvbik7CiAg
ICAgICAgIHRyaWFsRnJhbWVTZWxlY3Rpb24uc2V0SXNEaXJlY3Rpb25hbChtX2lzRGlyZWN0aW9u
YWwpOwotICAgICAgICB0cmlhbEZyYW1lU2VsZWN0aW9uLm1vZGlmeShhbHRlciwgZGlyZWN0aW9u
LCBncmFudWxhcml0eSwgZmFsc2UpOworICAgICAgICB0cmlhbEZyYW1lU2VsZWN0aW9uLm1vZGlm
eShhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSwgTm90VXNlclRyaWdnZXJlZCk7CiAKICAg
ICAgICAgYm9vbCBjaGFuZ2UgPSBzaG91bGRDaGFuZ2VTZWxlY3Rpb24odHJpYWxGcmFtZVNlbGVj
dGlvbi5zZWxlY3Rpb24oKSk7CiAgICAgICAgIGlmICghY2hhbmdlKQpAQCAtODY3LDcgKzg1Nyw3
IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiAKICAgICBpZiAoZ3Jh
bnVsYXJpdHkgPT0gTGluZUdyYW51bGFyaXR5IHx8IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEdy
YW51bGFyaXR5KQogICAgICAgICBtX3hQb3NGb3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbiA9IHg7
CiAKLSAgICBpZiAodXNlclRyaWdnZXJlZCkKKyAgICBpZiAodXNlclRyaWdnZXJlZCA9PSBVc2Vy
VHJpZ2dlcmVkKQogICAgICAgICBtX2dyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHk7
CiAKIApAQCAtODg4LDE2ICs4NzgsMTYgQEAgc3RhdGljIGJvb2wgYWJzb2x1dGVDYXJldFkoY29u
c3QgVmlzaWJsZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEZyYW1lU2VsZWN0aW9uOjpt
b2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIHVuc2lnbmVkIHZlcnRpY2FsRGlzdGFuY2UsIFZlcnRp
Y2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9u
U2Nyb2xsIGFsaWduKQorYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFs
dGVyLCB1bnNpZ25lZCB2ZXJ0aWNhbERpc3RhbmNlLCBWZXJ0aWNhbERpcmVjdGlvbiBkaXJlY3Rp
b24sIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxp
Z24pCiB7CiAgICAgaWYgKCF2ZXJ0aWNhbERpc3RhbmNlKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBpZiAodXNlclRyaWdnZXJlZCkgeworICAgIGlmICh1c2VyVHJpZ2dlcmVkID09IFVz
ZXJUcmlnZ2VyZWQpIHsKICAgICAgICAgRnJhbWVTZWxlY3Rpb24gdHJpYWxGcmFtZVNlbGVjdGlv
bjsKICAgICAgICAgdHJpYWxGcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obV9zZWxlY3Rpb24p
OwogICAgICAgICB0cmlhbEZyYW1lU2VsZWN0aW9uLnNldElzRGlyZWN0aW9uYWwobV9pc0RpcmVj
dGlvbmFsKTsKLSAgICAgICAgdHJpYWxGcmFtZVNlbGVjdGlvbi5tb2RpZnkoYWx0ZXIsIHZlcnRp
Y2FsRGlzdGFuY2UsIGRpcmVjdGlvbiwgZmFsc2UpOworICAgICAgICB0cmlhbEZyYW1lU2VsZWN0
aW9uLm1vZGlmeShhbHRlciwgdmVydGljYWxEaXN0YW5jZSwgZGlyZWN0aW9uLCBOb3RVc2VyVHJp
Z2dlcmVkKTsKIAogICAgICAgICBib29sIGNoYW5nZSA9IHNob3VsZENoYW5nZVNlbGVjdGlvbih0
cmlhbEZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpKTsKICAgICAgICAgaWYgKCFjaGFuZ2UpCkBA
IC05NTksNyArOTQ5LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9u
IAogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBpZiAodXNlclRyaWdnZXJlZCkKKyAgICBp
ZiAodXNlclRyaWdnZXJlZCA9PSBVc2VyVHJpZ2dlcmVkKQogICAgICAgICBtX2dyYW51bGFyaXR5
ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHk7CiAKICAgICBzZXRJc0RpcmVjdGlvbmFsKGFsdGVyID09
IEFsdGVyYXRpb25FeHRlbmQpOwpAQCAtMTAxMiw1MiArMTAwMiw0MCBAQCB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpjbGVhcigpCiAgICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oKSk7CiB9
CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFN0YXJ0KGNvbnN0IFZpc2libGVQb3NpdGlvbiAm
cG9zLCBib29sIHVzZXJUcmlnZ2VyZWQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTdGFydChj
b25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdHJpZ2dlcikKIHsKICAg
ICBpZiAobV9zZWxlY3Rpb24uaXNCYXNlRmlyc3QoKSkKLSAgICAgICAgc2V0QmFzZShwb3MsIHVz
ZXJUcmlnZ2VyZWQpOworICAgICAgICBzZXRCYXNlKHBvcywgdHJpZ2dlcik7CiAgICAgZWxzZQot
ICAgICAgICBzZXRFeHRlbnQocG9zLCB1c2VyVHJpZ2dlcmVkKTsKKyAgICAgICAgc2V0RXh0ZW50
KHBvcywgdHJpZ2dlcik7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNldEVuZChjb25zdCBW
aXNpYmxlUG9zaXRpb24gJnBvcywgYm9vbCB1c2VyVHJpZ2dlcmVkKQordm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0RW5kKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB0
cmlnZ2VyKQogewogICAgIGlmIChtX3NlbGVjdGlvbi5pc0Jhc2VGaXJzdCgpKQotICAgICAgICBz
ZXRFeHRlbnQocG9zLCB1c2VyVHJpZ2dlcmVkKTsKKyAgICAgICAgc2V0RXh0ZW50KHBvcywgdHJp
Z2dlcik7CiAgICAgZWxzZQotICAgICAgICBzZXRCYXNlKHBvcywgdXNlclRyaWdnZXJlZCk7Cisg
ICAgICAgIHNldEJhc2UocG9zLCB0cmlnZ2VyKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0QmFzZShjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgYm9vbCB1c2VyVHJpZ2dlcmVkKQor
dm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0QmFzZShjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywg
RVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKLSAgICBTZXRTZWxlY3Rpb25PcHRpb25z
IG9wdGlvbnMgPSBDbG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGU7Ci0gICAgaWYgKHVzZXJU
cmlnZ2VyZWQpCi0gICAgICAgIG9wdGlvbnMgfD0gVXNlclRyaWdnZXJlZDsKLSAgICBzZXRTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgbV9zZWxlY3Rpb24u
ZXh0ZW50KCksIHBvcy5hZmZpbml0eSgpKSwgb3B0aW9ucyk7CisgICAgc2V0U2VsZWN0aW9uKFZp
c2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIG1fc2VsZWN0aW9uLmV4dGVudCgp
LCBwb3MuYWZmaW5pdHkoKSksIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8IHVzZXJU
cmlnZ2VyZWQpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRFeHRlbnQoY29uc3QgVmlz
aWJsZVBvc2l0aW9uICZwb3MsIGJvb2wgdXNlclRyaWdnZXJlZCkKK3ZvaWQgRnJhbWVTZWxlY3Rp
b246OnNldEV4dGVudChjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQg
dXNlclRyaWdnZXJlZCkKIHsKLSAgICBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBDbG9z
ZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGU7Ci0gICAgaWYgKHVzZXJUcmlnZ2VyZWQpCi0gICAg
ICAgIG9wdGlvbnMgfD0gVXNlclRyaWdnZXJlZDsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNl
bGVjdGlvbihtX3NlbGVjdGlvbi5iYXNlKCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZm
aW5pdHkoKSksIG9wdGlvbnMpOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKG1f
c2VsZWN0aW9uLmJhc2UoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpKSwg
Q2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwgdXNlclRyaWdnZXJlZCk7CiB9CiAKLXZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldEJhc2UoY29uc3QgUG9zaXRpb24gJnBvcywgRUFmZmluaXR5
IGFmZmluaXR5LCBib29sIHVzZXJUcmlnZ2VyZWQpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRC
YXNlKGNvbnN0IFBvc2l0aW9uICZwb3MsIEVBZmZpbml0eSBhZmZpbml0eSwgRVVzZXJUcmlnZ2Vy
ZWQgdXNlclRyaWdnZXJlZCkKIHsKLSAgICBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBD
bG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGU7Ci0gICAgaWYgKHVzZXJUcmlnZ2VyZWQpCi0g
ICAgICAgIG9wdGlvbnMgfD0gVXNlclRyaWdnZXJlZDsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihwb3MsIG1fc2VsZWN0aW9uLmV4dGVudCgpLCBhZmZpbml0eSksIG9wdGlvbnMp
OworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcywgbV9zZWxlY3Rpb24uZXh0
ZW50KCksIGFmZmluaXR5KSwgQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwgdXNlclRy
aWdnZXJlZCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNldEV4dGVudChjb25zdCBQb3Np
dGlvbiAmcG9zLCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgdXNlclRyaWdnZXJlZCkKK3ZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldEV4dGVudChjb25zdCBQb3NpdGlvbiAmcG9zLCBFQWZmaW5pdHkg
YWZmaW5pdHksIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7Ci0gICAgU2V0U2VsZWN0
aW9uT3B0aW9ucyBvcHRpb25zID0gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlOwotICAg
IGlmICh1c2VyVHJpZ2dlcmVkKQotICAgICAgICBvcHRpb25zIHw9IFVzZXJUcmlnZ2VyZWQ7Ci0g
ICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24obV9zZWxlY3Rpb24uYmFzZSgpLCBwb3Ms
IGFmZmluaXR5KSwgb3B0aW9ucyk7CisgICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24o
bV9zZWxlY3Rpb24uYmFzZSgpLCBwb3MsIGFmZmluaXR5KSwgQ2xvc2VUeXBpbmcgfCBDbGVhclR5
cGluZ1N0eWxlIHwgdXNlclRyaWdnZXJlZCk7CiB9CiAKIHZvaWQgQ2FyZXRCYXNlOjpjbGVhckNh
cmV0UmVjdCgpCkBAIC0xNDc5LDcgKzE0NTcsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxl
Y3RBbGwoKQogICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKIAogICAgIHNlbGVj
dEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKCk7Ci0gICAgbm90aWZ5UmVuZGVy
ZXJPZlNlbGVjdGlvbkNoYW5nZSh0cnVlKTsKKyAgICBub3RpZnlSZW5kZXJlck9mU2VsZWN0aW9u
Q2hhbmdlKEZyYW1lU2VsZWN0aW9uOjpVc2VyVHJpZ2dlcmVkKTsKIH0KIAogYm9vbCBGcmFtZVNl
bGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0
eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTE3MDQsNyArMTY4Miw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OmNhcmV0QmxpbmtUaW1lckZpcmUKICNlbmRpZgogfQogCi12b2lkIEZyYW1lU2VsZWN0
aW9uOjpub3RpZnlSZW5kZXJlck9mU2VsZWN0aW9uQ2hhbmdlKGJvb2wgdXNlclRyaWdnZXJlZCkK
K3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeVJlbmRlcmVyT2ZTZWxlY3Rpb25DaGFuZ2UoRVVz
ZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51
cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAKQEAgLTE3MTUsNyArMTY5Myw3IEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246Om5vdGlmeVJlbmRlcmVyT2ZTZWwKICAgICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5k
ZXJlci0+aXNUZXh0Q29udHJvbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICB0b1JlbmRlclRl
eHRDb250cm9sKHJlbmRlcmVyKS0+c2VsZWN0aW9uQ2hhbmdlZCh1c2VyVHJpZ2dlcmVkKTsKKyAg
ICB0b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKS0+c2VsZWN0aW9uQ2hhbmdlZCh1c2VyVHJp
Z2dlcmVkID09IFVzZXJUcmlnZ2VyZWQpOwogfQogCiAvLyBIZWxwZXIgZnVuY3Rpb24gdGhhdCB0
ZWxscyB3aGV0aGVyIGEgcGFydGljdWxhciBub2RlIGlzIGFuIGVsZW1lbnQgdGhhdCBoYXMgYW4g
ZW50aXJlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCShyZXZp
c2lvbiA4OTI2NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtMTEyLDEwICsxMTIsMTcgQEAgcHVibGljOgogICAgIGVudW0gU2V0
U2VsZWN0aW9uT3B0aW9uIHsKICAgICAgICAgQ2xvc2VUeXBpbmcgPSAxIDw8IDAsCiAgICAgICAg
IENsZWFyVHlwaW5nU3R5bGUgPSAxIDw8IDEsCi0gICAgICAgIFVzZXJUcmlnZ2VyZWQgPSAxIDw8
IDIsCi0gICAgICAgIFNwZWxsQ29ycmVjdGlvblRyaWdnZXJlZCA9IDEgPDwgMywKKyAgICAgICAg
U3BlbGxDb3JyZWN0aW9uVHJpZ2dlcmVkID0gMSA8PCAyLAogICAgIH07Ci0gICAgdHlwZWRlZiB1
bnNpZ25lZCBTZXRTZWxlY3Rpb25PcHRpb25zOworICAgIGVudW0gRVVzZXJUcmlnZ2VyZWQgewor
ICAgICAgICBOb3RVc2VyVHJpZ2dlcmVkID0gMCwKKyAgICAgICAgVXNlclRyaWdnZXJlZCA9IDEg
PDwgMywKKyAgICB9OworICAgIHR5cGVkZWYgdW5zaWduZWQgU2V0U2VsZWN0aW9uT3B0aW9uczsg
Ly8gVW5pb24gb2YgdmFsdWVzIGluIFNldFNlbGVjdGlvbk9wdGlvbiBhbmQgRVVzZXJUcmlnZ2Vy
ZWQKKyAgICBzdGF0aWMgaW5saW5lIEVVc2VyVHJpZ2dlcmVkIHNlbGVjdGlvbk9wdGlvbnNUb1Vz
ZXJUcmlnZ2VyZWQoU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PEVVc2VyVHJpZ2dlcmVkPihvcHRpb25zICYgVXNlclRyaWdnZXJl
ZCk7CisgICAgfQogCiAgICAgRnJhbWVTZWxlY3Rpb24oRnJhbWUqID0gMCk7CiAKQEAgLTEyMywx
MSArMTMwLDExIEBAIHB1YmxpYzoKICAgICBib29sIGlzQ29udGVudEVkaXRhYmxlKCkgY29uc3Qg
eyByZXR1cm4gbV9zZWxlY3Rpb24uaXNDb250ZW50RWRpdGFibGUoKTsgfQogICAgIGJvb2wgaXND
b250ZW50UmljaGx5RWRpdGFibGUoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbi5pc0NvbnRl
bnRSaWNobHlFZGl0YWJsZSgpOyB9CiAgICAgIAotICAgIHZvaWQgbW92ZVRvKGNvbnN0IFJhbmdl
KiwgRUFmZmluaXR5LCBib29sIHVzZXJUcmlnZ2VyZWQgPSBmYWxzZSk7Ci0gICAgdm9pZCBtb3Zl
VG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgYm9vbCB1c2VyVHJpZ2dlcmVkID0gZmFsc2UsIEN1
cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQpOwotICAgIHZv
aWQgbW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYs
IGJvb2wgdXNlclRyaWdnZXJlZCA9IGZhbHNlKTsKLSAgICB2b2lkIG1vdmVUbyhjb25zdCBQb3Np
dGlvbiYsIEVBZmZpbml0eSwgYm9vbCB1c2VyVHJpZ2dlcmVkID0gZmFsc2UpOwotICAgIHZvaWQg
bW92ZVRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBFQWZmaW5pdHksIGJvb2wg
dXNlclRyaWdnZXJlZCA9IGZhbHNlKTsKKyAgICB2b2lkIG1vdmVUbyhjb25zdCBSYW5nZSosIEVB
ZmZpbml0eSwgRVVzZXJUcmlnZ2VyZWQgPSBOb3RVc2VyVHJpZ2dlcmVkKTsKKyAgICB2b2lkIG1v
dmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBFVXNlclRyaWdnZXJlZCA9IE5vdFVzZXJUcmln
Z2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQp
OworICAgIHZvaWQgbW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYsIEVVc2VyVHJpZ2dlcmVkID0gTm90VXNlclRyaWdnZXJlZCk7CisgICAgdm9pZCBt
b3ZlVG8oY29uc3QgUG9zaXRpb24mLCBFQWZmaW5pdHksIEVVc2VyVHJpZ2dlcmVkID0gTm90VXNl
clRyaWdnZXJlZCk7CisgICAgdm9pZCBtb3ZlVG8oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3Np
dGlvbiYsIEVBZmZpbml0eSwgRVVzZXJUcmlnZ2VyZWQgPSBOb3RVc2VyVHJpZ2dlcmVkKTsKIAog
ICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
c2VsZWN0aW9uOyB9CiAgICAgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBDbG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUs
IEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRH
cmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5LCBEaXJlY3Rpb25hbGl0eVBvbGljeSA9
IE1ha2VEaXJlY3Rpb25hbFNlbGVjdGlvbik7CkBAIC0xNDUsMTggKzE1MiwxOSBAQCBwdWJsaWM6
CiAKICAgICBFQWZmaW5pdHkgYWZmaW5pdHkoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbi5h
ZmZpbml0eSgpOyB9CiAKLSAgICBib29sIG1vZGlmeShFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGly
ZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wgdXNlclRyaWdnZXJlZCA9IGZhbHNlKTsKKyAg
ICBib29sIG1vZGlmeShFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVs
YXJpdHksIEVVc2VyVHJpZ2dlcmVkID0gTm90VXNlclRyaWdnZXJlZCk7CiAgICAgZW51bSBWZXJ0
aWNhbERpcmVjdGlvbiB7IERpcmVjdGlvblVwLCBEaXJlY3Rpb25Eb3duIH07Ci0gICAgYm9vbCBt
b2RpZnkoRUFsdGVyYXRpb24sIHVuc2lnbmVkIHZlcnRpY2FsRGlzdGFuY2UsIFZlcnRpY2FsRGly
ZWN0aW9uLCBib29sIHVzZXJUcmlnZ2VyZWQgPSBmYWxzZSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9
IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCk7CisgICAgYm9vbCBtb2RpZnkoRUFsdGVyYXRp
b24sIHVuc2lnbmVkIHZlcnRpY2FsRGlzdGFuY2UsIFZlcnRpY2FsRGlyZWN0aW9uLCBFVXNlclRy
aWdnZXJlZCA9IE5vdFVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1
cnNvck9uU2Nyb2xsSWZOZWVkZWQpOworCiAgICAgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KCkgY29uc3QgeyByZXR1cm4gbV9ncmFudWxhcml0eTsgfQogCi0gICAgdm9pZCBzZXRTdGFydChj
b25zdCBWaXNpYmxlUG9zaXRpb24gJiwgYm9vbCB1c2VyVHJpZ2dlcmVkID0gZmFsc2UpOwotICAg
IHZvaWQgc2V0RW5kKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBib29sIHVzZXJUcmlnZ2VyZWQg
PSBmYWxzZSk7CisgICAgdm9pZCBzZXRTdGFydChjb25zdCBWaXNpYmxlUG9zaXRpb24gJiwgRVVz
ZXJUcmlnZ2VyZWQgPSBOb3RVc2VyVHJpZ2dlcmVkKTsKKyAgICB2b2lkIHNldEVuZChjb25zdCBW
aXNpYmxlUG9zaXRpb24gJiwgRVVzZXJUcmlnZ2VyZWQgPSBOb3RVc2VyVHJpZ2dlcmVkKTsKICAg
ICAKLSAgICB2b2lkIHNldEJhc2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgYm9vbCB1c2VyVHJp
Z2dlcmVkID0gZmFsc2UpOwotICAgIHZvaWQgc2V0QmFzZShjb25zdCBQb3NpdGlvbiYsIEVBZmZp
bml0eSwgYm9vbCB1c2VyVHJpZ2dlcmVkID0gZmFsc2UpOwotICAgIHZvaWQgc2V0RXh0ZW50KGNv
bnN0IFZpc2libGVQb3NpdGlvbiYsIGJvb2wgdXNlclRyaWdnZXJlZCA9IGZhbHNlKTsKLSAgICB2
b2lkIHNldEV4dGVudChjb25zdCBQb3NpdGlvbiYsIEVBZmZpbml0eSwgYm9vbCB1c2VyVHJpZ2dl
cmVkID0gZmFsc2UpOworICAgIHZvaWQgc2V0QmFzZShjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBF
VXNlclRyaWdnZXJlZCA9IE5vdFVzZXJUcmlnZ2VyZWQpOworICAgIHZvaWQgc2V0QmFzZShjb25z
dCBQb3NpdGlvbiYsIEVBZmZpbml0eSwgRVVzZXJUcmlnZ2VyZWQgPSBOb3RVc2VyVHJpZ2dlcmVk
KTsKKyAgICB2b2lkIHNldEV4dGVudChjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBFVXNlclRyaWdn
ZXJlZCA9IE5vdFVzZXJUcmlnZ2VyZWQpOworICAgIHZvaWQgc2V0RXh0ZW50KGNvbnN0IFBvc2l0
aW9uJiwgRUFmZmluaXR5LCBFVXNlclRyaWdnZXJlZCA9IE5vdFVzZXJUcmlnZ2VyZWQpOwogCiAg
ICAgUG9zaXRpb24gYmFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uLmJhc2UoKTsgfQog
ICAgIFBvc2l0aW9uIGV4dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uLmV4dGVudCgp
OyB9CkBAIC0yMTksNyArMjI3LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkQ2hhbmdlU2Vs
ZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSBjb25zdDsKICAgICBib29sIHNob3VsZERl
bGV0ZVNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgY29uc3Q7CiAgICAgdm9pZCBz
ZXRGb2N1c2VkTm9kZUlmTmVlZGVkKCk7Ci0gICAgdm9pZCBub3RpZnlSZW5kZXJlck9mU2VsZWN0
aW9uQ2hhbmdlKGJvb2wgdXNlclRyaWdnZXJlZCk7CisgICAgdm9pZCBub3RpZnlSZW5kZXJlck9m
U2VsZWN0aW9uQ2hhbmdlKEVVc2VyVHJpZ2dlcmVkKTsKIAogICAgIHZvaWQgcGFpbnREcmFnQ2Fy
ZXQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRSZWN0JiBjbGlw
UmVjdCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5jcHAJKHJl
dmlzaW9uIDg5MjY0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMzgsNyArMzM4LDcgQEAgdm9pZCBET01TZWxlY3Rpb246Om1vZGlm
eShjb25zdCBTdHJpbmcmIAogICAgIGVsc2UKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9mcmFt
ZS0+c2VsZWN0aW9uKCktPm1vZGlmeShhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSwgZmFs
c2UpOworICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoYWx0ZXIsIGRpcmVjdGlvbiwg
Z3JhbnVsYXJpdHkpOwogfQogCiB2b2lkIERPTVNlbGVjdGlvbjo6ZXh0ZW5kKE5vZGUqIG5vZGUs
IGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAkocmV2aXNpb24gODkyNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3Myw3ICs3NzMsNyBAQCBib29sIEV2
ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VSZWxlYXNlRXZlCiAgICAgICAgIGhhbmRsZWQgPSB0cnVl
OwogICAgIH0KIAotICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5ub3RpZnlSZW5kZXJlck9mU2Vs
ZWN0aW9uQ2hhbmdlKHRydWUpOworICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5ub3RpZnlSZW5k
ZXJlck9mU2VsZWN0aW9uQ2hhbmdlKEZyYW1lU2VsZWN0aW9uOjpVc2VyVHJpZ2dlcmVkKTsKIAog
ICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZWxlY3RGcmFtZUVsZW1lbnRJblBhcmVudElmRnVs
bHlTZWxlY3RlZCgpOwogCkBAIC0yNjQ3LDcgKzI2NDcsNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVL
ZXlib2FyZFNlbGVjdGlvbk1vdmVtCiAgICAgfQogCiAgICAgRnJhbWVTZWxlY3Rpb246OkVBbHRl
cmF0aW9uIGFsdGVybmF0aW9uID0gZXZlbnQtPmdldE1vZGlmaWVyU3RhdGUoIlNoaWZ0IikgPyBG
cmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbkV4dGVuZCA6IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0
aW9uTW92ZTsKLSAgICBzZWxlY3Rpb24tPm1vZGlmeShhbHRlcm5hdGlvbiwgZGlyZWN0aW9uLCBn
cmFudWxhcml0eSwgdHJ1ZSk7CisgICAgc2VsZWN0aW9uLT5tb2RpZnkoYWx0ZXJuYXRpb24sIGRp
cmVjdGlvbiwgZ3JhbnVsYXJpdHksIEZyYW1lU2VsZWN0aW9uOjpVc2VyVHJpZ2dlcmVkKTsKICAg
ICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KICAgICAK
</data>
<flag name="review"
          id="91913"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>