[Zope-CMF] Discussions on Folderish content

Thomas Olsen tol@tanghus.dk
Tue, 15 Jan 2002 00:46:11 +0100


--------------Boundary-00=_ZOCYWLBGHE3WJA7OQT3J
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

Hi

I have made a product based on PortalFolder, PortalContent and 
DefaultDublinCoreImpl. Now I would like to add the ability to add 
discussions. I set '_isDiscussable = 1' and copied the relevant part from 
'document_view' to my default view: 

<div class="Discussion">
   <span tal:replace="structure here/viewThreadsAtBottom"
         tal:condition="here/viewThreadsAtBottom|nothing"></span>
</div>

Then I reloaded my product and added a reply to an instance of that product. 
That went ok but as soon as I added a reply to the first reply it went wrong 
and gave me an exception in DiscussionItem.py in parentsInThread() line 153.

The above mentioned line looks like this:

        parents = []
        current = self
        while not size or len( parents ) < size:
            parent = current.inReplyTo()
            assert not parent in parents  # sanity check
            parents.insert( 0, parent )
            if parent.meta_type != self.meta_type:
                break
            current = parent
        return parents

The relevant part of the traceback is here (I have attached the entire 
traceback for reference.

    (Object: aboveInThread)
  File /home/tol/zope-2.5/lib/python/Products/CMFCore/FSPythonScript.py, line 
115, in _exec
    (Object: aboveInThread)
    (Info: ({'script': <FSPythonScript instance at 8d20f18>, 'context': 
<DiscussionItem instance at 8b2d990>, 'container': <CMFSite instance at 
912eeb8>, 'traverse_subpath': []}, (), {}, None))
  File Script (Python), line 2, in aboveInThread
    (Object: guarded_getitem)
  File /home/tol/zope-2.5/lib/python/Products/CMFDefault/DiscussionItem.py, 
line 153, in parentsInThread
    (Object: 1011047119)
TALESError: Sorry, an error occurred

Is this caused by having discussions on a folderish item or am I just plain 
stupid ;-)


-- 
Regards
Thomas Olsen

http://www.tanghus.dk
--------------Boundary-00=_ZOCYWLBGHE3WJA7OQT3J
Content-Type: text/plain;
  charset="iso-8859-1";
  name="traceback.txt"
Content-Transfer-Encoding: base64
Content-Description: Traceback
Content-Disposition: attachment; filename="traceback.txt"

CgoKU2l0ZSBFcnJvcgoKQW4gZXJyb3Igd2FzIGVuY291bnRlcmVkIHdoaWxlIHB1Ymxpc2hpbmcg
dGhpcyByZXNvdXJjZS4KClRBTEVTRXJyb3IgU29ycnksIGEgc2l0ZSBlcnJvciBvY2N1cnJlZC4K
CgoKVHJhY2ViYWNrIChpbm5lcm1vc3QgbGFzdCk6CiAgRmlsZSAvaG9tZS90b2wvem9wZS0yLjUv
bGliL3B5dGhvbi9aUHVibGlzaGVyL1B1Ymxpc2gucHksIGxpbmUgMTUwLCBpbiBwdWJsaXNoX21v
ZHVsZQogIEZpbGUgL2hvbWUvdG9sL3pvcGUtMi41L2xpYi9weXRob24vWlB1Ymxpc2hlci9QdWJs
aXNoLnB5LCBsaW5lIDExNCwgaW4gcHVibGlzaAogIEZpbGUgL2hvbWUvdG9sL3pvcGUtMi41L2xp
Yi9weXRob24vWm9wZS9fX2luaXRfXy5weSwgbGluZSAxNTgsIGluIHpwdWJsaXNoZXJfZXhjZXB0
aW9uX2hvb2sKICBGaWxlIC9ob21lL3RvbC96b3BlLTIuNS9saWIvcHl0aG9uL1pQdWJsaXNoZXIv
UHVibGlzaC5weSwgbGluZSA5OCwgaW4gcHVibGlzaAogIEZpbGUgL2hvbWUvdG9sL3pvcGUtMi41
L2xpYi9weXRob24vWlB1Ymxpc2hlci9tYXBwbHkucHksIGxpbmUgODgsIGluIG1hcHBseQogICAg
KE9iamVjdDogMTAxMTA0NzExOSkKICBGaWxlIC9ob21lL3RvbC96b3BlLTIuNS9saWIvcHl0aG9u
L1pQdWJsaXNoZXIvUHVibGlzaC5weSwgbGluZSAzOSwgaW4gY2FsbF9vYmplY3QKICAgIChPYmpl
Y3Q6IDEwMTEwNDcxMTkpCiAgRmlsZSAvaG9tZS90b2wvem9wZS0yLjUvbGliL3B5dGhvbi9Qcm9k
dWN0cy9DTUZDb3JlL1BvcnRhbENvbnRlbnQucHksIGxpbmUgMTY0LCBpbiBfX2NhbGxfXwogICAg
KE9iamVjdDogMTAxMTA0NzExOSkKICBGaWxlIC9ob21lL3RvbC96b3BlLTIuNS9saWIvcHl0aG9u
L1NoYXJlZC9EQy9TY3JpcHRzL0JpbmRpbmdzLnB5LCBsaW5lIDI1MiwgaW4gX19jYWxsX18KICAg
IChPYmplY3Q6IGRpc2N1c3Npb25pdGVtX3ZpZXcpCiAgRmlsZSAvaG9tZS90b2wvem9wZS0yLjUv
bGliL3B5dGhvbi9TaGFyZWQvREMvU2NyaXB0cy9CaW5kaW5ncy5weSwgbGluZSAyODMsIGluIF9i
aW5kQW5kRXhlYwogICAgKE9iamVjdDogZGlzY3Vzc2lvbml0ZW1fdmlldykKICBGaWxlIC9ob21l
L3RvbC96b3BlLTIuNS9saWIvcHl0aG9uL1Byb2R1Y3RzL1BhZ2VUZW1wbGF0ZXMvWm9wZVBhZ2VU
ZW1wbGF0ZS5weSwgbGluZSAyMDcsIGluIF9leGVjCiAgICAoT2JqZWN0OiBkaXNjdXNzaW9uaXRl
bV92aWV3KQogIEZpbGUgL2hvbWUvdG9sL3pvcGUtMi41L2xpYi9weXRob24vUHJvZHVjdHMvQ01G
Q29yZS9GU1BhZ2VUZW1wbGF0ZS5weSwgbGluZSA5OSwgaW4gcHRfcmVuZGVyCiAgICAoT2JqZWN0
OiBkaXNjdXNzaW9uaXRlbV92aWV3KQogIEZpbGUgL2hvbWUvdG9sL3pvcGUtMi41L2xpYi9weXRo
b24vUHJvZHVjdHMvUGFnZVRlbXBsYXRlcy9QYWdlVGVtcGxhdGUucHksIGxpbmUgODYsIGluIHB0
X3JlbmRlcgogICAgKE9iamVjdDogZGlzY3Vzc2lvbml0ZW1fdmlldykKICAgIChJbmZvOiB7J2Nv
bnRhaW5lcic6IDxDTUZTaXRlIGluc3RhbmNlIGF0IDkxMmVlYjg+LAogJ2hlcmUnOiA8RGlzY3Vz
c2lvbkl0ZW0gaW5zdGFuY2UgYXQgOGIyZDk5MD4sCiAnbW9kdWxlcyc6IDxQcm9kdWN0cy5QYWdl
VGVtcGxhdGVzLlpSUHl0aG9uRXhwci5fU2VjdXJlTW9kdWxlSW1wb3J0ZXIgaW5zdGFuY2UgYXQg
MHg4NmEzNGJjPiwKICdub3RoaW5nJzogTm9uZSwKICdvcHRpb25zJzogeydhcmdzJzogKCl9LAog
J3JlcXVlc3QnOiA8aDM+Zm9ybTwvaDM+PHRhYmxlPjwvdGFibGU+PGgzPmNvb2tpZXM8L2gzPjx0
YWJsZT48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+X19hY19uYW1lPC90aD48dGQ+
J3RvbCc8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHRoPnRyZWUtczwv
dGg+PHRkPidlSnpUaUZaM2hJS2c1RWhiOVZnZFRRQXdMQVRYJzwvdGQ+PC90cj48dHIgdmFsaWdu
PSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+dGJfdHJlZS1zdGF0ZTwvdGg+PHRkPidBQUFBQUFBQU80
c186QUFBQUFBQUFSYzRfJzwvdGQ+PC90cj48L3RhYmxlPjxoMz5sYXp5IGl0ZW1zPC9oMz48dGFi
bGU+PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHRoPlNFU1NJT048L3RoPjx0ZD4mbHQ7
UHl0aG9uIE1ldGhvZCBvYmplY3QgYXQgMHg4YjU2YTg4Jmd0OzwvdGQ+PC90cj48L3RhYmxlPjxo
Mz5vdGhlcjwvaDM+PHRhYmxlPjx0ciB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjx0aD5CQVNF
NzwvdGg+PHRkPidodHRwOi8vd3d3LnRhcnBpdC5kazo4MjgwL3BvcnRhbC9NZW1iZXJzL3RvbC9N
eUFydGljbGUvdGFsa2JhY2svMTAxMTA0NzExOSc8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBh
bGlnbj0ibGVmdCI+PHRoPkJBU0U2PC90aD48dGQ+J2h0dHA6Ly93d3cudGFycGl0LmRrOjgyODAv
cG9ydGFsL01lbWJlcnMvdG9sL015QXJ0aWNsZS90YWxrYmFjayc8L3RkPjwvdHI+PHRyIHZhbGln
bj0idG9wIiBhbGlnbj0ibGVmdCI+PHRoPl9fYWNfbmFtZTwvdGg+PHRkPid0b2wnPC90ZD48L3Ry
Pjx0ciB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjx0aD5CQVNFNDwvdGg+PHRkPidodHRwOi8v
d3d3LnRhcnBpdC5kazo4MjgwL3BvcnRhbC9NZW1iZXJzL3RvbCc8L3RkPjwvdHI+PHRyIHZhbGln
bj0idG9wIiBhbGlnbj0ibGVmdCI+PHRoPkJBU0UzPC90aD48dGQ+J2h0dHA6Ly93d3cudGFycGl0
LmRrOjgyODAvcG9ydGFsL01lbWJlcnMnPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCIgYWxpZ249
ImxlZnQiPjx0aD5VUkwyPC90aD48dGQ+J2h0dHA6Ly93d3cudGFycGl0LmRrOjgyODAvcG9ydGFs
L01lbWJlcnMvdG9sL015QXJ0aWNsZSc8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0i
bGVmdCI+PHRoPkJBU0UxPC90aD48dGQ+J2h0dHA6Ly93d3cudGFycGl0LmRrOjgyODAnPC90ZD48
L3RyPjx0ciB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjx0aD5CQVNFMDwvdGg+PHRkPidodHRw
Oi8vd3d3LnRhcnBpdC5kazo4MjgwJzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJs
ZWZ0Ij48dGg+VVJMNDwvdGg+PHRkPidodHRwOi8vd3d3LnRhcnBpdC5kazo4MjgwL3BvcnRhbC9N
ZW1iZXJzJzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+U0VSVkVS
X1VSTDwvdGg+PHRkPidodHRwOi8vd3d3LnRhcnBpdC5kazo4MjgwJzwvdGQ+PC90cj48dHIgdmFs
aWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+dGJfdHJlZS1zdGF0ZTwvdGg+PHRkPidBQUFBQUFB
QU80c186QUFBQUFBQUFSYzRfJzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0
Ij48dGg+QVVUSEVOVElDQVRFRF9VU0VSPC90aD48dGQ+dG9sPC90ZD48L3RyPjx0ciB2YWxpZ249
InRvcCIgYWxpZ249ImxlZnQiPjx0aD5UcmF2ZXJzYWxSZXF1ZXN0TmFtZVN0YWNrPC90aD48dGQ+
W108L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHRoPkJBU0U1PC90aD48
dGQ+J2h0dHA6Ly93d3cudGFycGl0LmRrOjgyODAvcG9ydGFsL01lbWJlcnMvdG9sL015QXJ0aWNs
ZSc8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHRoPkFVVEhFTlRJQ0FU
SU9OX1BBVEg8L3RoPjx0ZD4nJzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0
Ij48dGg+UFVCTElTSEVEPC90aD48dGQ+Jmx0O0Rpc2N1c3Npb25JdGVtIGluc3RhbmNlIGF0IDhi
MmQ5OTAmZ3Q7PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjx0aD5VUkwz
PC90aD48dGQ+J2h0dHA6Ly93d3cudGFycGl0LmRrOjgyODAvcG9ydGFsL01lbWJlcnMvdG9sJzwv
dGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+VVJMMDwvdGg+PHRkPido
dHRwOi8vd3d3LnRhcnBpdC5kazo4MjgwL3BvcnRhbC9NZW1iZXJzL3RvbC9NeUFydGljbGUvdGFs
a2JhY2svMTAxMTA0NzExOSc8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+
PHRoPlVSTDE8L3RoPjx0ZD4naHR0cDovL3d3dy50YXJwaXQuZGs6ODI4MC9wb3J0YWwvTWVtYmVy
cy90b2wvTXlBcnRpY2xlL3RhbGtiYWNrJzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWdu
PSJsZWZ0Ij48dGg+VVJMNjwvdGg+PHRkPidodHRwOi8vd3d3LnRhcnBpdC5kazo4MjgwJzwvdGQ+
PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+VVJMNTwvdGg+PHRkPidodHRw
Oi8vd3d3LnRhcnBpdC5kazo4MjgwL3BvcnRhbCc8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBh
bGlnbj0ibGVmdCI+PHRoPnRyZWUtczwvdGg+PHRkPidlSnpUaUZaM2hJS2c1RWhiOVZnZFRRQXdM
QVRYJzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+VVJMPC90aD48
dGQ+J2h0dHA6Ly93d3cudGFycGl0LmRrOjgyODAvcG9ydGFsL01lbWJlcnMvdG9sL015QXJ0aWNs
ZS90YWxrYmFjay8xMDExMDQ3MTE5JzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJs
ZWZ0Ij48dGg+QkFTRTI8L3RoPjx0ZD4naHR0cDovL3d3dy50YXJwaXQuZGs6ODI4MC9wb3J0YWwn
PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjx0aD5VUkwwPC90aD48dGQ+
aHR0cDovL3d3dy50YXJwaXQuZGs6ODI4MC9wb3J0YWwvTWVtYmVycy90b2wvTXlBcnRpY2xlL3Rh
bGtiYWNrLzEwMTEwNDcxMTk8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+
PHRoPlVSTDE8L3RoPjx0ZD5odHRwOi8vd3d3LnRhcnBpdC5kazo4MjgwL3BvcnRhbC9NZW1iZXJz
L3RvbC9NeUFydGljbGUvdGFsa2JhY2s8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0i
bGVmdCI+PHRoPlVSTDI8L3RoPjx0ZD5odHRwOi8vd3d3LnRhcnBpdC5kazo4MjgwL3BvcnRhbC9N
ZW1iZXJzL3RvbC9NeUFydGljbGU8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVm
dCI+PHRoPlVSTDM8L3RoPjx0ZD5odHRwOi8vd3d3LnRhcnBpdC5kazo4MjgwL3BvcnRhbC9NZW1i
ZXJzL3RvbDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+VVJMNDwv
dGg+PHRkPmh0dHA6Ly93d3cudGFycGl0LmRrOjgyODAvcG9ydGFsL01lbWJlcnM8L3RkPjwvdHI+
PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHRoPlVSTDU8L3RoPjx0ZD5odHRwOi8vd3d3
LnRhcnBpdC5kazo4MjgwL3BvcnRhbDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJs
ZWZ0Ij48dGg+VVJMNjwvdGg+PHRkPmh0dHA6Ly93d3cudGFycGl0LmRrOjgyODA8L3RkPjwvdHI+
PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHRoPkJBU0UwPC90aD48dGQ+aHR0cDovL3d3
dy50YXJwaXQuZGs6ODI4MDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48
dGg+QkFTRTE8L3RoPjx0ZD5odHRwOi8vd3d3LnRhcnBpdC5kazo4MjgwPC90ZD48L3RyPjx0ciB2
YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjx0aD5CQVNFMjwvdGg+PHRkPmh0dHA6Ly93d3cudGFy
cGl0LmRrOjgyODAvcG9ydGFsPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQi
Pjx0aD5CQVNFMzwvdGg+PHRkPmh0dHA6Ly93d3cudGFycGl0LmRrOjgyODAvcG9ydGFsL01lbWJl
cnM8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHRoPkJBU0U0PC90aD48
dGQ+aHR0cDovL3d3dy50YXJwaXQuZGs6ODI4MC9wb3J0YWwvTWVtYmVycy90b2w8L3RkPjwvdHI+
PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHRoPkJBU0U1PC90aD48dGQ+aHR0cDovL3d3
dy50YXJwaXQuZGs6ODI4MC9wb3J0YWwvTWVtYmVycy90b2wvTXlBcnRpY2xlPC90ZD48L3RyPjx0
ciB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjx0aD5CQVNFNjwvdGg+PHRkPmh0dHA6Ly93d3cu
dGFycGl0LmRrOjgyODAvcG9ydGFsL01lbWJlcnMvdG9sL015QXJ0aWNsZS90YWxrYmFjazwvdGQ+
PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+QkFTRTc8L3RoPjx0ZD5odHRw
Oi8vd3d3LnRhcnBpdC5kazo4MjgwL3BvcnRhbC9NZW1iZXJzL3RvbC9NeUFydGljbGUvdGFsa2Jh
Y2svMTAxMTA0NzExOTwvdGQ+PC90cj48L3RhYmxlPjxoMz5lbnZpcm9uPC9oMz48dGFibGU+PHRy
IHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHRoPkhUVFBfQUNDRVBUX0VOQ09ESU5HPC90aD48
dGQ+J3gtZ3ppcCwgZ3ppcCwgaWRlbnRpdHknPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCIgYWxp
Z249ImxlZnQiPjx0aD5jaGFubmVsLmNyZWF0aW9uX3RpbWU8L3RoPjx0ZD4xMDExMDQ5MDYxPC90
ZD48L3RyPjx0ciB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjx0aD5TRVJWRVJfUFJPVE9DT0w8
L3RoPjx0ZD4nSFRUUC8xLjEnPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQi
Pjx0aD5TRVJWRVJfUE9SVDwvdGg+PHRkPic4MjgwJzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3Ai
IGFsaWduPSJsZWZ0Ij48dGg+UEFUSF9JTkZPPC90aD48dGQ+Jy9wb3J0YWwvTWVtYmVycy90b2wv
TXlBcnRpY2xlL3RhbGtiYWNrLzEwMTEwNDcxMTknPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCIg
YWxpZ249ImxlZnQiPjx0aD5IVFRQX0hPU1Q8L3RoPjx0ZD4nd3d3LnRhcnBpdC5kazo4MjgwJzwv
dGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+UkVRVUVTVF9NRVRIT0Q8
L3RoPjx0ZD4nR0VUJzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+
UEFUSF9UUkFOU0xBVEVEPC90aD48dGQ+Jy9wb3J0YWwvTWVtYmVycy90b2wvTXlBcnRpY2xlL3Rh
bGtiYWNrLzEwMTEwNDcxMTknPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQi
Pjx0aD5IVFRQX0NPT0tJRTwvdGg+PHRkPid0Yl90cmVlLXN0YXRlPSJBQUFBQUFBQU80c186QUFB
QUFBQUFSYzRfIjsgdHJlZS1zPSJlSnpUaUZaM2hJS2c1RWhiOVZnZFRRQXdMQVRYIjsgX19hY19u
YW1lPSJ0b2wiJzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+Q09O
TkVDVElPTl9UWVBFPC90aD48dGQ+J0tlZXAtQWxpdmUnPC90ZD48L3RyPjx0ciB2YWxpZ249InRv
cCIgYWxpZ249ImxlZnQiPjx0aD5TQ1JJUFRfTkFNRTwvdGg+PHRkPicnPC90ZD48L3RyPjx0ciB2
YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjx0aD5TRVJWRVJfU09GVFdBUkU8L3RoPjx0ZD4nWm9w
ZS8odW5yZWxlYXNlZCB2ZXJzaW9uLCBweXRob24gMi4xLjEsIGxpbnV4MikgWlNlcnZlci8xLjFi
MSc8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PHRoPkhUVFBfQUNDRVBU
X0xBTkdVQUdFPC90aD48dGQ+J2VuLCBlbl9VUyc8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBh
bGlnbj0ibGVmdCI+PHRoPkhUVFBfQUNDRVBUX0NIQVJTRVQ8L3RoPjx0ZD4naXNvLTg4NTktMSwg
dXRmLTgsIConPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjx0aD5SRU1P
VEVfQUREUjwvdGg+PHRkPicyMTMuMjM3LjI1LjE5Myc8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9w
IiBhbGlnbj0ibGVmdCI+PHRoPkhUVFBfUkVGRVJFUjwvdGg+PHRkPidodHRwOi8vd3d3LnRhcnBp
dC5kazo4MjgwL3BvcnRhbC9NZW1iZXJzL3RvbC9NeUFydGljbGUvP3RiX3RyZWUtc2V0c3RhdGU9
ZSwwLEFBQUFBQUFBUmM0XyNBQUFBQUFBQVJjNF8nPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCIg
YWxpZ249ImxlZnQiPjx0aD5TRVJWRVJfTkFNRTwvdGg+PHRkPidhYWRhbC50YW5naHVzLmRrJzwv
dGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+R0FURVdBWV9JTlRFUkZB
Q0U8L3RoPjx0ZD4nQ0dJLzEuMSc8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVm
dCI+PHRoPkhUVFBfVVNFUl9BR0VOVDwvdGg+PHRkPidNb3ppbGxhLzUuMCAoY29tcGF0aWJsZTsg
S29ucXVlcm9yLzIuMi4yOyBMaW51eDsgWDExOyBlbiwgZW5fVVMpJzwvdGQ+PC90cj48dHIgdmFs
aWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48dGg+SFRUUF9BQ0NFUFQ8L3RoPjx0ZD4ndGV4dC8qLCBp
bWFnZS9qcGVnLCBpbWFnZS9wbmcsIGltYWdlLyosICovKic8L3RkPjwvdHI+PC90YWJsZT4sCiAn
cm9vdCc6IDxBcHBsaWNhdGlvbiBpbnN0YW5jZSBhdCA5MDFmMTA4PiwKICd0ZW1wbGF0ZSc6IDxG
U1BhZ2VUZW1wbGF0ZSBpbnN0YW5jZSBhdCA4ZWJjMWY4PiwKICd0cmF2ZXJzZV9zdWJwYXRoJzog
W10sCiAndXNlcic6IHRvbH0pCiAgRmlsZSAvaG9tZS90b2wvem9wZS0yLjUvbGliL3B5dGhvbi9U
QUwvVEFMSW50ZXJwcmV0ZXIucHksIGxpbmUgMTU4LCBpbiBfX2NhbGxfXwogIEZpbGUgL2hvbWUv
dG9sL3pvcGUtMi41L2xpYi9weXRob24vVEFML1RBTEludGVycHJldGVyLnB5LCBsaW5lIDE5MSwg
aW4gaW50ZXJwcmV0CiAgRmlsZSAvaG9tZS90b2wvem9wZS0yLjUvbGliL3B5dGhvbi9UQUwvVEFM
SW50ZXJwcmV0ZXIucHksIGxpbmUgNTIzLCBpbiBkb191c2VNYWNybwogIEZpbGUgL2hvbWUvdG9s
L3pvcGUtMi41L2xpYi9weXRob24vVEFML1RBTEludGVycHJldGVyLnB5LCBsaW5lIDE5MSwgaW4g
aW50ZXJwcmV0CiAgRmlsZSAvaG9tZS90b2wvem9wZS0yLjUvbGliL3B5dGhvbi9UQUwvVEFMSW50
ZXJwcmV0ZXIucHksIGxpbmUgNTQyLCBpbiBkb19kZWZpbmVTbG90CiAgRmlsZSAvaG9tZS90b2wv
em9wZS0yLjUvbGliL3B5dGhvbi9UQUwvVEFMSW50ZXJwcmV0ZXIucHksIGxpbmUgMTkxLCBpbiBp
bnRlcnByZXQKICBGaWxlIC9ob21lL3RvbC96b3BlLTIuNS9saWIvcHl0aG9uL1RBTC9UQUxJbnRl
cnByZXRlci5weSwgbGluZSA0MzIsIGluIGRvX2luc2VydFN0cnVjdHVyZV90YWwKICBGaWxlIC9o
b21lL3RvbC96b3BlLTIuNS9saWIvcHl0aG9uL1Byb2R1Y3RzL1BhZ2VUZW1wbGF0ZXMvVEFMRVMu
cHksIGxpbmUgMjQ3LCBpbiBldmFsdWF0ZQogIEZpbGUgL2hvbWUvdG9sL3pvcGUtMi41L2xpYi9w
eXRob24vUHJvZHVjdHMvUGFnZVRlbXBsYXRlcy9FeHByZXNzaW9ucy5weSwgbGluZSAxODksIGlu
IF9fY2FsbF9fCiAgRmlsZSAvaG9tZS90b2wvem9wZS0yLjUvbGliL3B5dGhvbi9Qcm9kdWN0cy9Q
YWdlVGVtcGxhdGVzL0V4cHJlc3Npb25zLnB5LCBsaW5lIDE4NCwgaW4gX2V2YWwKICBGaWxlIC9o
b21lL3RvbC96b3BlLTIuNS9saWIvcHl0aG9uL1Byb2R1Y3RzL1BhZ2VUZW1wbGF0ZXMvRXhwcmVz
c2lvbnMucHksIGxpbmUgODQsIGluIHJlbmRlcgogICAgKE9iamVjdDogYWJvdmVJblRocmVhZCkK
ICBGaWxlIC9ob21lL3RvbC96b3BlLTIuNS9saWIvcHl0aG9uL1Byb2R1Y3RzL1BhZ2VUZW1wbGF0
ZXMvWlJQeXRob25FeHByLnB5LCBsaW5lIDc1LCBpbiBjYWxsX3dpdGhfbnMKICAgIChPYmplY3Q6
IF9fcmVuZGVyX3dpdGhfbmFtZXNwYWNlX18pCiAgRmlsZSAvaG9tZS90b2wvem9wZS0yLjUvbGli
L3B5dGhvbi9TaGFyZWQvREMvU2NyaXB0cy9CaW5kaW5ncy5weSwgbGluZSAyNjYsIGluIF9fcmVu
ZGVyX3dpdGhfbmFtZXNwYWNlX18KICAgIChPYmplY3Q6IGFib3ZlSW5UaHJlYWQpCiAgRmlsZSAv
aG9tZS90b2wvem9wZS0yLjUvbGliL3B5dGhvbi9TaGFyZWQvREMvU2NyaXB0cy9CaW5kaW5ncy5w
eSwgbGluZSAyODMsIGluIF9iaW5kQW5kRXhlYwogICAgKE9iamVjdDogYWJvdmVJblRocmVhZCkK
ICBGaWxlIC9ob21lL3RvbC96b3BlLTIuNS9saWIvcHl0aG9uL1Byb2R1Y3RzL0NNRkNvcmUvRlNQ
eXRob25TY3JpcHQucHksIGxpbmUgMTE1LCBpbiBfZXhlYwogICAgKE9iamVjdDogYWJvdmVJblRo
cmVhZCkKICAgIChJbmZvOiAoeydzY3JpcHQnOiA8RlNQeXRob25TY3JpcHQgaW5zdGFuY2UgYXQg
OGQyMGYxOD4sICdjb250ZXh0JzogPERpc2N1c3Npb25JdGVtIGluc3RhbmNlIGF0IDhiMmQ5OTA+
LCAnY29udGFpbmVyJzogPENNRlNpdGUgaW5zdGFuY2UgYXQgOTEyZWViOD4sICd0cmF2ZXJzZV9z
dWJwYXRoJzogW119LCAoKSwge30sIE5vbmUpKQogIEZpbGUgU2NyaXB0IChQeXRob24pLCBsaW5l
IDIsIGluIGFib3ZlSW5UaHJlYWQKICAgIChPYmplY3Q6IGd1YXJkZWRfZ2V0aXRlbSkKICBGaWxl
IC9ob21lL3RvbC96b3BlLTIuNS9saWIvcHl0aG9uL1Byb2R1Y3RzL0NNRkRlZmF1bHQvRGlzY3Vz
c2lvbkl0ZW0ucHksIGxpbmUgMTUzLCBpbiBwYXJlbnRzSW5UaHJlYWQKICAgIChPYmplY3Q6IDEw
MTEwNDcxMTkpClRBTEVTRXJyb3I6IFNvcnJ5LCBhbiBlcnJvciBvY2N1cnJlZAoKCgoKVHJvdWJs
ZXNob290aW5nIFN1Z2dlc3Rpb25zCgpUaGUgVVJMIG1heSBiZSBpbmNvcnJlY3QuClRoZSBwYXJh
bWV0ZXJzIHBhc3NlZCB0byB0aGlzIHJlc291cmNlIG1heSBiZSBpbmNvcnJlY3QuCkEgcmVzb3Vy
Y2UgdGhhdCB0aGlzIHJlc291cmNlIHJlbGllcyBvbiBtYXkgYmUgZW5jb3VudGVyaW5nIGFuIGVy
cm9yLgoKRm9yIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVycm9yLCBwbGVh
c2UgcmVmZXIgdG8gdGhlIEhUTUwgc291cmNlIGZvciB0aGlzIHBhZ2UuCgpJZiB0aGUgZXJyb3Ig
cGVyc2lzdHMgcGxlYXNlIGNvbnRhY3QgdGhlIHNpdGUgbWFpbnRhaW5lci4gVGhhbmsgeW91IGZv
ciB5b3VyIHBhdGllbmNlLiA=

--------------Boundary-00=_ZOCYWLBGHE3WJA7OQT3J--