← Back to Files
KaiChat.Tests.dll
MZ����@��� �!�L�!This program cannot be run in DOS mode.
$PELRN���"08:V `@ �`��UO`���TT H.text@6 8 `.rsrc�`:@@.reloc�@@BVH�{\�!>(G
}H
*2{H
sI
*
*
*
*R{H
�
oJ
*V,sK
z{H
�
*sL
z
*
*sL
zsL
z^(M
{H
�
oN
*v(M
{H
�
oN
-+*sL
zsL
zsL
z2{H
sI
*
*B,sK
z{H
*
*
*sL
zsL
zJ(M
{H
oN
*:{H
�
*sL
zB,sK
z{H
*sL
zb(M
{H
oN
-+*sL
zsL
z0+"�%rp~�%-&�#sO
%��sP
�%rSp~�%-&�$sO
%��sP
�%r�p~�%-&�%sO
%��sP
�%r�p~�%-&�&sO
%��sP
�%rOp~�%-&�'sO
%��sP
�%r�p~�%-&~���sO
%��sP
�%rp~�%-&~���sO
%��sP
�%r�p~�%-&~���sO
%��sP
�%r�p~�%-&~���sO
%��sP
�% r'p~�%-&~���sO
%��sP
�%
rgp~�%-&~���sO
%��sP
�%r�p~�%-&~���sO
%��sP
�%rp~�%-&~���sO
%��sP
�%
r[p~�%-&�0sO
%��sP
�%r�p~�%-&�1sO
%��sP
�%r�p~�%-&�2sO
%��sP
�%rAp~�%-&�3sO
%��sP
�%r�p~�%-&�4sO
%��sP
�%r�p~�%-&�6sO
%��sP
�%r1p~�%-&�7sO
%��sP
�%r�p~�%-&�8sO
%��sP
�%r�p~�%-&�9sO
%��sP
�%rGp~�%-&�:sO
%��sP
�%r�p~�%-&�5sO
%��sP
�%r'p~�%-&�;sO
%��sP
�%rwp~�%-&�<sO
%��sP
�%r�p~�%-&�=sO
%��sP
�%r5 p~�%-&�?sO
%��sP
�%r� p~�%-&�>sO
%��sP
�%r(
p~�%-&�@sO
%��sP
�%r�
p~�%-&~���sO
%��sP
�%r�
p~�%-&~���sO
%��sP
�% r@p~�%-&~���sO
%��sP
�%!r�p~�%-&~���sO
%��sP
�
+i �{Q
oR
r(p{S
(T
(U
�2X(V
r4p{S
r@poW
(X
oY
� X
�i2��,;(V
(Z
(+rFp(\
(]
oY
(^
rhp(U
*<(d2"(G
*0*r�p(_
r�p(Tr
p([(V*0%r
p(_
r�p(Tr�
p(V*0=r�
p
r
pr�p(`
oa
r�p(Xr$pob
(U*0CrNp
r�p(_
r�p(`
oa
ob
(Woc
r p(X*0>r�
p
rrpr�p(`
oa
ob
(Woc
rOp(W*01s�
(d
}�}|�(+|�(f
*01s�
(d
}�}�|�(+|�(f
*01s�
(d
}�}�|�(+|�(f
*01s�
(d
}2}1|2(+|2(f
*01s�
(d
}*})|*(+|*(f
*01 s�
(d
}D}C|D(+|D(f
*01
s�
(d
}}|(+|(f
*01s�
(d
}}|( +|(f
*0�sg
oh
si
%r�poj
%r�pok
ol
r�p(Mom
r�p(
+rpon
rp(Sr'p(+r_pon
r�p(Sr�p(+r�pon
r�p(Sr�p(+*0�sg
oh
si
%r�poj
%r)pok
ol
r)p(Mom
r�p(
+r�pon
rp(Sr�p(+r-pon
r�p(SrWp(+r�pon
r�p(Sr�p(+*0�sg
oh
si
%r�poj
%r�pok
ol
r�p(Mom
rp(
+rpon
rp(SrOp(+r�pon
r�p(Sr�p(+*0�sg
oh
si
%r�poj
%r�pok
ol
r�p(Mom
r)p(
+rpon
rp(Srsp(+r�pon
r�p(Sr�p(+*0Osg
oh
si
%r�poj
%rpok
ol
rp(Mom
r�p(
+*0Osg
oh
si
%r�poj
%r;pok
ol
r;p(Mom
rwp(
+*0�
r�p(H
(Kom
rrp(
+rpon
rp(Sr�p(+r_pon
r�p(Srp(+rRp(Srppoo
r�p(X*0<r�p(H
(Kom
rbp(
+r�prRp(S(U*0frpr p(L
om
r�p(
+rpon
rp(Sr�p(+r_pon
r�p(Srp(+*0�si
%r
poj
%rpok
%r pop
%sq
%(+%(
+(t
su
%rlpov
%rpow
%r�pox
Qoy
(I
oz
r
pr�p({
(|
rp(+r prpp({
(|
r�p(+r�p({
(}
rlpr�p({
(|
rp(+r\prnp({
(|
rxp(+rpr\p({
r�p({
(|
r�p(+si
%r poj
%r pok
%s~
%rlpo
%r�po�
%r-po�
%r�po�
%rn po�
o�
(I
oz
r pr�p({
(|
r~ p(+rlpr� p({
(|
r� p(+si
%r poj
%rT!pok
(Ir�!poz
r�p({
(|
r�!p(+�#,o2
� , o2
�,o2
�*ALJ0z
�����0|r0"p(J�,(�
rT"poz
rf"p({
rnp({
(|
rx"p(+oz
r�"p(�
r�"p(Wr0"p(J�,(�
oz
rf"p(�
r`#p(Xoz
r�"p({
(}
r\p({
r�#p({
(|
%-&rpr�#p(Ur$p(Urc$p(J�,(�
oz
rf"p(�
ro$p(X�! , o2
�,o2
�,o2
�*AL7#Z��eSp0P ,~�%-&~���s�
%��(N
P{�
r�$p(
+{�
rl%p(W*0 ws�
si
%r�poj
%x Ns�
ok
% �s�
o�
(Ro�
r�%p(Uo�
�2�r&p(W*0� �
(�
#$�(�
#�(�
s�
�(Q
s�
�(Q 1j(�
(�
, 3j(�
(�
+rt&p(W~�
r 'p(+*0rrs'pr�'prpr�'ps�
s�
s�
r(pra(prprk(ps�
s�
s�
(Pr�(p(X(Pr�(p(W*0�s~~�
s�
�3(�
re)p$(�
%-&r�)ps�
z�3(�
r
*p$(�
%-&r1*ps�
z�%�}�%r�*p�o�
&r�*p(+r�*p(
+re+p(+r�+p(X�%�}�%r�*p�o�
&r�*p(+r�+p(
+re+p(+r9,p(Wr�,p(+
(�
r�,p(W�%�}�%r-p�o�
&r�*p(+rA-p(
+re+p(+r�-p(Xo�
&r�*p(+r�-p(
+re+p(+r/.p(X*0jrw.pr�.p(Ar�.p(WrI/pr�.p(Ar�/p(Wr�/pr0p(Ar50p(Wr�0pr�.p(Ar�0p(X*0U�3(�
re1p((�
%-&r�1ps�
z
�%�%�o�
%-&r�1ps�
z�}+*01s�
(d
}a}`|a(+|a(f
*01s�
(d
}u}t|u(+|u(f
*01s�
(d
}T}S|T(+|T(f
*01s�
(d
}M}L|M(+|M(f
*0&rC2p(�
rY2p(�
(�
o�
+*0's�
s�
%rc2po�
(�
o�
+*0LЅ(�
r�2p((�
%-&r�2ps�
z
�%�o�
%-&r%3ps�
z+*0b�6(�
r[3p((�
%-&ru3ps�
z
�%�o�
%-&r�3ps�
z(+�,(�
+ *0
s�
s�
%r4po�
%r?4po�
%o�
~�
s�
�6(�
rI4p$(�
%-&rc4ps�
z�%s�
%si
%r�poj
%r�4pok
ol
�%�}�%�}�%�}�%�}�%�}�o�
%-&r�4ps�
zo�
r5po�
%-&+o�
%-&+o�
%-&r'5ps�
z
+ *0C!o�
rk5po�
%-&+(�
u%-&rw5ps�
z
(+(++*0�"Ѕ(�
r�5p o�
%-&r�5ps�
z
4�%r/6p�%�%�(�
%-&r=6ps�
z(�
oJ
Ѕ(�
r�6p((�
%-&r�6ps�
z
�%�o�
u%-&r7ps�
z(+(++*0a#Ѕ(�
r_7p((�
%-&r�7ps�
z
�%�%�o�
u%-&r8ps�
z(+(++*0�$�3(�
r]8p o�
%-&r�8ps�
z
�'(�
�"%�o�
(�
t+o�
(Oo
&X�-��3(�
r�8p((�
%-&r-9ps�
z�%�%�}�
o�
u%-&r�9ps�
z(+(+ ��}s�
+*0�% �s�
l(�
sg
%r�9po�
%r:po�
%o�
si
%r�poj
%ok
%o�
4�%�%�%�/�(�
%-&r;:ps�
z+*0Q�3(�
r�:p((�
%-&r�:ps�
z
�%�o�
%-&r-;ps�
z�}+*0h&�3(�
rs;p((�
%-&r�;ps�
z
�%��%��%�/�o�
%-&r#<ps�
z�0+*0>'�3(�
ru<p((�
%-&r�<ps�
z
�%�%�o�
&*0Eo�
o�
%-&+(�
%-&+o�
%-&r2=prF=p(�
s�
z
+*0f(([o�
�
,P)(Z
rr=p(\
(�
r�=p(\
(�
r�=p(\
(]
s�
z*0a(oo
�
,P(Z
r�=p(\
(�
r�=p(\
(�
r�=p(\
(]
s�
z*0^(oo
,P(Z
r�=p(\
(�
r�=p(\
(�
r�=p(\
(]
s�
z*0)�
,s�
z*0)
,s�
z*0n((�
o�
�
,Y(Z
(�
r$>p(\
(+r<>p(\
(+rJ>p(\
(]
s�
z*0
*o�
$o�
%-[&$(Z
rN>p(\
(�
r�>p(\
o�
o�
(�
rJ>p(\
(]
s�
z
o�
�,�+|u,
�+,+^*(Z
r�>p(\
(�
r�>p(\
�(�
o�
(�
rJ>p(\
(]
s�
z*0$r�>pr�>po�
o�
o�
+*B(G
}*{*"}*0+(^{(+
+*0D�s�%}�%}�%}�%}�%}�%}�%}�%}�*�~�
}}(G
}*r0p*r�.p*0?+r�>p{~�%-&~���s�
%��(+(�
(+
+*0<,{~�%-&~���s�
%��(+(+
(++*0+{o�
(+
+*0-{o�
(�
+*0-{r�>po�
(�
+*0-{r�>po�
(�
+*0-{o�
&(�
+*0-(�
+*0 .{-~�
+{( +
+*03/{
, (!++}(�
}(!++*0-}}(�
+*0-}(�
+*0g0{-$r?prp��s�
+0r?p|r:?p(�
{s�
(�
s�
s�
("++*F(G
(s*{*"}*{*"}*s�
*(r*0$1(t
X(u(s(�
+*(�
*(�
*
*b(�
-r>?p(�
+*
*"(G
*{ *"} *rp*Ns�
%o�
(#+*Ns�
%o�
(#+*Ns�
%o�
(#+*Ns�
%o�
(#+*052(
X(�s�
%o�
%rB?po�
(#++*"(G
*{�
*~*
*0b3o�
(�
�,H(�
(Z
rV?p(\
($+rZ?p(\
(�
(]
o�
*Ns�
}�
(G
*
*"(G
*.s��*>(G
}�
*2{�
�
*{�
*0){�
-%
}�
+*"}�
**"(G
*0�4{
6++4(�
r`?p(�
r|?p(�
(�
}{(�
&E+8�8O8'8{(Gs�
}{r�?pr�?ps�
�> o�
o�
(�
-D%
}}|(%+ݾ{|�$%
}(�
}{}}{o�
{o�
(W{o�
o�
(&+}{{o�
s�
�> o�
o�
(�
-F%
}}|(%+��{|�$%
}(�
}{}}{o�
{o�
(W{o�
o�
(&+o�
r�?p(
+{{o�
s�
�> o�
o�
(�
-F%
}}|(%+�{|�$%
}(�
}{}}{o�
{o�
(W{o�
o�
(&+o�
r�?p(
+{r4@prN@prb@ps�
�> o�
o�
(�
-F%
}}|(%+�.{|�$%
}(�
}{}}{o�
{o�
(W{o�
o�
~�%-&~���s
%��('+o�
r|@p(
+}}}}}}�%/ {(
,
{(
��! �}}| (
��}}|(
*A4D�?%_f!*"(G
*05{
6++4(�
r`?p(�
r|?p(�
(�
}{(�
&E+8�8(8�8�8�{(Gs�
}{r�@pjr�@ps
�> o
o�
(�
-D%
}}&|((+�,{&|&�$%
}(�
}#{#} }#{ o�
{ o�
(W{�> o
o�
(�
-F%
}}&|((+݇{&|&�$%
}(�
& L(
o
(
-F%
}}'|()+�{'|'�C%
}(
{�> o
o
(
-F%
}}(|(*+ݭ{(|(�'%
}(
}${$}!}${!o
rAp(W{!o
o
r�Ap(
+{�> o
o
(
-F%
}}(|(*+��{(|(�'%
}(
}%{%}"}%{"o
r�Ap(X{"o
o
rBp(
+}} }!}"�%/ {(
,
{(
��!
�}}|
(
��}}|(
*A4Dr�%��!*"(G
*0�6{)
,++4(�
r`?p(�
r|?p(�
(�
}+{+(�
&,++n{+(Gs�
},{,}.{,�> o
o
(
-D%
})}0|*(++��{0|0�*%
})(
}/{.{/o
}-}.}/rfBp{-(UrzBp{-(Ur�Bp{-(U},}-�%/ {+(
,
{+(
��!�})}+|*(
��})}+|*(
*A4CJ%jq!*"(G
*0�7{1
6++4(�
r`?p(�
r|?p(�
(�
}3{3(�
&E +#8�8Q8�8`8(8�86{3(Gs�
}4{4�> o
o�
(�
-D%
}1}@|2(,+��{@|@�$%
}1(�
};{;}5};{5o�
{5o�
(W{5o�
o
r�Bp(W{3rCp(
(
r.Cp(W L(
o
(
-F%
}1}A|2(-+�{A|A�C%
}1(
{4�> o
o
(
-F%
}1}B|2(.+ݭ{B|B�*%
}1(
}<{<}6}<{6o
j��rzCp(W{4�> o
o�
(�
-F%
}1}@|2(,+�{@|@�$%
}1(�
}={=}7}={7o�
{7o�
(W{7o�
o
r�Cp(X{7o�
o
}8 L(
o
(
-F%
}1}A|2(-+�9{A|A�C%
}1(
{4�> o
o
(
-F%
}1 }B|2 (.+��{B |B�*%
}1 (
}>{>}9}>{8{9o
r�Cp(/+{4�> o
o�
(�
-F%
}1
}@|2
(,+�!{@
|@�$%
}1
(�
}?{?}:}?{:o�
{:o�
(W{:o�
o
rHDp(Xj{:o�
o
r�Dp(/+}4}5}6}7}9}:�%/ {3(
,
{3(
��!�}1}3|2(
��}1}3|2(
*A4D;%��!*"(G
*0u8{C
6++4(�
r`?p(�
r|?p(�
(�
}E{E(�
&,+.++s8{E(Gs�
}F{Fr�Dps
�> o
o�
(�
-D%
}C}K|D(0+ݰ{K|K�$%
}C(�
}I{I}G}I{Go�
{Go�
(W{F�> o!
o�
(�
-F%
}C}K|D(0+�{K|K�$%
}C(�
}J{J}H}J{Ho�
{Ho�
(Wr�Dp{Ho�
(Ur�Dp{F{Ho�
o
(U}F}G}H�%/ {E(
,
{E(
��!�}C}E|D(
��}C}E|D(
*A4D�%18!*"(G
*0�9{L
,+8�s�
%rEpr<Epo�
sa}Nr�Eps\}O{N{O~"
s#
}P{PrFp�>o$
o%
(&
-C%
}L}R
|M(1+��{R|R�-%
}L('
&{Oo]%-&+
(2+o(
%-&rTFps�
z}Qr�Fp{Q(Ur�Fp{Q(UrGp{Q(U�6�}L}N}O}P}Q|M(
�0�}L}N}O}P}Q|M(
*A186*"(G
*0:{S
,+.+
8�8�r�Gp}Us�
%r�>p{Uo�
sa}Vr4Hps\}Ws)
}X{V{W{Xs#
}Y{Yr�Ip�>o$
o%
(&
-C%
}S}^
|T(3+�H{^|^�-%
}S('
}\{\}Z}\{Zo*
rJp(X{Zo+
o,
r�Jp(
+{Zo+
o-
o.
r�Jp(Xr�>p{Zo+
o-
o/
r(Kp(+rnKp{Zo+
o-
o0
(U{Vr�>pofo1
(2
-E%
}S}_
|T(4+�*{_|_�2%
}S(3
}]{]}[}]{Uo�
{[o�
r�Kp(+{Xo4
~�%-&~���s5
%��(5+r�Kp(W�K�}S}U}V}W}X}Y}Z}[|T(
�E�}S}U}V}W}X}Y}Z}[|T(
*A��K*"(G
*0�;{`
6++4(�
r`?p(�
r|?p(�
(�
}b{b(�
&E %*+-8�8W8!8�8N8�8_8�8G{b(G~7
s8
}c{b{co9
/~:
o�
(
}d �s�
}e{c{eo;
o<
(=
-C%
}`}p
|a(6+�o{p|p�6%
}`(>
}i{ir4Lp(W{d(
r�Lp(W{co?
o@
(A
-E%
}`}q
|a(7+��{q|q�8%
}`(B
}j{j}f}j{foC
r�Lp(W{e{foD
(E
r>Mp(8+{c|e#�?(�
o;
o<
(=
-E%
}`}p
|a(6+�
{p|p�6%
}`(>
}k{kr�Mp(X{co?
o@
(A
-E%
}`}q
|a(7+ݏ{q|q�8%
}`(B
}l{l}g}l{e{goD
(E
rNp(8+{c|e#@(�
oF
o
(
-E%
}`}r
|a(9+��{r|r�C%
}`(
{co?
o@
(A
-E%
}` }q
|a (7+�n{q |q�8%
}` (B
}m{m}h}m|e#@(�
{hoD
(E
r�Np(8+{coG
o
(
-E%
}`
}r
|a
(9+ݻ{r
|r�C%
}`
(
{co?
o@
(A
-E%
}`}q
|a(7+�S{q|q�8%
}`(B
}n{noC
rOp(X}n{coH
oI
(J
-E%
}`}s
|a(:+��{s|s�:%
}`(K
}o~�
{orqOp(8+}c}d}f}g}h�%/ {b(
,
{b(
��!�}`}b|a(
��}`}b|a(
*A4DJ%jq!*"(G
*0~<{t
6++Q(�
r`?psZ
r�Op(\
(�
r|?p(;+(]
(�
}v{v(�
&E+8�8�8�8{v(G~7
s8
}wr Pp}x{wrmPp{xoM
o
(
-C%
}t}}
|u(<+�}{}|}�C%
}t(
{wrmPpoN
o1
(2
-E%
}t}~
|u(=+�{~|~�2%
}t(3
}{{{}y}{{yr�Pp(Fr�Pp(
+r Qp{y(UrQp{y(U{wrmPp{xoM
o
(
-E%
}t}}
|u(<+�H{}|}�C%
}t(
{wrmPpoN
o1
(2
-E%
}t}~
|u(=+��{~|~�2%
}t(3
}|{|}z}|{zr�Pp(FrQp(
+}w}x}y}z�%/ {v(
,
{v(
��!�}t}v|u(
��}t}v|u(
*A4a�%:A!*"(G
*0�={
,+8�r�
psq}�s�}�r
ps\{�{�sO
}�{�r�Qpr�p�>oP
oQ
(R
-C%
}}�
|�(>+��{�|��<%
}(S
}�{�}�}�{�oT
r�p(W{�oU
r�Qp(X{�otr�Qp(
+{�orIRp(
+�6�}}�}�}�}�|�(
�0�}}�}�}�}�|�(
*A3:6*"(G
*0�>{�
,+8�r�Rpsq}�s�}�r�Rps\{�{�sO
}�{�r+Spr�p�>oP
oQ
(R
-C%
}�}�
|�(?+�{�|��<%
}�(S
}�{�}�}�{�oT
{�oV
(X{�oU
rUSp(X{�otr�Sp(
+{�or�Sp(
+�6�}�}�}�}�}�|�(
�0�}�}�}�}�}�|�(
*A9@6*"(G
*0?{�
,+8�r�
psq}�s�}�rTps\{�{�sO
}�{�r�Qpr�p�>oP
oQ
(R
-C%
}�}�
|�(@+�a{�|��<%
}�(S
}�{�}�}�{�oT
{�oV
(X{�oU
r
Up(Wr@Up{�oV
(UrZUp{�oV
(U{�otr�Up(
+{�orVp(
+r�p{�or(Tr
p{�or([(V�6�}�}�}�}�}�|�(
�0�}�}�}�}�}�|�(
*A��6*.s���*"(G
*0@((o
(
*0@()o
(
*0@(*o
(
*0@(+o
(
*0@(,o
(
*0@(-o
(
*0@(.o
(
*0@(/o
(
*0@(Bo
(
*0@(Co
(
*0@(Do
(
*0@(Eo
(
*FoW
rN@p(X
*0'A(Z
rTVp(\
(+(]
*6rfVpoo
*�(G
(Y
}�}�(Z
}�*0(B{�
�.+,+++Y{�,ݿ%
}�}�(�
o
(
-C%
}�}�|�(A+ݷ{�|��C%
}�(
}��F
�}�{�,{�o\
}�}�|�(]
|� (^
�D�}�{�,{�o\
}�}�|�(]
|�(_
**��F*0C{��3+{�(Z
3�}�(Y
}�}�
+�s�
{�}�{�}�|��>(`
, }�+R{�(`
-�>(`
,{�}�+#{�(a
}�{�ob
}�{�}�{�}�{�}�{�}�{�}�*0cD{��3
�>*|�(c
|�(B+|�(e
|�(f
3|�(g
sh
*si
*{�*6|�(g
*6|�(f
*F|�(j
*:|�(g
&*6|�(f
*F|�(j
*0VE{�2sL
z{��3
�Z*}�|�(c
|�(B+|�(e
sk
*.s���*"(G
*zr�Vp(l
r�>p(m
(X
*�(l
(m
o�
j(�
sn
*BSJBv4.0.30319l�1#~�1�:#Strings�l�V#US��#GUID���#BlobW� �3����%n!EH?
BZ$l ;,� ;,��+�,��"� �& �&��&��&� �&�&9 ;,�;,�2r%pN0�*N0�;,�&N0�9r%�8N06����L���#�|r%�r%�&r%�'r%*;,
&,� ;,�r%+;,i�+�#�.
�&�.U�
4�'�3�'�r%
6$�.w0�'�)V9
�.,r%�%r%+r%
�3,
�,V(�&�&h&
,Q ;,�r%L(�&f;,�r%�;,
�2,�%B"�);,
�,
�*,��+�*;,
b9,
b,
B,
�(,
m,
�2,
�,
�,K�+��+}�.F;,D��;,�x�.�,S1�,�r%&.�,��,�r%�#�.�);,W�,�B"
Z,��
a(,��
�,
c%�.i)r%
',
�3,�S"*S"$$S"�S"�r%y'r%c'r%���"r%"�r%�*�3r%
q,�'r%&�#,
��.Or%
3,��/�r%F.�&�'r%~%r%��&*�9�/*�&�/.�)h&.�/h&�)h&_7h&
��+�*�'a0�'2�3�(
,"�.�(�&6q�(�+r%�)�&p(�&|(�&�#�:�(
�8,
�8,
�8,
�7,�
�8,�+9�$9!9\i9a�9qz)9 }39 �9
��9��+9�o9��9� 9)��91�:9C��9L�[9S��9`� 9t��9�9��[9���9��!�9��O9��!�9��!l%-!��
��
!-�
'::1���
��
�
!�Y6��
!l%-Q�p�
�)�
��
��
v�
Y �
)�
��
�
��
��
$�
��
�
p�
�)�
��
��
v�
) �
�
��
e�
��
�
��p�
�)�
��
��
��
� �
9p�
�)�
��
��
��
3 �
�!/��
��
$��
�*�
�
��p�
�)�
��
��
^�
A �
9�
��
�
p�
�)�
$�(h,t �
1p�
�)�
��
�$�(L ;�
,�DA�
�D��
1�Ip�
�)�
��
�Q��
:�
V�V V���V$��V�V*V�:[�c�� mp�
�)�
��
�QG�
�
�
�
��
e�
�Ip�
�)�
�w�{hg �9��p�
�)�
�w�{hg �9��p�
�)�
�w�{hg �9���-�[,�Y.��}.�v*�i1�,*�Q*��0��7��-�8��7�''��,��,�r7����-�&&�E-�6��;���q�.����
����
����� ����� ���p�
�)�6�[5�
��)/���
<-�
7-�
�%��%�B/�=/�/��.�J$�E$��"�}"�/�/��.(6��T�~�P ��+}` ��+m � �6p � Y#s � 37'v �&(+� � �$2� � A%7� � �!#
� � m:#
� �=
� �")� �/B� �"=� �l87
� �g!G!�S2!�Q+S!� Y6!� �$p(!� %6+!� 4:#.!��}5!��(<!�L/�O!��'�^!�6!�e!� �$pv!� %�}!��!��!�A8��!�&2�!��(��+ �(�b 0)�� d)�� �)�� *�@ L*��� �*�l� �*��� +�,� L+��� �+��� �+�2� ,��� L,�� -�� �-�
l.�� /�� h/�b �/�� \0�� �0�h 1�6 4�
�5�� @6�N
�6�� t7�" �7�� �9�& :�� t:���"�:�q�"�:�G
�"4;���"t;��
"�;�$�;�o#%4<��(&�<�c1'�=�38*>��B+�>��M-T?�}
Z/P@�8k2�@��
t5XA�:{6�A���9B���;lB���=�B�Q�?PC��A�C���C�C��
�E�C�e�GtD��
�J�E�k�M�E��+N�E�-SO�E�&-�P�E���QF���X\F��+
_F� A#�`�F� #�`�F�{`�F��`$G��UaHG�%EbpG�kEd�G��.f�G�Eg�G��.iH�~�j0H�%�jpH���k�H�=�l�H��l+I��+l=I�h5�mEI�t5mNI��6nVI��6n_I�15ofI��ppI��Eq�I��.s�I��Et�I�1#v�I�^x�I�Az�I��+|�I��6|�I��6|�I� w#�}�I��H}J��S}J��_~*J��H�@J��_��J��+��J��,|��J��l��J�Gt��J��"{�
K��+�K��!K��+�*K��+�6K��+}�FK� 05'�SK� �4��\K�.9#�~K��2��K����K��+��K�M9�xP�y��zP��+��P�M9��T�y���T��+��T�M9��V�y���V��+��V�M9�]�y��]��+�]�M9��_�y���_��+��_�M9��a�y���a��+��a�M9��d�y���d��+�e�M9��k�y���k��+��k�M9��o�y���o��+��o�M9��q�y���q��+��q�M9�ps�y��rs��+�|s�M9��u�y���u��+��u��+��u�D��u���v�z� v�7�@v���`v��
��v����v���v����v���w�� w���@w����Tw�*���w�����w��+��w�M9�y�y��y�+��z����z� �4���z�!3���z��1���z�l��z�k3��z��1���z����z�N�J{��+�V{��+�_{�]��~{����m%�9�9�9�90!0!0!0!�90!0!�9�9m%m%�9�9m%�9�90!m%�9m%�9�.!9#�':"�)|9$/�"�&�0��97�:��9�5�3����)�2'c�#c�#a�#0!0!c�#�20!�0!<-�%B//J$�"/<-�%B//J$�"/�-�"a#a#�5'�5�5a#�''�(�(�50!0!a#a#a#�5a#�"�#n#a#'�0!#�9�:�"u-$-$�u�'�*m%��������������#|%p��%�%�%�&u�%S.�%�%�&u�%S.*"*"=IQ
-y��� * �
mmA�
�����������"e&a� �+�+�+
)�+1�+9�+A�+I�+Q�+Y�+a�+i�+y�+��+��6�x#�R7'�E(+�%2�Z%7��!#��:#�7=�L)��/B�$"=��87��!G�l2�+S��+\�6%p$�6$�:#$7}$L)$�/�$E(�$�!�,%p,Z%�,$"�,�8�,l2�O5'4O5��M9#��2� �+�+�!�+��+��M9�y��+i�+�y�+���+<>+�D>�DO5�L�3�L2�L���3�2����fq�+\l%-d�+}�!;a�+i�+t�2It�.S��+�|�+�|���i|\-yu2��T���*����yu2��T��+�����#�A)���2��9����#��Q#�3��;8���#�1�+1�,Sq�+q�qt5�7}��6�%py�/}qp"��+��6���%��%�Y�+Y�YY�0q�.�A�3I�: I�"�I%��+���\��"��9�H1ql$A4I�:>��+��\-���i�+y�+iy�+oq�(|q�"�y�#y.�y�0���+}�.���%���%���(���+���+}��+���
��+�%g.��+�i8�!#���yu2��w-��6 �+��+�Z%� '�0�1�!�A�+I�+I�5I�9I�#��
��+���+q�'�!
�:Q!
Y�8$Y�80�Ua{_�{q��a{��i�Y�6���+�y�+�1�1�12|y�#}���2I��.S'y��y�y�yy%�)�2-y� :��+�Y�2My�%q��+��%�)�#���!�y'!:y5�9�+�y�"y�9��+y�:61�+1�0;19�Yisy�6�,|7}�+dl%-dQ���#������"�^���:��+���+�U��*�$#��$�3���0#����A*)�00Y�; ����+M~S � hS,�+�Y�n�A16�{���'���3��+�9���)�9�)�*�#�3L 4�*�<#<�3�!;#!16 D�6�_ L�*�T#T�3�u$� )�"#�^��A16)�+� s�����+
�
��\�
1�+Z
1�l
d�*�l#l�3�qh5�t�+�;#��/�
|�6�%p��0#��"������*��#��3�t�,|��+�Y�: ��
A�+sA#��R)�A%���*��#��3�A���*��#��3�9/1#9���� �A��A=�A~���*��#��3��7A%EA�UQ�+}Q����*��#��3�I�*#I�%#I�� ��y�:��3
��
�������'���3}��.6
��=
��%I
��2�M9���%g
�2���3���+}��+k
����+
��9��� �
�+�
I�
M�
Q�
U�
Y�
]�
e�
i�
m�
q�
u�
y�
��
���
�
q�
!c�'[�...*.#3.+s.3�.;�.C�.Ks.SsCc�Ds�Ssga�mac�a�xds�����s��s�����s�����s��sg�c���xc��x��s�!c�!�x#��#s�$sg%s�Ac�A�xDsgEs�as�dsges��c��c��sg��m�c��c��s��c��sg���c��sg�s�c�#c�$��Cc�cc��c��c�����c��c�c�#c�Cc�a�cc�s�%s�Es�`c�es��c��s��c��s��c����c�������c�� �� �& �� c�@��@�s@��@c�`��`��`��`c�����������c������<����c������~����c�����������c����c�� c�$s�@c�`c��c��c��c��c�c� c�@c�`c��c��c��c��c�c�� �� c�@��@�@��@c�A�`��`�V`��`c�����������c�����������c�����c�����c� �� c� �� c�$ s�@ ��@ c�D s�` ��` c�a �� ��� c�� ��� c�� c�� ��� c�� �m
��
c�
�m
c�@
��@
c�A
�`
��`
c��
���
c��
���
c��
���
c��
���
c���c�� c�$��@��@c�`��`c��c��c������<!�@c�`c��c��c��sgDsg������c��sgc�$sg���s�c���Ds�`�gds��s��s����s��s�s�$s�Ds�ds��s��s�����`��d���s�����s� ��$��Dsg���������sg@�������`����� ��a��s�s�As����� ��`������������� ��@��As�`������s�����s�����s����@��`��[���)3=Gr���G_���NU_is}����Az�������${����/Fa��H � � >
�
j���
.
O
w
6�+�7�u��!�:��5�B��5��9��*-�E#�#�x5��6��6�{#�.-��4�4�I4�
]^bcrst!u!#�#�%�'�)�+�-!
#%')+-/1357 9";$=&A(C*E,G.I0K2M4O6Q8S:U<W>Y@["]$_&a(c*e.o0q
4o
6q:o<q@oBqFoHqLoNqRoTqXoZq^o`qdofqjolqporq�o�q�{�}���������������Lbiv�����&18A|^g��PX�����?�&Rh�� d @ m v Q
{
�
�
�
�
�
�
j�������'
[
�
�!1
�
E|2
�
N0
�
�'
�
0
�
$
�
�/
�
�
�
,
�
�/
�
h&
�
�(
�
�(
��::��������$�.�8�B���n���������?�C�Z�d�n�xU�q�s������n�f��s������?� �@����GG��� �) � �� �� �� �� �1
��
��
��
��
mn���������
�?�M�_�������
�b
<Main>$<>9__0_10<<Main>$>b__0_10<>s__10<<Main>$>g__KaiTimerServiceStartsPausesAndResets|0_20<<Main>$>g__ServerToolPlannerIgnoresNonToolMessages|0_30<<Main>$>g__MemoryUpdaterTripsFuseAfterConsecutiveFailures|0_40<<Main>$>g__ToApiMessageJson|0_50<<Main>$>g__GetStringProperty|0_60<>9__0_70<<Main>$>b__0_70<>9__0_0<<Main>$>b__0_0<>9__8_0<GetPersistentMemoryAsync>b__8_0<>9__9_0<ListMemoryFilesAsync>b__9_0<>9__0_11<<Main>$>b__0_11<>s__11<<Main>$>g__KaiTimerServiceFormatsStatus|0_21<<Main>$>g__ToolParserExtractsKaiTimerStart|0_31<<Main>$>g__MemoryUpdaterDetectsStagedMarkerFileChanges|0_41<<Main>$>g__BuildChatRequestJson|0_51<<Main>$>g__AssertStartsWith|0_61<>9__0_71<<Main>$>b__0_71<>9__0_1<<Main>$>b__0_1<initial>5__1<temp>5__1<files>5__1<memory>5__1<>u__1IValueTaskSource`1Nullable`1IEnumerable`1IAsyncEnumerable`1ManualResetValueTaskSourceCore`1ValueTask`1Span`1Action`1ICollection`1IReadOnlyCollection`1ILogger`1RecordingLogger`1NullLogger`1EqualityComparer`1TaskAwaiter`1IEnumerator`1IAsyncEnumerator`1IList`1<>z__ReadOnlySingleElementList`1IReadOnlyList`1Item1<<Main>$>g__CleansDuplicateLeadingSeparatorLines|0_12<>s__12<<Main>$>g__KaiTimerWheelSpinsEnabledSegment|0_22<<Main>$>g__ToolParserIgnoresFencedToolExamples|0_32<<Main>$>g__HasStagedPathChangeForTest|0_42<<Main>$>g__GetToolCalls|0_52<<Main>$>g__AssertContains|0_62<>9__0_2<<Main>$>b__0_2<service>5__2<chat>5__2<git>5__2<memory>5__2<>u__2Func`2ValueTuple`2KeyValuePair`2Dictionary`2Item2<<Main>$>g__StripsWholeResponseMarkdownFences|0_13<>s__13<<Main>$>g__KaiTimerCountersSupportManualChanges|0_23<<Main>$>g__NativeToolCallConverterExtractsKaiTimerStart|0_33<<Main>$>g__MemoryMarkerCreatesOnceAndDeletesCleanly|0_43<<Main>$>g__ConvertNativeToolCalls|0_53<<Main>$>g__AssertDoesNotContain|0_63<>9__0_3<<Main>$>b__0_3<duplicatePayload>5__3<add>5__3<service>5__3<create>5__3<markerPath>5__3<status>5__3<chat>5__3<start>5__3<>u__3Func`3<<Main>$>g__RejectsMissingExistingHeadings|0_14<>s__14<<Main>$>g__KaiTimerMilestonesClaimOnceAtThreshold|0_24<<Main>$>g__ChatServiceSerializesNativeToolTranscript|0_34<<Main>$>g__MemoryServiceSavesDeduplicatedSections|0_44<<Main>$>g__PlanServerToolCalls|0_54<<Main>$>g__AssertTrue|0_64<>9__0_4<<Main>$>b__0_4<once>5__4<firstPendingBaseline>5__4<due>5__4<running>5__4<spin>5__4<logger>5__4<counter>5__4<result>5__4<prompt>5__4<>s__4<>u__4<<Main>$>g__TreatsSeparatorOnlyRewriteAsNoMeaningfulChange|0_15<<Main>$>g__ServerToolPlannerStartsKaiTimer|0_25<<Main>$>g__ChatServiceDisablesDeepSeekThinkingForToolAcquisition|0_35<<Main>$>g__MemoryManagerRejectsTruncatedContent|0_45<<Main>$>g__SelectMemoryUpdateBatchForTest|0_55<<Main>$>g__AssertFalse|0_65<>9__0_5<<Main>$>b__0_5<created>5__5<service>5__5<twice>5__5<pause>5__5<secondCheck>5__5<increment>5__5<>s__5<<Main>$>g__AllowsAdditiveRewriteThatPreservesExistingHeadings|0_16<<Main>$>g__ServerToolPlannerChecksKaiTimerStatus|0_26<<Main>$>g__MemoryUpdaterBatchesPendingMessages|0_36<<Main>$>g__MemoryManagerPromptAsksForStaleCrossFileReconciliation|0_46<<Main>$>g__CreateMemoryUpdateCandidate|0_56<<Main>$>g__AssertEquals|0_66<>9__0_6<<Main>$>b__0_6<unchanged>5__6<pausedSeconds>5__6<result>5__6<decrement>5__6<>s__6<<Main>$>g__ServiceRejectsHeadingLossWithoutWriting|0_17<<Main>$>g__ServerToolPlannerPausesKaiTimer|0_27<<Main>$>g__MemoryUpdaterTrimsOversizedMessageTranscript|0_37<<Main>$>g__CountSections|0_47<<Main>$>g__ShouldAdvanceMemoryMarker|0_57<<Main>$>g__GetPrivateField|0_67<>9__0_7<<Main>$>b__0_7<automatic>5__7<advanced>5__7<stillPaused>5__7<current>5__7<StreamChatAsync>d__7<>s__7<<Main>$>g__ServiceSkipsSeparatorOnlyNoOpWithoutWriting|0_18<<Main>$>g__ServerToolPlannerResetsKaiTimer|0_28<<Main>$>g__MemoryUpdaterCoolsDownAfterMarkerWrite|0_38<<Main>$>g__BuildTestConfiguration|0_48<<Main>$>g__GetAutomaticMemoryCooldownDelay|0_58<<Main>$>g__Normalize|0_68<>9__0_8<<Main>$>b__0_8<reset>5__8<>s__8<<Main>$>g__ServiceWritesAndCommitsValidRewrite|0_19<<Main>$>g__ServerToolPlannerIgnoresToolMetaQuestions|0_29<<Main>$>g__MemoryUpdaterDoesNotAdvanceMarkerWithoutSuccessfulOperation|0_39<<Main>$>g__ExtractToolCalls|0_49<<Main>$>g__AppendMessageForMemoryUpdate|0_59<>9__0_69<<Main>$>b__0_69<>9<>9__0_9<<Main>$>b__0_9<>s__9<Module><>OSystem.IOTSystem.Collections.Generic.IList<T>.this[]System.Collections.Generic.IReadOnlyList<T>.this[]System.Collections.IList.this[]ChatHub<>cSystem.Collections.GenericManageAsyncRenameFileAsyncDeleteFileAsyncWriteFileAsyncReadMemoryFileAsyncSoftDeleteMemoryFileAsyncSaveMemoryFileAsyncCreateMilestoneAsyncSystem.IAsyncDisposable.DisposeAsyncPauseAsyncGetLastUpdateAsyncSetLastUpdateAsyncGetStateAsyncRewriteAsyncStagePathAsyncSpinWheelAsyncStageAllAsyncSaveFullAsyncDeleteSectionAsyncGetUpdateMarkerInfoAsyncEnsureUpdateMarkerAsyncDeleteUpdateMarkerAsyncCreateCounterAsyncDecrementCounterAsyncIncrementCounterAsyncListMemoryFilesAsyncStatusAsyncStreamChatAsyncResetAsyncAutoCommitAsyncCreateWheelSegmentAsyncStartAsyncSystem.Collections.Generic.IAsyncEnumerator<System.String>.MoveNextAsyncGetMilestonePromptContextAsyncSaveMemoryAsyncGetPersistentMemoryAsyncget_ParsedUtclastRunCompletedUtcmarkerLastWriteUtcnowUtc<<<Main>$>g__KaiTimerServiceStartsPausesAndResets|0_20>d<<<Main>$>g__KaiTimerServiceFormatsStatus|0_21>d<<<Main>$>g__KaiTimerWheelSpinsEnabledSegment|0_22>d<<<Main>$>g__KaiTimerCountersSupportManualChanges|0_23>d<<<Main>$>g__MemoryMarkerCreatesOnceAndDeletesCleanly|0_43>d<<<Main>$>g__KaiTimerMilestonesClaimOnceAtThreshold|0_24>d<<<Main>$>g__MemoryServiceSavesDeduplicatedSections|0_44>d<<<Main>$>g__MemoryManagerRejectsTruncatedContent|0_45>d<<<Main>$>g__MemoryManagerPromptAsksForStaleCrossFileReconciliation|0_46>d<<<Main>$>g__ServiceRejectsHeadingLossWithoutWriting|0_17>d<<<Main>$>g__ServiceSkipsSeparatorOnlyNoOpWithoutWriting|0_18>d<<<Main>$>g__ServiceWritesAndCommitsValidRewrite|0_19>dget_Idset_Idget_CurrentManagedThreadId<>l__initialThreadIdset_ToolCallIdEventIdeventIdSystem.Collections.Generic.ICollection<T>.AddSystem.Collections.IList.Addget_ChangedIsEnabled_moveNextCalledunexpectedSystem.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.OnCompletedSystem.Threading.Tasks.Sources.IValueTaskSource.OnCompletedAwaitUnsafeOnCompletedget_IsCompletedAppendFormattedSystem.Collections.ICollection.IsSynchronizedSystem.Collections.ICollection.get_IsSynchronizedget_ValidNewGuid<Messages>k__BackingField<LastMessages>k__BackingField<Content>k__BackingField<WriteCount>k__BackingField<CommitCount>k__BackingFieldGetFieldBuild<>v__promiseOfValueOrEndDateTimeKindset_MethodGetMethodInstructionRewriteGuardReplaceIsNullOrWhiteSpaceIFileServiceFakeFileServiceMemoryUpdateServiceInstructionRewriteServiceKaiTimerServiceIChatServiceFakeChatServiceGetServiceIGitServiceFakeGitServiceMemoryManagementServiceIMemoryServiceFakeMemoryServiceCreateInstanceIValueTaskSourceCreateLinkedTokenSourceCancellationTokenSourceget_Mode<>w__disposeModeget_MessageToolMessageuserMessageChatMessagemessage<3>__TreatsSeparatorOnlyRewriteAsNoMeaningfulChangeget_HasMeaningfulChangeInvokeIEnumerableIDisposableIAsyncDisposableNoopDisposableRuntimeTypeHandleGetTypeFromHandleSingleReadFileset_RoleSystem.Consoleset_Titleget_Nameset_NamefieldNamefunctionNamenameDateTimeToUniversalTimeSystem.RuntimeWriteLineCombineIAsyncStateMachineSetStateMachinestateMachineEscapeBeginScopeMakeGenericTypeGetNestedTypeserviceTypecandidateTypeGetTypeMethodBase_responseSystem.IDisposable.DisposeParseValidate_lastUpdateCreateTStateget_StateDebuggerBrowsableStateKaiTimerState<>1__stateDeleteComplete<18>__MemoryUpdaterCoolsDownAfterMarkerWriteCompilerGeneratedAttributeDebuggableAttributeNullableAttributeDebuggerBrowsableAttributeAssemblyTitleAttributeAsyncStateMachineAttributeAsyncIteratorStateMachineAttributeDebuggerStepThroughAttributeTargetFrameworkAttributeDebuggerHiddenAttributeAssemblyFileVersionAttributeAssemblyInformationalVersionAttributeEnumeratorCancellationAttributeAssemblyConfigurationAttributeRefSafetyRulesAttributeTupleElementNamesAttributeCompilationRelaxationsAttributeAssemblyProductAttributeNullableContextAttributeAssemblyCompanyAttributeRuntimeCompatibilityAttributeget_ValueMinValueget_HasValueGetValueSetValueMaxValuevalueSystem.Collections.Generic.ICollection<T>.RemoveSystem.Collections.IList.RemoveSystem.Collections.IList.IsFixedSizeSystem.Collections.IList.get_IsFixedSizeSerializeSystem.Collections.Generic.IList<T>.IndexOfSystem.Collections.IList.IndexOfKaiChatConfigheadingSystem.ThreadingMicrosoft.Extensions.Loggingset_Thinking<>3__enableThinkingget_IsRunningSystem.Runtime.VersioningToStringGetStringLogincludeTrashget_Pathset_PathsourcePathfilePathrepoRelativePathget_UpdateMarkerRelativePathGetRelativePathget_MemoryDirectoryRelativePathrelativePathfullPathget_RepoPathGetTempPathdestPathget_LengthStartsWithiget_Taskget_CompletedTaskValueTaskCollectionsMarshalAppendLiteralactualset_ModelSystem.ComponentModelmodelLogLevellogLevelStoredToolCall<>3__requireToolCallKaiChat.Tests.dllset_ToolFormatStateForToolProgramSystem.Collections.Generic.IList<T>.get_ItemSystem.Collections.Generic.IReadOnlyList<T>.get_ItemSystem.Collections.IList.get_ItemSystem.Collections.Generic.IList<T>.set_ItemSystem.Collections.IList.set_ItemFileItem_itemSystemTrimBooleanop_GreaterThanop_LessThanTimeSpanAsSpanget_TokenCancellationToken<>3__cancellationTokentokenget_RewrittenJoinget_VersionInstructionRewriteValidation<20>__MemoryUpdaterDoesNotAdvanceMarkerWithoutSuccessfulOperationMicrosoft.Extensions.ConfigurationIConfigurationConversationcontinuationSystem.GlobalizationActionextractionSystem.ReflectionICollectionMatchCollectionAddInMemoryCollectionsection<14>__ChatServiceDisablesDeepSeekThinkingForToolAcquisitionNotSupportedExceptionIndexOutOfRangeExceptionInvalidOperationExceptionSetExceptionexceptionSystem.Text.JsonreasonStringComparisonmarkdownSystem.Collections.Generic.ICollection<T>.CopyToSystem.Collections.ICollection.CopyToFieldInfoMethodInfoMemoryFileInfoCultureInfoMemberInfoMemoryUpdateMarkerInfoDirectoryInfoPropertyInfoZeroset_TimestamptimestampSystem.Net.HttpSystem.LinqSystem.Collections.Generic.ICollection<T>.ClearSystem.Collections.IList.ClearToStringAndClearDirectorySeparatorCharIServiceProviderNullServiceProviderAsyncTaskMethodBuilderAsyncIteratorMethodBuilderStringBuilderIConfigurationBuilder<>t__builderbaseFolderBinderILoggerDefaultInterpolatedStringHandler<7>__ServerToolPlannerPausesKaiTimer<8>__ServerToolPlannerResetsKaiTimer<5>__ServerToolPlannerStartsKaiTimerTaskAwaiterGetAwaiterTextWriterKaiCounterformatterJsonSerializerget_Errorget_IsErrorIEnumeratorSystem.Collections.Generic.IAsyncEnumerable<System.String>.GetAsyncEnumeratorSystem.Collections.Generic.IEnumerable<T>.GetEnumeratorSystem.Collections.IEnumerable.GetEnumeratorActivator.ctor.cctorKaiChat.HubsSystem.DiagnosticsAddSecondsget_ElapsedSecondsKaiChat.ServicesSystem.Runtime.InteropServicesSystem.Runtime.CompilerServices<1>__StripsWholeResponseMarkdownFencesSystem.Threading.Tasks.SourcesDebuggingModesget_Messages<16>__MemoryUpdaterBatchesPendingMessages<15>__ServerToolPlannerIgnoresNonToolMessagesget_LastMessagesset_LastMessages<>3__messages<21>__MemoryUpdaterDetectsStagedMarkerFileChangesMatches_files<11>__ToolParserIgnoresFencedToolExamples<0>__CleansDuplicateLeadingSeparatorLines<19>__MemoryUpdaterTripsFuseAfterConsecutiveFailuresAddMinutesFromMinutesValueTaskSourceOnCompletedFlagsBindingFlagsflags<2>__RejectsMissingExistingHeadings<4>__AllowsAdditiveRewriteThatPreservesExistingHeadingsargs<>4__thisSystem.Threading.TasksEqualsKaiChat.Modelsset_ToolCalls<>3__enableTools<>3__enableAutonomyTools<>x__combinedTokens<>3__maxTokensSystem.Collections.Generic.ICollection<T>.ContainsSystem.Collections.IList.ContainsMemoryConfigurationBuilderExtensionsSystem.Text.RegularExpressionsget_OperationsMicrosoft.Extensions.Logging.AbstractionsMicrosoft.Extensions.Configuration.AbstractionsSystem.CollectionsJsonSerializerOptionsJsonDocumentOptions<9>__ServerToolPlannerIgnoresToolMetaQuestionsget_CountersAddHoursget_Successset_Successset_ArgumentsargumentsGetDirectoryContentsget_PromptsKaiChat.Testsget_Exists_markerExistsset_StatusValueTaskSourceStatus<6>__ServerToolPlannerChecksKaiTimerStatusSystem.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetStatusSystem.Threading.Tasks.Sources.IValueTaskSource.GetStatusset_UpdatedAtSystem.Collections.Generic.IList<T>.RemoveAtSystem.Collections.IList.RemoveAtConcatKaiChatObjectSelecttargetSystem.Collections.IEnumerator.ResetExitget_DefaultInstructionRewriteResultFromResultKaiTimerOperationResultMemoryOperationResultSystem.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResultSystem.Threading.Tasks.Sources.IValueTaskSource.GetResultSetResultGitResultMemoryManagementResultresultHttpClientJsonElementget_RootElementEnvironmentJsonDocumentSystem.Collections.Generic.IEnumerator<T>.CurrentSystem.Collections.Generic.IAsyncEnumerator<System.String>.CurrentSystem.Collections.IEnumerator.CurrentSystem.Collections.Generic.IEnumerator<T>.get_CurrentSystem.Collections.Generic.IAsyncEnumerator<System.String>.get_CurrentSystem.Collections.IEnumerator.get_Current<>2__currentget_Contentset_Contentcontentset_ApiEndpointSystem.Collections.Generic.ICollection<T>.CountSystem.Collections.Generic.IReadOnlyCollection<T>.CountSystem.Collections.ICollection.CountSystem.Collections.Generic.ICollection<T>.get_CountSystem.Collections.Generic.IReadOnlyCollection<T>.get_CountSystem.Collections.ICollection.get_Countget_WriteCountset_WriteCountSetCountget_CommitCountset_CommitCountcountSystem.Collections.ICollection.SyncRootSystem.Collections.ICollection.get_SyncRootIConfigurationRoot<17>__MemoryUpdaterTrimsOversizedMessageTranscript<13>__ChatServiceSerializesNativeToolTranscriptKaiMilestonePrompt<10>__ToolParserExtractsKaiTimerStart<12>__NativeToolCallConverterExtractsKaiTimerStartSystem.Collections.Generic.IList<T>.InsertSystem.Collections.IList.InsertCastKaiCounterChangeRequestKaiMilestoneCreateRequestKaiCounterCreateRequestKaiWheelSegmentCreateRequestIListToListset_OutputCleanModelOutputstatusOutputSystem.Collections.IEnumerator.MoveNextSystem.TextKaiTimerMilestonePromptContextconvget_UtcNowarrayIndexindexRegexDelayArrayarrayset_Bodybodyget_Keyset_ApiKeySystem.Collections.Generic.ICollection<T>.IsReadOnlySystem.Collections.IList.IsReadOnlySystem.Collections.Generic.ICollection<T>.get_IsReadOnlySystem.Collections.IList.get_IsReadOnlyAnysummarycontentFactoryCreateDirectoryop_EqualityIsNullOrEmptyTryGetPropertyQcleans duplicate leading separator linesKstrips whole-response markdown fencesCrejects missing existing headingsktreats separator-only rewrite as no meaningful changeqallows additive rewrite that preserves existing headingsYservice rejects heading loss without writingeservice skips separator-only no-op without writingQservice writes and commits valid rewriteSkaitimer service starts pauses and resets?kaitimer service formats statusIkaitimer wheel spins enabled segmentQkaitimer counters support manual changesWkaitimer milestones claim once at thresholdGserver tool planner starts KaiTimerUserver tool planner checks KaiTimer statusGserver tool planner pauses KaiTimerGserver tool planner resets KaiTimer_server tool planner ignores tool meta questionsGtool parser extracts KaiTimer startQtool parser ignores fenced tool examplesenative tool call converter extracts KaiTimer start]chat service serializes native tool transcriptychat service disables DeepSeek thinking for tool acquisitioneserver tool planner ignores non-tool user messagesOmemory updater batches pending messagescmemory updater trims oversized message transcriptYmemory updater cools down after marker writeimemory updater trips fuse after consecutive failures��memory updater does not advance marker without successful operationcmemory updater detects staged marker file changes]memory marker creates once and deletes cleanlyUmemory service saves deduplicated sectionsimemory manager rejects truncated placeholder content}memory manager prompt asks for stale cross-file reconciliationPASS FAIL : ! test(s) failed.#All tests passed.o---
---
---
# Kai.md
## Mode 1: In the cave (roleplay)# Kai.md---
---s```markdown
# Kai.md
## Mode 2: Real talk
Keep this.
``````o# Kai.md
## Mode 2: Real talk
Existing real-talk rule.}# Kai.md
## Mode 1: In the cave (roleplay)
New roleplay rule.WIn Mode 1, add an explicit formatting rule.Crewrite should have been rejected)## Mode 2: Real talkO---
# Writing Standards
Existing text._---
---
---
# Writing Standards
Existing text.!Add a hard rule.Qseparator-only rewrite should be a no-op��# Kai.md
## Mode 1: In the cave (roleplay)
New roleplay rule.
## Mode 2: Real talk
Existing real-talk rule.Kadditive rewrite should be meaningful userStart the timerIserver planner should start KaiTimer POST
Method7start method should be POST'/api/kaitimer/start PathGstart path should be KaiTimer start{} Body?start body should be empty JSONkCan you check the timer status and show elapsed time?Wserver planner should check KaiTimer statusGET7status method should be GET)/api/kaitimer/statusKstatus path should be KaiTimer statusAstatus body should be empty JSONPause the timerIserver planner should pause KaiTimer7pause method should be POST'/api/kaitimer/pauseGpause path should be KaiTimer pause1Reset the count-up timerIserver planner should reset KaiTimer7reset method should be POST'/api/kaitimer/resetGreset path should be KaiTimer reset��Why did you call /api/memory/files and /api/kaitimer/status multiple times?��tool-debugging questions should not trigger planned KaiTimer calls;Tell me a story about a cave.wordinary non-tool messages should not trigger planned calls��Starting it now.
[TOOL_CALL: POST /api/kaitimer/start, {}]
Done.wKaiTimer start request should be extracted as one tool call+method should be POST;path should be KaiTimer startVisibleContentTOOL_CALLqexecutable tool call should be removed from visible textk```text
[TOOL_CALL: GET /api/kaitimer/status, {}]
```Mfenced tool example should not executeS[TOOL_CALL: GET /api/kaitimer/status, {}]kai_tool_callq{"method":"POST","path":"/api/kaitimer/start","body":{}}wnative tool call should convert to one KaiChat tool requestassistantKI need the status, then I can answer.call_test123q{"method":"GET","path":"/api/kaitimer/status","body":{}} rolemassistant tool-call message should keep assistant role#reasoning_contentStool-call reasoning should be passed backtool_callsidWassistant tool call id should be serializedfunction typeCtool call type should be function nameEfunction name should be serialized toolWKaiTimer:
Status: paused
Elapsed: 0m 0ssuccessSmatched tool result should keep tool roletool_call_idgtool result should point at the assistant tool callMOld private tool output without an id.
systemlegacy unpaired tool history should fall back to system context#deepseek-v4-flashdisabledthinkingsDeepSeek tool-acquisition request should disable thinkingtoolsgtool-acquisition request should still include tools��normal DeepSeek request should not override default thinking modedescriptionauto-commitMdo not call /api/git/commit after themgpt-4��non-DeepSeek models should not receive DeepSeek thinking parameterumemory updater should cap one automatic run to 80 messagesuoversized pending memory queues should be marked truncated;[truncated 8000 character(s)]Usingle message transcript should be capped��recent marker writes should cool automatic updates down for about an houriold marker writes should not delay automatic updatesnot json!invalid_responsesAI returned invalid memory JSON; no changes were applied.E{"operations":[{"action":"noop"}]} noop'No durable changes.iinvalid memory responses must not advance the markergsuccessful noop responses should advance the marker/HandleRunAttemptOutcomewCould not find MemoryUpdateService.HandleRunAttemptOutcome.#ResetFuseInternalkCould not find MemoryUpdateService.ResetFuseInternal.)simulated failed run1_consecutiveFailureCountkfirst failed run should increment the failure counter1_memoryUpdateFuseTrippedIone failure should not trip the fuseWsecond failed run should trip the threshold_second consecutive failure should trip the fuse7_memoryUpdateFuseTrippedUtcCfuse trip should record timestamp+simulated healthy runWsuccessful run should clear failure counterAsuccessful run should clear fuseSmanual reset should clear failure counterGmanual reset should clear fuse flagAA KaiChat/.memory_update_marker;KaiChat/.memory_update_markerSstaged marker creation should be detectedAD KaiChat/.memory_update_markerSstaged marker deletion should be detected7M KaiChat/Memory/recent.mdKaiChat/Memoryqstaged memory directory changes should still be detectedA M KaiChat/.memory_update_marker{unstaged marker changes should not be treated as commit-ready'HasStagedPathChangeoCould not find MemoryUpdateService.HasStagedPathChange.EHasStagedPathChange returned null.(?m)^##\s+ \s*$%KaiChat:BaseFolder5ExtractExecutableToolCallseCould not find ChatHub.ExtractExecutableToolCalls.5Tool parser returned null.ToApiMessageQCould not find ChatService.ToApiMessage.KAPI message conversion returned null.+http://localhost/test testBuildRequestQCould not find ChatService.BuildRequest.-Check KaiTimer status.7BuildRequest returned null.Item1CBuildRequest did not return JSON.CallsKTool extraction did not expose Calls.NativeToolCallMCould not find ChatHub.NativeToolCall.
call_1KCould not construct native tool call.-ConvertNativeToolCalls]Could not find ChatHub.ConvertNativeToolCalls.INative tool converter returned null.CPlanServerToolCallsForCurrentTurnsCould not find ChatHub.PlanServerToolCallsForCurrentTurn.EServer tool planner returned null.+MemoryUpdateCandidatesCould not find MemoryUpdateService.MemoryUpdateCandidate./SelectMemoryUpdateBatchwCould not find MemoryUpdateService.SelectMemoryUpdateBatch.MSelectMemoryUpdateBatch returned null.#test-conversation#Test ConversationYCould not construct memory update candidate.'ShouldAdvanceMarkeroCould not find MemoryUpdateService.ShouldAdvanceMarker.EShouldAdvanceMarker returned null.3GetAutomaticCooldownDelay{Could not find MemoryUpdateService.GetAutomaticCooldownDelay.QGetAutomaticCooldownDelay returned null.9AppendMessageForMemoryUpdate��Could not find MemoryUpdateService.AppendMessageForMemoryUpdate.Property + was missing or null.?Expected output to start with '', got ''.Expected '' to contain '%' not to contain '. Expected
, got .=Could not find private field '' on Private field '5' is not of expected type
core.md+.memory_update_markerO/Committed[] kaichat-testsNchecks today
manualEcounter should increment by amountEcounter should decrement by amountelapsed daysautomaticelapsed_days[new elapsed-days counter should start at zerofirst second'Say something real.smilestone should be claimed once after crossing threshold7one milestone should be dueKmilestone should not be claimed twiceSclaimed milestone should no longer be dueKaiTimer:Status: paused%Elapsed seconds: 0Gtimer should be running after start'.kaichat-timer.jsonKtimer state should be written to disk;running timer should count upEtimer should be paused after pauseKpaused timer should not keep countingEtimer should be paused after resetCreset should zero elapsed seconds+send Kai a voice noteWheel segments:preferences.md[# User Preferences
- Old CGM freshness rule.}{"operations":[{"action":"noop","reason":"test prompt only"}]}=Refine the CGM freshness rule.KMemory manager did not send a prompt.=reconcile the memory directory;older or conflicting versions��repeated entries must agree with the latest correction/refinement��# core.md
## Active context
- A durable point.
- Another durable point.
��{"operations":[{"action":"save","path":"core.md","content":"## Active context\n- A durable point.\n- Another durable point.\n- ... (rest of existing core.md content, unchanged) ...","reason":"placeholder test"}]}'Do a minimal update��blocked guardrail operations should not be marked as successful changesAone operation should be returnedMplaceholder content should fail safelyEpath should remain the target filetruncatedgmemory file should remain unchanged after rejectionIguardrail rejection should be loggedgfirst pending user message should create the markerOmarker file should exist after creationQmarker info should report created marker]marker should store the first pending baseline{later user messages should not overwrite the pending baseline��marker baseline should remain unchanged while pending work existssmemory updater should be able to advance a partial marker_marker should be absent after memory catches upmissing marker must not be inferred from memory file timestampsmemory-dup-c## Durable State
- A.
## Durable State
- A.
- B.recent.mdDurable Statekduplicate headings should be collapsed to one section - A. - B.ire-saving same content should not duplicate sectionsKaiChat/Kai.mdQrejected rewrite must not report a writeQrejected rewrite must not write the fileArejected rewrite must not commitG# Writing Standards
Existing text.W---
---
# Writing Standards
Existing text.)Writing Standards.mdQseparator-only rewrite should be skipped9no-op rewrite must not write;no-op rewrite must not commit��---
---
# Kai.md
## Mode 1: In the cave (roleplay)
New roleplay rule.
## Mode 2: Real talk
Existing real-talk rule.5valid rewrite should writeAuto-commit:WNo follow-up /api/git/commit call is neededOvalid rewrite should write exactly onceQvalid rewrite should commit exactly oncemessage !truncation guard!## Memory File: ��g M�ki�e8 A M U Y ]a e i Y �� �� �1�A �I���I �M�Q �U �Y�] �i��, �� �� quququy}qu �� 0
����T��0
T ��X
X\
\<
<8
8@
@0
04
4����
����������
�� �� ���� ������������������������
���������� ���� �� �� �� �������������� ���� ��q��q ���� �� ���������������� ��
������
������
������ �� a������������������ ���������� ����
������L
LP
PH
HD
D����}�
�
U�� ��������� �
�������� �!�%���� �� ��
=�� �)U=��U��M��=�� ���������5�9M��
��=����Q��=q ������
U��������������}��
��}} ���� �9�9��
����UU��
�� Ua���9a��������
����
��
a������
�9��
�� �9 �������9� �������� ��
�������
���9��$��}
��y ��
����.
��������0������������y���I �� �9���M���9�� ������
0
����0 �
���U
� �9���Q�� ���U�� y1��������4�����
������y
�9���U��
����4
�9������ �
�
4
�9����9����
���4 a�Y]�Y�������8y
�9����9����
���8 �<
��������<�
��������
�������y
����<
�
<
���<
��������@����y �9���a��
����@������Dy��� �y�-��� �9�����9������
����D
��������H��y$�
����H a��]��a���9��
��H��U��M����L�������������
����
�������y���! �����! �9���9��
��L
�9��9����
���L
���� ����
�
L
�9���9������
����L }�
P���
��y0
�� ��
�
P �9
��P���%��Ty �-���� �9�%���9�%���%
���%T���%��Xy
���%X���%��\y
���%\�
}�m
�
hy
�
h�qh�� ���u���� ��h�M�M
h �Qh�i �a��
���?_�
:�{��-�Q��y8)ݮ` �����}(������ ������
���� ���
� ����$������!��� ��� ���� �)�% ���%ud
��������m�q�u����l����������
������ ��
������q������������������ ���� ���� �9�������� �A��������
�} �9 �9a�� �� ���� ��
�9�� �9�� �9��0m ��0����y��y � �I��
�� ����(((((
(����((��(TWrapNonExceptionThrows?.NETCoreApp,Version=v10.0TFrameworkDisplayName .NET 10.0
KaiChat.Tests
Debug1.0.0.03.1.0.0+48a0b028060c2890ed631f19a2aad708d18b81edHCProgram+<<<Main>$>g__ServiceRejectsHeadingLossWithoutWriting|0_17>dLGProgram+<<<Main>$>g__ServiceSkipsSeparatorOnlyNoOpWithoutWriting|0_18>dD?Program+<<<Main>$>g__ServiceWritesAndCommitsValidRewrite|0_19>dE@Program+<<<Main>$>g__KaiTimerServiceStartsPausesAndResets|0_20>d=8Program+<<<Main>$>g__KaiTimerServiceFormatsStatus|0_21>dA<Program+<<<Main>$>g__KaiTimerWheelSpinsEnabledSegment|0_22>dE@Program+<<<Main>$>g__KaiTimerCountersSupportManualChanges|0_23>dGBProgram+<<<Main>$>g__KaiTimerMilestonesClaimOnceAtThreshold|0_24>dIDProgram+<<<Main>$>g__MemoryMarkerCreatesOnceAndDeletesCleanly|0_43>dGBProgram+<<<Main>$>g__MemoryServiceSavesDeduplicatedSections|0_44>dE@Program+<<<Main>$>g__MemoryManagerRejectsTruncatedContent|0_45>dWRProgram+<<<Main>$>g__MemoryManagerPromptAsksForStaleCrossFileReconciliation|0_46>d*%FakeChatService+<StreamChatAsync>d__7
Count Truncated
�C�MPnPUP7'�U�7RSDS�݃|��J�k��K]E:\Google Drive\Misc\The Chat Files\KaiChat.Tests\obj\Debug\net10.0\KaiChat.Tests.pdbSHA256�݃|�Қqk��K]�C�zd�hiG���+�
V'V V_CorExeMainmscoree.dll�% @ �P�8��h���`<<4VS_VERSION_INFO���?DVarFileInfo$Translation��StringFileInfox000004b0<CompanyNameKaiChat.TestsDFileDescriptionKaiChat.Tests0FileVersion1.0.0.0DInternalNameKaiChat.Tests.dll(LegalCopyright LOriginalFilenameKaiChat.Tests.dll<ProductNameKaiChat.Tests�/ProductVersion1.0.0+48a0b028060c2890ed631f19a2aad708d18b81ed8Assembly Version1.0.0.0�c�<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>P<6