Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/css/ |
| [Home] [System Details] [Kill Me] |
PK芋[��)���css/admin/dashboard.cssnu�[���/*
dashboard about box */
#dashboard-left {
float: left;
width: 63%;
padding-right: 1%;
overflow: hidden;
}
#dashboard-left h3 {
margin-top: 1%;
}
#dashboard-right {
float: left;
width: 36%;
}
.dashboard-container {
width: 100%;
overflow: hidden;
}
.dashboard-container:before,
.dashboard-container:after {
display: table;
content: "";
}
.dashboard-container:after {
clear: both;
}
.dashboard-button {
min-width: 19%;
float: left;
margin: 1% 1% 0 0;
}
.dashboard-button > a {
display: block;
width: 100%;
height: 100%;
}
.dashboard-button:hover {
background-color: #2d6ca2;
}
.dashboard-button:hover a {
color: #fff;
text-decoration: none;
}
.dashboard-info {
color: #333;
display:block;
padding:10px;
background-color: #f0f0f0;
border:#d8d8d8 1px solid;
text-align: center;
}
.dashboard-icon {
font-size: 3rem;
}
.dashboard-title {
display: block;
}
.dashboard-info img {
margin: 0 auto 10px auto;
}
.dashboard-table {
width: 100%;
border-top: solid 1px #ddd;
margin-top: 5px;
}
.dashboard-info td {
padding: 2px;
}
.correct-code {
background: #008000;
color: #fff;
}
.incorrect-code {
background: #ff0000;
color: #fff;
}
.missing-code {
background: #ffa500;
}
.missing-code a,
.incorrect-code a
{
color: #fff !important;
}
/* Portrait tablet to landscape and desktop */
@media (min-width: 768px) and (max-width: 979px) {
.dashboard-button {
float: none;
width: 90%;
margin: 1%;
}
#dashboard-left {
float: none;
width: 100%;
}
#dashboard-right {
float: none;
width: 100%;
}
}
/* Landscape phone to portrait tablet */
@media (max-width: 767px) {
.dashboard-button {
float: none;
width: 90%;
margin: 1%;
}
#dashboard-left {
float: none;
width: 100%;
}
#dashboard-right {
float: none;
width: 100%;
}
}
/* Landscape phones and down */
@media (max-width: 480px) {
.dashboard-button {
float: none;
width: 90%;
margin: 1%;
}
#dashboard-left {
float: none;
width: 100%;
}
#dashboard-right {
float: none;
width: 100%;
}
}PK芋[иI��css/awesomplete.cssnu�[���.awesomplete
[hidden] {
display: none;
}
.awesomplete .visually-hidden {
position: absolute;
clip: rect(0, 0, 0, 0);
}
.awesomplete {
display: inline-block;
position: relative;
}
.awesomplete > input {
display: block;
}
.awesomplete > ul {
position: absolute;
left: 0;
z-index: 1;
min-width: 100%;
box-sizing: border-box;
list-style: none;
padding: 0;
margin: 0;
background: #fff;
}
.awesomplete > ul:empty {
display: none;
}
.awesomplete > ul {
border-radius: .3em;
margin: .2em 0 0;
background: hsla(0,0%,100%,.9);
background: linear-gradient(to bottom right, white, hsla(0,0%,100%,.8));
border: 1px solid rgba(0,0,0,.3);
box-shadow: .05em .2em .6em rgba(0,0,0,.2);
text-shadow: none;
}
@supports (transform: scale(0)) {
.awesomplete > ul {
transition: .3s cubic-bezier(.4,.2,.5,1.4);
transform-origin: 1.43em -.43em;
}
.awesomplete > ul[hidden],
.awesomplete > ul:empty {
opacity: 0;
transform: scale(0);
display: block;
transition-timing-function: ease;
}
}
/* Pointer */
.awesomplete > ul:before {
content: "";
position: absolute;
top: -.43em;
left: 1em;
width: 0; height: 0;
padding: .4em;
background: white;
border: inherit;
border-right: 0;
border-bottom: 0;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
.awesomplete > ul > li {
position: relative;
padding: .2em .5em;
cursor: pointer;
}
.awesomplete > ul > li:hover {
background: hsl(200, 40%, 80%);
color: black;
}
.awesomplete > ul > li[aria-selected="true"] {
background: hsl(205, 40%, 40%);
color: white;
}
.awesomplete mark {
background: hsl(65, 100%, 50%);
}
.awesomplete li:hover mark {
background: hsl(68, 100%, 41%);
}
.awesomplete li[aria-selected="true"] mark {
background: hsl(86, 100%, 21%);
color: inherit;
}
/*# sourceMappingURL=awesomplete.css.map */
PK芋[��HF��css/dashboard.cssnu�[���/* dashboard
about box */
#dashboard-left {
float: left;
width: 63%;
padding-right: 1%;
overflow: hidden;
}
#dashboard-right {
float: left;
width: 36%;
}
.dashboard-container {
width: 100%;
overflow: hidden;
}
.dashboard-container:before,
.dashboard-container:after {
display: table;
content: "";
}
.dashboard-container:after {
clear: both;
}
.dashboard-button {
width: 18%;
float: left;
margin: 1%;
height: 75px;
}
.dashboard-title {
display: block;
}
.dashboard-info {
font-size: 12px;
color: #333;
display:block;
padding:10px;
background: rgb(255,255,255); /* Old browsers */
background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246,
246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,
rgba(255, 255, 255, 1)), color-stop(47%, rgba(246, 246, 246, 1)),
color-stop(100%, rgba(237, 237, 237, 1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%,
rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%); /*
Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246,
246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246,
246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%,
rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient(
startColorstr='#ffffff', endColorstr='#ededed',
GradientType=0 ); /* IE6-9 */
border:#d8d8d8 1px solid;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-moz-box-shadow: 0 0 4px rgba(000, 000, 000, 0.1) inset;
-webkit-box-shadow:0 0 4px rgba(000, 000, 000, 0.1) inset;
box-shadow: 0 0 3px rgba(000, 000, 000, 0.1) inset;
text-align: center;
}
.dashboard-info img {
margin: 0 auto;
}
.dashboard-table {
width: 100%;
border-top: solid 1px #ddd;
margin-top: 5px;
}
.dashboard-info td {
padding: 2px;
}
.correct-code {
background: green;
color: white;
}
.incorrect-code {
background: red;
color: white;
}
.missing-code {
background: orange;
}
.missing-code a {
color: white !important;
}
/* Portrait tablet to landscape and desktop */
@media (min-width: 768px) and (max-width: 979px) {
#dashboard-left {
float: none;
width: 100%;
}
#dashboard-right {
float: none;
width: 100%;
}
}
/* Landscape phone to portrait tablet */
@media (max-width: 767px) {
#dashboard-left {
float: none;
width: 100%;
}
#dashboard-right {
float: none;
width: 100%;
}
}
/* Landscape phones and down */
@media (max-width: 480px) {
.dashboard-button {
float: none;
width: 90%;
margin: 1%;
}
#dashboard-left {
float: none;
width: 100%;
}
#dashboard-right {
float: none;
width: 100%;
}
}PK芋[��
|�,�,css/font/rsticketsproicon.eotnu�[����,�+�LP�./
rsticketsproiconRegularVersion 1.0 rsticketsproicon�pGSUB
�%z�TOS/2>!S�PVcmap��
N��cvt
fpgmb.�z$gaspglyf�>��X�headEu\�6hhea��$hmtxRg��4Xloca71��.maxp�;�
name&�z��-post&+O�prep~�;�+0�
0>DFLTlatnliga��z��z��1PfEd����R�jZT�,��,
�r����������������������,,,,,
������������������ � �
�
�
����
�
�
����������������������
�j�S,048<@I�@�AL�g$g)#g("
g
'!
g& g%gW_O==995511--
=@=@?>9<9<;:585876141432-0-0/. ,
,+*&%"!
*+3#!#53%53'53'53'53'53'5354635!%5!%5!%5!%5!>&�C���6T6���a��a��a��a��a���@��@�x�yyy
y
`^a)<:)8)^��!!y!!y!!y""y""����@��v+373!�D�D�4�ZZ�5��0G-@*;3&L���v&))+=4?&'47672#"54?.7462!.6'672#54/&�B#%5
1H
r0r��9%.\�ZN=�#���D.#1)#A�v2nj�P'\8/)}p7=��
FV3LllLi5F
�%Yj}+)>R1P
�
�95�j�R$@�v$$+5467>'4&'&'&'&>2tecL6
(^~^(
4Jdٖ�D%#L?V#d4)8@((@8)4d#V@J$P1���
6@3���v
+2#432#432#543��(��(��(
��R2����&2����2����6�%@"
L JI�v+?%7&767'67>'�t��Xtvd�dHX�Xtv`�bHXVr�t��VzPxdfHX��Vz��xbhHX�\t����#$@!��Y_O93+&763!2"/&6#!"&5427
N&��:��D"��"�8J `b
b`^
�� p
�
���'0X����@�EVUSQLJIhedc_^TPOKig]%�m$"~}{ytq#L`jKBA@?=<;8765 J|xwsrI ���~~iY_O����on[ZGF32/.+*
+=767'76?37'#'&''7&'7>.%767'76?7#''5&''7&'7367'76?7#''5&''7&'7>&'#">&'#"^<DJa
JD<^^<DJ
aJD<4L26H8@F%61H9-1
DD'8/F;-1%1%$
0)#/1
(#
1
)#E($6* $�aJE=^^=EJa
HF<^^<FH;%62N08�H9-1
BD'61F;-1BF%61�Q2+!%01
)#
3+!%13
)$
.�*&4,"���
-��% LK�
PX@;�~~
pg
W
` P@<�~~
~g
W
` PY@!!!-!-,+)&#"
$5"+!6;6?>;232!5!'&+"5!#!"5'!�8
`��*�`
�:�$���T�Z
�Fd$l)- Pl��db66��dXNTT�d�i�S D@A
L�~~�YaQ%+4773264&"#7462"&&�(��\���Zm5<d��ʌ%HNpNNpN^�&��^��&Zm�Ȏ�dF;�9NNrNN�iPQ5@2
LK���v+!!5)%5%P��
>���=����Q��M�`�cTS�����0%@"L'J��v+%+&76%6#"'%'7 #"'.7676>'"*
,b46& "���62$��
v��
$&�&
.*
P �
�P����
&L�F&��$���l�TB@B10 L�v?=43+5676'2?6&6'5'&676?>76&'&'>"'&7;u^Tx��B]7��%'):*R:bBDT�^E�b�YiKV��FPD9FAD;sRV{��F]
6��#"''!
)P<
9� P�^C�_
Xk�JLT��F9FV��=";@8 J
IWg_O""
+37
/7'?'?/^`X{��RL��NZ�q�B��C��@F�Z\����\9��5Z���{��}����= @J I�v+
%{}u{��n���w�h������h�����<@9��gW_O
2+#!"'&7625#7#�
��
�,nnn"�$dd�,���j�R"%3<p@m# '
Lg gg
gg
W
_O444<4<;9650/.,)(%$"! +2!"&'5!"&'46?>;2633375##!546#'#�
�����6�&!G������m���&��|
�Z � w6� �w�}�°�����6�N��
�����R$,4,@)20.,*(&$"
L4J�v+7'%"/&4762%/?/?/?/?��<�6
�2
o
�
o
�6677�mm"!mm!)7766��6666�<�g
�2
o
�
o
[777�"!mm!"m��777.777�jYR#3CSv@s,$@8 PH
Lgg g
g
gW_ODD44DSDRLJ4C4B<:0.(&##&56+!"&'467!23&/&#"&'5!463!2#!"&52#!"&=4632#!"&=4633�
�6J�����S�
�
�w
�
�w
�
�w
~4�~ |&����< ��
$
Y
$
$
�
$
$
���j�R!*3;r@o985(%)$L iii
Y
aQ,+#"0/+3,3'&"*#* +2".>"627&7&47'27'"'726.%64'�f��LT����TL��fj_l.^.m`�ll3�j`m.^.l_jY~z�x�cl33lRP��ȼ�PP��ȼ�PG3ll3��l.^.m`��3ll3�~��x�vul_�`m.^��Y1FZ@W*@%;3L�~�igYaQ#&')5#$ +#"&'&4?632>."+"&'546>32%+"&=46;546;2YDr�V`�<L)vC:hP*.Llod(M�,H<�RW�tB��
�
}
$
^W�tDRIM5:.LjtjL.(%M-�H9>Dt�J�
#
�
/.�_<���m��m���iPTR�jP����P�����
4��������P����������Y�Y���Z����"�d��j�� 0 ��
T����55EL\lw
+�� j� / O ] } � �
V� &)Copyright (C) 2021 by original authors @
fontello.comrsticketsproiconRegularrsticketsproiconrsticketsproiconVersion
1.0rsticketsproiconGenerated by svg2ttf from Fontello
project.http://fontello.comCopyright (C) 2021 by original authors @
fontello.comrsticketsproiconRegularrsticketsproiconrsticketsproiconVersion
1.0rsticketsproiconGenerated by svg2ttf from Fontello
project.http://fontello.com
clipboardfolderusersuser chart-bar
arrows-ccwmailcogs briefcasesearch-circledterminal
chart-lineattach
star-emptystar attentiondocsmagicdoc-textlifebuoyhistory���,
�UXEY K�QK�SZX�4�(Y`f
�UX�%a�cc#b!!�Y�C#D�C`B-�,� `f-�,#!#!-�,
d�BC�C ``B�CB�%C�CTx
�#�CCad�Px�C`B�!e!�CC�B
�C#B�C`B#�PXeY�C`B-�,�+�CX#!#!�CC#�PXeY d
��P�&Z�(
CEcE�EX!�%YR[X!#!�X �PPX!�@Y
�8PX!�8YY �
CEcEad�(PX!�
CEcE �0PX!�0Y ��PX f ��a
�
PX` � PX!�
` �6PX!�6``YYY�%�Cc�RX�K�
PX!�CK�PX!�Ka�c�Cc�bYYdaY�+YY#�PXeYY
d�C#BY-�, E �%ad �CPX�#B�#B!!Y�`-�,#!#!�+
d�bB �#B�EX�
CEc�
C�`Ec�*! �C �
��+�0%�&QX`PaRYX#Y!Y
�@SX�+!�@Y#�PXeY-�,� C+�C`B-�,� #B#
�#Ba�bf�c�`�*-� , E �Cc�b
�PX�@`Yf�c`D�`-�
,� CEB*!�C`B-�,�C#D�C`B-�, E �+#�C�%` E�#a d
� PX!��0PX� �@YY#�PXeY�%#aDD�`-�
, E
�+#�C�%` E�#a d�$PX��@Y#�PXeY�%#aDD�`-�,
�#B�
EPX!#!Y*!-�,�E�daD-�,�` �CJ�PX
�#BY�CJ�RX �#BY-�, �bf�c �c�#a�C` �`
�#B#-�,KTX�dDY$�
e#x-�,KQXKSX�dDY!Y$�e#x-�,�CUX�C�aB�+Y�C�%B�%B�%B�#
�%PX�C`�%B�� �#a�*!#�a
�#a�*!�C`�%B�%a�*!Y�CG�CG`�b �PX�@`Yf�c
�Cc�b
�PX�@`Yf�c`�#D�C�>�C`B-�,�ETX�#B
E�#B�
#�`B `�BBB�`
�#B�a�+��+"Y-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,� +-�+,#
�bf�c�`KTX# .�]!!Y-�,,# �bf�c�`KTX#
.�q!!Y-�-,# �bf�c�&`KTX# .�r!!Y-�
,�+�ETX�#B E�#B�
#�`B
`�a�BB�`�+��+"Y-�!,� +-�",�
+-�#,� +-�$,� +-�%,� +-�&,� +-�',�
+-�(,� +-�),� +-�*,� +-�., <�`-�/, `�`
C#�`C�%a�`�.*!-�0,�/+�/*-�1, G �Cc�b
�PX�@`Yf�c`#a8# �UX G �Cc�b
�PX�@`Yf�c`#a8!Y-�2,�ETX�EB��1*�EX0Y"Y-�3,�+�ETX�EB��1*�EX0Y"Y-�4,
5�`-�5,�EB�Ec�b �PX�@`Yf�c�+�Cc�b
�PX�@`Yf�c�+��D>#8�4*!-�6, < G �Cc�b
�PX�@`Yf�c`�Ca8-�7,.<-�8, < G �Cc�b
�PX�@`Yf�c`�Ca�Cc8-�9,�% . G�#B�%I��G#G#a
Xb!Y�#B�8*-�:,��#B�%�%G#G#a�B�C+e�.#
<�8-�;,��#B�%�% .G#G#a �#B�B�C+ �`PX
�@QX� �&YBB# �
C �#G#G#a#F`�C�b �PX�@`Yf�c` �+ ��a
�C`d#�CadPX�Ca�C`Y�%�b �PX�@`Yf�ca#
�&#Fa8#�
CF�%�
CG#G#a` �C�b �PX�@`Yf�c`# �+#�C`�+�%a�%�b
�PX�@`Yf�c�&a �%`d#�%`dPX!#!Y#
�&#Fa8Y-�<,��#B �& .G#G#a#<8-�=,��#B
�
#B F#G�+#a8-�>,��#B�%�%G#G#a�TX.
<#!�%�%G#G#a �%�%G#G#a�%�%I�%a�cc# Xb!Yc�b
�PX�@`Yf�c`#.# <�8#!Y-�?,��#B �
C .G#G#a `� `f�b �PX�@`Yf�c# <�8-�@,#
.F�%F�CXPRYX <Y.�0+-�A,# .F�%F�CXRPYX
<Y.�0+-�B,# .F�%F�CXPRYX <Y# .F�%F�CXRPYX
<Y.�0+-�C,�:+# .F�%F�CXPRYX <Y.�0+-�D,�;+�
<�#B�8# .F�%F�CXPRYX
<Y.�0+�C.�0+-�E,��%�& F#Ga�#B.G#G#a�C+#
< .#8�0+-�F,�
%B��%�% .G#G#a �#B�B�C+ �`PX �@QX�
�&YBB# G�C�b �PX�@`Yf�c` �+ ��a
�C`d#�CadPX�Ca�C`Y�%�b �PX�@`Yf�ca�%Fa8#
<#8! F#G�+#a8!Y�0+-�G,�:+.�0+-�H,�;+!#
<�#B#8�0+�C.�0+-�I,� G�#B�.�6*-�J,�
G�#B�.�6*-�K,��7*-�L,�9*-�M,�E# .
F�#a8�0+-�N,�
#B�M+-�O,�F+-�P,�F+-�Q,�F+-�R,�F+-�S,�G+-�T,�G+-�U,�G+-�V,�G+-�W,�C+-�X,�C+-�Y,�C+-�Z,�C+-�[,�C+-�\,�C+-�],�C+-�^,�C+-�_,�E+-�`,�E+-�a,�E+-�b,�E+-�c,�H+-�d,�H+-�e,�H+-�f,�H+-�g,�D+-�h,�D+-�i,�D+-�j,�D+-�k,�D+-�l,�D+-�m,�D+-�n,�D+-�o,�<+.�0+-�p,�<+�@+-�q,�<+�A+-�r,��<+�B+-�s,�<+�@+-�t,�<+�A+-�u,��<+�B+-�v,�=+.�0+-�w,�=+�@+-�x,�=+�A+-�y,�=+�B+-�z,�=+�@+-�{,�=+�A+-�|,�=+�B+-�},�>+.�0+-�~,�>+�@+-�,�>+�A+-��,�>+�B+-��,�>+�@+-��,�>+�A+-��,�>+�B+-��,�?+.�0+-��,�?+�@+-��,�?+�A+-��,�?+�B+-��,�?+�@+-��,�?+�A+-��,�?+�B+-��,�EPX��EX#!!YYB+�e�$Px�EX0Y-K��RX��Y��cp�B�*�B�
*�B�
*�B�*�B�*�D�$�QX�@�X�dD�(�QX��X�DY�'�QX��@�cTX�DYYYYY�*������D�dDDPK芋[QW"*Q#Q#css/font/rsticketsproicon.svgnu�[���<?xml
version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Copyright (C) 2021 by original authors @
fontello.com</metadata>
<defs>
<font id="rsticketsproicon" horiz-adv-x="1000" >
<font-face font-family="rsticketsproicon"
font-weight="400" font-stretch="normal"
units-per-em="1000" ascent="850"
descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="clipboard" unicode=""
d="M0-150l0 904 225 0 0-64-161 0 0-774 579 0 0 774-161 0 0 64 225 0
0-904-707 0z m129 129l0 31 31 0 0-31-31 0z m0 121l0 31 31 0 0-31-31 0z m0
121l0 31 31 0 0-31-31 0z m0 121l0 32 31 0 0-32-31 0z m0 121l0 32 31 0
0-32-31 0z m0 96l0 94 129 0 0 97q0 41 27 71t69 29 69-30 28-70q0-56-2-97l129
0 0-94-449 0z m96-582l0 33 353 0 0-33-353 0z m0 121l0 33 353 0 0-33-353 0z
m0 121l0 33 353 0 0-33-353 0z m0 121l0 34 353 0 0-34-353 0z m0 121l0 34 353
0 0-34-353 0z m97 260q0-14 9-22t23-9 22 9 9 22-9 24-22 9-23-9-9-24z"
horiz-adv-x="707" />
<glyph glyph-name="folder" unicode=""
d="M0-52l0 715 139 0 68 90 217 0 68-90 508 0 0-715-1000 0z"
horiz-adv-x="1000" />
<glyph glyph-name="users" unicode=""
d="M0 106l0 134q0 26 18 32l171 80q-66 39-68 131 0 56 35 103 37 41 90
43 31 0 63-19-49-125 23-237-12-11-25-19l-114-55q-48-23-52-84l0-143-114
0q-25 0-27 34z m193-59l0 168q0 27 22 37l152 70 57 28q-37 23-60 66t-22 94q0
76 46 130t110 54 109-54 45-130q0-105-78-158l61-30 146-70q24-10
24-37l0-168q-2-37-37-41l-541 0q-14 2-24 14t-10 27z m473 330q68 106 22 231
31 19 66 21 49 0 90-43 35-41 35-103 0-82-65-131l168-80q18-10
18-32l0-134q0-32-27-34l-118 0 0 143q0 57-50 84l-110 53q-15 8-29 25z"
horiz-adv-x="1000" />
<glyph glyph-name="user" unicode=""
d="M0-150l0 156q0 24 58 58t159 71q99 35 137 73t37 101q0 29-27 72t-32
59q-12 35-29 135-10 52-14 93-2 22 6 50t28 60 67 52 110 20 110-20 67-52
28-60 6-50q-4-41-14-93-17-100-29-135-6-16-32-59t-27-72q0-64
37-101t137-73q217-80 217-129l0-156-1000 0z"
horiz-adv-x="1000" />
<glyph glyph-name="chart-bar" unicode=""
d="M750 800q22 0 36-15t14-35l0-850-200 0 0 850q0 50 40 50l110 0z
m-300-300q22 0 36-15t14-35l0-550-200 0 0 550q0 50 40 50l110 0z m-300-300q22
0 36-15t14-35l0-250-200 0 0 250q0 50 40 50l110 0z"
horiz-adv-x="800" />
<glyph glyph-name="arrows-ccw"
unicode="" d="M186 140l116 116 0-292-276 16 88
86q-116 122-114 290t120 288q100 100 240
116l4-102q-100-16-172-88-88-88-90-213t84-217z m332 598l276-16-88-86q116-122
114-290t-120-288q-96-98-240-118l-2 104q98 16 170 88 88 88 90 213t-84
217l-114-116z" horiz-adv-x="820" />
<glyph glyph-name="mail" unicode=""
d="M30 586q-32 18-28 40 2 14 26 14l846 0q38 0
20-32-8-14-24-22-14-6-192-102t-182-98q-16-10-46-10-28 0-46 10-4 2-182
98t-192 102z m850-100q20 10 20-10l0-368q0-16-17-32t-33-16l-800 0q-16 0-33
16t-17 32l0 368q0 20 20 10l384-200q18-10 46-10t46 10z"
horiz-adv-x="900" />
<glyph glyph-name="cogs" unicode=""
d="M0 245l0 97 94 8q8 30 23 55l-60 74 68 69 74-61q26 16 55 23l8 94 97
0 10-94q29-7 55-23l74 61 68-69-60-74q16-25 23-55l94-8
0-97-94-10q-7-29-23-55l60-72-68-70-74 60q-26-15-55-23l-10-94-97 0-8 94q-29
8-55 23l-74-60-68 70 60 72q-15 26-23 55z m221 49q0-37 26-64t64-26 63 26 26
64-26 63-63 26-64-26-26-63z m318 238l8 72 70-2q8 22 20 39l-37 57 54 45
49-49q20 10 41 14l14 66 72-8-2-68q22-8 39-22l57 39 45-54-49-49q10-20
12-43l68-14-8-70-68 0q-8-20-22-37l39-59-56-45-47 49q-22-8-43-12l-14-66-70 6
0 70q-20 8-37 20l-59-37-45 54 49 49q-8 20-12 41z m31-445l6 50 49 0q6 16 14
28l-26 43 37 33 36-37q13 8 29 10l10 48 48-5 0-49q16-6 28-16l41 27
31-41-35-35q6-13 10-29l47-12-6-51-49 0q-4-15-14-27l28-43-40-33-35
37q-13-8-29-10l-10-49-49 6 0 51q-13 4-27 14l-41-28-31 41 35 36q-6 13-8 29z
m118 13q-4-21 8-36t32-17 34 9 17 34-10 35-31 18l-6 0q-17 0-31-12t-13-31z
m17 451q-4-27 14-48t45-25 48 15 23 45-14 48-44 24l-7 0q-26
0-44-17t-21-42z" horiz-adv-x="1000" />
<glyph glyph-name="briefcase" unicode=""
d="M456 326l0-100-456 0q8 226 10 292 4 108 100 108l160 0q16 26 37
67t23 45q14 26 23 32t37 6l222 0q26 0 36-7t22-31q18-32 60-112l160 0q96 0
100-108l10-292-454 0 0 100-90 0z m-74 354l-28-54 292 0-28 54q-14 26-42
26l-152 0q-28 0-42-26z m164-604l0 100 430 0q-6-88-10-166-6-84-90-84l-750
0q-90 0-90 84l-10 166 430 0 0-100 90 0z" horiz-adv-x="1000"
/>
<glyph glyph-name="search-circled"
unicode="" d="M0 350q0 207 147 354t353 146
354-146 146-354-146-354-354-146-353 146-147 354z m223-193l90-90 109
109q53-27 113-27 100 0 171 71t71 171-71 171-172 71-171-71-70-171q0-70
37-129l-2 0z m177 234q0 57 39 96t95 39 95-39 39-96-39-96-95-39-95 39-39
96z" horiz-adv-x="1000" />
<glyph glyph-name="terminal" unicode=""
d="M1360 849v-1000h-1360v1000h1360z m-838-600h318v77h-318v-77z m-362
77l317 135v96l-317 134v-99l209-84-209-83v-99z"
horiz-adv-x="1360" />
<glyph glyph-name="chart-line"
unicode="" d="M34 284q-42 10-32 56 10 42 54
32l98-24-52-80z m890-12q14 12 33
11t31-15q32-32-2-64l-252-226q-12-12-30-12-14 0-28 10l-286 220-54 14 50 80
36-8q12-4 16-8l264-204z m-490 220l-350-550q-12-22-38-22-12 0-24 8-16 10-20
29t6 33l374 588q8 16 28 20 18 6 36-6l246-156 226 326q10 16 28 19t34-9q38-24
12-62l-252-362q-24-36-62-12z" horiz-adv-x="1003" />
<glyph glyph-name="attach" unicode=""
d="M0 65q8 68 67 127l383 383q117 115 211 33 84-86-36-209l-353-351-66
70 349 349q2 0 8 6l8 8t7 9 6 10 6 9 4 11l0 10t-2 12q-19
17-74-37l-381-381q-37-35-41-69-4-39 35-78 41-33 70-28t71 46q82 80 218
215t194 195q2 2 18 17t17 17 15 16 15 17 12 17 13 19 11 20 10 25q16 57-33
123t-115 75q-68 7-152-73l-418-418-69 67 418 420q98 95 199
100t190-83q105-107
74-236-19-74-94-150-86-84-246-245l-209-209q-70-70-150-72-68 0-125 57-70
70-64 156z" horiz-adv-x="896" />
<glyph glyph-name="star-empty"
unicode="" d="M0 471l94 0 285-2 96 270 29 90
29-92 88-272 285-6 94-2-76-54-233-166 82-274 28-92-76 57-231
168-232-162-78-53 29 90 90 270-227 174z m189-64l168-129 20-14-8-21-66-203
176 123 17 11 18-13 172-125-61 203-6 21 18 14 174 125-215 4-22 2-8 21-64
201-70-199-8-21-235 0z" horiz-adv-x="1000" />
<glyph glyph-name="star" unicode=""
d="M0 471l379-2 125 360 117-364 379-8-309-220 110-366-307 225-310-215
119 360z" horiz-adv-x="1000" />
<glyph glyph-name="attention" unicode=""
d="M957-24q10-16 0-34-10-16-30-16l-892 0q-18 0-28 16-13 18-2 34l446
782q8 18 30 18t30-18z m-420 50l0 100-110 0 0-100 110 0z m0 174l0 300-110 0
0-300 110 0z" horiz-adv-x="962" />
<glyph glyph-name="docs" unicode=""
d="M946 636q23 0 38-16t16-38v-678q0-23-16-38t-38-16h-535q-23 0-38
16t-16 38v160h-303q-23 0-38 16t-16 38v375q0 22 11 49t27 42l228 228q15 16 42
27t49 11h232q23 0 38-16t16-38v-183q38 23 71 23h232z
m-303-119l-167-167h167v167z m-357 214l-167-167h167v167z m109-361l176
176v233h-214v-233q0-22-15-37t-38-16h-233v-357h286v143q0 22 11 49t27 42z
m534-449v643h-215v-232q0-22-15-38t-38-15h-232v-358h500z"
horiz-adv-x="1000" />
<glyph glyph-name="magic" unicode=""
d="M664 526l164 163-60 60-164-163z m250
163q0-15-10-25l-718-718q-10-10-25-10t-25 10l-111 111q-10 10-10 25t10 25l718
718q10 10 25 10t25-10l111-111q10-10 10-25z m-754 106l54-16-54-17-17-55-17
55-55 17 55 16 17 55z m195-90l109-34-109-33-34-109-33 109-109 33 109 34 33
109z m519-267l55-17-55-16-17-55-17 55-54 16 54 17 17 55z m-357
357l54-16-54-17-17-55-17 55-54 17 54 16 17 55z"
horiz-adv-x="928.6" />
<glyph glyph-name="doc-text" unicode=""
d="M819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38
16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5
17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16
37v233h-429v-858h715z m-572 483q0 7 5 12t13 5h393q8 0
13-5t5-12v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36z m411-125q8 0
13-5t5-13v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36q0 8 5 13t13 5h393z
m0-143q8 0 13-5t5-13v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36q0 8 5 13t13
5h393z" horiz-adv-x="857.1" />
<glyph glyph-name="lifebuoy" unicode=""
d="M500 850q102 0 194-40t160-106 106-160
40-194-40-194-106-160-160-106-194-40-194 40-160 106-106 160-40 194 40 194
106 160 160 106 194 40z m0-71q-106 0-201-51l108-108q46 16 93 16t93-16l109
108q-96 51-202 51z m-378-630l108 108q-16 46-16 93t16 93l-108
109q-51-96-51-202t51-201z m378-228q106 0 202 51l-109 108q-46-16-93-16t-93
16l-108-108q95-51 201-51z m0 215q89 0 152 63t62 151-62 152-152
62-151-62-63-152 63-151 151-63z m270 121l108-108q51 95 51 201t-51
202l-108-109q16-46 16-93t-16-93z" horiz-adv-x="1000" />
<glyph glyph-name="history" unicode=""
d="M857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4
6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61
61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16
8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60
57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z m-357
161v-250q0-8-5-13t-13-5h-178q-8 0-13 5t-5 13v35q0 8 5 13t13 5h125v197q0 8 5
13t12 5h36q8 0 13-5t5-13z" horiz-adv-x="857.1" />
</font>
</defs>
</svg>PK芋[����+�+css/font/rsticketsproicon.ttfnu�[����pGSUB
�%z�TOS/2>!S�PVcmap��
N��cvt
fpgmb.�z$gaspglyf�>��X�headEu\�6hhea��$hmtxRg��4Xloca71��.maxp�;�
name&�z��-post&+O�prep~�;�+0�
0>DFLTlatnliga��z��z��1PfEd����R�jZT�,��,
�r����������������������,,,,,
������������������ � �
�
�
����
�
�
����������������������
�j�S,048<@I�@�AL�g$g)#g("
g
'!
g& g%gW_O==995511--
=@=@?>9<9<;:585876141432-0-0/. ,
,+*&%"!
*+3#!#53%53'53'53'53'53'5354635!%5!%5!%5!%5!>&�C���6T6���a��a��a��a��a���@��@�x�yyy
y
`^a)<:)8)^��!!y!!y!!y""y""����@��v+373!�D�D�4�ZZ�5��0G-@*;3&L���v&))+=4?&'47672#"54?.7462!.6'672#54/&�B#%5
1H
r0r��9%.\�ZN=�#���D.#1)#A�v2nj�P'\8/)}p7=��
FV3LllLi5F
�%Yj}+)>R1P
�
�95�j�R$@�v$$+5467>'4&'&'&'&>2tecL6
(^~^(
4Jdٖ�D%#L?V#d4)8@((@8)4d#V@J$P1���
6@3���v
+2#432#432#543��(��(��(
��R2����&2����2����6�%@"
L JI�v+?%7&767'67>'�t��Xtvd�dHX�Xtv`�bHXVr�t��VzPxdfHX��Vz��xbhHX�\t����#$@!��Y_O93+&763!2"/&6#!"&5427
N&��:��D"��"�8J `b
b`^
�� p
�
���'0X����@�EVUSQLJIhedc_^TPOKig]%�m$"~}{ytq#L`jKBA@?=<;8765 J|xwsrI ���~~iY_O����on[ZGF32/.+*
+=767'76?37'#'&''7&'7>.%767'76?7#''5&''7&'7367'76?7#''5&''7&'7>&'#">&'#"^<DJa
JD<^^<DJ
aJD<4L26H8@F%61H9-1
DD'8/F;-1%1%$
0)#/1
(#
1
)#E($6* $�aJE=^^=EJa
HF<^^<FH;%62N08�H9-1
BD'61F;-1BF%61�Q2+!%01
)#
3+!%13
)$
.�*&4,"���
-��% LK�
PX@;�~~
pg
W
` P@<�~~
~g
W
` PY@!!!-!-,+)&#"
$5"+!6;6?>;232!5!'&+"5!#!"5'!�8
`��*�`
�:�$���T�Z
�Fd$l)- Pl��db66��dXNTT�d�i�S D@A
L�~~�YaQ%+4773264&"#7462"&&�(��\���Zm5<d��ʌ%HNpNNpN^�&��^��&Zm�Ȏ�dF;�9NNrNN�iPQ5@2
LK���v+!!5)%5%P��
>���=����Q��M�`�cTS�����0%@"L'J��v+%+&76%6#"'%'7 #"'.7676>'"*
,b46& "���62$��
v��
$&�&
.*
P �
�P����
&L�F&��$���l�TB@B10 L�v?=43+5676'2?6&6'5'&676?>76&'&'>"'&7;u^Tx��B]7��%'):*R:bBDT�^E�b�YiKV��FPD9FAD;sRV{��F]
6��#"''!
)P<
9� P�^C�_
Xk�JLT��F9FV��=";@8 J
IWg_O""
+37
/7'?'?/^`X{��RL��NZ�q�B��C��@F�Z\����\9��5Z���{��}����= @J I�v+
%{}u{��n���w�h������h�����<@9��gW_O
2+#!"'&7625#7#�
��
�,nnn"�$dd�,���j�R"%3<p@m# '
Lg gg
gg
W
_O444<4<;9650/.,)(%$"! +2!"&'5!"&'46?>;2633375##!546#'#�
�����6�&!G������m���&��|
�Z � w6� �w�}�°�����6�N��
�����R$,4,@)20.,*(&$"
L4J�v+7'%"/&4762%/?/?/?/?��<�6
�2
o
�
o
�6677�mm"!mm!)7766��6666�<�g
�2
o
�
o
[777�"!mm!"m��777.777�jYR#3CSv@s,$@8 PH
Lgg g
g
gW_ODD44DSDRLJ4C4B<:0.(&##&56+!"&'467!23&/&#"&'5!463!2#!"&52#!"&=4632#!"&=4633�
�6J�����S�
�
�w
�
�w
�
�w
~4�~ |&����< ��
$
Y
$
$
�
$
$
���j�R!*3;r@o985(%)$L iii
Y
aQ,+#"0/+3,3'&"*#* +2".>"627&7&47'27'"'726.%64'�f��LT����TL��fj_l.^.m`�ll3�j`m.^.l_jY~z�x�cl33lRP��ȼ�PP��ȼ�PG3ll3��l.^.m`��3ll3�~��x�vul_�`m.^��Y1FZ@W*@%;3L�~�igYaQ#&')5#$ +#"&'&4?632>."+"&'546>32%+"&=46;546;2YDr�V`�<L)vC:hP*.Llod(M�,H<�RW�tB��
�
}
$
^W�tDRIM5:.LjtjL.(%M-�H9>Dt�J�
#
�
/.�_<���m��m���iPTR�jP����P�����
4��������P����������Y�Y���Z����"�d��j�� 0 ��
T����55EL\lw
+�� j� / O ] } � �
V� &)Copyright (C) 2021 by original authors @
fontello.comrsticketsproiconRegularrsticketsproiconrsticketsproiconVersion
1.0rsticketsproiconGenerated by svg2ttf from Fontello
project.http://fontello.comCopyright (C) 2021 by original authors @
fontello.comrsticketsproiconRegularrsticketsproiconrsticketsproiconVersion
1.0rsticketsproiconGenerated by svg2ttf from Fontello
project.http://fontello.com
clipboardfolderusersuser chart-bar
arrows-ccwmailcogs briefcasesearch-circledterminal
chart-lineattach
star-emptystar attentiondocsmagicdoc-textlifebuoyhistory���,
�UXEY K�QK�SZX�4�(Y`f
�UX�%a�cc#b!!�Y�C#D�C`B-�,� `f-�,#!#!-�,
d�BC�C ``B�CB�%C�CTx
�#�CCad�Px�C`B�!e!�CC�B
�C#B�C`B#�PXeY�C`B-�,�+�CX#!#!�CC#�PXeY d
��P�&Z�(
CEcE�EX!�%YR[X!#!�X �PPX!�@Y
�8PX!�8YY �
CEcEad�(PX!�
CEcE �0PX!�0Y ��PX f ��a
�
PX` � PX!�
` �6PX!�6``YYY�%�Cc�RX�K�
PX!�CK�PX!�Ka�c�Cc�bYYdaY�+YY#�PXeYY
d�C#BY-�, E �%ad �CPX�#B�#B!!Y�`-�,#!#!�+
d�bB �#B�EX�
CEc�
C�`Ec�*! �C �
��+�0%�&QX`PaRYX#Y!Y
�@SX�+!�@Y#�PXeY-�,� C+�C`B-�,� #B#
�#Ba�bf�c�`�*-� , E �Cc�b
�PX�@`Yf�c`D�`-�
,� CEB*!�C`B-�,�C#D�C`B-�, E �+#�C�%` E�#a d
� PX!��0PX� �@YY#�PXeY�%#aDD�`-�
, E
�+#�C�%` E�#a d�$PX��@Y#�PXeY�%#aDD�`-�,
�#B�
EPX!#!Y*!-�,�E�daD-�,�` �CJ�PX
�#BY�CJ�RX �#BY-�, �bf�c �c�#a�C` �`
�#B#-�,KTX�dDY$�
e#x-�,KQXKSX�dDY!Y$�e#x-�,�CUX�C�aB�+Y�C�%B�%B�%B�#
�%PX�C`�%B�� �#a�*!#�a
�#a�*!�C`�%B�%a�*!Y�CG�CG`�b �PX�@`Yf�c
�Cc�b
�PX�@`Yf�c`�#D�C�>�C`B-�,�ETX�#B
E�#B�
#�`B `�BBB�`
�#B�a�+��+"Y-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,� +-�+,#
�bf�c�`KTX# .�]!!Y-�,,# �bf�c�`KTX#
.�q!!Y-�-,# �bf�c�&`KTX# .�r!!Y-�
,�+�ETX�#B E�#B�
#�`B
`�a�BB�`�+��+"Y-�!,� +-�",�
+-�#,� +-�$,� +-�%,� +-�&,� +-�',�
+-�(,� +-�),� +-�*,� +-�., <�`-�/, `�`
C#�`C�%a�`�.*!-�0,�/+�/*-�1, G �Cc�b
�PX�@`Yf�c`#a8# �UX G �Cc�b
�PX�@`Yf�c`#a8!Y-�2,�ETX�EB��1*�EX0Y"Y-�3,�+�ETX�EB��1*�EX0Y"Y-�4,
5�`-�5,�EB�Ec�b �PX�@`Yf�c�+�Cc�b
�PX�@`Yf�c�+��D>#8�4*!-�6, < G �Cc�b
�PX�@`Yf�c`�Ca8-�7,.<-�8, < G �Cc�b
�PX�@`Yf�c`�Ca�Cc8-�9,�% . G�#B�%I��G#G#a
Xb!Y�#B�8*-�:,��#B�%�%G#G#a�B�C+e�.#
<�8-�;,��#B�%�% .G#G#a �#B�B�C+ �`PX
�@QX� �&YBB# �
C �#G#G#a#F`�C�b �PX�@`Yf�c` �+ ��a
�C`d#�CadPX�Ca�C`Y�%�b �PX�@`Yf�ca#
�&#Fa8#�
CF�%�
CG#G#a` �C�b �PX�@`Yf�c`# �+#�C`�+�%a�%�b
�PX�@`Yf�c�&a �%`d#�%`dPX!#!Y#
�&#Fa8Y-�<,��#B �& .G#G#a#<8-�=,��#B
�
#B F#G�+#a8-�>,��#B�%�%G#G#a�TX.
<#!�%�%G#G#a �%�%G#G#a�%�%I�%a�cc# Xb!Yc�b
�PX�@`Yf�c`#.# <�8#!Y-�?,��#B �
C .G#G#a `� `f�b �PX�@`Yf�c# <�8-�@,#
.F�%F�CXPRYX <Y.�0+-�A,# .F�%F�CXRPYX
<Y.�0+-�B,# .F�%F�CXPRYX <Y# .F�%F�CXRPYX
<Y.�0+-�C,�:+# .F�%F�CXPRYX <Y.�0+-�D,�;+�
<�#B�8# .F�%F�CXPRYX
<Y.�0+�C.�0+-�E,��%�& F#Ga�#B.G#G#a�C+#
< .#8�0+-�F,�
%B��%�% .G#G#a �#B�B�C+ �`PX �@QX�
�&YBB# G�C�b �PX�@`Yf�c` �+ ��a
�C`d#�CadPX�Ca�C`Y�%�b �PX�@`Yf�ca�%Fa8#
<#8! F#G�+#a8!Y�0+-�G,�:+.�0+-�H,�;+!#
<�#B#8�0+�C.�0+-�I,� G�#B�.�6*-�J,�
G�#B�.�6*-�K,��7*-�L,�9*-�M,�E# .
F�#a8�0+-�N,�
#B�M+-�O,�F+-�P,�F+-�Q,�F+-�R,�F+-�S,�G+-�T,�G+-�U,�G+-�V,�G+-�W,�C+-�X,�C+-�Y,�C+-�Z,�C+-�[,�C+-�\,�C+-�],�C+-�^,�C+-�_,�E+-�`,�E+-�a,�E+-�b,�E+-�c,�H+-�d,�H+-�e,�H+-�f,�H+-�g,�D+-�h,�D+-�i,�D+-�j,�D+-�k,�D+-�l,�D+-�m,�D+-�n,�D+-�o,�<+.�0+-�p,�<+�@+-�q,�<+�A+-�r,��<+�B+-�s,�<+�@+-�t,�<+�A+-�u,��<+�B+-�v,�=+.�0+-�w,�=+�@+-�x,�=+�A+-�y,�=+�B+-�z,�=+�@+-�{,�=+�A+-�|,�=+�B+-�},�>+.�0+-�~,�>+�@+-�,�>+�A+-��,�>+�B+-��,�>+�@+-��,�>+�A+-��,�>+�B+-��,�?+.�0+-��,�?+�@+-��,�?+�A+-��,�?+�B+-��,�?+�@+-��,�?+�A+-��,�?+�B+-��,�EPX��EX#!!YYB+�e�$Px�EX0Y-K��RX��Y��cp�B�*�B�
*�B�
*�B�*�B�*�D�$�QX�@�X�dD�(�QX��X�DY�'�QX��@�cTX�DYYYYY�*������D�dDDPK芋[q%&\\css/font/rsticketsproicon.woffnu�[���wOFF\+�GSUBX;T
�%zOS/2�CV>!S�cmap�����
Ncvt
�fpgm��b.�zgasp �glyf ���>��head�26Eu\hhea�
$��hmtx:XRg��loca@..71�maxpp
�;name��-&�z�post$��&+Oprep�z�~�;�x�c`d``�b0`�c`rq� a��I,�c�b`a��<2�1'3=���ʱ�i
f��&;Hx�c`d��8�������iC�f|�`��e`ef�
�\S�`�x�9�Cs�t�0#H�
Rx��An�@E�@HMK)����Wa�Ě��d���*w�ыdkƉ�,��ٛ�/��W˽>gu�w|;����PO�2��
�1��w�O�3���w[���>��
_l�1�h�3�x�!�1f�?J<S��O%�TI�V�٣�Pb(���(�-���)�A��%Jl%��Mi�4�s�a�Ldž����`�gM<x�c`@x��Wk[���
�B�ͺ�(cQ��$qb+�eQ%����un�H�M�^���5�_�?sV�O�o�iy��Jܧ�S>�3�Μ�YHhI�~�Rv���.U�=��K���ޏ��H?�Ӣ�W�n�N"&���pD��Mr4��a�
Z�U�IE-G����2I����Y�P!�;�4��t@���P(��\���h��%��GU��5E�ģ�`�4=�룕
� �H��G���k�\�C��Q���x��dwI�0� 6m0ڈc�Y6,���|$i��י�y/���0�4Ӌ�H^�at����M�8v-�
�$v#]&�1v�t�ѕn�hA��,��x���xq�{��Q~ܤ�����H��TЋhJ�4�|d[�&UL� 9Ȧ�}ɋ�k��_Iا�Z���!te��"�%=7ݍ#�cI��"���ܔ&Mi:x#Q�i��P�
��
�����Zk�9-��y�U��O��$fJ�e��ѣs�"����p�듅4kOq<���D�C�rRM��� !��ȱ�H�J����3��U��4��CGs��B��������
���V�4�R҅�5>��b�`LP$bЇfZ9L$-"lMZ�ݽ(+
��4w��T�ݝ�{�N�u�W����Rp?ʖ�rR�=�r(-?��?�!g�(6zQ�ჿ��څ��¶1v�:o�M��t`�'�uF
3!�
�BA�9�c�U�"�p/�%�ː�Q~s�p���?�.9bQT���e�9i�<�ѧ��4µk^�.��ay �f�5�Y>��KWge��uVa�u�M����i����9��V�S%A��l��ߖ&�c�+�ŏ�b����d�c�(��ޙ~©[W����ោ]O�?�
���
�X6��U�����5���[���c�Ҳm
����K�D�s������5���G�q��U��3���
ō����v��l�r��3kY٩��"{�ܱ�Ź������q��_Չk{�-</V�%�o���n85��&�N��%�h��u�ݤ��FEa�A)+
ْn ��ᰣ:�!>t]�H�S[F�o�w��E�Jh�
C�f�O��`�RR��8�I�l��1[R�=es':*ɲt�J��b�;���2;�vB����p���R)H��xT�\
R8�N�������m�XA�6�X3�т�NQ�lO���
e\�+��D6��F�w�/u���XH̖W�X�6���d�f���R��I�i{QK����d��TP������.6��U{�-�%��1K�q���y��q�7�?Z�m�D=o�lǭl�Yƽ}����;�ꟺ�I;M��')��t��6�18u& m�:v��e��U�h�u�T�p���:��[3��?�t�U�����B�:V/�8���|�G�U�n{u��%�f��A�^{|��W[t���3�8�Y����kz�
�b�p�m<��h�����
�o��=���9ff���cN`�9�3��w����0���b}�ع@v�-�9��f�A�0Ϡw�g�{�3HX'��u2�g���y`��a�9�g��������.F?0v1�����Cc�������Ljq{����m~d�+�s�����xks��,d��
��9���&��Ҍ̎Cyǯ,d��qNN���L���L��w&�ތ�����G�� �� �� ���y5#C���L���L�v�ZȄ��L�T�Λ/[���R��&���h���W{��Ǻ�%�A��x�}Wl�u}��wg��3��3���w�˟�̒�oE�4M�)�b%��)JfL�%eE�)9�h
�\�1l7M#�1,�E5��H�Ƶ��N
ß��"h�Tr�;����h��y�7s߽�{.i
ds����M��K��
a#m��I7�#ry���m�D%�9�X����"
�R��#{B�i'��Ӱ)ۘ`ܢ�^�A4�8��Eׂ|&c��r�K(�D�������R����=�D�AMS����Jep�����wk���]���]�B����sKG�-���bf��H,�6�p�Q34C(~��S=^�Wn�}�U篅��B
�&�T��fJ�@��~KE+
�&PJ2_���0e������7^��;cMY@��߁�_�n_D�ZP?�<QY���Sgb���x?s�s}tk�;7��D�'�����8ȣO`�~�\��A�D��(F�`�fgD��r|���r�H�_~�홙��`�s�F_%:�N�^i�-���
��SB��9�0p���f8���|����`f�e��7x��/RI�T�P.Zy=� 1Л�D��uf:��iB�T���χh*S�ŻF=
�;���?ד�k3�_��Ƨ��w�R]�Զ˾�J��w��?��߽%G����Ų�L��41��KK�#����ai�O�ikn`�kB���gz�%���E�3I�$X 8�C�{i���^o
��-����G�����;[9��{�`qUb��<�:۬PVR=|���?!8�IU��(��bN�47W��\q>��i���'�.�b�y��3q"�i�R�#pN��s"����4o��\@��7�
.UR8��
��Z@��)�X`~� ���=�f��/L<��_a&�Qm�WԬ�ܸ�'t��)c���4�L%�1po
��`Ldq訕����AP3eӇ`0�'莗�5� ?8a�۾��S��>^���=Kaw��N�({�
����}7�v�i���T�.tԳt
=�"�J�1R�&��4�
��;����V�Y�
��/�g��YU�S��YR�����8b�7}�"����+̰�T�?R����}ţ�qY��Iҡ�YI��U�q�iқ����c�^E,�$�giY#_#��k������Ȟ?ؽ�:v���r3��/��{`vjb玀D�̑�{2AN�g���p#��z��N|%���9��
�C�*��}�H�%�k�S'8�]�E\���5"R�����]%�V���s�P�4�.
@a�7���'�?���;G
�-�-�hH�
<��lٰ�`�F��Ѝ��EO��$ٲ�-k��v>�So�ǩ7��[�r���W�k��M%y�緳��ox,�$��Bc�}�0;+(�!�X��yj�vCE=�KȣTW{ڻ$:,�r�{��G4���Kd3|/�2�E�T<�X�g��]�iN�PW���;�`s��x5�c�V�����cw��
�c�1Z�mt
�u�
5�f,��d�߾e;T�m3n�1��2�ޕW<���H;�.^
��O�[��h[�mDY�#��j�E4�m4Y��" �8i'����P�q�ab_��G8�5pD�Q
���-C�q��n�˽�k��ܮ�p��D��|�M�M�'��Zsf*o
��Ƞ/]J�2&e$�V/
4��qW��D�Y���R�R3�v���]T��|�<���s�do})�y.r��,?�ᛑ�
��Cz)�ky�`|b�`YVh��}�SS/��}w��W�D"�8�l��+PN�L��ǰ��(�Q�,�CV���b�L;��
>����3~��&�"a�+,)e����f�hF��
5>i� ���?��۟���r�o���z*CGǏ��f� Ljh��R�3���|���3=������vs�.���K����qK.[UD~��L�9WK�q�D�1s����V@=�R2�L���W������o��w�]�A����h��{�v�^7�y�Ygd�
�f��߉�!�q����L�Jk&Ƞq(�|��#'����np�Z�X������d�$�*2�lz��u�O��O�|�Âhf�� y<�(����|����V��zЄ���"'X���O<��Ȳ?��7~���)Ӫ��0��i�O]��ߛK�s�"M��PW�K�jj��X��\���d��h!d!?H-�ʖ���Z�7t�A�e�tƲP�K= ɬY{��g�N���{(/
��/ۏeX6���2 ���:�r����={�x��#1��=����
�����܃�EF��2��r
��^6�G���s�%Lس��Ҿ?<3V�z��3�AA6E���ܚ$��nL�d,��5E�H�D1�#��3���I�@w�|��E��P ��_6�
�7���l�z�>;[/�B�\S�>x�~{2R��k�M3�~�&]U_���.VFDx��<��w��7�{.�X���xF����ɏ��,
���u
W����%�Kt.��[C?:vqa@�2�>���?�o�t^u�������3�y9�gȡ���Uz�s��X�cqN�x�0�C;U��A�T��kP
/"�9�a,9XHf�T�������i�g}R�^���ѣG�JR�)���m���@��.���֨1�K��6;VYN�E�q*pHLA�_�;\q-�:���b�$��2u���e�:/;�
;�E
žb_o�U�r�-לI'!C��x��\W��&ES��\���,�
^(�P0ʸ;���jfP�N������q���ʯ��~
��ĝ�.��_��|��Q�:Duj�5��Gp�Lm�Ÿ'u�kE��m���/����:>�gt���]��`����`^@_1�j�6�f�*�|gG[K��Nƣ���(V%[�P�-c��(g��&ԥbщ0�[�1��`��>�R�K`Iy<b�K��Z�![����������r�氣��/���w����uV₨��/)�*��'�U�e� �q:n�R��"3�{�c��B\l'��J�
녶4j�J7]�Tr�U�%K�ŚQB����'M���v�2��Ĺ�'�n/6��j��.����Óձ��P��Ύf3�
���V��N�B�>��BL�_M�@����w
����>��J�*|��=jl�j(��c��������$���$�'����u����HW�bpc�����_�������/���2|*H��v&OKb���3��ִ=�C��&�
I����{���A?��F�����y^h�P�ϥ)�q�y�e�G���3�7�cy|�46,t�eW[k*�S�tni-��f�%Ղ%\���%O�F�&;�c$ �lBq��5��5��r���"j�"v5��מ��Sko��)���k�-X��X��#K��T��\�[Ɓ��ӫ���½K��LN���?<;q���P[��d}������^]cO����ҁw�G�Z>�+ħ�t�2S���"S�PV��*
,E�eDv���b�<��;,eDk��X�8�%���t�+efs%#e�]|�4�:3����"
���A�XR�<�F_���Gi)�s�%�י�����]�c�*�����[O�Ў����w�~�W�6u��[�{�}bȾ
��8�8]�����]����_��Q]<�X�h�ܭ����7�30|��c7�E)Q�[l��J~�x�c`d``b}�g[�m�2�3��0�ɕ���������r00�Dh�
#x�c`d``�������@
�h_x�c~���t����Vb����[�I�5H������o�������
���i�����Z����"�d��j�� 0 ��
T���x����J�@��Ԫ���9�EHۀO��^�COzH�m�6͆Ͷ҃g��g� ��,�M��4a�o����I���%ǚ=1Zs
��v�C�N~t��&2�{�ώ����&N����� >{��C������:���.N�7�{��x_��8����X�4N���[t������<�$��D�Rz2ֹUY��H�Li�h�lY�F:P�<ͦތʔ�Υ�w6�nU�Lh�h�{��k�26z&7n_a�DE�O�-����A�0H#����w�G�4d�0s��"G�"|�Y�T3%�ǘQN����}D|Ϊ��S�YF��̪�6�zW5[���hW9i ���Ͷ�[ڼ��F���X�t�e��.MՕ�f�_qkNh"z�����
m�|�:��x�m��n�0���m��-�
��r!����h��
^;��<�٘'�� laѠ�<^�7�q�;>p�'��~��/}&�1�A���b�x"��'���o%0��L1Y���z�22�!�)pTN2tUt�%�<Hq��j%�|��A�K]�C�=�Rc^쐹43�#ww
U~k��(�5��)��u5��>@�x�c��p"(b##c_�Ɲ�؝620hAh.z'7k'3��FƎ��
~��F
D��%Rz�:HhG#�CGrL62�i�`�ߺ��w#��f�6�*PK芋[��,��css/font/rsticketsproicon.woff2nu�[���wOF2�+��TV�0 �
��.6$X
�-���'Eb�8v�Q1���In�4d�"�A�M#Lp/O{hƒ`�y�a��A�I,��q��
��aɡ�2��;�ŐY��S!H���FPyUG�������}����s_���[��l�d�p[<Z
�n�E5�j^�Β�2�2�9��;�ϼ�mvG��D5��IY1�|��B�m�m�]T���]RP��2N,��)�c�Ib�#:َ��l����R�+?�o�2���
%����2�]����9˥+aR
ܺ'T��P����R��d;@�����
Г��]n��)W�]�Fj�be��ƨ���R.S��ojI�i�ε.x�v���367���m��E�n�G�d��N�SJ��kv�^PX^P� ������8�RՈO�ct�A*?�6+R�A�v��
��Ub
Zy�p�V��&s&Ԝ�)ە�j��CQ@�n1�5/Z��.�<���������i�i�����*rW%�S^�
3���s�<�h�@�Y���<�����&��O��y�˚��`Y'�Z̾�?O
���)(��p册PQ1R"��e6 �0�2L��*æ�p�2\��*ç��2B���*#��H�2R��l��
F>�o�Q���Q����?e
��A�0����E6n0t����X7ˢ�4�����i���X���B��;���P��!��\&���]ڔ�|ቮ/��`N��`vs�^MZnkc��n����(�~���L}�V�"W�,�ŕ�&$0������#5R�_���v����,���Xn��W��796�mz�R��kQ���*�����X����L���U<�
�!H1�m�d��N{�ꮡdfr�i��dDmxc�c�#ZG{���G�����w�<�6B�a]������0�3M�d,`�l��)M��ʪ���B�5y?�6
����ӌ/s8�i�b��`^��d�1��n
����J�E���+�)�
C¾��I�6����SP@�'�7sk���l06қ���Q�����>��@<b
aL�<��ؼ5j�u�(ܖ��SpT��%ׅ���Hu�7X5�!�]nT��ܚ�I��ڼ:Z�8E�z�=yK'�66����X4�SO�`�Gnk��jO�9{_�5V)�TA|��뒨��߮�B�f�${�M�sj�TFJ�8�� ԣ �6d�z��_R��I�ShK���y�S�'7�����SwѨ<�0���D��?a�]��
����0�����p"@J�e!��6o�XA�Oʛ�-�{��-̟M���`�J����
g��9�p.:�����p!:\���%�V@�V�'&g骪��,RfE�v�B�
��9VCd(�,j�֗���*c9����J�E�^+F�~�-�k]��}�
ߴ^�w�R}o=��"��W�E�.�Զs�l���P�P��Q=�wlb+@��7���^*�ؓRZk�>�)�N�7m�ݤP<���[����W?�,A�Dm��9kV��|� �ck^�����䊺�>I��ù���٢�a�[vm�4s�$�v�5o����2Պa�kW��`��u�ì���Jy�(��S��WL�V
R�*⽍ϘC����Kٜ����Y�0��`�@��-��D�;Q��`��mH��ܚ�.T2�ִ�&!�kOY�o��3݉��to�9�ώy���<�d���Ry�/��2�d>Ve��Nd�]��7�ϼ[�Qs�=`K�,�l
M���*�MleXV�ʆ}y���U^_��̛-����UR�t��(��{x��O1�`a�x��s^��͕nu�˰<"j����u��C^���Z<��#۰vC���@���0�w8�u(�J%�fn��1$��ѻ�8Zȁ�D�d<ET���!9#�'�sD���"�x�P�8�/
��C�
W��5C��0���$x���M�#rG��O����F'��}����C��#��c����S���`3x���O�2_�.���6���+'���B�����V�������n���}���3%�ҋ�phn��6��m���I ��$�A����n��s:�(�ߔ�����W{���V��SPkl���o!K��u��L��h��-×�B��ya:����I�,D�����"δ��M<�n��"AY��N\��i���2�:��~\M)���H����C�{��C�kl�'D[�H�>��R�yzv�cb���I@ ��\�Ν�v�l"L�H(4�sEu���H�����;��w���n�F�D��2��+������/!ځ�'%���2¶�v/��:��Ƶl�VtW��6��y�n��d�ֽ�C���Α=�[��Xy�0JJi�|��,�$��GK��X[��:�Rg�#�5�ӄ�r�����@x�E��<��K�3��^�\���.��q��Mڧ�m���:�&°��q)�:�;1����=����u�l1���*5z6��s���VjKP�p���G���X��^�qi����r
ʳ����]ɺ���U�r��`���- iF)
x�
͟�|x���G�?���f�F�8g�4c��'�a
$�A��ʹgw���x��o�j/o�BY��6)W�0L�3�}q�x��8���Y[*$+�iKKˤ�l�2�t�'��u+�)���g�"�ym*�G��R"��5�68����8��<�D���9B,�+y1D�01Yg2*�ghuy�\�PY�ڥ��X`F�ֽ�8���>&sX+c��h�x���q��2�����X��
��\#��N����;��B%��vj�RP_'�$��C@��@7���V��ǁ�!Ѽ�?�z���~*Zф&�0y�"��[L� �e+x�$�_�2�d�a�Ylh?RH��^�b�Tp�ٝ$S�V=ZB@��v�-�٬U�Ji7��4�P$���Ɲ��Y�?�m��L�?@��}Tf>���X�*��F�֛�n�J�+�ča$���7+�M��E��������yY`.�n.,�y�=�[Z#��^����_h���'�{VI�Iο�ܫ�3)�������x���;�go5�����q�����#��y"%�ڔS�R�*z�A���C��L�>ΖT�:�z�-b2�w�1��=ƚׅ3kE�x[�:�֧�+9ّ#�Ҏ:k6�Q��.��*����Ys�H9�%&j����A�<�ș�3.|y���7����a!g�:����Z�i�FcuB�j�
F�5�v�"�:7�\��P^�Η����C��Ͻ����"��MDq���gwg��0��ݷa����ι�D�41j�&�@�/�9�q���ֺ96�����#�o��:o
�\������+N]��"�{����# �����������ɑ��2�n���5����P�v���ϡ~Q{���O#��;c��ʏ�&�3p����G�=��y�K�N݉�
����px��q,���L{.�+�� ���}�=
m�Y����ݮ>�s� ���Š=�����,�J��C�}��|}@O䘻�v����SS��]����u�V��P��SS^�i��P
!3�
�8&5�*jyq�2�D�D�ؓ�7�wFM� �Q�2.̻��末�γ~Z�1!�qg�� �é�C��n!���و�x�?�:�7+��եo*�Ȃ�mŅ�|d��py�E`y�vt,⇔��z3ҜH�����s�����$����1颱���;�l���krMLJ��FF'&d�4P�R&CC{!,"�s�y�SV�,Å���q���T;'��`v�)Z�p�ªE�8;l�}�m�M}��
�(�W���Z�k����9A�;\G�f�slld<��ik�FEzu�^�w�K�u��ª��
����uNirJ�)ok������ßm��/�?�r�Q!��%�9���m�D3q�S߃}ܾ�:���SnQ:S\��^_�Y�A�<�F��rY<�K/�
]�Y�bڋ��i������B?$�NMŕ:�rФG��^�>�]�ۇ[����v!�?�g�z��k�v��]�Yv*mŒ�s�[Y纗\J�>�]f���.�>�RyU����U�"�;Cu���U��f,�*Դ��ûSi����v�@��SK%�!�$�D���ko(�%C�����`Fd��Q���Υ�pID9/-9���*���y�}J�S
�o'1�o�QP�8�� It��!M�߸>����:o��L�Ґs���\�0�/�{c�}[<�j��Q��iAUA[����qɔYQ6S![L���q��3���t�/p3&X� ���ql]6�σ�\� ����oOO���eQ�y����܊}z�^��G��߬�1oֺd�\���E�V{��Ե�
�e*�U�H��#�i�'h�
+��\h(k����ki�:ˇ3� al����iM�=g�W9
�����<Tm����B��;�<��tl�3xlo�@�v���Zj�b�\��7�8rMIɁh���io�[�NNО�yh�=f��>�}r�;u�<!sZg����Y)I�.�I��ZMQ�2=-�B˃���c=}�S�>���K{���;��
�R���طחLJ�)�ß[��&�Cc���ٲ�#X��
�
y���L�AL��dYY_�����u�4 $��k!����]����Gf�1pC��O�?�Q��R��y�
�NL���t>�a7}1����^>��4�MYdq
^�:SK�kO���D"�T�����I��
���"� ��l{�&V��@˳���'tDEԗq�9� �Y�b�5k�㧗G�]�-���p"
s�]Z{L�&��M����v���3l²��T�s��e�G�0��z$
�� �m�n��8��wI&&I�^:Tj�e$��pJUjt�8�����{(��)�M5��dK���>��^�Zo��{�@`!���
40pj\E�xp���D"�
��������ܚ������<p�,X̢���A��y�]S�%��0L����0o��zgUG�ev�� �p�
b�@P&m�����IA��7K
���a�����JE�0�͒f�$�~D�Q���5a����]O��Y=�`�.�N6?�ir�-����+��<b?��Yq��<��H/F�t�tr�X� X�r�N)�rplӷ|ѣ�J���5��13�K>V�������xA���,[��yK�6`��q�89�i��-�J���������)�Ki*���e���a�#����mj#�(��@5�(7
o��;v�߷�n��9?�i���ߒ<&�.5.�s���o����G,/�\w�IBE<��O�>�"-���l���8)`�;i;ʄ,��8��pSȬ�R�vN2t��I�sM�#�` ���$��
�9P���Z�yX��{-jh�g���յ�Z�������5�%u�����Dn��3��Z���Y�H�kЪI�r�<,
��@0>%Zy�bە���f�W�U�:Gd�:�,�ʚ'�iu��Uj㪕��[�kbh���T�ː���Ty�IWJ��
�c�B��Kߡ]�P�YH�R���nZ���
_�6WVQ��:h�J�'��pztۦAp�vBL��G\�ė@B�$�DR�r�5��Q�F�''m�,�)��4wS�T�y�N^ s B0zO�1�x�;�4��:<9(�6�vk��H��:���t���(�y�BUx�N(m�F��x,��!p�K��X\n���Dž�qtV�8܉q��-��
�y��s��G8���EKN{@M���V���&b���>�(���Hz^��k&���h1��PK芋[��dd
css/icons.cssnu�[���@font-face
{
font-family: 'rsticketsproicon';
src: url('font/rsticketsproicon.eot?37506999');
src: url('font/rsticketsproicon.eot?37506999#iefix')
format('embedded-opentype'),
url('font/rsticketsproicon.woff2?37506999')
format('woff2'),
url('font/rsticketsproicon.woff?37506999')
format('woff'),
url('font/rsticketsproicon.ttf?37506999')
format('truetype'),
url('font/rsticketsproicon.svg?37506999#rsticketsproicon')
format('svg');
font-weight: normal;
font-style: normal;
}
[class^="rsticketsproicon-"]:before, [class*="
rsticketsproicon-"]:before {
font-family: "rsticketsproicon";
font-style: normal;
font-weight: normal;
speak: never;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
/* opacity: .8; */
/* For safety - reset parent styles, that can break glyph codes*/
font-variant: normal;
text-transform: none;
/* fix buttons height, for twitter bootstrap */
line-height: 1em;
/* Animation center compensation - margins should be symmetric */
/* remove if not needed */
margin-left: .2em;
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
/* Font smoothing. That was taken from TWBS */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Uncomment for 3D effect */
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
.rsticketsproicon-clipboard:before { content: '\e800'; } /*
'' */
.rsticketsproicon-folder:before { content: '\e801'; } /*
'' */
.rsticketsproicon-users:before { content: '\e802'; } /*
'' */
.rsticketsproicon-user:before { content: '\e803'; } /*
'' */
.rsticketsproicon-chart-bar:before { content: '\e804'; } /*
'' */
.rsticketsproicon-arrows-ccw:before { content: '\e805'; } /*
'' */
.rsticketsproicon-mail:before { content: '\e806'; } /*
'' */
.rsticketsproicon-cogs:before { content: '\e807'; } /*
'' */
.rsticketsproicon-briefcase:before { content: '\e808'; } /*
'' */
.rsticketsproicon-search-circled:before { content: '\e809'; } /*
'' */
.rsticketsproicon-terminal:before { content: '\e80a'; } /*
'' */
.rsticketsproicon-chart-line:before { content: '\e80b'; } /*
'' */
.rsticketsproicon-attach:before { content: '\e80c'; } /*
'' */
.rsticketsproicon-star-empty:before { content: '\e80d'; } /*
'' */
.rsticketsproicon-star:before { content: '\e80e'; } /*
'' */
.rsticketsproicon-attention:before { content: '\e80f'; } /*
'' */
.rsticketsproicon-docs:before { content: '\f0c5'; } /*
'' */
.rsticketsproicon-magic:before { content: '\f0d0'; } /*
'' */
.rsticketsproicon-doc-text:before { content: '\f0f6'; } /*
'' */
.rsticketsproicon-lifebuoy:before { content: '\f1cd'; } /*
'' */
.rsticketsproicon-history:before { content: '\f1da'; } /*
''
*/PK芋[�#o,,css/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK芋[t��A��css/magnific-popup.cssnu�[���/*
Magnific Popup CSS */
.mfp-bg {
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1042;
overflow: hidden;
position: fixed;
background: #0b0b0b;
opacity: 0.8;
filter: alpha(opacity=80); }
.mfp-wrap {
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1043;
position: fixed;
outline: none !important;
-webkit-backface-visibility: hidden; }
.mfp-container {
text-align: center;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
padding: 0 8px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box; }
.mfp-container:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle; }
.mfp-align-top .mfp-container:before {
display: none; }
.mfp-content {
position: relative;
display: inline-block;
vertical-align: middle;
margin: 0 auto;
text-align: left;
z-index: 1045; }
.mfp-inline-holder .mfp-content, .mfp-ajax-holder .mfp-content {
width: 100%;
cursor: auto; }
.mfp-ajax-cur {
cursor: progress; }
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
cursor: -moz-zoom-out;
cursor: -webkit-zoom-out;
cursor: zoom-out; }
.mfp-zoom {
cursor: pointer;
cursor: -webkit-zoom-in;
cursor: -moz-zoom-in;
cursor: zoom-in; }
.mfp-auto-cursor .mfp-content {
cursor: auto; }
.mfp-close, .mfp-arrow, .mfp-preloader, .mfp-counter {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none; }
.mfp-loading.mfp-figure {
display: none; }
.mfp-hide {
display: none !important; }
.mfp-preloader {
color: #cccccc;
position: absolute;
top: 50%;
width: auto;
text-align: center;
margin-top: -0.8em;
left: 8px;
right: 8px;
z-index: 1044; }
.mfp-preloader a {
color: #cccccc; }
.mfp-preloader a:hover {
color: white; }
.mfp-s-ready .mfp-preloader {
display: none; }
.mfp-s-error .mfp-content {
display: none; }
button.mfp-close, button.mfp-arrow {
overflow: visible;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
display: block;
outline: none;
padding: 0;
z-index: 1046;
-webkit-box-shadow: none;
box-shadow: none; }
button::-moz-focus-inner {
padding: 0;
border: 0; }
.mfp-close {
width: 44px;
height: 44px;
line-height: 44px;
position: absolute;
right: 0;
top: 0;
text-decoration: none;
text-align: center;
opacity: 0.65;
filter: alpha(opacity=65);
padding: 0 0 18px 10px;
color: white;
font-style: normal;
font-size: 28px;
font-family: Arial, Baskerville, monospace; }
.mfp-close:hover, .mfp-close:focus {
opacity: 1;
filter: alpha(opacity=100); }
.mfp-close:active {
top: 1px; }
.mfp-close-btn-in .mfp-close {
color: #333333; }
.mfp-image-holder .mfp-close, .mfp-iframe-holder .mfp-close {
color: white;
right: -6px;
text-align: right;
padding-right: 6px;
width: 100%; }
.mfp-counter {
position: absolute;
top: 0;
right: 0;
color: #cccccc;
font-size: 12px;
line-height: 18px;
white-space: nowrap; }
.mfp-arrow {
position: absolute;
opacity: 0.65;
filter: alpha(opacity=65);
margin: 0;
top: 50%;
margin-top: -55px;
padding: 0;
width: 90px;
height: 110px;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
.mfp-arrow:active {
margin-top: -54px; }
.mfp-arrow:hover, .mfp-arrow:focus {
opacity: 1;
filter: alpha(opacity=100); }
.mfp-arrow:before, .mfp-arrow:after, .mfp-arrow .mfp-b, .mfp-arrow .mfp-a
{
content: '';
display: block;
width: 0;
height: 0;
position: absolute;
left: 0;
top: 0;
margin-top: 35px;
margin-left: 35px;
border: medium inset transparent; }
.mfp-arrow:after, .mfp-arrow .mfp-a {
border-top-width: 13px;
border-bottom-width: 13px;
top: 8px; }
.mfp-arrow:before, .mfp-arrow .mfp-b {
border-top-width: 21px;
border-bottom-width: 21px;
opacity: 0.7; }
.mfp-arrow-left {
left: 0; }
.mfp-arrow-left:after, .mfp-arrow-left .mfp-a {
border-right: 17px solid white;
margin-left: 31px; }
.mfp-arrow-left:before, .mfp-arrow-left .mfp-b {
margin-left: 25px;
border-right: 27px solid #3f3f3f; }
.mfp-arrow-right {
right: 0; }
.mfp-arrow-right:after, .mfp-arrow-right .mfp-a {
border-left: 17px solid white;
margin-left: 39px; }
.mfp-arrow-right:before, .mfp-arrow-right .mfp-b {
border-left: 27px solid #3f3f3f; }
.mfp-iframe-holder {
padding-top: 40px;
padding-bottom: 40px; }
.mfp-iframe-holder .mfp-content {
line-height: 0;
width: 100%;
max-width: 900px; }
.mfp-iframe-holder .mfp-close {
top: -40px; }
.mfp-iframe-scaler {
width: 100%;
height: 0;
overflow: hidden;
padding-top: 56.25%; }
.mfp-iframe-scaler iframe {
position: absolute;
display: block;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
background: black; }
/* Main image in popup */
img.mfp-img {
width: auto;
max-width: 100%;
height: auto;
display: block;
line-height: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 40px 0 40px;
margin: 0 auto; }
/* The shadow behind the image */
.mfp-figure {
line-height: 0; }
.mfp-figure:after {
content: '';
position: absolute;
left: 0;
top: 40px;
bottom: 40px;
display: block;
right: 0;
width: auto;
height: auto;
z-index: -1;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
background: #444444; }
.mfp-figure small {
color: #bdbdbd;
display: block;
font-size: 12px;
line-height: 14px; }
.mfp-figure figure {
margin: 0; }
.mfp-bottom-bar {
margin-top: -36px;
position: absolute;
top: 100%;
left: 0;
width: 100%;
cursor: auto; }
.mfp-title {
text-align: left;
line-height: 18px;
color: #f3f3f3;
word-wrap: break-word;
padding-right: 36px; }
.mfp-image-holder .mfp-content {
max-width: 100%; }
.mfp-gallery .mfp-image-holder .mfp-figure {
cursor: pointer; }
@media screen and (max-width: 800px) and (orientation: landscape), screen
and (max-height: 300px) {
/**
* Remove all paddings around the image on small screen
*/
.mfp-img-mobile .mfp-image-holder {
padding-left: 0;
padding-right: 0; }
.mfp-img-mobile img.mfp-img {
padding: 0; }
.mfp-img-mobile .mfp-figure:after {
top: 0;
bottom: 0; }
.mfp-img-mobile .mfp-figure small {
display: inline;
margin-left: 5px; }
.mfp-img-mobile .mfp-bottom-bar {
background: rgba(0, 0, 0, 0.6);
bottom: 0;
margin: 0;
top: auto;
padding: 3px 5px;
position: fixed;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box; }
.mfp-img-mobile .mfp-bottom-bar:empty {
padding: 0; }
.mfp-img-mobile .mfp-counter {
right: 5px;
top: 3px; }
.mfp-img-mobile .mfp-close {
top: 0;
right: 0;
width: 35px;
height: 35px;
line-height: 35px;
background: rgba(0, 0, 0, 0.6);
position: fixed;
text-align: center;
padding: 0; } }
@media all and (max-width: 900px) {
.mfp-arrow {
-webkit-transform: scale(0.75);
transform: scale(0.75); }
.mfp-arrow-left {
-webkit-transform-origin: 0;
transform-origin: 0; }
.mfp-arrow-right {
-webkit-transform-origin: 100%;
transform-origin: 100%; }
.mfp-container {
padding-left: 6px;
padding-right: 6px; } }
.mfp-ie7 .mfp-img {
padding: 0; }
.mfp-ie7 .mfp-bottom-bar {
width: 600px;
left: 50%;
margin-left: -300px;
margin-top: 5px;
padding-bottom: 5px; }
.mfp-ie7 .mfp-container {
padding: 0; }
.mfp-ie7 .mfp-content {
padding-top: 44px; }
.mfp-ie7 .mfp-close {
top: 0;
right: 0;
padding-top: 0; }
PK芋[�+���css/main.cssnu�[���#rst_files_container
.rst_file_block {
display: block;
}
a.rst_flag {
background: url(../images/favorite.png) no-repeat;
display: block;
width: 16px;
height: 16px;
padding: 1px;
margin: 0 auto;
}
a.rst_flag:hover, a.rst_flag_active {
background: transparent url(../images/favoritehover.png) no-repeat
!important;
text-decoration: none !important;
}
.rst_delete_ticket,
.rst_notify_ticket {
margin: 0px !important;
padding: 0px !important;
background: none !important;
text-decoration: none !important;
}
.rst_categories {
list-style: none outside none !important;
margin: 0 !important;
padding: 0 !important;
}
.rst_dashboard_items .thumbnail > a {
display: block;
text-align: center;
}
.rst_dashboard_items .caption > h3 {
text-align: center;
}
.rst_dashboard_items .thumbnail {
min-height: 200px;
}
.rst_center_block {
text-align: center;
display: block !important;
}
.rst_center_block ul {
text-align: left;
}
.rst_dashboard_center {
text-align: center;
}
.rst_dashboard_kb {
min-height: 250px !important;
}
#bulk_actions th {
border-top: medium none;
}
/* media */
.media,
.media-body {
overflow: hidden;
*overflow: visible;
zoom: 1;
}
.media,
.media .media {
margin-top: 15px;
}
.media:first-child {
margin-top: 0;
}
.media-object {
display: block;
}
.media-heading {
margin: 0 0 5px;
}
.media > .pull-left {
margin-right: 10px;
}
.media > .pull-right {
margin-left: 10px;
}
.media-list {
margin-left: 0;
list-style: none;
}
.com-rsticketspro-has-top-padding {
padding: 1em 0;
}
.com-rsticketspro-has-top-margin {
margin: 1em 0;
}
.com-rsticketspro-has-margin {
margin: 1em;
}
.com-rsticketspro-has-overflow {
overflow: hidden;
}
.com-rsticketspro-avatar {
margin: 0.5em;
}
.element-rsinvisible {
display: none;
}
.rst_custom_field label {
float: none !important;
margin-right: 5px;
display: inline-block !important;
}
.rst-magnific-popup {
background:#ffffff;
margin:20px auto;
padding:20px;
position:relative;
width:80%;
}
.rst-magnific-popup iframe {
width:100%;
border: 0px;
}
@media (max-width: 767px) {
.rst-magnific-popupp {
width: 70% !important;
}
}
@media (max-width: 480px) {
.rst-magnific-popup {
width: 85% !important;
}
}
@media (max-width: 320px) {
.rst-magnific-popup {
width: 95% !important;
}
}
#rsticketspro_remove_data_and_close_account {
display: none;
}
.pull-left {
float: left;
}
#rst-timer #timer {
margin-top: 7px;
}
#rst-timer #timer .clock-wrapper {
display: flex;
justify-content: center;
}
#rst-timer #timer .clock-wrapper span {
font-size: 30px;
font-weight: bold;
transition: all .2s ease;
}
#rst-timer #timer .clock-wrapper span.dots {
margin-top: -5px;
}
@media only screen and (max-width: 768px) {
#rst-timer #timer .clock-wrapper span.dots {
margin-top: -3px;
}
}
/* outer */
.com-rsticketspro-progress {
height: 20px;
margin-bottom: 20px;
overflow: hidden;
background-color: #f7f7f7;
background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5),
to(#f9f9f9));
background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
background-repeat: repeat-x;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
filter:
progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5',
endColorstr='#fff9f9f9', GradientType=0);
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
/* inner */
.com-rsticketspro-progress .com-rsticketspro-bar {
line-height: 20px;
padding-right: 10px;
float: left;
width: 0;
height: 100%;
font-size: 12px;
color: #ffffff;
text-align: right;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
background-color: #0e90d2;
background-image: -moz-linear-gradient(top, #149bdf, #0480be);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf),
to(#0480be));
background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
background-image: -o-linear-gradient(top, #149bdf, #0480be);
background-image: linear-gradient(to bottom, #149bdf, #0480be);
background-repeat: repeat-x;
filter:
progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf',
endColorstr='#ff0480be', GradientType=0);
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-transition: width 0.6s ease;
-moz-transition: width 0.6s ease;
-o-transition: width 0.6s ease;
transition: width 0.6s ease;
}PK芋[��YT��
css/print.cssnu�[���#ticket-global-message
{
display: none;
}
#ticket-buttons {
display: none;
}
.btn {
display: none !important;
}
#ticket-left-column,
#ticket-right-column {
width: 100%;
float: none;
display: block;
}PK芋[^|'.TTcss/rsticketspro.cssnu�[���/**
* @package RSTickets! Pro
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
.rst_files_container .rst_file_block {
display: block;
}
.rst_notify_ticket {
color: #ffa500;
}
#rsticketspro_dashboard_search {
text-align: center;
margin-bottom: 2%;
}
.rst_dashboard_item {
width: 30%;
padding: 1%;
float: left;
margin-right: 1%;
text-align: center;
}
.rst_dashboard_item [class^="rsticketsproicon-"] {
display: block;
margin-bottom: 3px;
}
.rst_dashboard_center {
text-align: center;
}
.rst_dashboard_kb_item {
width: 30%;
padding: 1%;
display: inline-block;
}
#rsticketspro_searchinp {
margin-bottom: 0;
}
#bulk_actions th {
border-top: medium none;
}
/* media */
.media,
.media-body {
overflow: hidden;
*overflow: visible;
zoom: 1;
}
.media,
.media .media {
margin-top: 15px;
}
.media:first-child {
margin-top: 0;
}
.media-object {
display: block;
}
.media-heading {
margin: 0 0 5px;
}
.media > .pull-left {
margin-right: 10px;
}
.media > .pull-right {
margin-left: 10px;
}
.media-list {
margin-left: 0;
list-style: none;
}
.com-rsticketspro-has-top-padding {
padding: 1em 0;
}
.com-rsticketspro-has-top-margin {
margin: 1em 0;
}
.com-rsticketspro-has-margin {
margin: 1em;
}
.com-rsticketspro-has-overflow {
overflow: hidden;
}
.com-rsticketspro-avatar {
margin: 0.5em;
}
.element-rsinvisible {
display: none;
}
.rst-magnific-popup {
background:#ffffff;
margin:20px auto;
padding:20px;
position:relative;
width:80%;
}
.rst-magnific-popup iframe {
width:100%;
border: 0px;
}
@media (max-width: 767px) {
.rst-magnific-popupp {
width: 70% !important;
}
}
@media (max-width: 480px) {
.rst-magnific-popup {
width: 85% !important;
}
}
@media (max-width: 320px) {
.rst-magnific-popup {
width: 95% !important;
}
}
#rsticketspro_remove_data_and_close_account {
display: none;
}
#rst-timer #timer .clock-wrapper {
display: flex;
justify-content: center;
}
#rst-timer #timer .clock-wrapper span {
font-size: 30px;
font-weight: bold;
transition: all .2s ease;
}
/* outer */
.com-rsticketspro-progress {
height: 20px;
margin-bottom: 20px;
overflow: hidden;
background-color: #f7f7f7;
background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5),
to(#f9f9f9));
background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
background-repeat: repeat-x;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
filter:
progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5',
endColorstr='#fff9f9f9', GradientType=0);
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
/* inner */
.com-rsticketspro-progress .com-rsticketspro-bar {
line-height: 20px;
padding-right: 10px;
float: left;
width: 0;
height: 100%;
font-size: 12px;
color: #ffffff;
text-align: right;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
background-color: #0e90d2;
background-image: -moz-linear-gradient(top, #149bdf, #0480be);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf),
to(#0480be));
background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
background-image: -o-linear-gradient(top, #149bdf, #0480be);
background-image: linear-gradient(to bottom, #149bdf, #0480be);
background-repeat: repeat-x;
filter:
progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf',
endColorstr='#ff0480be', GradientType=0);
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-transition: width 0.6s ease;
-moz-transition: width 0.6s ease;
-o-transition: width 0.6s ease;
transition: width 0.6s ease;
}
/* label fix, only for top level items */
.com-rsticketspro-spacer label {
font-weight: bold;
}
.rsticketspro_clear
{
display: block;
clear: both;
margin-top: 5px;
margin-bottom: 5px;
}
/* standard form style table */
textarea.hidden {
display: none;
}
#rst_loading { display: none; }
/* new */
.com-rsticketspro-has-top-padding {
padding: 1em 0;
}
.com-rsticketspro-has-top-margin {
margin: 1em 0;
}
.com-rsticketspro-has-margin {
margin: 1em;
}
.com-rsticketspro-has-overflow {
overflow: hidden;
}
.com-rsticketspro-avatar {
margin: 0.5em;
}
/* media */
.media,
.media-body {
overflow: hidden;
*overflow: visible;
zoom: 1;
}
.media,
.media .media {
margin-top: 15px;
}
.media:first-child {
margin-top: 0;
}
.media-object {
display: block;
}
.media-heading {
margin: 0 0 5px;
}
.media > .pull-left {
margin-right: 10px;
}
.media > .pull-right {
margin-left: 10px;
}
.media-list {
margin-left: 0;
list-style: none;
}
.rst_editor {
float: left;
width: 60%;
}
.rst_text {
float: left;
clear: both;
}
#rst_conditions > p {
clear: both;
float: left;
}
.rst_condition_if {
float: left;
padding-right: 6px;
padding-top: 6px;
}
#rst_conditions {
width: 90%;
}
#jform_time_spent_unit_chzn {
margin-bottom: 60px;
}
.rst_custom_field_label {
font-weight: bold;
}
.rst_custom_field_value {
margin-bottom: 6px;
}
.rst_not_flagged > i {
color: #0303;
}
.rst_flagged > i {
color: #c35b5b;
}
.rst_button_spacer {
margin-top: 1%;
margin-bottom: 1%;
}PK芋[�ڎcss/style30.cssnu�[���/* This is only used
for the 'No matching results' alert */
.alert.alert-info > .sr-only {
display: none;
}
.icon-rsticketspro::before {
content: "\46";
}
#bulk_actions > div {
display: inline;
}
#rsticketspro_dashboard_search .btn-group {
font-size: inherit;
}PK芋[�L\��css/style40.cssnu�[���.icon-rsticketspro::before,
.fa-rsticketspro::before {
content: "\f590";
}
.dashboard-button > a {
text-decoration: none;
}
.pull-left {
float: left;
}
.pull-right {
float: right;
}
#ticket-info.card,
#ticket-time.card,
#ticket-submitter.card,
#ticket-history.card {
margin-bottom: 2%;
}
.rst_button_delete_ticket {
text-decoration: none !important;
}PK芋[�U%B� � images/admin/back.pngnu�[����PNG
IHDR00�`n� pHYs��~� �IDATx��yP�wDZ�vw��������ݵ���v�cծ��{�UPTDAD�����)�Cnrp&�$$!w�M�} ��M(��v����<�?�g���>������^�z�5gvv�gg�y-�8f��!7�c����8$3��z���4L����Z�9=3��@�47�aL
��EH���X��R;��k"kk�v�5
@>�P�ݲt@OM@2>=Z�{�
6��&gFG�c��6�uj������q߄�`��5�,�8�g���i�uRg�
O����X���ͷ;䘝q���T�7��i�6�"��o|(2�źQaz
]���Z��ˀ"�H{dyh�1N��8��͓2�(S=�$��ยY��H:�B�I�q^����y'��noWD�%u{��>�����A�$��r���/��r�r�SU`y�P���6��F��H�V����g%H�D�]h�TO(����q���d�E�1�aL`��Gy:[�n���q�6����٘@��R'�j�7Ei��f�f�Ә)�8L�x���7�6M�ξ,
�#�v�,h�0J`n���`Lc�XG3���{�U]%Y[ѭ)'i�5�]�����*ī
p*(V�����T�v*s\1%�p�P�E�8}h��8�����!���X�8W��$�����Bk����77�\3�3c62M���:���f���8Qt$m��CSBP��D>V�<���Pd��hY�����@���,C=�y&r��ffv���4U
��
j�d
G�|+\`��Z��
ls=k��9XM7U�*��r���[_J�w����U�èr:�YhE&Ji���di�#[�I���&�md_Rr.�����x@
��nuQ.�.��9�nk���ވ{���N�8�k���r�k��*���1TN,��R��݆B�>����k���NUV�*�LG)�m�YRs����-x_<Lr�Q[/Ջ���j�5��j~x�
�Z��w#OϢ��I
O���O�0J=A�ֱ-�X��s m��j*$���<�!����20��uJ�ڦHn�'6��
���0�Il�$�VU#���?�U�/��.����rϕpϖp���g���u��/B��K2�@@��(���=�r�$�c+e��gYJ��4s!u(�l�#�r �l�!��tj�ڔvuR�*�Ey�I�����d7���}1��k��+UJ��
AH?�>/��X� (���
X���P�O���7���S��bP���H4櫦ZH���<!
�u
��Lw1�;h��v]\��F��P]�)�6�"��j��*%�E�e�s��"���)(��=��֑,�2�i��={R);S�ۓ�[�voN$m�Cڐ@\�k�VC�^wI�}�ׄI���l�mC�p�9�>�AP�9]��T��ɼ����%�D�r�3y�霭i��I̍wh��k�)��w�8��a$neX�P�{!��w���ly=��5����F�r
���q�q��y�{���Gc�7��8��m�0qCR{��Y�fP�.���֨�T)}+���-�;R
>�'ܟ�ߓٻ�ݞ�2��E"mCB��x����A�O�E���k�K�^D�>��7A�o�ky�l�/��~v�?�K���No\�Y�m@J���v̭WhE��V�M�ܠ
����NV�[�"� ��R�.�~�vP�ϵ�~����+�)���)��H�МC��kfvn��t�<����(O�*�z/��А�S�r^T
}N��2����n�
%��J�lKeoIfl�K�t�g�Mʚ8ҪX�ф���>��]�Y�����m�o}+��W�Ϳh��?��ӈ���/�F8u�?�`����9�в)��X��JqX�1�\~�Xzp(_|�`���Jbm����#�$���U��܊˝�t,�������hy�Lӫ~ȗO�j٧��X�����С����c��a=j�k��2辙,o�\�8�/9�����@��0YL]ߕ�����J��r��R~`q��t��>~�u,��M?�E?�I�����Sw�Q<�T�R�;�9�1ص�oZ?�n���R�v���A
ׄAE�s{s�{3y�RY_4+⺶��օw�]�5��Xty�V��Ց�
k��)+�}ct�G� �@�]�j��������s���^��l����?iڝ�'��������O�L}��zv~uF/�7�"��cJ�>@��v<�Y����en&�`�e��V�#��)�5}
��Ky/[d���U#�w��i^����2P4v�-`=��G�+}��Fqk�8�����r��=�ih
Ev����K���Us۷q�&Nq94�|��~�������z���_����п,%gV��dIEND�B`�PK芋[��Jdd
images/admin/bg-button-green.gifnu�[���GIF87a�x�Q�Z�p�L�E�H�j�d�m���Ja�W�,P)@�#���G�$�(J���p;PK芋[9�4���images/admin/configuration.pngnu�[����PNG
IHDR00�`n� pHYs��~��IDATxڝ�gp[U�E ,C2��IB ��%di�42!CBI�,�G2����?��av�
=v�nc;�e˶,�K�J,Y��luɖ�.�}�=���3�ruuν�}���9W��a[ZZZ��"�6��5@���yz^��0�≄���N�}Ӂp$��s�T�U�9�ͺ��@
@/�.�bY�1�dMk�/5}{��?5�?6�6w�$*]8#�F7���C�
8�N������&@d��;�1Z��o�>�6Xm�"�O�m?ַ�u�B�v��&�F�߯P(p���斡k�X\\\��0����-���T���҄B!�Z
�������D"A�B:��e���L&_(�/
�1�t�d*��;��ٛJg�EyL���
�F��d2YSS�R�x#�op�/ә,�4ON�����J�LE�7��B��|�rww�������\&4Д����m`hנ�3�_�8�5�xTWW���5??_��B�*��c�w�l�Pd�h��C
�)�gx�Phã�=���H"��*�/�i�ds��dau�����Ebq�@
�����S���+��D�Rji�M92��^���b��Dn�9D�#�C��k����ܠ�j��A��t�2 V,K̥�Z�f��SC�J?J���A�-�6t
�!�:�[aZZ�MιI��ɐh4Js
4��:UY&V�-z%��F�3��ئ1rc���!����de��<.���`Yi;$�A.
}�
j͊B�|�X����/�(�L��Xm�:z�J�g:
����˄@/�&�I�R���66��91��J�ݢ6�@�L-�I��Ggf���u�u;\�q���i�t(�R&�]�M��T<�������̊BH�xE�&�':ɵ�_��/\n��ZlN�����1���T���F���T�?�Ioۄ��Jo+���$��Ug��6��zӈyltl�Vf�)��&�R(CytL�C�CS�S|�������;DC���t���z�2�aP��?�zX��h�U�H�5���a)����pj�S�Y3 (8qM�7���0 p���O�P��e:�L��Mz�����g����FC$N$�MMM�B��os���H|�suj���j���m���{����~�:\ƫv��&=�Vggg��;8���"U�Sk+D�ٜ���!�I8��k����~�kc��m��/���m҇Śm�56��ju�Y�����m��D�+��j��X��i���+nguSg��#G������:��0������V]��TCS3J6������3�r��w��r��>��F-]}��39+(��o���[n���[���?m6[(�M�����IUN�/9��Z��[^��}
q���v$�h߁C@��kn���m۶=��<�ȶ�[���B�p�ҥ��F��"������̘�J��nS2��DŽ�Ng�8~4w�q��v���?��S�:|��;���g�98]�ݩ4�
Rϐ��%X���:C�j�i�55�M
Z&�y���As��w?���P��;�ЁN�8q����>��O��[S[��_��6�қE�*�L%�T��)�\�dm�Hb�Di�x≗^z�駟~��g��^x4�~�����n߾���:l&=>��`&:9��d�ē�1^�w��h��|�(�+������ȑ#pj]���:h>����>t���G���x S�T�z�M$�1�V�qnޭ�@�9ť��{(
���o�}���7�|�;v��9x
�z�m�)��D*�*��R<1����;A%
�z��w�6��Ҝ:u��^C�ď=�؞={<��O"�0���X���o�0�≭l�i7λUS��3gά��ɓ'�ꫯ~���w�y
�ܹ1��Cmݺ��k���o��,�H���$U�i��L�q�着�GP�t��p�j��}��Q��
�$�F��o��d�a�>��d���Jy�(�S�|��F��T�6��#��lBg�P���"���ZVm4w
H�C4>���J��K:��O0ޥ�N[:��Z�m�I�I�R���ͣ�>�s
U�Ks�]w�D"nHb��1uJeZCL�܊Nz���I����j��ڮ`-�e�,��ٳgi�(&ڀLjbJ#�i �р�5vvX���:a�&�́5�X��Z��$���"��Xl�+;5Ʋ���믿3�z4І��ט.�������bvS��L�5�)�01:Yǝ�n�oz*$���jwҸf���!σ>�8E&Ӝ���h�
��WHVtҳLx7������b�7���1G���6������Z̋b7{��%4�upp�:ŝ)y[z�a��ЍZ�u��K�
76����&����ӧ�lق�a߿�[o����N��'����
��g�"t���K^���1]uL2����d!{�0�D6G21t��(��z�gPv�=�Z��#�QL&�J��d⽟@�+��b������܁�qCGϕ Ԛ��3 ��ae�n����{ �r�P!����σ9�(^ϩ��V�ˡ��� iH������S�g^5O��K�����J�/��"��L�OL�!���S�4L��T:�ӐR�ݦ��Dt_u��=�˓�d��iO*umm-��X"b^~�eD4�`W���ޮd�*� ��٤��j�l�
���NҞ�-~A*�$�a9��H$$��c=�r�':�y�T,�r^�5�5�^;jEѷ�K��
1E��|���_|�EGG���
������j2��u��t�R��J�B����2��_q?���3�`��nw:��'��~ls���Tj�{�kar�,�TX�`����v�'&&��� ��b1�ͣl3��လ�O�n�!��P��P<�������w�|�h.��,V�萍�E�`�2aG"5��&We[�xۼf�+�B��T�IEND�B`�PK芋[
My+==images/admin/dashboard/back.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx��ZkLW>3���ee��<����
�-*�(j����P����5�Sb�����6���*�1MS�Fc��&�36�FZT�E�V�}�c�l��
8�lv�ē��;w�|�{�w΅�F�0���.3�i�n�%�ϝ��F]�J܃z�3Y/��!?
Q����af�'ڝY��V����y��q����=7n�~�x��26�쩓Ɔ���C��zA�¦��a��2`�YYy�vK-l}����F;����Q|ʙ����
���a�}~(@P!�@�`xP��\.(+_F�}A�QM�E|��o�r�m�^�1���F�QE&E`>��9�C�)�~o84�s����mu�HD�Jлꋪ�2����,m��%(n{��u�z�����N���O�}pj�X��<߱i�f0�&��EI��az�o���L܉�
`�;
�����G�(����Q
Pò�O5�ց#ө�4*ѿ{���'�'` ��굫`Nn��yQ�0�&�<o����NԦ�ꪆ����80���/%�xY�d��d^����z%��j���~�O%$�ڋJ��C(
kII��*���xBHsm]��$����+?����� d1>�{�6� �_�О��g��^��ag�s_���=��&�#�����;�DV�$�����^�s�,�-��Q��ʜupEuȒ
R8�4��pPEUp'"��GF�ٸ��v�����)����[[+���l/e���s�U����<ʖ/�X�4�4�L������)E0�t�3�Q�^V�WL�����˪���l�E�r�B��@[X����a"�������<EH ��mZ�h���*Ƽ��]���x���{�wΗ���x�HK1*�=�\@�����;�KJK���i��O?��څ�p�t����(F�#����P�ꥱ<U"�D"�lo__k~�ގт��}�b�BW&n�%���{pnA�$f<�RC�G�����z��!I����\ �|��#sӑ����w�!�æ����������9p�6�XIi.|����|�{�/%}��`
�y<�t�,*@0�����2��-�ߓ��VK@<�
-Jt)�����X���ֈ�}o�{RYR��FF���t�t����2��F��${�ES�m-ޠ�itd$QZ��������#�V��=x�a�7#z��Qw"#Y�u��}SZK�M%#P9�����PE?��МR�v�7w;�
���,4VG���K�"�-@#F��:<١`��f�ś�ITM���ކ��2�4���_�D�u5�{�t8��^��C*Q����r�Z�ԆcH:p<m�[y�~�M�$�{�f�$��-U�-U�TkO���:��9rNV�&�/[��PC;+#*=^��}�d�%�oB��!�&�tO0&aa^���+ӓ��4"��ُfIEND�B`�PK芋[��\ovv(images/admin/dashboard/configuration.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<IDATx�ԙKhI�kb|��'�$�
�(����\��AV��^ֽ�d/��]����\�a�,��)�L"*!
�4�������+�ǚN�tOg�~�tW����5���)�-C��ơ�r�\5i�
z��y����`���E��@KKK+=g���fUWWW��{^ww�����n�S����\����Q������s�<�Y�F544�5Uw��@
�]�j�z���K_�J�ԢE���j&�JN
#��÷5̚5���.\�>}�4�;
,[�L�1k]��j+prŊ�۷o?*��#�l�?Ν;W�9s�m���kU�?�F��Ǐj���J�dX��u��<���8#��ɍ7f=��GGGU>��5��C��J��gϞ9 qO�<Q}}}�5Y��o����������0�*���(
�_�|���`���"̕���zkX���ڒu7n���(��ݻwz
k�)'�z�٦�&�����_ߵk�~�w���m`�ӧOu��
���x�B+o��YSG*�BG�r�
%E�r��GQ�K����ׯ��Y�ԁ�;w�,�'�t��X��}�w��s�.�8tr�;<z�H�X�3i�|����r�K�1���Aj&
�
ϼ�kX�J��x!I�L��� 2��B,=44����"��ֲ��at� ��/v%�b��
���"{|%���U��nڴI3�-�ܺuK�}MMM"d/4�e��)j�f�@ۆ
������f���C599Y��
hٴ)f��u�֡E[%
�M�{Z�_�ɩm۶-n�1"IJS� ��3��r큖?<�o�Ν�S�bdj52:�����~�tB�bf���<�]3h�?G���7�zM�������3�E�ܧ%nZ�����"$�q�5TQ��;���oL5��^�z���tIŵ�$%z.QB]�x1T�^4������>p!FR��R�O�.^
Ξ=۞J\�~����]��p�(p)�Ka4��e��2�ahK�>3hB;���(�1n��Q���n��`wM?�&��$0�Z\?�T!y}o���\C��c}#�˅:�\�r���%K���
��6|oReX&:j�Lx�Y��~dd������¼�'Ys+�Y�|y�BT��g�r0L!L��d��^#|���A�P�����`�>`�����ܼy�}˖-�R�?�?vƣI���1�\ik��G��x�^���Ĵ�ō�9�����>�`+ϻw�� G��:1>>>�_�x�.Ľ�6r����j#<�Mb_-���ݱ���4�P%��%Ɣk�&#�S���FàY?�y�fg�z"Y E�(�����a��Sжn݊����$
dw�ء-B���8 �2��իu3HJ�kϼ�ڑ5�e{]49MN�淆D.�I;�o�ʕ�YT��+�_�r폆����ׂ��AZ�D�B�
��H%��`H���8��(�By���hn�Ib:�� �2�#`�6���Z���J�a%s�����q�m��۷�LMQ�n����U��;1��t����<�^���U��Lj�4xd!�$�={�����c��WQ��d�P��%���ًA��]��#e��()|�B�W�����h�
��(����4��S0�v@�P�@�#p�Po������|�"�g�A�^�u��_��z��
��`5�X;�4a�p0�N\D[9�gFP[Mk455M���ח7��)S��_��z�Wʤ��my��W%�R~���:'E���IEND�B`�PK芋[�д�&images/admin/dashboard/departments.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<VIDATx���Kaǿ;;��]J�4La
4���]��ԥ�N�"��x�.b�t��
$R)t�KJA���)%�i�
��?V���;3�l�;�Rڲ骳C�33,��>�̼��d2 =��`��<ۄ�a���V�-��a�@�9�����7;�f���Y�؉;;;��jjjPUU�әq�,��|�$�bCCC��ھ�����D"(����d��fCEEx���@��l�gc5��륥�E����� ��B��p\���u��MN���c��n[�V���m�@"�P%`��x�~]�^�s�z7�5��tP�� 09����]�c���� ��託�|s��lO
����s�'����@
�.y;m����`>|� /ǿ#.���ʷ��Iǚ����-]�P�|
�7��Y-�H��>8���MRN?����|ɥ&8��0F۶��&���83LyN�N����*'Mn%fCa���������E��H*$�+� AZ#���5�Њ��b�"�T�ƒX�ʭX�X?Վ�����J=C�����x/�ZT�j�DWv�Vb`v9��;]8t�\�7���f� �A���~����u�C��?�D
!�\�-x�a���!-�A��"�m�RL��V;�_�P�eI_��@�(z��O2���Ȁ�ELt�ِ��D�y
�PB�([,�f�A0lw��p9�Q�����&���:�~;����3��,II��mԅ-��K��MMM�s+�yB��Ĕ���p�8��IuI�>�z��ln�����]��
���O�&���o�%�pp��O:�IEND�B`�PK芋[{�5~!images/admin/dashboard/emails.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx��Y�J#Q����[⾠�� �/�
�'�8>�7�00㣟� *3*�����{
;cZ;1N"��N��s�ԭ�{�1��͍>��T*��J�]��.Z[[�˯b4�aC�"8���-�������-)**���H�.����B������S\[�/�׃��Jjjj��ӓnoo�����nn���EIIIMmmm%GGG��O͖k�1''�<<<��������+9s���S��P�
��%+�0
����4���:������!�jM^���픗�G.�������P\\��4
��Ƞ��Z\\���M���$�N�T��499IWWW�ب�(����N2!}b`RGGO
u
����:�O~~� ���?B���@������JKK#�V��,��4
�s|5>0�MOOSWW���JY����FGG�����o:MV�B��zzz(11������#
saa����8lccce1�D@����L)���&��?;;���q
���j.XJ�����+++����j$$$�F��8�����^�{���ᰛ�d��P�����B���C{055�i�����{�x�, (h���ۛD�Ȫ
��<�9��w�]�|[��R���411�[��<��}��<�9��w�-�~w������pj�K�M����^�6�!�z��t��)�������M�Ǯ�wwwY�������
��I"ccc�����bXVV����>���p�ĚB�???�w@!�����E�WUUq����c0�Ԛ��E���400`"���b
S�����ՀC^ �ua0Cl(
yxx8WK4W�h)-�!�{�B
�`aa!�����
�V�|��؇��:1�:xm->�t;h�u9�777bPcpp�A;��Rs���
VTTp_rxxh�0eذHk�j(R@�u,���:�6��2�?�!�P����,ld�������ك�uƟ
p����g���U����h�%�X�����CRg��@z6��r��1�
����A����
�P�h���X�zG���ܥa���j�jA[���*�(��Z*�,Z�/�z��!cc�
�XhcD8����ՁR�@�hŵޅ�߱
7��tB��4N��X%�P ��k�u�*B:IEND�B`�PK芋[f��!images/admin/dashboard/groups.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<sIDATx��Zkl��汳;��_�Ԯ�n�`7��hT+H$4Iՠ��"}�TT��'QATAUUA�6"�qT*DSB�� �*)��[������]0���k��;Ϟ;�66~�̮�*W:̠�s�|�{�w,��!���r����q��{=t��
7IH>��쮘i:s��s�pe�D����!��
�ַxk����N���C�Ƶ3�.���6?��aZ�8L#�k���Ɵ6?�UH!�����9@����X�ș�\=s�}ӞǏ���ck@��cE'�d�w� �7��S��uq
�{���$h����z��vG��yyI�l;_>����Ղ��Һ#�ƳP'�0c�<U%`wx,�[�3���]��0��|�j]���Ԗ�k�,�"\��������e�,g�v��BT�2��|5��#U���Nv�;�Wo;�Q���Ȼ���WBh^ o��Z�����Qʱ@T����^?X���7[`8`�r��yW/14�]��L��ܸ��u����͡ХW����3�vI��kg=&�ewѶ��PߑE�G�C�RKj�
9��@6��!++�&3����~��;������m�mr�;��ފa��+6�h���O;����gi��Ʊ��T/��_���v�n�0LRa��e"��K�?C=#'�������<�&6�Ⱦ�Qt�५�T��:78V~�����!��yF�\bjA�9Q����Ǎ�Ȥ���/;��B'f���l�k9���d�O�㏠�kO@��@��E��.s�R��1���������-*�TA�NM��}s���kD=�m�/%&3�qT�m'���������ψ#*����Q�x�DI�S׆����wi�v6�Ts�y�x�P2���&�8�aF��E�p�{��W��ѽ������F���!���Ҡ���b
K�Med��5;}f��7d��U�}u�*��2��61K
���)��
S��vVK�Q���>x{?u۾��5�&Ñ��>Q�U-�v(
[\4���'7���M=�]`���t���ں�@��9(ji���"�S�L��v�J��+�o��c21Ǿ��Ր�Y=�B3P�X�Ka
���]Q#������Pȷ�ڰ2�6��e��y��p�ʧv��$����;�Q]E@ȷ��p5ŀ�����ß�'`5>��(�\p�Y�G��E�k'^�\�^���Á;PG&(;5����E7�̬��6*�u
��h�h4Ǩ�{}�ӟ*�Fc\G������fU'�ށܸ�8��y��o�>�b����B�l$ ��M�qԩq����Kj��O�uP�u�I��t�U/���;�~q��×l83����Mu@�k�����Ref&���TEj�H��:v��[T���O��xu�b`F�.��ф��z�:������6�m��
[�_�v�0�
��E
��ԥ��I>R ���'B�\l���Y�(M{�js��Á[��]�J>��I���S���8�E\�ONn���o�2�_�:�8�y�_��"�Q*�vT���GL߷�wg��>�����=M[;�i{��3eA�s��ڂ��O!��x^
�6�\��g�*�>�FNI��5���7�f?��?^o�������v�
��S�N���@�,?�=��8*�zz���s%�m�2�A�"H~r���uz&%�eZ���ق䣓A1���?�ф8�zbrU���D+Xo�e?�PuO��Q���_��@�zT�O�k*`�N�RsX��)Q:���^��D3�m�q���v�7�lfE��`T�}ņԭ�/��*�D]-,u�t̕�][s9�94�3�O��l
m=�^�`��d�����s!����䬡���f%E�e�;�
�K�Bs�1-��-J^���x��]���'s�E���.]ͽ�*
Q�N����V�\�����%��&}�r�V"��ôUm�A�����>+ٟ�f�.�<�S���I�wZ7��#(?���(��C��i��,�`�n.���u`��$���_��M^z��A�Ȱ�����Ǣ��
-Z����y�O�m'j}#�rIEND�B`�PK芋[�#o,,!images/admin/dashboard/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK芋[/;ƫ33'images/admin/dashboard/kbcategories.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx��Z[L�e~K[���e��Ű*�p]j���e�Ŗ]�3���!�o��B3
�қ%\�Dc���w%d��8,��Y7
�ȹ����]�0�k��&�����{��y߉���8r+�o
�
����()������%�3,:˳ǜ,�!�[---�b1��n�,�BAcccݣ���mnn���z*++���Z����B����u�\����kmm�Y�}��0��)�ioo'&@��봽�M~�����R�$�ZM���T]]-�������bw__]]u�;����j%��H��^/E"��FL��PMM
�����8q:]�����^��f�Qii)mnn�
���*q���@�>b7rN��[��mmmT^^N�'�u&����)�$�H!xi��OFiitt��d�\q��dJy>��_4� ���,�,3�
,V��`�Q
����N���Ï�����+**�-�赤����hee�x��`6��O���T7�P���^����t:igg�Ga
#�<���%ٝ���NfC)��4 ��]G�#i�y�I��i�@cLj��������NGϏ���_�٨E�Ru���H�<�.xq��g1&�����
����D�V�
"uP��6�ho3��L c0:�:�6`+�"��GೡS�U�8�m����f�y4�
n�2����+�ŷ���aX�y����j@����õ�W�&S��F?�^������Q��Mr�~�y��pHM�0E����:�K�R���
?]�~���&2M\��-?��_����k%��>��p��#p�B�BA��B�"�/�1��[ ��+�fT���<w|;a*SJ���
�䶆�?{^��@�����
���I%�F(�K���Kǎ��T!���.{���qZXX
�+q݃=~]]�}0IF�$�B$N���{ ԿZM̬�?(�����ԩ
-��+�鷿<�����PM��M�r�
��f����E��Nd%��=O [[�C
�NH.���E�e{��"�dg7z���~��)�6$/�p���I}����x朙A���<��F
V����7t��H�"͞gΙu�<߲ic�X�#�=��@�H�` Ċ(F@"�X�G
^����+e���A(�f=ş$�GK����F�Y�X)qŞ���Q��p{�c�^��6���|/>�
��6�
0�,�e %-�IEND�B`�PK芋[.���$images/admin/dashboard/kbcontent.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<YIDATx��ZoLe��RJ[�k�I���F�es��F]���0>L7��Oƚi�M��&~]��� �fQb�b�>�-3A�f)��k{�?�������I��˽��<��}_�(
ֳU�8��^��o��'�}Wg?2��{s���z��h�Q�k��϶|����{����a)�PA�3|������÷�ѸQ��e�Z�ZG%�x�������/���
����k��@Ǒf4�����'�\9��^��9��T�x~�����{~�i��^r�
B��B���8ֽ���vSF!�T��֎�7��W�Ԅ���
��bWX,��U�����(�ύ���7�\zY-�;}�?���x���؊�?Oa϶:�I@=�L�
-���FF���'eF�I�Gq�]�}�T���Wjom�
Ȉŗ�Woi�{�ؽ��:������c��Cp�a]��q��8��k����
���Ȟ��4~,8�Hn�"�U���8X�3Yٴ���ٱ
�DN��'����T����8�d��Fϱk���o�Z ��lV�D ��d��R)�b�UY�$I���].���G"�+R��'=��Ê��f^�����E����h��ܝ�C�4J�%���2c斃�s4���D@���Zl��h�ƣqsqh���''�7|�x�~�K700���m6�����& �+��8J�P�zzzL%`���6���(��ph#���/+I.]B孀*o,����U_:::����X�@gg����M,Ik����ؠ��_�6�Vbhh�$@����W`}��+4q[[�as��&��M|�?��W`�Pֈ�#$$&b�ڝ�o䄄�
:M�����(K�c]�á��OL~��3R3�����8��R�������'�f���B�d1�_�.�큑h\lu;�/M��nr�����?�j<����4}
��fI��(��_VK�7N����%��B�*s�g"�åVB�/����L�4�����b�XW�F����$��q1��Q[mEU�Ŵ���hB��|\\��?�i��#��y���QLT}m����_���[�G�]8 TIEND�B`�PK芋[�i|;
;
"images/admin/dashboard/kbrules.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e< �IDATx��kl�����]�z���c�1��(�V�y�U*U�J��$ZDՆ+U�E�T�Z5��(�"U�����+��>�@6`� �o��^������s�u��k��+]�읙;�s��93�R�v�5Ak�^A�w���+�>�d�4ǫ��9�]xS����T����g�p�m>����s�Y��H}�2�W���P���_߱_c�u�<y�^KV�Vеin��l��v`7N����`1����4�6�z;B�D��2�_�&{�K�
��߅�?t����섟ֽ��;��jn��}Zz����wй]|<���'�������f����S~6�O��>�!��\��T�Ո��ЌH�[u����^�}h�ro�/tlza�{��wj���Q�ΰ�T����|Ȯ0/u�|p)�Ur1W:o�FP�Lʈ819�"��vnh)��2U$z�q �;%�16T��>gO�_>�C�Uj�>S%9����C��ŁO�ww���ϑ�i
��L�2�$&�f��s���2րE��e'K3�ÜmD�v"8��g*ˁ:J'b�X�}7bqEp�����9R�z|�\lq�o���&��#O��S��.�r
0�9�HҬ�HH��Ġө��"��^Dc�{�H����O̡�'��~AM�H��D%̓��a����5�yt�k@��n��HLZ�bߨx�'���k@�^��*�
D��h���VLz�GH�W~��gO��?g�iP��}�I���CG���ݩ/O��{�3�Z$��p��C�Q?g6e�b1 ���Pdj�Glp���Y����'���B�ײʬ@��'#d>l�K������\���i�<o�����s�vgӸ_�B]�dۄ7�
�왃q^H��l��4mYOO�f
�$�����^�'f4,��"��[��[������u�b..�)�]piv�p
�7W~�E�q�o���#�P�A�ka��@8&�=��W����r|��
YG�>_A �@ӵa��k�vZv֠����º���|<��3�]�Ѡ�m�IO`�7!ŗl@����-��@��Mc?N$�y8'
��:g�"��2$o1I�?G ^�������FI�6�V��eee��kFS�%hU�H�4�+�P��!=�Ѹ��Z�� 4o0
oDz7~jm)�:��j����������c�]�h���9����K$���Ά�`@0D__<x0-W��%Cy(��
�����s�C�s_��($ow�E��f
<�k�ޯA�~!oJ,���(�zxVV���'���rally�A�H�#DO��\�5�7{����8w��B3�v t8G�ߺ����`=�1��R�֯���\-?11!��^���=�@���DH��8b\��,M�gp��m��HQ,�3�{�+�;g}�#o������X���y1�AՉ�&^�.��"�nĺu�C��?Rт��!��*MS{�__pvuu�痡�۷���塷��n�UUU(,,�?44�F�6����s����E�,��{g�Ԛ����롵�ՑG�j4�̙3GQQB��g��l�H�,r��wʲK&\A�*���r�ƍ�ݸqC�o۶M����
x�>G�9��F,'�[bE�<��ܾp�{S��������}��-�����8$΅g�p����K�r�R�Fe�e,F���M����st�[K5��k�*��������(��<w�g�$��ه��3z�i�aO��_��ӗ�V�Z�����u�b�x�)�~N��X��N��_��2~��7�tmU�}���߲e���dJ �a2�^k����7�"���?*uT[uGYZ��*i[~����gFFFxff&��8�n���������n��2�d$#���ׅ��� ���'&Π �3p���0���>-�S*ʢT�N�)�W��CP�U����¨�b��D�T������l����E{p($��=Xm�7-_n_i�B6˞�P�p���g�"�ȱ���T�������W�E�J=O�_x�ˀ��ϒbx��ە��1�\��+�����l��M�|
�N��3���R!��j���oذA���y˲����ʅ�<�H
��<k�_J��&�����xI�+kn����7>Y� x�gx�2���K5@�WVV:�� �D�L�3,��b�ck���
�)� x�x*�0<cx*����
�)� x�吙X���\3<��~!��#E��/�z<%����o�l6''�Od�T�4v����ʀ��z��6�����_(�
c���a����>��nå�4��5N�����f�{�\���2�Q�$���.g���,�dī'y?�����E�ò��6hZ����~�[n_�(�.M|�����Sa��(���z�^m �߀G�'����o�q�IEND�B`�PK芋[�#����%images/admin/dashboard/kbtemplate.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx��Z͊A.��Q�9�=DЃ/�{��
,���O���A�bH
D��x�"��w�IհK֝�ȶӻ]�̌�t�U�uߘv��lf�ܬZf2�Wx8�ۋ�kc���F���n0=�B����
�B�ϙ��N���v�R��{t�.�k���-�H���EQ`�X�v�e��f38�N��l�\.�P(�`0��_��y0T���cu&6�
����G�����ܦ��"{�^���Lg}�����.�H��je�!V��7n�,tJ#��!�r9&�)��d�u�Գ�w��"�J��Y�y�#=ݽ/x��|>όF��3��}���h���9�P�Xd
_^�ѨH�{��b1�2�B��D
q�R�t�`�H��z�>z#�â��b!{dk4�n���$r]�,6p�V��*1�m��d�ٙ�#@�E��W˨�jt�l��E�3O�̝&G6�L�^���^F��H��S#E�b��P�3�j��/dY������Ó��Y'8�=i�����!4z�l6�YZ�����z���e�F����g4�z���@
�$��ngB�T���:��������I�mH��?�J�����~���M�n�[���-��d7IEND�B`�PK芋[3�:���(images/admin/dashboard/knowledgebase.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx�왿j�PƏ�%.�B�.%Cp�[ߤS�
d�ԇ�2�M�\%ĒĂC1��IϽ��tɍ�9�q�~�5�ߠ��n��%CË�.���Ѩ�m��Eu���ƨ�m۳C?�
1�7dY�-˂^��NG��4M�u]p6���x���iB�߇$I
�c�@��*��(��$I+�
��^ŏ�}��/�k��`�0�Lؿ�����ł��ో�s�\BE�i�Tg��Z�dY&|H������o!+_�ß�@��ɘ\���S�O�d�!�>�`�y��/t�W�A��{��/�]c{D]�A
�+�!�B$&���Db"1��HL$&���Db"1��HL$&���D�@�K�}'�A���z��w�Z�>��X�)�0���1mIEND�B`�PK芋[x���%images/admin/dashboard/priorities.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<PIDATx��YMhA~���� �ZŵM�zi
�(Ń��A(�͋
O�ŋ�=y��QPDPlVş^TIjK�4D7٦�ݙq�6m~h�d�mfс�&��$��{?�+1��K����z�Z����/1N�9�U�EN9M<`,n�_jes�{eEN���S
�*�9-�����,PB�܈y�";z�8-m@zi]s�$K�(6��j��7�0J�Eˁ1�@t-����L�1j~�{�C�1">_��|�Bʠ��I�(�8��w�
��r��L�n���e#�i�n�N�Q�w9-
:�h��S�
h�v#���$#W.Cׅ���[�43���ԳqF�y�
�:=���H�B�K�'()vU��
�]�ɰ<�t��b�ŀ���}`�5�y���p%�0+(S쪶D�D�^��
eʻ�Hf+SO!�I���=���o��I<!�u�X2D�z;\����jC�;�gt�!Sq�{eYJ�
uB��0�����f��>j��l&����՞�y�r'��#!��d)ZR�Z;t+���l�@���li0������A!c@ΨL2���
�2僙��T�"xɮXP�id-Z&�
�6J����2�Uȭ>@
��HI�k�v��@E���݂�[
��zS��4�z)۬B;h��Ԕ}=�$��뇛��7��Ss��7>>�Rr���=�m@9@���l4EL�֍�i�yjddľ�0�Q�GŁ����/9jS�Ԧ6S��-%�؝���\���s�~ �܀u���\�u���2��:~-:r�D:::�t?w�I<133��B5s���������IEND�B`�PK芋[F���DD
images/admin/dashboard/staff.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx��ZkhW>3�;��ݼ�ԚT�&�G�XH#�@[K_H�+���6��������Ї��"���?JQ�)�K4*���Z�<v���cf�Lϙ���&�ٙ�
'sgw�������i�87��=;://�|�Q
v7"�����E$�ي��`��v��
.�iƭ6��v��J�j�+��`����4U���?���������:+vv����&՞1���c��#�3WU������E�FA'M�x�Ib0~�<��J0x�r=�,�����3��GV�e_��7[��ԃ�U�|�1eUq���`���!���o!<t�`�={5���x�hh�t ���.��r���b�}
{H��A&Ydbw=
�˕��X\��5�_K�O����w��m��9���@���6��
�hz��o���@3�ÔiK��m9k7��pa�Pz���8�?�Ξ����.�n�����X_����'i�,F��(}�8�b�z�Դ�Y�5�P�_�Q�1�QkV.�V������bv�I��rMVB�-3cy�Պ�M.Cl2����R�rp�F͞d�3�LB(m陮1�ZK@����,���W���q35A�n�˨xX4�<X@���m���f�y@ �ӥߔ����J8dd\�h
�}�끅�P���F<g~�&��U��q���Ue�����NL�K�V 6�abc�t9k&�@���K�0JY&�6-���E0�UE9�]f֓���n��7��A%�0���r�N|32��0:�~Bt8J��� ��ذP ۩�w�þ�,��7A���
L[q{������=O�nEj���"����Z,<��y������}��9?~ڭ�����ҁ����Xa��|��B��1��D�<b~1I,�5��xsHlH`1'K����ٲw�Y�4Go�xw��A|�k�����;��J��?͢)|}ݯ�Ū%e/��^�gO*��,��E�2Se�8�ޙ��at
7.S�t�:�[[?k5��-q�><1C�K��̷�j��jЧ3o&b�^< ��q��Wtaj;rj�=��+w�o��8�H�a+,mwU?Z$�疮��ިZ��pP�^�Ă"��ul��wYN���S�5ى6��=���E���U����z,|�)A�-����Z��+��_�(f���?���#���v�ngy:�8��WW����d �Qબ^��\���e�SH�6��P�D
O<��j
�r���(*����6��I_������hӋU���bj*��(R�)0x��U^q.�� ��滋��(�?�8�FޟK]�6
#�6�*>��H
ġޔ��et�.b4E��O�U�^
�x�<�G>��a��M�O��+bG�p�泈oLB͋�X4MB���ҢWeJ1��8��IJ��*I���6��K����tʱ�.�v���8]�N�$9���rBcs8/�u��{FG�FNL"1\��h�r�"�ʒ-�8���R4үH�6�˭n�y��Z��Pq�%���mڡʌQ�Qz�-I��$B���
Z(W�-A����_3��$LoV��$娲,/c�mGڂ�
������J��<��4?�1�_<����V�e/����$u�]�4ySI�O�UL�����L^q�k��'�i4��'1ar��^�ESk-�H�D?4�Q��_~�LVq5IEND�B`�PK芋[��.��#images/admin/dashboard/statuses.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx��Z{�\�?�1���ٙ}��lvuc44M��6�$�bDQj�h�6�@*eBK�6ֲ���$������J��R���b�()�����iC�w;��3����Ν�v7sggfi�1{�s����]��,��I�+��x�ڋ�����5<l6[������~�m���dgh��@���l��m����仪��C1d�d��T�4;�.d�J>x`��V����y`
�q{����B��`��R
��)|�f�G�(`�s@�L�
���������@I=��n"-���[�i��)�s���c6�H�M�'��w��Q`\�x
ܶ��?w;��'=U!��Tn�I&�+Hr���J�?���+'�T� wp9�?��I�RM�d�#
�Ąخ
}zS<�k�&u�@f1a��J��U2�*��V$����t%~w|G3ysI��O@�E���B�>p' �+k"c�%=S� ض�v19R�I�=����no��B�)[���d,ꤧ�Zv�Izy�`>�����K����l���m�nw/��X|Á ��~��(�+�r�?v=���9+�Ӎ�B&���;J��~��V�d[at����(0���XU�?�J����に���lކm��-��g�Z�=�C�7�Dlϒ�䯌R��⑭7���B��
TM�p���3TI�!Q�I/V�!����W
��XU��?�?p�F�|�,Mm��rq����%5��.Oo��ˬn�������k)8�a��!<�"J��k�2�`�ݳT8���qyl�=_:�̰���}���@�=z!�p������r�!l��Z�2�(L������o��z��x��:�6��B��pہ-r(�A��L`ވ�3���9^�Ewޟ�w_I��[�<�s�V��^�;}��U��f�ui��y,z��Ԍ�'^�
���)2�};�7���6Q%��H�{�m,���/��?�
D���� q��t���+�flN���e��`��q�<� ����(!�T\�Q��P��s�G��[vR�ҿV=�uW�u�5|�,�&�w*�ƫ��<�04��������3��=����;�$��k�E�I����a='���^�.}kWGM(i��!����㐎r�����A�+�_�3F�[zc�?<8�vTBo �*(�^Tl�l���~�����s���
}�/r�k?�tR�?�H�n���:I�e�<�Y<�Nh%�s��a��;z��9R��"��pY`�d����1���鿇ΩƲ�]��#��P�g���F��]����|^�
Ơ���d�?o��_v?Øa����G/xE�<�k�
,י�l<��C�]�)��`i��IΒ�_�?�pJFr(��;�vA`�Tr)��i�-�
\���[�*�4���V#�;J��FPFG��Y����QJ��rwO�z�b��r�,))���Ֆr�%��.�M~�hU�A��XCn9D(�!�A�I�I��S�M�*�<l=k��iK�2p�%�
�(�?�_o�P��d3�|�ަ�k��n�Gz�>��$�oɁ�@�'���]%���k��&deM��e�]ފ����+!�ݷ�����K,|K
0ՊJ��Yj����N�Z�kW_24UT�<_'�i-�g���5�T�x:���w�c&eꚬ�|}Zyn�ҎL��ZIy�2��� �N����^)�~���h�ׁ�X���!�]�jwAC�UU2
��#��6w�i�%�a\TK��j!�WSr�
���S��vK 7:«�Q�eW��X�s
8rZ�^?ϛV*|�D�,���&5�ъMkɼ�~���U��{��S�{X����f�3'�'
Аe|>��G�>�����q�R����ν�I��=>Q�=��'�3�IEND�B`�PK芋[$�� � "images/admin/dashboard/support.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e< NIDATx��ZkpT�~�ޓ�&!X�\҂"Tq�++X�3TK,�U$��ja��V/��
t�j��p ��"!h�${I�v����^BXv��&�3~3�l���}���߷Qt]�\L���u����O�)g��?,�٤����u�X�ط�Ƌ��n�#bg��U}w��M��7��9}���c� ��U���Qh[2�W�y�68ڡ(1'R���t��2��S^<�qy����Ư;�~b/X����o���((���RZ@�?�!�a[�
���(�t�U���DCM�m���V��ב�2[�s���ƍ�~���Fg��L� �$��<���8��6�<���ze. �2�G��1{�)[���'k`�s-�m�;U���u���}�Xb���&G�+��m�o2��/_Y �Թ��pV��s�t5���Q,v8g�
�&uc��>�eK�E"���E�o��{��
���#������x����� �-��/cKb���
9���u`k~�+a5�@�/����IL��W�J�>�ec��(�&��I�L�)Sϔ/[���Q2��v�����a&I<���M��2��}��d<r���䦆�&�j�#3+�wσ��Q�t�bh6V$!B��yy�w����5�\�ENrS��{�kI��E�&moo���R�DKKܮ�0�]�;ɴJ��|�w�IU��FNrS�PSƭD�RQ*k��z�3�E��
�jt�:�Y�Z���ˊ��=���[n����E4P�����l�ћ�6��IN����k��I:�w����h?R��<�#V+Vw.6AlZ� ��;������X�?K$�c|��2y|��4��*��X���.�U��2��I�~|��[^�(_�����n�ⶩn���%�'��9�������n],c!�BقPSSC����h�e��UlF(�˼,�G0��;�B;_���n��J��8��+W�g1cK��B�(�pS�P����L�ܞg����~P���,�G�E��;|�@��ۆ���̚_3��ƛi`&���a,1z�#�ș�j���v=m�8�Y�u�U=��mR�-����M��kc��CY�OcKb%ē�\=�Z���o��{��ʘ�f!8W�`]5�ǎ�&B������
Vs�(G:~j����y��Zt�LY"~�7=���(Ξkp)��[�s~�[l��BUW`��k�@�IU$��P������S[��A�NEOt�R����I��憤Bя�k�����H���Ju��,��Վ>~6�JZ���b��i��~�M������
��2�X���Km�h�@c$:eii
f�����&�B��g��X�$�w$�@�Qua��:[!�)&;�����N�k�D�O���}m�i�"&�ɑ�?wuF ���4m��-8o���N���N��� Sz[��}
1�ELb�#]KP5%�[U��}~��w�7
����C|�1O��{�+W�a,1�ELb��\���Q�QT�$��^�a�+.��q��%�ۍ�~�1�<)q��ϛ��zތ�>�Xb����NB8ɝ�AM���L�g�ʐj�n�Y�G�|���CSSS���A6<^/�Z�[�-�.�e6�f��<}����X���
9�M
�BM�ۻH��t��C���[���ijv���lFqq1��p��|q���@3x\���<����'GKy��\���0p�@x��_�o�{�s��l��X|����
��P(d�%\.�����j>A��;�r�S^����~�w��䞇�(�S��hmm���5�Mp����;��K)3��X6x��Z��3�EY�]i�%Պ�c�=[|є�����G�9
V��X ��|n��o������tz+;�\�ӄ:uͫ�m]���b_[�7��]��0��Z��lz���gUV�b��
�W�����n�}�����
��Ԑ|��fn][�z��k���+E�?�y?#>�F�qK����З��:9�<в�%�e6HY�'�m�S�H�RL6������[�\�$w������z(�`�e���+k��_2�6Fݩ�R���+[��"g���>�8�V䏻��.B��\z(Ч��bs�ߒ�����@���)>���~bR�������z�Qd�t��8��C_�OL��R�J`w�Ջo����dι�9+Q,bf!>���L�E��0�^A��B�Dz#{b
,������=�2[b��!����w�����^�F��F6�reP�0$��ݳ�O��WI��hTڷ��?{|�@��^I�Ц�IEND�B`�PK芋[�٩�DD"images/admin/dashboard/tickets.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�IDATx��Z{lSU���ګ]7
�9�`,&T�fn<B��0��5$����?����< D�#���
���[�j�����ܛ�kK�mwە/�rO�9=��{��{/����Y&~�����M�:�1ʿF��Э��)}R<'k�k�K�_��i���T;|��mQ��X���P���^LX���e���ls�E�����T �F;�n�ܭ'�4��b�@:���Eٺ��K��\&�ri�����p�4��>td��=<lU��
�Ϝn�%m
�>"���Q�˚UE��k��nq��oAW�n?o�����=��?�$�����:��2���.JTiX��r?u[��{�z7R6�en�V́�0
+�*�sp��.��AD�BcN7�t���f�����܌bRb<G������~�D݊�|8nXl���J�>�"ExRfo"^��\<�=L��HWfCS�
���ucC�0��������s���|<��s1"�g�%��V�(]Ey�v8��I8��XY���ɒ��'�@���ᡛGa�s��qd*��+�4�҅�.
4~ ����U8�NX,��lFE�j�2,��y��V�
w��P��/,OP��-�v{��t�����`����d%kpD�����SF2��L"KF�D�#*<� ��.�+��
-���#Jx�)���h�9�v�2Ȫ^y��!/��閝�if�g�~���'��U�[�r�>Ff���
C��4�ߘ�'ON
�@ @mmmH�
!��}��O0���T��������]VW�g�~���Eq�jxb_����Y!V=0OUÄP��e36���
����>����#��l
�̬��TR\BȟZ�a��4��d��IL�>R���<R��v��-φ4m����(Tjp�F=�Lcc�����j��Kb����^�9�[�8K�Yq��bT��B���]���m�:���A�:��_]]��A��b�[��\_~E�Ր ��[xٲ��~�9�b.\�8"T�~V������l�B4�RJ��{��G��'��F<�0I=a-t�dEj��IV� �k��(Ph
��FS���5XO��۾��a@�|%�?�?��Fi�1.\��N\UU�s��9�f�/L{�̭(�|)��i��v��(����0WYC6�,��F�,g��
,���o��|���W��GJ�S\WS�m�46B�e��'�&�4F9�?��(y��hJ����p�\�>���Rq�:��B)t0r��
����(�M�n���Z��g�h�a�;i�6�\��҉��K�a�l�z�:��!L���1:�Q�}��-��V��~S�
4��re��4��b8�DG?���4�~4Z]{��$y0�L�
��k�e�Ў��1ވͥS�EH�
�sfu�����~x&E[~G���~+A��J`�Я�_�<�[����iC�c�IEND�B`�PK芋[�$ a
a
"images/admin/dashboard/updates.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe ImageReadyq�e<
IDATx��Z[l��fv�b�����cl�KB�4�%��IS�JUT��%��j�>��TԼ�U�4y�R)}i�\(�Z�Į�p�l0���^{�s�]���׆��t<3���|���g-���'y�o��N�q������!��9�N�����ޞs���^SS�;v
=����Ƿwttl����R~��{�r��l������d��ݍ7n���6l���(i��cfX�?��rx&�u]G<��(`������|`��z���W�8��02��$6�M�͛7QYY�����/e�~�_�
�Y��G5��=;_��2�(hShMMM���(//�ڵk�4>c�d�����Vn�/Zff�p�k�U���E|:0���-O��]O��;Z��N���=���Ϋ�Ըj��](0����q��������?��T?y�(����+?����d����
�q�t�A҉��������?��.��7gJf��r֢a��p�/o.�@�L�Sp����8i�"�9�<+�(�[E�h�/pf�&4:��TS����E48�b��Il�X�Ϟ.�lA���m� ����.�۸#�.��<x��
ō�L�/�,=���%E^̃��(3�&t�E�� ���D!?+�py�x$3#f�Y�B��p
�`!���b.�v+#��e'wJfV���#"�BΉ{m�;��
��Ki�'U�̡��=0a�!Ou�����Wu\�e<6n"��j�s��I�﹎O���) ��\�
TB�,X��<�i}u�>nYBx�yɹy�(SFQwE<tg/��+��>�3���Ȉ1T�&Q!�\�Ė��Y�W���.�C[�ܸm_��(�i��s_�ȓ�,��"�#��I���g��ځ��vx|���"T�nt̀A�Gc�5��~�
�X����<�7�wz^[�ZH�����E��8H)�䙇�'��|e�G��]W�bs���@e�%�ajb�$Tj��6ҩ$v7��u��X^_%�=��6N���D!���Q�zo#�l�%)��x?�%D���!h���6���E��w�b�gY���Na�V?ʝN��76��ڍ�X�jN��>��
���)d�3�>�S�c�@!�:T0�S�ȁ�N�]?��_;HT�
gT$�{�aA0����-��;鳤<�,$
��^N��,}:Xj���GdՓ�"ő�/�T�#���>\�>�}��`�?7�������Fp�V�VD#Q4!�Ym��j�{��o�\����ϸ/X
�QȠbe}��֜�s�2�-?�yJ�꾓h\ׂ��sn�J����24
��h���56>6C�j%�F�h���(��?+<�j��v��T)��NL��^������}�L=���=�@
ZP�5��˄D<�ʋl:���Gb叀���e�-J�X�S��ѳө�����Bu��2�[�AϦa��7�����dz*�O�M!��P}u�z��_y�!$1+\��D#�h�)���6�8�`$c���
)ۏ��n��=�
�l&���^L��)R�}���@.;����SS�QKԭZ���9k.���GjAT0����EC����~R� x�����ccH%��>���<��g7�Si�F�_03���@5B���H�.s�)��{Gƨa��1�1�;�T���
�=݈Ŧ ��mx�6.�[q;���
9�A}����#�5��E0��tf7���DS�����Otcc�0�G G�¬�&\_����W�`th�n�Q����1vo��B�3G]}6W\B��Y��ρ(47���/��_g$�&��1���
�ƚ��!SU7'����r�����yQ]C��ԩ�(�g�KH�8�BQd�
���D�
�5]c"na�N�Uc���Zn陕V��whab+�cY���Q1� �~>�>j���t�H%RhM���;�XJ+QDFY�g�� �, uM��N�5�.Hޘ?r��Hŋ�F� x��z��WW�SY����R6O�5L��`��_�F�F%��khV�{��о�$�R HNע_�(�b�
�I7��w�>���+|�-Qby�����h�kb�h0)a9k4WEU�TȊ���0D���wI����4��yM(lq)KJ�h0�h��
K6Y����������W�+8�!��enϔZRw��;����ȧ�Kf�hUbE�S�D��$��.TN�
��c�(ZB.'-�4�n��f,a�k��Y�$ȁ(5_65C��p.Ŧ�M�h��I�y^ZJ�qL����-�C%���W��93��?��d�t6�g
�JcgS=���2�y��|6iى�ij)h�ƕ�,��p1��cZ4���ktZ9���F$��O5r[���C~�B��
����e8�m=�TR�����I��{D��'���<֑B�b�C�������Ȱ���QhϞ=o�>}�r���C3?_>�[8�
^[��g�/X�?Y��C��IEND�B`�PK芋[�_I�LLimages/admin/delete.pngnu�[����PNG
IHDR(-SsBIT��O��PLTE����も�RR�::����
夤����((����tt����%%��66���붶�oo����
䒒�CC����cc�������??�{{�))����33�mm��HH����\\�rr�����22�;;�����LL�99�**������##��{{�))�MM�88�ff�ssta�`<tRNS�������������������������������������������������������������b pHYs��~�tEXtSoftwareMacromedia
Fireworks 8�h�x�IDAT�]ω�0`PT���k���)�(
*�`���i��K�S�_)�Hf����;��z7�(����,�S�Ns^�("%��Z�"�LD��^]_ �䲩=]˛�@��6g��=;`J1]����)�|hjƖX����A��.3�t�<6D��QQ�#裣��?���_L�@������oIEND�B`�PK芋[L���
�
images/admin/departments.pngnu�[����PNG
IHDR00�`n� pHYs��~�
�IDATxڭ�kT�m����e9��yj�C9��
%��<*ҲfU��ʐ��!^I���1TZr��+��(��g�û�g߽���ۻ����׳����s]�}������j������O��c������U��`|��Y>z��Ž{��\�RXXxJ3��/7y$̀h�|�C�-�7oޔ���۷o�ƍ�V�Z��5C\s�G`��X7��2�"0�_�>}�4b˖-[�dI@@���������������a�2T����2�\\�zvd|||<==�Ν�������\�<�3��.he�������������(͛7oΜ9^^^111���MMM̘6����8�1��!�F�����7BW�^����WWW{{{&Jvvv]]��600�c
��߮]� T�ԅCZ��7y3�hggG
��---��bH��@�f͂
��ϟkM�."$L߿���4{�lkkk???ֳx*��]bȵ ������B�V�!�Ƥ���i���!!!_8*W�ᕢ,<@�p}}=TVVV�B����!a!���͛����ǯ\����Y�������
Bh!GB�* ;DH<{��]dd��ѣ��<Pw\���B%�Bh!G!�ĩ�H��ҥKdjʔ)�/_֚4�wE�-9��� ���픉�344tĈ���j����<�9�
��� S~o߾mnn�����ɓ�)���싄��ȑ@9)��!O~������
*.��_�Z T"�rRZطGH&�:abb"�#��>|В��']3-$BN��i���nO�>>|8kRܬ��ON���:tÚ���M�JKK���}���@�@!��!�U+���*����{���ͺ��������\��hk?�?�`oo�V�,����@�@!��c�r���$^�=B4�LOOW�T������Q��6mI�O���8�����h�С�7o8B�c
�C��B�B�!
�FH�ccc���Ȉظ9&!�TaIN��c'��ޓakk;r�ȁ�W�;n�!K3�@�*�� ��CT���)�+V��bMh���ۙ�s��oU�r��Pf����ԩS@��*e�V;f�
�r$BQ�*9y����c1�i!ɾ����Ekk+��:L�wtt433���=���5��@�*
�'ȑ@9DE8;DHla6�6X��<��oU]��7o[_�|���uǎcƌqpp���������
�G�a
pH��Zȑ@9D���J�F����,&XZ�tY�Xz���F�~�^y�zm�:�1f��,�Z;��Cr�@�@���F�H
���
�PI<����k��������~����{<�h�����W���!��|�F����Rf]7_�>f�
�r$B��ۋR$K�J��ٳg���&O����B߄���Խ�;ӷ����?3s3Y�:_�2]F3�� TB9M��us[��t�k�����`2����e��gȺ��Шİ�D7oss��7:8$PA-�HL�9w��i��?'��sH������0��z���gPX\Ȇm�붮^����g�Xs;�/)cZ�Ew'e�a�9#��*���&Z;��7(3�Z�ﶯ2�ڵk�&L����=��u��G\ʁy��d�/7v����0˘�;�c
�C��!�r;W��S�Sw��M�`U��!cc�Ç/�Yn3{�т�Ҋꢋ��*��G�iR� d�ĉ�U�W�dӃ1��!�
Bh!�u�pZ�#�P�*Ysoݺedd�����}�4���-�^�ohy��Ş��
�7V
��B��3 TB[|����N�c��y���J6��!Z]�+WM,��)x��y�/
��O���Q�9���s��c�v�3�� TB��s�dܴ�+o
�:��"_�%�&ӑ�
���B"�
J*�y�������RpMMM
������oR�G�a
pH��ڐ�Ň��e����!�I&А!Crrr*+��Fnغ'6�`L�ȭ�ή��F?��Lj����цꋐX5�a
pH��p��=�C#��˔��W�d�),T�*ž��|˶�A�1Aa�aq+#6�.��0i���ׯ+��N�3�� T,xh�&n��(_,�����w�^Z�-[��:u*q��5�Q��~��V��/`itt����kkk�>3(I���'N�Ipؚ���;�rsrn��荐�(o߾%H~~~d=//����dA�����"�E�E.\�{����i)���������ŋ4���t(;;�ߧ�UZz�ƍLYe뭝29��Ϙ1�"�ūׯ)'>lll��˗/���H|�P�֔l��p��G�555� wX�]|��,P�|�*�gBB��&D]�0E?5i�$*ޢE�Ȉ�u}R��1��5��_���TJ���ݹs���ݻwo�ϒ9{�,r�c'�`%�W|<T���G�N}Ri=C�&..�
�W�^���g�SpI�H��
<l�0*�n��d30�F�S�H3�cJ��8�.Y�'���C��}��%��3������4�O$�&��!������ٳ�J3[```ss��m�{�4ڸE��B;s���f
��S֝�w�jc�;���π����p���cǎ9r$77�����q��Z�;�����
��(K�u��_�CZ��!�
�G����m�����Tֶ-IEND�B`�PK芋[[��Qddimages/admin/edit.pngnu�[����PNG
IHDRa~esBIT��O�PPLTE����������������������������������ޥ�������֜�ֽ����������B���Ό���΄��R�������9�������!����R��ֽ������ƽ���ֽ���1��!�������)ε�Ƶ������������������ޭZ���������������������������������)���������������9քRƄ{���Ƅkބ�{��c���{���{s�s1���{���{�{���k�sc�k){{�{{��sZs{{�k9�Z�Zks{�Z1kk{�B�B�J)�RB���A��ptRNS����������������������������������������������������������������������������������������������������������������ab� pHYs
�
�B�4�tEXtSoftwareAdobe Fireworks CS3��F,tEXtCreation TimeFri
23 Jul 2004 20:14:04
-0000�o.x�IDAT�c��X��$�@Q�9�?�*$���6:F~P!I���c\�;����oZn�!����ovL�7���c\������kz
/����O��CT�6LHU�*$���!E�R�.F>e�HQA!�-Kk�����G����w���DHDX*�NZC�;C[�!��P[I%
I�$���L��%�؝��B���LlL�L�P!������D�r
�%Q�EC�IEND�B`�PK芋[�vw�OOimages/admin/edit_fields.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<�IDATxڤS�kA����f��nk-EJQ�=�X(U0�z���{��[OQ��������(ބ�G��
����Iv����uvBmC��`����{����#d�����۰���ӥ�r��ʣ����KOo��7��[h`�g�A��4�=t<�[����IPT�=Qàȏ��Qfb�1�Bד]����SiC��m�d��J��<��d���!���J�/3��i!܆�k2���'E|��~m�ƽ3�;���ԷRs��7P��9c`>S��]�B@ð
�����r�_���8!�N��cE��2&��ZXZX��oWf.w�Pn�p����ٯ�ۧqㄥW���
�斌fL<��ᤎ\.����R@(��պ��b(\�j��fz��%�\���{i��F�_�H��"3X!�qw��)��F8gt��#$�K��r���fWI�M�4�?S
���a�!a�#�eS�A�^�IEND�B`�PK芋[d����images/admin/emails.pngnu�[����PNG
IHDR00�`n� pHYs��~�|IDATx�Ř�r�8�y�7�����$!l|_��,���$�I���Qu���[��[݂��]�x<�?��A�d��Ԅ;��>��hb�fzᷥ1�����
E��II�m�o�`���o/Z�j�X_R��G�a���j�����@|\
�M��G�>R�Ԁ���E_���A�u����ë�S�n�s
��bK����$E9s�l@Y��1_��~��/�j��71�s��l3�g�Sfn��p��������"`I�Ν��b���kC����.-t�gqU�)&DKs�����#���-��S�L�T���O�]Jc�e��6I�q��A`;�aZQa,���+-�a�v�.��k�u�8��i�h$u�����m��A�u]�uC��7�al�I��[��ʯ�|�WN@��ϲ�(�zl��$� Q�I8�x���
�ж�"���BrN�.�$V�ff��3���<�W �d!5 �@sݰ���D��$[7�[L�<ʉr|�J������ل�����1��?�ֆ�aH)�L���1M=�h������|��p������p&�ǵ�u#�KlׇˀR
;E�E��xG�X�Z3*�͢j��4L��S��=m���q
ZV�W����`���R���$�$�(kU�mU*�����,���k�n�����u�iVhI��26�K�Bj��qTI8LDbs�lcu�=if����n!��];mL/'��N8c��3��,��k�1��nZ||�,RVH���0m�*�
�]ZW%,ı�ϙx�#�։��s��=�� h�h��c����7��q+�� ��(!�FQ�jݓ��z�m� ���QJQQӜ�骩.�-�1�DQY5�D)�]��;���.� 52�3����T�I�)֭8�x�9�M���炭
�d!��YXO
�^����Ӣ���b�Mݧ<x��(��� O���U�Tu���]VȠ�m$�g��&oz;?J�wK�[P�
��?�9B�x�!n!��RۼK��!l��zkG��Ko�N��q����0՝�������/�v�����=,�x
�Xs�(���")DI&�v�IV\55���\IS�R��8}��@�j� o^�V�""2Z�L�c�TL�34�@��"T(�f`��V�*oP;�şUPۣ�4(�@N���e����W�*8)@� b�:!��O,���{<�H��R����a�/uw�9�_0���փ�1B[-^�D��s8�yR�)�+@��A��r�#ƃ��$\!(�ζ�"�PX��>�d�0(�g��&Db�Ep�"w����R���{P���0x
�N���RrUDE-�wY�� ��R�X�:!���
�T�6�_�F;�ډ\�
�Z��}更�]]JV0�<���@���H��V�M�;��އ���$&��uwv�H%'U��6��E�����X3�e���`��(�yG�Tx5�Q�{Qn1"��rHJX�
Um�Q���B�|#{?�`*�
�n�:�D
�o��[>�?��T�iV�.�pO]� �+
5�eԉy�۱>�!��!L�ЍR�|�r:�;u�9N2�D�A����3mNj�����_�ɫ��p��f�P�d���B�S6]B�Jr��%��H�<���S6����!v���.'�eg�[�5)��qP���$Q�J� �I�+�8�rX���:Fm̈3�
'������+ge�Uk���WG���@�jA�.c��s�RA�`!qzN:B@�we%Fp
N��*ȋ��͗��+qwCf{xс��q���fe��[�7=1�ֆ�_*X�pW���P�Q(=Y�Y���͕�]�������i�rw��aD)(�]�!H���qs����������C�x��G� IEND�B`�PK芋[l���ttimages/admin/frontend.pngnu�[����PNG
IHDR00�`n� pHYs��~�&IDATxڭX XSg�Ν�s[�uo�bu���.�vjW�u��nu�vQ����Zk�
�uWP�lBB¾�% ���HY
��HBȾ�,'�@�S��y��;�������GB��P4
`@�8��` ����%?,��;���� �=�ڰ�@
^EOj�����@6h�`�|��
-߅zmX��~��=9=rBh�T������?=>��,��1�0+T�3\'���(�#$�t*\Ԯ��"g�B�O�, �~�&�
��Z�u�%�������l,�Hʇ���fxNO�&-d�ޜH~#�B
�3ԦE�9��asz�
tʬv',r�D���p�~�yb����O_�'��'�H��1�O_�ں�G�݃
��
^��I�}�~,�qj���T�=f�3~�/k=?�G|
��ב��>�
ԢBz7�̿?���@��4�.�f94�z�ktd����=�k�q/{n��G��<מ���
R<��p9=T���g��4�|ljߑ��0��=a�}ߓ��y�yW�+��9������,W�]S����ڄ��3��2�8�t8�tp���G���Ҿs�t�͵_�������6�~��o�5|��X'��d������;V`J�Ia�1Y�w���L}����K>�L�����K/Y/�؏�/[`��<�<���*~�Ee���ߍ�웬���aRц���k�?�������Y1����?�tjF�����;�6^x���L��Wy%�;�#Th0}(�����T;Ǩ�<��1����G�c�_X��p8���6qi���qpU���-v���Mg�7��Տ�_0��a��E������#�j6�N��f*wF(����D���ʝ�h��I݉�ŧ?"��X�6iE[s1�]Z�>����˟X���;:U�931���=]�9�
�7zG����w�����X��۾�жc��0ʶ=�9�N��e��<�M��.)Q��jp���|j���\sh���m��c��虚#ӴG��%���p6Cr"��_I�6��W[�F�l���mc1lײu�4j����?��2�=��v[)a8
��K�a���Vx���F}p��д�#�:��u�Y��g�#m���gAph���A��ygD�
o%�+�2F�e�$j�h�H��Q�?��굴ţ�.��XJQ��X�7��p���2�EI�Fsv��������ST?MSx�O�`�c�$3�r�
��*��&����c��� ?%�|6�A���McgV�~:����Bf\���KRr4�PI(
�؈������!��z23j����r�3��OR�8U�/���e�
�<X�
��
�}�u�+�s�Q����Fb�8�a�0� ��k�WO�}>[|'����-g��"i���\YN���r�r�e�Y�����Q-�2������v�oj�?�e�D��Sd{�ƀ�/Gٛ˱k<�R!x��}P7]��;����֎ԯ{����o~Jrbm�ؼ��Iy4�����17�|��Ԅ:^SK��/hN
&���[[ۊJX�̐_�����G���:��q��Mm���|5���I-��°'�y�_L��on�A�%�F)�pj�]�D�G�o�g~�T���
/�a��O���vF��u�rh)��N�X���|;r�!^���"
��&.�AB���h��A~`v���'����|J��6�@x��_!�:x]���,"pV��,�zɟ�=Wpyڂa̘��D%�s�-�ք_�"�QSr�4L��H��O�U�\�NW*��6��Z��ڄ
�
@ΌY��`X��5�CsQO
��м#B�e���Z�v�
�{��Wwg����Y6��}BÎ���]LZ�xե���Er~�����V^����B^AVf��q��k�i�/_�M!_'e��t�n5=�����\&.���
G�Ɏ�Y���mc�F7�~���xB,5�B�Z@�\�k>�a��_�EZ8�C�V&ʑ�3�]�A3��� �q�f���r�fS�=F���k2��t���QU)��|&����� X�!i���-��>y�~��Osu6�џvEW���"T,�SÞ�ʣ^I_2�5F&b(��݀��`X���g�^qvV��ˬv�$Z��A�+Tɓ�0)��1��l|0+���`���j��>y�������xB��BQ��C�y��}ˊ6>��bBc��V!�C��Գ�f�w1s}}\��;�>n���HOH��f 4�Ĵ,��ޤ��˩�*T����}\�L�
[�ٍ�?g,���4Kzj%w����»R���P�~�J��rWM���lb^�6�w3�R����^1�S%b�x
U���]NN#ݤR�(�Ir"�TJrJJ��>�s<�0��
��th�:�d0�SP�E歝*9�\zvM���֯���/�,�f���&m�u�zL�'�"�Z����\���
��
ky�`����QG��̻Ok��>��ۮ�B8E�Z��ݜՑJ���~��x^p���ȧ�[.��j&{{�}�
���3��x�l�X�����c��*�aB��IؘL�L0�m˻D䖆L��X}��+�$(�+Bh�O)���A�ww�WW@t�^] �`
=e���H����T �&�KXP�/���
3,�j���y:)�܇}�©?p ������P
�o{�l���k�x��<�[�����)��H�m��;�q��@@Lwp2rA�5q�
��j��ս��:6(:t?�����ѕC�M�G[���������2�QW�Օy{J�Fj��ZkP+g`�.a�Sd��
,�L4Ř!f[��·������CCr��[S�Rg��r��l���4��������P�^)IY}��s�_��7vVL�K���
s\�9�ٕ�q[�e�+{j��ڭ+��+<=L���7U��l���o���܆J���:��~O��Jy��CK�0 K@����A&����=냞�������Auv�*�^FӵP
2�QF�i��m�qt�9T9�>&'�˚��ک�HI�ZҶ
�C��%
�
!�
����F�S���� 9:sm�t����DJJJa��e������RFzjb?��I�J8 ۙG�S��6 ���!L��AB�� X�a���ve����q=D˜=L{w��P��o�6�L��Yڮ�5V%[)���6.7��� ��n�]��a��4
��
�C�8�݅N]y�aZ�[�I.U��11!��!3$�3Xw��Z��>ɡ${�����ޮ���s~
��Z�5��k�]����$
9�����`n�'۔���l
����T�(��Jeu
5����Ǫ�&g��y7�
�G�͉ߒ�ݼ��?b�X�>���䊊�eUgV�|7��4 ��
�C�u*S,�DK[��iy��u3�*�W[��L��5��P,nW!в�*�
!�^���.����b��%�?-�
u�����n�
�ݮP@B�� X�!�z5�U�����2��d��:���.��)<�5*#>�:��2.�"�k�]j2��洭/X����о{KJ�.L�J�<��6�M��8���`V`�`n��Yd�~��o|0�Wt�*��j��S�yىytb=!��X���n�^Ύ�[�?K��<}�;�]od}�&��s}�;0 K@�AB�c&ى`��潢�}��e��
�_����d��R��Ӥ���}Z2�Z�OC��Ȗ�tOO>'ak��32�z��}n��
�C��%
�
��� Xi`2̭J�]E���P�,�(�j��%qz�u�8�
�n�%8Dq.
�N�߯��F�67y�K)Q/
�C��%���0?��C����W{[n�V���}z���ͬ#��h1�b����¨�p7g_ڞw/����n��53��ŀ�f�$,ݡ�
3�*\��;7��Jn��Y
���1��:�3�yDE}b{}��!Q��I�d%�
Ɋ��A*�#�F/��$"fID4��`�DX�^�O2H0!$)
��GT �]�`-~�e�>���G�>���q�NX�>���g�O�|�*���.IEND�B`�PK芋[���bbimages/admin/groups.pngnu�[����PNG
IHDR00�`n� pHYs��~�IDATxڥY�[���h�z����ZGŁ[p���`�*�zm�U��*�"�����F�&�Bd�E
!$�Ha�@�#���$�k�V�<�}�N��s��9����~����\�����ϟ�Y���zc��2��o4W3�����544�B&�Iq�Œ�dmmm�-]�_�Wͣy��\^^�
\#�k���{{{�ر���g�Ӷm�v�ȑ��p�Z=�T���נ����,�!!!�7oi�Ν;���/���`yzzB���855�*��4��UJGGGu:�N���HJJ�`0����م*\�v�N��xi�[�W�V�����n��m��qE���O�>=q�ġC��#���u��={�=z��ŋ$ *0����-nqٲeh4�U=��!W#��
S�9���@��������ʀ��E����oذ�nt���6���ͺu�v���Ώ�6�\-���N�:��|i>/�ſ�/�nŊ,|
g���ի�\�&[�f���atWV�
�+�Ϟ=
�>06���6�ŋ_ǎۻ�+
��c�\�|��W�u˖���[9�;���H$Z�r�<��\���{mڼ�ߡÇ!��o��`�����=t谧��R�|C�I~��=��G�V����\O\���|��G�ضu���5�w�8x��aH�C�\�y�w���e+������!�;h�>����m�7�t�R(W�b����<�`|��)�����ݽ�-Y�f��6l��K>_��s���-ULjssoK�9�k�3��G�0��@��D>�쳅BNA�`�g�|���ݻ���z�.zC^��O�q�\�ţO���F�>V��l)�<fa9����d;,%|��ϗ,Z�b�ǪU~~_�&
�֭[���&H�}����}�����^�r�s��;T��l��[CFj�!�K���dvW��i�4Q��!�1���`ȕ�?��}�қ�}����W���}�
�M[�^���6,Y���g#:�ׂ�+{|�.Z����<0Q�nӦ����#F�|�Qõ����.YX��h����ܻ�E�o�`��uF~�ݘգ�.&��;�w�窥K}��5�~�<��"F��Y
������q�а�U�Ħ���%�k�mڤ��X�*�[�%��!���;g��;��[5�z��O���~z��Gq�O;\�9�D����4:��~[@�iT��-t��4X�5�O��]ݾ���ϖ��tJC��U���,�Q��u�\4ͬ���!s��. ���ΐk)JHH�x���k���P�h�L4d����gm�m��v���6j"�@@�&�ȹ����s#7�`��|���ѕN(��.����V�i-`���n�?�DoX���R�7oژ}��&���-b���#�js@���Y�P-j�:æM�UE[K�[�W��8滠�t���Xs���V��6�9([��ብ�F��&ַ��N�x0�sǟ߃���A���i��@O>�?�!��#��=�U�ڴ�U)�ԁ�TЇM�[٣��Qr�K�3+�,'�����D�k��o�ldidi��~�L=`��i�m��#�j�����/a����
���y���۶��;�W�$7{�V�*�W�JkY(�Kz�S�V���S�k�,��z6`W5��v7��_�vs�4`Wjo4�
T����ɵVZ�vfn�W�^o>��2��d���Z�δ���\����v���`PFkѹV��z�u%��w�BF���C�����Ԉv�Ǹ7�V�W��֛��m-<]��9B�+m�/o�t�^���4���+i�����L�ka94��T�^|>m������I`��P��'�.6�YZ�ǔ�R�
���^�^��nW���Ī�����r$��G~�u���t�]�Qs�}��IĜ�o<A���ٹ��i�8�D�2S�5RX�G,�V�w����qP��q�L?h&�@�R�̡V>V���:z�+k��bEy�R�.�Hdr���j�34��dx�Bc
����gj�%��ܒ������MNM�[u�VYuc��BE>kƭ�H�&�Wf�����D��L�=F����AȈ,*7+k��*Q}[KkO�TI��h�z�=����&i)�֤�y��$0��71�ΓkNt'p�'�ˏѪoML
�W�WS�3��^e�I\�
��4�L���T���G-�ǭj�{s���5�^�ؕF�J 5,���%:�D�(՛J4��IQ��!^fH.1DQ����
�����o��5�¨=G�>��~��8�Y�Mf���E풰mhT��e�u�R=�TϒW1��YU�@#Qj�8�U9��E�9��#��.gAM��*�Ja&�DKU���5��^��X]'Px�$Q�
�媴冲#�SDR�®,j��l��b8Cԟ�h�e�A�N���:D=O�H]C��i�
�P�/P�+�%Z���"֊+�M��r��
��|�<�t����P���nh�t��.��8�i(�
Z��.R��+�kRJ;Cd�a����`vݯ<ӥB�EPO~�)��;��p�"
E#�R`Lḹjl_T�a���R[��*���&�Ѥ�"u}Oo_����ܩ�k�4����͖�CSCQ�T�Ҫ|�&�X��*q\9�+�(�
��$h
�7])�H�.�_��9��j��5G3��H�%H�~�ߙ[q���cC1�tfR�3�,�Y
��e��2�*��ez��`������'��.��k��k
��2O��^�"�@�d���b�TX�5�����̺�����-��RJU�O,��T��']v�ٌ�
�Rh����
?�!FJ��R"_MWCT�^g����~�l��fgg�F'��F���&�"��y5�W�b˲�,�
��G�
ɺ`f�Y���#��t��'�e����O�~#�"��+��-�ؿg�ɡ�ٹ�B�:�L'��"� U
�r�
��
��$:�}rrz����$�̡�����`��j�D�_�P,)Ќ���y)y�,�Ts"��d��^{�9�R�JU|�B���o۽B����#�G�PA����N%�2�|$�͖㋔D��,ր�X�5�#@��K����m��k!X�eD�
_T
��oU�hH�D<;�����8�T�,?�(
H��K������V��&��2�C�Hr0�i�%��8F��L�;H氀$`�@�8h�ڦ��M8m�|�U����(P�z�\9�ʢ����)DNRnA�0����
J2�i����}@L��7J�+�xG8wkX��u��`ښ�ϙU�@uM�O��X-�L
�R�J1��n��+P[��''ǝf����O\��X\m09�%�f�
X)��DB!h
�|J@�H�e{%{�%~%Z�;��������N_DY�K��3��0G�d��G���J��e$�#�"�/�B)�#�X�-�&�N8�##�
=���q�r怠
R�y ��q8�S4=I��AFs�F�|��#>��C1�-@�M�k�&0o�����OPe7i���M�Df�Gf�bP4�[��!�h�l�����jL����M��
QDj��*�$g҄�b�
�'όFў ɏ��!p��?(�����r�pS�%���
e�%�ʋ�e���0����X�b��O��4^h|��(��ą ��S�'������eںɉ�������Ѿ��&�&�b3hh���@�+�ɡEf�#2����O��N�f������r�F[L^$�8���Y����Π��q��I����d�FL�dlx
0O�9�X���DdC�"(E�x��\o��K�����ب�φd��P��2_�qp�Ox*�^26,���{i0cU}�%��/��/�/����a����O����?�?���^�Sd��'i@ҝDTx�!�TG!�
)���VN������X{A����\�sH���>�"=�
�O��M�Cތ�A\
�]-w[HގP�W������!��(��\�`�7s�g[GKGO4�t�Q�ͧ��N�^*�a!��(Pz5ˌȢ�5�#���6[?�
�=��|n4��eĠi�22;�Qfރ��{)�;�h���W��Sq$��'UH�TJ�V[Sch4[l���}��ٹ�/�n�6[t&�ׇ�!Qiף3n�e�%��K��50�8آ<@��K+`+�9mx���#2IO�ɏ3I���i�0݉G݊Eވɸ�~9"��X�|fnb���
hz
v�ٹ�9�����ê���PZz=*�rD��)!ш[O�`r� �;I�{)�i�����!�����
����X3Hx���NO�B{
BĄD!�D�E��d�����Lc?y��r��WC�t||L$��
0�(�qZpd���u+6;4!�n
s�S���a�Z{�V��PT��%�#!�V���,�ҕ'�Q��H�d6�~�y���1�9�/^�B�����PDZ,27,y;6���4�fl�ըLL_k�s(ixh��E"n�"o�f�p�
&��q"���\���=333���o����=���#����Z�RY&*�2��\Z!��Bਖ਼j�N��谦�&��G
IF�琘xja>��勥2�F�1�L}�����9�U4ӿ�A.� �N>66ˍ�������������P_U��q�^���j
5�MfS�� uv������(��0�v�y7C�a��
8��|v�m̵�B��(T`|��? -����7]��m����`&.�IEND�B`�PK芋[.��5NNimages/admin/icon-32-search.pngnu�[����PNG
IHDR
szz�bKGD������� pHYsHHF�k>�IDATX���og�睙��Ʊc;8Qj�%ICӯ|8$R�r�^�-*�T U�
�!�@TEP�*��*�*��
�iL\�!㒸���ɦ�uv�;�{�����)H傑�λ�̜��<�;#�ʧy�O5���/�ۋV+n.���yfHDV��orT
I�֖��K}}��Ue⽋O.-U����'"
"�J��N�3^�7;�S�s��[��
�V�Y���+_:��b���Z��/���'֦UcpN1F�}�V��E�./c�#_�388������vC��)�����a�X������z��yx^F
U먳Tn�`y�.����}�A@m�.s����;wQ(l�:�`n���$�8OD�8'8�>����M�i˫�*��=����R cL4q�P]�r��%���ٳgO�o�'?�Z&���T��U��|r��wS��b�$��r�2#�#��
��!"t�g�
q��&'/P�.�s�NR���Y�b�udh�A��:�s�(��8u���u�o߅�Քt�YtM8��1::����a�s�,ֶ�am�U��L^��:p���W�ĩ`����ug](}F��8fi���.S�Z%��D���7$��V]"�Ðf3̪H��6��B��0�c����s��t���t8����x�SnݺM�^'�c�0B����<���k��N�78�P�8M+F3'��uG
��$ ��y�(�ƍb#$�%�"�8&N�MIbIbKmy�;�
�M�ե���
irO�AU���h6C._z��߷�S�U��D�0
������{�Q���#���Ç�n���ٵk'z�-��s$�����b�E����Y&&���C�*ES�:e��F#0�T炡P���8u���>;K��"��$qDIB���� ^}�Tnߢ�lv���*�FkH�
#նq�8y�I�y�m����E�F�Ν�mzJ%x�s�9�:?}�%�y����PfF�q���|`�gPg�����
<���<���]���͛DqĶ��?�}##��XY�g^��W~�מz��y4SAJ>�Ύ�v�5$TLGX)�յ*l����Z�'պ���s�Go��Gr��f�C�ǻ�c0�@Ŵ�
"�Q@7�uv:I�Q(x���H�����&_(��G���R1
Y�zټ����y������S���u�;8瘺x��M�8�8<~�\>�����ߌ��"k;�z���������8��x��LM]d~�:��+��xi֎@pN���A�7�1���O~�#&''ټy3����~?~�w���\��A���A����v��3�u�����h48����88v�Y����:����^�~$mR�Zapc����T��Hfg�E��)ϗ�\.�H�
�����ݻ���0j�o}�d>�{j��_z���}`��
�?��gϚ.�������y�$��r�O��E𭵾���Ff/;who���'ƈU%)
��\ ��7ssN,.;>>.'N�P�ܹs�>}�LOO��z=�᯳���@�� 'I�1��q-ywj�}[./�r9ٿ�k-�Z�k1??o�^�*Q�j�����U�S����ܜQU�X��qA����������v߾}.�˹;v���Q722���ÔJ%d��s�idiQ�T���y�ٺu+��gJI�)d�2�����@"zTXtSoftwarex�+//����.NN,H��/J6�XS�\IEND�B`�PK芋[��x} } %images/admin/icon-48-rsticketspro.gifnu�[���GIF89a00�������!�$�!�%�'�'�(�)�(�)�,�!�"�)�-�!.�"0�$6�+:�/<�21�%3�(5�)7�,6�*7�,3�&5�)8�-<�1;�0<�1?�46�)@�6A�8@�5E�;A�6A�6C�8C�8D�9G�<D�9F�<H�>H�=H�>N�FK�AJ�@M�DL�BN�DT�LY�RT�KP�FR�HR�HV�MT�JV�L\�T[�Rb�\`�Xh�bg�`q�lr�ls�mu�pz�t}�x@�5E�9B�6G�;H�=G�;K�AL�BN�DL�BO�EK�@N�CO�CP�FR�HR�HT�JV�MT�JW�MS�IU�JX�NX�OY�OY�PZ�P\�R]�U\�R^�T\�RQ�FU�JY�N[�P^�S_�T`�W`�Wa�Xb�Yf�^d�[e�]b�Yd�[e�]h�_b�We�\b�Wd�Yh�^j�bo�hi�al�cl�dl�cm�ei�`l�cr�kp�hr�jt�lu�mw�pz�tx�qx�q|�ur�iq�hp�fq�iv�mv�mx�oy�q{�t|�u�xz�q|�sa�Wn�dp�fr�ht�jx�n{�r��|��|��y��y��|��}��~�������������������������Ł�
����Ɖ�Ɇ�Ѐ�Հ�т�Ձ�ք�Ӈ�׆��ō�Ē���ʛ�؉�膐∑牐鈚䓛ꔡĞ�˟�Ơ�ȡ�æ�Ǫ�ɧ�ʨ�Ȫ�ή�η�Ϲ�Я�Ҹ�Ѽ�ο�տ���������������������������������������������������������!��,00�� H��#�*\�0�1:f�Ӱ�E��&��k.�����!0Ҙ1[�l�gF���QfR.c���KdLșyуM��0K��O[�jѪ����YEJ��ӧ�h�2U��A7L�:��V�
5+��)��.���#����S[���"[��&��*U�D茉�F*,xB'R��ֺk���M�-Az���@=>ܸx@@��D2�i����{'��s�&�O�8AIT`w:���^lz��~��+�N��|�&��#'N5bF�`x�~$X�.f�M_?u�` %�P��3���Lm�Wdܰ�B�������%��3�=��r��"��c��<�AB�`㍈d�!^���0�8 #$:�^���A�7��B��hc�pqJ)�]� :�<�##.'�{��FH�7E�C6�Ä!!gHb�i�tr 0��3�����q��Fd�A���
2Ġ)��`垣���%�\�
?�I�
���^-���
ag-�0%��)��&���O&���G{o��F�r�Ѓ6����
+�0�9�'�rI%�<�O?��C�
��ٞn<(Fr�p�J�C�$h�A6rV"�H��>�$|�"�,+ǣj@Fr�p��,�K�#t�A��8���&��S�"���l��p)�1`��7�v�A
��
���2x��1Gk��$1�`�ג�:5t���̙l0�<�Nn8s�6Р���`��$1�\��@|0�4�rO���`�2
�
j��/ ���
\��@��$U��:�ۏ7eN/�6�0C����ڠ+�Tp�?���Y(S2�7��O>�H�ŧ��B�w<4�ÓBd-���
�F1O>���K�OZ|1��sl���@0�TT+Y�.�����[�|�ʻ��x�>'Dov$��`\�8�� �ˇ>bq8�.W��:p��b�{��b�;�RA��A
QЅ/�a��i*W3��8���B���A�PN���<A�5�AC�x����Z�Z�X�
@/���3��!��xK!��N2�� V7���j]�"px��D$"���dp�7��'Ȗ�.���A0���|K��H*�+��:��wǫY
��09���dB��;�`b���
�HGJ�z�a����@�`F!���YW-P+)��
���N�O0�&��v&��:]*I��:����l_
~����N��`*�I/���J� �{�;��
�E�FPE���0CZ0�㙠����7���D���G��_�
o@@A�b��&-�1!��"l���7n�7 ���5,p�mn�j+�#ʘ����?@N#�
l��l0+[�Ud�t�e�@;���u7�,�j \����(
`2�e$@��%h@�� �S2���!�� �
<��LWٻ�U0�_E`�)P`�mhKD�ZzR�8��d��P�H�'\�)
��$i-wN>���0�B�L(B F�'`��Bp�
V���Ѕ1ԡv8�*�
X��ը6��
�;PK芋[ϱ���%images/admin/icon-48-rsticketspro.pngnu�[����PNG
IHDR00W��sRGB���gAMA���a
cHRMz&�����u0�`:�p��Q<tEXtSoftwarePaint.NET
v3.5.87;�]5IDAThC�ZX�g�uw�ͳ�72&j��
Pl��"(""6P@,����b��&�ĖwW7qW�"��2�:��AHD��ĒdK<{��7f6��/�}���:�9�;��~�/���?��/��q��v������<U�m��� o�y� ��j�oݔ�>XV������U�7����i��^�yQ��O'�1T?�6��_ッW��ë�c{�F���;��+�D<�-�/�ߐ�JTR=�Bd�b�Vy
����+��vbO�{�T�!�~�3�1�)%k��~�+C�]�0x��W��������m�!���v7m����&
��1:��Mz�l"������T-2x~�m]�PU�P���%�{���w5m�w\~�]ނw7c[��VG`f���.z�?�gYH՛��k�l�zC�<�u%V\Z�Iu/ߊw �;�����m"��~���uq�ӊ����H�N�B���D�Y��#x�9ֵ�Bt�r��e<g��6j����ԯ���dž�X���ABm4�֬�bu<\��`��_�k���/U��˓�_Y�R|JS��f��7ךּ�Ug�[��Y_+��2���U�Zk�V"R�Ae���|p�-}S_=j��mՋ�6��vD�)=�c
���H����dR�-ê˖a�7ׯ�y�v
6T�aSU<6V�!�*�U�JFU.ê�%�Єa�0,U����N�1��뗭S��X�(z�d"��)\��J�>�Z<{,m�ֆ�^�h��e��$��$k�j.C��j4�l��Y���l|X� �D^Z���^����X�
BhY�3�=�s�Z��v�buV��B�gv.��^0�
��ָQ��vz�W�-��j�q@�>�oT�ѣGx��1�h���+�6�����V�֯n���K�դ"�$F�S��"��t.�!��s���5k����B$&�˫A`��#��(����1ը�D�1����鳧P6�j6\�Cleb4dM8b*V`s�:���
j�W��^�a�GXR�es�/����U�/�$��aH��S"l��0�~�9+�C1M�f�Q%�o���1�'x��1���am�j�T�@TU8VW.
�R��d�e�wV=�l1>*?
Hdԝ��|�+��3�9Eޢ/fz�'"��~HM^ ����
�13��Yu�XO��mԽ;���"����T��Ԩ+.1���U�d�r�2���t����XP4s����h*|�`��Q��<w�]tD��Ws�D�}���$L��K0�t
E�z}<j�}Cu,
����w�����Aub���F-��2���eJ%ˬ(��J9>����>���,���0-�
�3��}���@�E�c���[+0�|�Q<�P�l�U���yem1�*#��Q�~�X�PV����u6�)g"�x����`T7WaO�Iu�
����)9�09{,3��v$�k_e��I�`�o����z5N���o��T
�&V�p���a���rYu?i�s����ק`]~44�5X��/��;��.��vƤ�1{�� �H�e���I�!�p��˪�D}�2�Kv���-_�`�j�4��Qx�2�uY�m<r�(%�E�z�>32>S�'%�15�U��匉YNp�8�2�s� ��&�]�����@�
�L|�*�0���=�<=D��4"h0ɖ�$�@��}^�dIu�Q������Λ�М@�kU��5K��แ]3G���0�$w�fuF��U
�=M��9����[D�UGb]eN�?��E�r}����r�
�U�i%�NT�e8�y(i�Q���x�u�z�{��5��il��,T�pq�g�
��a����-��5$�`��c�-"o�����xܧ܍����oE={�L<6^k���0c�P�
��e���) �w�q��� �k�R��L'��g�c�iWJ�w"��8��B�L�s���5/_�95Yx��.�}gi�|Ѩb�r<�@J�����2��g��QYu���P�c�w��!pJ���4["�:���7_`�����5��@�f����\�Zݤ�LH���̣l�Fe�Tg�L��ǣ��'d:">;
�z
�_ՁwL��i�0P"`oxbM��AH�fWz"�VߨK�q��\O�>EaC��v�2Ԩڔ�㱓�y��hب���pFuJUѤ�[�#F1�s1��L��\�N+v��TE׆cr�����ePU�����ub�)�����)���ӨQ
U�l��Qר�qT'ʥ������������j#�2$p��
��`r�X���e���_����o���W_�xɟT��1�x��ƣ��)#�R�q<J��@�j���Q��9����+1�3R�aH����
d�#��������β�Jס�r-��ڌQ�����R�S<R���*7*��㑳���h��ԨR�.>$��紴�`����Y+A��И#��53�=���J�U�Q��W�9��=�ۣ6ۅer�=ƴ�������nn�QԨ�����ϊ"�M�gz2�u�=�5�us�V�W�e�~�/������߹sG�{�ow��l�\�x̒�RG��#�7l�=;t���`?0�l$�d��E�)VIݰ�Z�+}D��U`��}��`-v彃���q������MT��9��h�W�Q�Pb�k-#��JnT����o aX�뷮cv�T��cs�8$���;���69�����*�NT�G%-a�R��:
���#�>��w�cd��,��U�,��� #7�ּ
hoo�ݻw�q�0$�/��'�IN
t8�w��ɳ�������F��K{�P=���+���ݵ�ѭr���#�H^�l~N�ǡ)}E�ړ�f��Y�k7�b~�\�|��ט����)�)�.��J��c���^g�?ڨ�:��ʪ˖a�)VR���
��>J�E�9j�$k�z���`�։�2�B�@�9��1�v����2�c���k�)�
U7�GV]�7V]��nw��h�A4i��!)��G$:��:ݍ�6�V�#����
��.�W�2��z�4�:[Fj������Tg�`:{��'�Ӣ19y�P���k���y��%�m��]
�����Hu����Qy��lg�xi��Jg�ua�>"���K��u�3��
k��X�����/�y�.t4;B���Ny=L�'�.�Q�2��c�сC�Ga.[F�R�Z�F�HqFp*}�s�AXFO^��'\�5��ܣ��B^:n���k��"|��ţl/T�(�U�z�x�uB�H�6��v�m���0,i���c���h���
��w�;�W��!̦K����T�@@��
!&*������v�Ѫ.�,�)eː�7g'�u�7���cqZ&��o�7��� ��g�ݘ�t��ڥ����#�o�����
VѨ�zV�*{]�̈4�x�-#����v�0�Ù����C8S|sS��4E�i��'����]��&�͑8tg/�g�=������I�G�w�Fծ��F�2�s��NtL�X�Q,<�Dk��;��s�.��~əR���y�3��n��i���S���e8�
U����Ir��&;Bݠ�C��7��}���L)o^t���G��[�0U6i=����5��+ƹn��:Y�p�aՍ�];��=F���.�HY
�$'=xS7:*/�L�^{����,J��sS$s�@�N8e�Q���#��f�����.�]^��u�s�(�����H�9j���(B3��E�9c�+1�� C�YcD:5��e:�.������p��
%�s���7q�a���﷿��d��D��*Y�����|�=�%Jgا��r�D�5Y����~ �ޜ߉�>�K@<��5B[�-&���3��A�%����[�^�����z��>�,N�78i��[8d��i����_��5�63U�V��K5��43ʝ1K� _���xU�k�R���V=�ڄ�u�:֍ov(���y�9˽aT�[��?�Ի�٫vܑ�U�w�_�õy�6���17G9����U�6˹m�s_�i�O��$ե?�IEND�B`�PK銋[�#o,,images/admin/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK銋[2ƖЂ�images/admin/kbarticles.pngnu�[����PNG
IHDR00�`n� pHYs��~�4IDATx��X�g�����P+Q���PRբ"�H*!D�S$�H�-!MH���,�cw����{<��3�cn�}�<3��x7��ҖW^g�9~�<��&'Y����p�'z�k�P�h&{(��>���
@SXQ��Ahz���0���$�
�}�7s�3�7����JH�=QJ��ov��}�K�Q�\
��5�j�y3D���(���Mm�c����O��s>��M�G�(�
���?[�-=+ڸ$��F��g`�#���z�==�_���֤k�z�����8Y�G���P����Y+╚t�V.�����
�����Z�Z����H�����x��gd�D!�P�Z��gh�\!����|o�8�X^(
��`�D���{C�r�t|�f���fh��c��{��lFx;�?��_�đ��sQ�+u6Wikm���5�#���PX/<�x������+;��i�ͬ�zFH�$��qr���@�1�b�U��@r�
�Cu�rv\���~r�%#˹�^�dϤ��������z�iU]�#Ȫ>��a�]A��Pm՚���A��eeϣ��h4j4��z6����Z/o��mw_���
ڎ���t��U�y�ɴ�qdqY��Q��[y���-�xlo�I�aX�����A&+���F��k��O��/慑�x��.F)U�h�=�Φ�u�J*���};����K����aل��~
�]�b���}�{P^`������Xi�^mV�Sǁ�tzЋ�ae�mY�;��Xk�^{&�avdb������?�=?�Jb/��z��j�pn�ƌ��G�W����ۍ��d�Nw��红�¿�B��#�j�clc�z.\�$��4�$&C��v-����%I�T*���p�^Q\{"�чE������nпY��95��9A_`�NW��N���5;��cV�g���^�U\���7�m(^�VA���CJ�w���r�z~����k�/Q�;�㈒Z���6/�Z���k�&{�X�Y��������r�l6"������${����ah�),�ŭ���K�>����W��C��
Fɖ�\��� a��4��p�<�jt��<��~�5�°����Eq6�<��>Ty���K�\/���2`��jٶm���(����7
�%F�K�iA���zCYE��X���?
L���B1���g��z<�ym�����3�O_+>�A��I�mU�j��{"���"�ݤF�=�Js3CA�A��$�.a��P��2%Y9�
�k���T*ɲ<-x����>1�����Ǘ�?�����SWro�mx�e�@��թ|
��ʰຨ�>lz$Ek���\|�i(�A�q=χo�le���8�^���3��^��"�4O/S�[�}�r��+Y`���04Mw�x�V��B��4v4��Tm�Hp��@�
`A���V�7Åx-�ˊ�lps��6�]���w�����;��
�2��0Wa��C�0
�s}ߕ
����Y*Sf
���0P�y��4�=R��o�6�
��Yb��f;�,�����o���㋻?�G�Ɖ�mȪ��Z^A�F��e�9�)�!b�(۹��l��x�x�!�d�=h��D�0�I��gx)�y�����o?����[����e��2B��4E��]
��m���Y� �[�ŵ����(� _� >�T+YsC�=��'B��j��g�>vn�~t)�$M�@ �|_QU�ѱ-��L�C5Z�-�+CI�G*����F(
0Y��,@�(1(�k���ʼ0mh��R�����������_�^��x�
z����e4�F5�8�Xq5�G��D7�wӕ�"
KA/�<�=ӲP'Ynz�0����kz"�h_R~�����V>{�g�<��vw
ɒ,��i�@��n�@5re&]�!ld��c�PRP�wrt��DՁ|�N�"��Ѓ+'���@�B���V��o}����g�<��ʻ[u�Р�V�7]��
�!�$c���t{#C�
4'U�,�����`�v:&�xp4��N�3[ b��S������t�+/�ҟn=���No���(I�Ї^����k�N0ԑ�1%�js�T���*S��1G�+��2yqb
CX���i������b�6`[���0��K��K��khCIRUU�TP��f�R5.Ӑ���%E�]
�4L\�����2�:�c�N 3n,h\�Ѷx��i��{0`J��4`צ�>��Kb�!p(�����G�����>[�*R��貖e�t@p����;\hPٱa�t4�#�a+�
WVV���i�>2kd/:�,Ix��,�
��A,#v�'8��P�7��HE�t��W��Ȑz�7���"�f3�ɬ��-//�vw�@�
�����R����k:����lRB/4`PE���2�����ߐ>i�
�@"loo߸q�
��
����?�IO>O�d`)RM���B]Q5�]�h�i�G=���/o��:�� O���o�2tf
H�C܄3�i
��}�3�z����~zM��#�8���P���'
������A�Aӈm�*p�p��C/��Ar��O$��b�<QQв��͛7�Y:�F�'�g`��WH#6x`̠iznH=Cs<<%0�
&U+�D��H3'��[ɂ�e29��E��aN��W
�3�`���UЀ�
F�ɀ �z����\G��uhg&�G`_4`��HO �`�|
lr��)T��V�U�T
:u@�
��ќ�����fBB�$Jƌ�91�KIމ��蓺��:gs������5{�+P�IEND�B`�PK銋[ w�CCimages/admin/kbcategories.pngnu�[����PNG
IHDR00�`n� pHYs��~��IDATxڭX�s�w���{37s�!�&�eK6�ۙ��r?\r�l
�@L1�@��+��n�X�U�^��"Y��,�U�%���|�#J(7��;�˯>|��o��;���;;[��X3U%���k]�=����g��G���8��[�JoI��t8�ܑ��q y������a�8�Sr<��Ѩs�'_��*;��x���g��9����>���ӶR��q��}{��߲n�H��~W�U��E'�X���&��)��w���z���?��pN�Ɍ[���p���i��f��mB�<)o_� \ֹ����Rķ�]k{k�+�Ą�>�>0>�����8��iw游iL����@��`��0~Y/t��lo�?�}^�_��f@b���l�ݓ����P|��IA�p���6���k�D
�I'k��&Ϊ���Qӻ<%pZf�7=����_�V�۠�µ���Vx+�ҡ�慟L���؋�Uq�=©�T�9Uc1j�tN
��QM��R�G���t�5��u<�2���y�����^։��pJ�rC?��e��A�OSc��գºq`H�>����fT�9
e~��4�Z�d/�,��<������[of���&�]���ۢ�� W��_>J���bU3KT�r5�Z+�5L��tRD2�{���Dߒ�e��L���|�܁`9���O���@��
�@1o��g\�9�^�wG��N�{�pu��
i�C�"%�|�S��7� 6�⦇��9M/Z�/M0��ܕiުAl1J��e�y�Ǫ��Xw���
a5�#�]����G3�%���.f���*��
P��e*vH��Հ��%͐5�^�5��_#��I�z� �X��Զ0h_t,
���
��ua�bbt�?<$��G��C&}H����I{��!f���*
�4�k#�^��fP����Mz��uV��p,
;��n��a�8-��?"��a�������/�8�r�#��&�+YO��;CN����C�e_���H�MHZ��Aͪ�$�(}a�6Z��"�-s��ܾ0�4�\&���a[y5C�<�bb1Z�cϿ�����ϳBN�^:oX���!>��;CA�d
3K}$Ujx����&j�A�AE2�{�j�Pͤ皦��Y������^�
�N#���n;�e���Y:%')�X�Ġ��}9���\�3���Xړ)��*��l�I��q����7jȾ�C1!�+S<ĐQ
Nr�53*
��u�`[M�����'�n]*��ۣ��/|Xu&��� ��֦�/�+��� ix(�4�(������Qa=
��U'mL3J�," ��X���6��-(V
����Y��kӯ���^"h�xU���]`~ĩ��O�u�þ`6F�:�9��\��'�����䁍���|Ui0C`�A��'�$�1�l��/��A�D���~���5�(Ƈ����OP�|V
q0"����R�s��R���X�i���&^GD̐�2e=٠F��Rï�&`�6��)����(kPͤ�ؗ�4�.�b��p��"r�Z��9��ݱ���w�b�^��8�t��!��_�[C��HЕ�$��wgHIY��NԐ�ɏ�6���F0�訲'�
�s�Lz[����a�wsH�N�gcc#��X��9'(��{���'_�0������{�0@�j~<��@511����%��b�����SM�
Y�RtN�Aۍ�ѡ!��U��Ց6��؝n�AIkI�3�z<�g)��c9�V�_�
��u�<�����K�FCd_s4��G@�Z�|� m$���
��b�����Z&�A��FA5:�KF/���lv�ݲ�#�n�wks����-�h�:���!�ya�IP*��u�_SkB�5?3"�����;���!@#�ͅB�zD��Q
L~�0!
�!Fz�#��I��3�l6;��a~���<����_���-��^����s�y�xa�����ȿ�V�&W�è@pB1r�� ���/hu��FO����7AeO�۠�� h=��.L��-IӓZ��e�Z3����m�[�c��Օ�KV^��7?z`7mϽH���T~�R}�Vw�Q�@�~�m��wI P����W� �
ɧ�$A���n��,�zFkژZbm��X-�~��v�è���n�>/�3$֏��R�"�w��
W�@��Ԛ{����8���E�t))��
5V��]�=�h�r�`_���bY���2z���fw�76�m��xxٶ:_�e�7�s�㢨3IA�|+�<C,�J,�F(��Uݦ<�K���G���9����q�.�Z���NBmD/F��ThC
pN��zVI��i�)s�îWҘ��++&�3��B5(�G}��'��O��9O��i[����+��+�WO�Mre��V{�����
�(��,�؈Y
6�B_k�5c�Fh=2�{- c�~��i2��mi��a�wck�X����^?�s����֝��op�;�.��v�^'���
�ֆ���h�a}M��d��T����d�Z>Z
QC��#~-�L�dP�E��~F���2/$K�x��Y���lɗ���~P��K���6�\y̗��hf�Þ�`�P�S�S��<
�Ą��c�F3�7WN�'�|���Y����xu����ʚŬ�t1��V�V�׃�{}�C��t*�&�,�w;�*�P~���:�
��|$��~F
�l�|
Nt%C=� ���ۨx�U�*�SA��;)�q�#v�cN'���M�G=�ulhX��g�?�@���r
��Q{�5Jm$�+���lԋY�>���>��O�R`Њ��a��P�yMY����Ֆ8(�;<+�Z>{@Duy�af�OO�yHʬ��I
>!��6���X�LiŴ椶������mO�ք������9�1�;�
4Բ� A��3K��͒�|�غf_5��&��cb������5\?a��?T&|�മ��>���3��;
o��Å�L!��1���n���$�|��Be���v����?o��ZV�G���9�4LP,��&��g(-�kR���������V'�}Dؾf6�tqV�'�t��T�u�H{�
F[�#~g�o�d�PҊ��Zc�vH���W�\�{+ell��C������j6��*�ۜ�Ou��v�����V��ߟ�.�Hu]�!��b�E)�2��B\2
9���#YH��y����3*y��݁M�/��1���Kۚ�n^]���Pڋ&����Sx]i��h��ɨ�3��f��+B��w��!V��� �Њ2J�9ռb^Y�Wa�YZ�?�����ts��.�˺���8;-��v�Gv�f���)�tnB��[���벩%dr�C|�O|��[�Qq�{j��uj��j�ћ��~�g�����'[��N�c
�k�h�z���o�;�Ť\���'oV+�Xw\b��T� ��!1��$r@@�gT��<1���pbbL��1���#7�-��r��v�mqqQ)c�Ķ�0�㥔�~R��;{Z�q;�a�Wp�y2N���\��+������E�ǻ���#��@�[[���e6[F���jC��^)��˩�d���E��iiA?L�6%Nh`d�
���n�^f���^��f��hXcjW�Zp�����Z���q)����]�dZ2���;�$l�Zy����w�ϞH��r����üj�ҍ��mEwHO�$�b���q)~uqr~J�`�1:���ߍ�[Y�Հ^�����{<�ӹ�f�X�3z���<_�O)��4¦1�ڔ��n$����?�9���¾�#
#�hw
3R.W�YrWB-�7'�$�&��z4o�Jo�<=��儽�b�-,,��=
�β��z�ם�?��I�+�����J5���_�d�^O�A�,���p[[[����+jHWIEND�B`�PK銋[OYPCCimages/admin/kbrules.pngnu�[����PNG
IHDR00�`n� pHYs��~�
�IDATx��XY��}��3���/�S�ڇ��v��!�N]i��;����1#�NbK�!+�xdˎ�X��hu�$�Z[�V�w��S{p���&$q��
Nd?���-�u�p!���}���:_f��m�����~�߸��w(]4�e>��
���B�����1ZvӴ;>Q��0l��8Β��0Ͱ�W��awo���Hq|z��5�j�1Tj\c�!ZIH�8��t5�s3�Oz�5[n��IC�����\�?����،�����R^���C5
�8.R��
�}@���z�hۦe���i�lV<G��$閧'nھ��G��!��sAR�'j��`�~*-��M�m�Z>����r�p��-˺��b���ډd�|V�A�c�1�r�^k�u�ˆbm;Qi�p���x�H�*7��Չ<�U�V����t�<�dwܝ��G�j'��Ñ�Hy0Yk�&���r�(�d4Mer����8����v�}_��LR�
3��\d�C���"+wl��
���l)���2S�uݸ�u�N��:��yh:+��4T�H��=S����Ǘ��a*M5E��V宍��Vbk�lq)�O�h�.�lg�Ľ�,{��i4$I¦waȧ�&����-�+�;[
�.j�^d���l8��$sY��t�C�%Al�lE��\��jF/7�ǖ�ٛ%�����P�E�uE}�&��D~�4�s�:a�n�����e%W�Dq1J\����n��Z=Kq�J�*5IQ5���J�(�r45�s��Az�Q���ۇ�7�r;����v��8�Es5�g��m�.�J4�2���M�n���H*?�cLE0-7*}{%�I��|�����r�a�Bc����7���=�X�R�a��"���D��j���m�F�0
�
�-HKIJ�7���Mi+��y>�H����;�帹�A]�2����>��>�y}���b��ag�}-M�Kl5�),%]p�&,��7���Y��R$]���a�zm(�J�@O���w�����֡ԫ��[���
���x1���S��n��_�0����B���aY���,��P�n��F~��n�Z=�;,���Nh�.�6����s�-�[�$�҂m�҄QBq&@p1>a�&�Ir�@W�Ћ,�m�>+m�I��D��w��Z��;�j@+u��b���~q.��q�:8��4MQ����,�b���"�p"?˲e��T[-W/�0�����^Rb���y�R�^H�]4���=���'֟
������_]��i���QHE���-"��r4�I�f�I�V���x�%lT��a�`,�����-{�C�X,&B7��R:z�D�i-�*O��:~v0��t��45UQ�JM@T"id�T�� �ނ�@_�H���w���5��U\�EU�&N�UM���C�4A��fh�H;N���9�|t`aөЦ�!`"�zSQ$I�5w�|�C��$ȅ�L&O�R N8�h��ѹd��'ņ���W
MWAO�^����b���0Cp����G�Oz4p�&i�M���YU�*(M�2
�2��SCǙP2�Bʺ$�@^�M�.�)�%�"]c���s5Q�h��*'�U���ji��[�
��*[�E:4���cϜ �隡)�(��r,��W\d���v)�
V���(s�t&G��h�V��˟^'�g���Δ^�g^N
��3/E�k-��e�Vo��S�r{xk(R�a��Ç���ၹ�S��*5��h(*l�l��b&W��[V�%��#�07��<�e�G��ԛ��o���X��x�Xu�R��`�����Y���E^-xn�oah�<R��>�~��,`m8��gyI�@ �r]a
�G]S�&f)�hj!�~��rCi��g��N�pc�ږ�w���o��ɯ��F�Ǔ�uӥM8^H���Lv1�y�[(P2���7���7�f��G�����RKT(�bN�-�*��r���(W�Y�^L,D3D�T��T-<Y���7Qxn�Xs6�����DZ0��O}�l�̚O���ɇ�&��|g�6�d����
�~o��&���ѹR�x�V�JC��L���$�g�i�
�����`,�%&r��K;�g7�^��h��'6���4KV��jJ���`t�G�9����5�\Jm�WV�}�^(G&R����X�o�;;9K��fCIpSb8���x�=���L�24[�������u�N���~q�|�H�[�Oc���i��*�f��[���[{���?����op�!��������woܿk�_�]l��UeQ��<͖�|�ɤ�B�R��.%
Ģh.NO�I�P�+�&ޞȽ5���ѿ�x�Y�k��PZ�(�9N͖�fͮ�X⮟�l8�%.�l�ϯ,x?�g�[>^���'f2�"Uy^EI��!�SE6�r�4$�Q_�-�T�ș�SQ2zd��Ķ]��|���|�~ײu۱z�~����,?5ںH[yA���_*����%��
��%��"W�k�E�{�2�K�+Ws9z6�B�1lUlaRVJ^M�<y����W/���~s�>F�w,'e\�9}
*�MT[�o�rllljj*�!��d�z��%�<z�>*�ɲ��q�S.p���S��|����~y��6�ڇ���!�+��7���:�X;M�Ô>�mo����H.����Á��M��$�{��
\����@��~,Y
��Ϳ�����~�O��X���O�ʻ��@J��K��뷔d;���������---�,�>55ӯ�${�=')d�If�k�����g����=۞�n뺜�����澰r�ҦX�tX0,���k^ġ�h�uB/oܸd�x���n�3SP��W����O�m��T�SY�'Sn�s����y�j^��i��̖s[�_Ab�Z�TO@)gff�<p����
���*Qӌ�bWbo�`���l�}۰lg8��2Z�1U��U/$d��#Y�]���
�
�P(t��up���HQ����]��aTNs�M�������J��y�y�}�je��x2*_J�=]��S�(��n0��
"e�ۘYVFS����_�Rz�
��,�w��MkU�6[���s���܁��b}4%�\~�f�*)�K
+��0������L�SEE{s��� ��"�������)����j�m&'�1����7�GCR��rWջlXݎ�{��4à&���L�Ӫ�de�s�
���?)��d�c������^�����?:J=z���S�@@x{�%kj��/u���*�s\��Ʈ��.��S������������!j́����?9J�?U��g��+;���B�����=Jٵ?̄j�f�泩D���_)��
��q��3ŧO�Sx���˗�W.��>W�;���ӳ;�%�)��[��E�
�eOҞ1����GO'��>y4����ɦ�qn�����:+[-�Mմ�Ѽ#>=���c�"ŸJ��0IEND�B`�PK銋[D�S�
images/admin/kbtemplate.pngnu�[����PNG
IHDR00�`n� pHYs��~��IDATx��XYs#g��O����+���a��$@�BBH
�I*�f&��X�7m�n[����.�ޭV�ZK�%�s��=�A�}��7mY�ѹ����:g�r�<��^W�z�i�3��I�,]��O�-��{B����,,��|"S�V��r-S��ohQ���L�N�
!{��Z���`w��O�����V�L9��cSl��BW����h����b���9���?��5�g����r|^!F(�̈�f�F�9۳��Lg�qf��v���-�9�.��r��{���s"�����yE7m۞�}Ǟ93�0�f
��,�O*���L�%M���Ec�`h?��ápd����"q�D��b,�Eb�h<��)2��p8\(�@�9sg�p�s�q�W7�.��ʈj��C�Ş
p��/
�//J�(
�,J�(#ʒ�H�,)���(��ʪ�(��j��Uu00R�|�s�_*�I�a��9�&�a2�N���xj�m{�<ڳ�lFy�l��9e��v"
\(�p�<�5��D!I�#_�aj��?0�����n�x��iáaZ&������hh��I��#��a2�L'�H���8x7�J)S��E��B[���{��owϿ���>_��?�
��` �CC�`(�#���Ɉ��
ӝx"�PE��0�
!A���!�a�f?ԝI����p4�ا��,��SD���!�=�"���q1s�C�dX,�;�R���|�"i��O\X��ȵ�D�"3M.,嶆�j���q�cz���\'�:u��6��_�`�*S4�:k4O��Z�A�՛�f��l��z��h��v��j�Z�v���;��v���u�=3g�8���2"dS#���
)#�T����D��@�(-'G��zO��=��$��D,�����
�A�p4��=Y|{S�̓~�f�M���2VJ�23L�Gc���E)�ZS)c���3u#5t�iX�(Μ�b������ʋ�}�J(3vf�mĪ
�RWVH�y3��93O��%�kHԙ܆t�N6�@4��N����9�g���z���GWS�!(���5W
%�R�D2$c��X� �<H�H�G)�G�G�)
u����z��`�o���t�?��l.���Sj+*�I��dM�˙|>�/f�R�P��|���T(U
�2C�X)�ʕR�Z�TʕJ嬕��-%߫�����'���k4˧�z�z�"i��D38c%�8��H}c�-`0�#ı1�<�#�L�HIdq4E+rФ����Z�{}�ͷ�P����K{�9��5vY�PO�]G�k47�s��0�
~&�&�}̊ �>�̖\iݬ�d���n�y~\�m:��
>2���!g���B=Q����j;>�gkۻ����������n��m�0R���v0UvY�1av1a��}�ts)�`֚�[����B?͕�/��Ţ�٫�
�Z_P�v�o�8�vO��|�����A�i�A�$�'ȂhͣwF���m>�V��䇊n�N�8A�}�����)S`
^&���20Pt�&�Ap3�&qp���e�l���2ח�Kzv�������ܱ&6�
��t�2�P7+���j(�6G
��'��'tyR�E�'0yD�Q�yl`r�o̺?�6^�E��>��yͱ�ѥS
9o�"�+*�Ż!ekw��wû���3mnm{������W�O���aZj��µ��z�V�\+o���Y5�5��tI�mEB���H����N�H
U���DJeG9Úh�ȧ~�nY����;���uk��x�L�L�"%F����
A��(�U%�F����58��@�h減�3�^�s/��[Շ�6c�`�ir�ӆ��o�i�h��=Ծ$t�˧2��L.��gs���I.���ӹB:�O��|!](W�G���K�p�忙�����b�,_BCg�}�RE����>�T��B"'�pR0��H
�#`?�DB�(�$�h,��L�&��^��7��m.�V��Ì����I$��I��<�@L$±�P
���$���B��V��EQ%�H�GY�`���/���cG�Et�������MI�̱�>N�{b��Ι6*>}z^���x�Y��Bm<�i}��@�6\Zdm�!�k�f��_�z7&�;�[�G����r`ѨAYPAh}@A�uz�a�1(4IYQ!�Q���֞o���w�@�
�y#��RE����9��|t��{=��5<��þ@��8��eF����j��
5�PH�v_N�ŋQlqB:_L�
'��'�� ��/���FJ�R�$�:ۿ~.�Y�V�f�V��b��p�#�{���ƔP�h8�Q����h+)*�u�'te��U^�xE�ľ�j��$�l��r�w��k��ϔ�ߑ��U�ۥ��p.8�N}��N�L'Bx\M��501��BD�1H2&�)JWK�hՏ���<��7nq�SY� �K�w��ک;
�s0��(��2h��f�_�����C����n�����w3�ו�
�Ww~���κǃ�Z�����>�b�x76�6�[4|�>;�֮/B��y��f*�7��Y�[kuj�N�ӭwz�n��n��K�`7��N����崷��"b�"��ЯG�Wv�//*�m跂�b#}
į����z�k��e��V�d��/����O��{7��R%�'�)��𬨪�A�$�A��rʐ�Z�ˣ���WN@��pzVD���i��魗����e�D��ƴ��Gb��O-�ȩ�4�x�WS��7���m2��&���l�:=^/N�۞���Ԣ�2%�!I���eJ��K�K�"i�IL3FH��A�jɾvD������@��
��B�ʗ����p
��P!6��\���I��b$�d� OüK�q3�J�O�
s��K�s�º��d[r�Y�K��!w�{��n0��j<���L�.���)�L'�D�C3#��,����`;w�G��>�Х�x0�6ۧ��i螢ЈS����
�
�1rƯ����cW"{q���@��#�!�[��ry,�K${dY;��6O'�.9��ލ�&I�(_|P��l���\d����c�_YiT����b�+
��s]�kgg�Xr}/��z���
�cq���([D/�sױ����n�aSl=��e�B.!P3��h�q�
/l�M���У�a5���xh��!O_��n�M���.��r��+�����`�U����hIEND�B`�PK銋[��(! ! images/admin/knowledgebase.pngnu�[����PNG
IHDR00�`n� pHYs��~��IDATxڭY�[I����n��7��r(��(OD��k����n���a��o�LSS�^�ד?�}��ct.���Cz��˧�\����;P����~���5[�Z�)�e�V�T˕Z �L�P�F���tq�(��->��/P�t�ݩ՛�J5W,�sE>���D*��sɗs6���l2���bE�֛�6E6��{j�ģ�nG�PLe�%��c�)+��3�АKf"�T$��%Ӹ,_(7���5�f�<�`��F:_�3�q
�ca�ψ��E��#��c���`�,T���=C�@V�����34Czؙ!��z�&�`� _*W��/�z�t@bD�0nFYI�e&JLz�g.�O8�N�;���C@��d�H���p�+@�3e%Ø�1J2(�9!P���Z��;2z��z�z�!���E'�B��2�r�`��@0z�O .ʇ��f�%�!��e���s$���J3������L����(���p$��=gוjM2�ʲL�]�\*�g�0l��ʋPF���)��E�A�
���#A2
x�ҖN�=�߂�L���2�2��at���+�@�L2�E�Ke�=:�Q�V��e�~Wh;�=D��l�g�E�����34��|L���S<���?_�xu���P��b��{�ճ����[��4
�
0�?�/oç?�ǧ��#��~��iL.��d?����n���@�0&
�3�b������=|��롲"d^����X��}[Q��}�ӂ�۪�L/S��6o(C��t:B&HYEe(W(3���Q�A!"�
\���rp����uyg~C��k�k����k�1�J5aH��;�;*�)C�}��zh6�b'�7�sm�Ϛ��\�����B֡���ͳ0T�,nj��������!g�˒���zugo�!8Қ\�}���2���74d���wJ�<=J�D�}ж���&��v����Ճ�$5d�Bo�s=7�'$9t3"�ޫ�C
�!�B
^�s}���8O�;55F���q�\@�\4Y��ƎQ��&�C�
#bm��\܆�Oq���$��w�Z:v�֣�K0��j�L���Zo�
e(C���2�4��X�T���'��`0A/��vLJ�{c|�!dY����o4n�d�.�f�O���J�P���Vv*��h�8<�WA.�+B��gTe�l(�| ��a3��a]TM����Ժ�њ���C���6�5�N��iu�n"P1�G�#�P�4�ai/��D�B�!Ӛ]�J��������u
"(#I�N��uj�ƨ}�t��z"�6Ԣ��)39u�$Ы�c�M���Qk�!��C�e�+�w��s頵�
�K�������\:���,p#�R��2�E������i?]�`�����頓Dr�qCE��PUa���3z�g�t<g�D�
�^-��a#�"/`H�6��)]C���gq�:���j�׀��Z�&7��Î�jr��x������U�*�蝩���{6���k�:���}hCH`�N/��!��5��yq܈�)
v��9�=K��_���e�A�io��sOI�bJ���A
��౩@�L6�ڼ����C�y�0����T���̛�Gd��1��l���KO�D
V��E:|l
�O�����ә�(��՞Mcr@vf� 6���ƈS�&ڐ�o��L7�
b/��c������)�l���za]���~�A3���Co} ٫�~��Щ�1��:^4�Ѿ���CA44ޠ�:5�����C�~�tH驩S#y�cH��t��c��q7���L6��K��Jg�2��:��
��iJ��!8u<I�+:�t&#��Z�fs���:����)C�Ȯ���z���t�xpdwaY)���x<���Z�b����_�(���hq���S��Xˊ��,�Ӄ�fls���U:C0�AC�5���m��H{���:E6�
&�J��0dO;�[؉��X��y�ۭ��-�a��V��Zm�'�A�U�\����e(��*�6�˛ʕM�ڦ\��t8]XK��������j�H�����j���0�mˁM�3n�j�ֶ���[��e��Ź����Ս-��`�|�H��"�D�7���FՇs��*�������ՙ�||�t�'���x<~�������R��[��'���K����3���k4x�:=����递�'�}���km�,��IEND�B`�PK銋[f�,>LLimages/admin/loading.gifnu�[���GIF89a��������!�Created
with ajaxload.info!�
!�NETSCAPE2.0,���/����ҊR�wg�[7�yH��s$jum��1��|ӥ��i�ff>��7���� �=�Q�Ժ�R�ڮ��冽��Q̼��ip]2�sc]I���7��w��FX������8(���( �g�e��Y���I��H
�8i��Xi��:�*�z�J�:��*k�[�{P!�
,���?�
��kq�e!���ف������^J�j�7��y��+��2Ć;�O��Ĥq�&�Tg�a�Z�6&�z�ݲ�|6���^Ǒo+�Ҷ��y6
(��$6�'H�ǥ�H�b�ؘX�xHy9�ׇ)i��)
Vx7�� :ʚ����z�*[I��K�˻���;�+\�iz\;l�<\!�
,���?���
�o�j��Zql��xm5ƣ&f��q�s�v�]ý���X���
�A����(s���4��
�&3UF1����4M>+��:カg�[N�~��%��gH8f�'w��98���)�I�Y�����V��yډ�Y*�@�i�*�
�:��W��K�z��;�{lk��R�k������W
=}�U!�
,�˜?�������g+�w�y�iE��>-Z*\'0E�7
�9?{�".��<*k'�h��!�b��ڜ�h���Ă��HN����
���Cz||n�j>;�7�`5��������FUX�H��ֈy���(�`�g (z�9*ՙjGjZ��z
K�i@����:����hW�R��+{����:�j��,��ڌ�\l�:�-|k�͍L}��S!�
,�ќ?����ҊR����xs�|��y�����S��a9�uzw����CH#v�����S %q�T��Iq[]�ej��p5yE�p�̅{�`�x�=�_�f���'�g�V$H8������V�8����Xf'i�t���w:�zZ�6i �Y�J�j[W�x8��zWk�|��{��7��(l�-K�l]|�;�*:�۬��\���,+�M�M~Q!�
,�՜?����ҊR�'�x�����e�=�ղ�ɡ)�ۡ>�����L�HՒ7߉����%��5�C�5G}��q3|�f�[.���u
o�l��h%8EX���W�ȗ�g(9y�d��ץ���WI9Z8��vڇ��*�J�j�:���X*��ʻa�詪�{I,��F���Xgy�{}'��y�
+��k͈��l�l�4�L.��N��mU!�
,�ڜ?����ҊR�w��\��}���"xv�a��;��ݥ!�+#��
5�v����͙�mtS)�jcL���5P����:�.�`��Ú�tx�.p���pŏ�WV'�T��ƥ����H8Iy��� ���5iyJ6W��x����I*zV�j�:�J�7��k([�{����ˋ�j�i4��{W�<})�|�i�Y�=j��Ɍ�����+����/�MN=R!�
,�?����ҊR�wg|�{�}](���e֦5��-�ʊ8.8��h~é
6"m�@j�X���^��jaƤ��]*+P��t�H��b���i`�zGcSܸ��F�GF�gg��V'@�$��ƕXiv8���8�� Xx��i��*�9( G9j�G��
9y����Ƙ\��z
{l,"�K��Zċ�,�:���m�]:�K��}�]�-�L-d��� ���8OZ!�
,�՜?����ҊR�wg�{�
O��蝙ձ
�j����|+'��&��
3b��%iK����K)`U�rV�Ч��s�[�ڳ��š;�nó�5Pǫ��1��w�G�s�ؔ(���8�ɣ�F��(���Hghy8��H����YjyWHb�ʊz{:*�;:;F��+J�{ɉ��ܼ�,�{�g;���;$-Z,��Z-��Z�m,��~�M}R!�
,�ʜ?����ҊR�wg�[�'���aifV�~¹-�:�ӊy.<��
2��h�%��[���P#�h�eAs�l�{�M���=7�뭓��xe�:����{�?6�FȆ��ا%��3hw���VG(R�Y���9��gI����6Z����J;�z[{�DJ�if+)��kZ�kL��,�(;}�;]�ڛ�|��m�,��St^!�
,���?����ҊR�wg�[7�-�H
OIfV��-�:�]1���SA\CZ�'L���[3W�(%�j�"��'3�3����՜Eo�lc�Z�F�;/�9W{��>߶�h�W6�g�w�� �(�H��H��5��ɧv�Y
�z*$*�G8+8[���J����ʻ�Kf��+l��*[�Kۼ�|�8��Il=|<�ZR!�
,���?����ҊR�wg�[7�y�#���Y�������=�����Մ7b�*W�$3�+-{�a�x=6iXf�S�Vrw�.��Yg������6)j�q�f��/X���hH�(���x�����W)i��I�Gy� :�y8y�)�Z�x�ʉʚ:�P�;�jJ�p˘���� ܩ[��+��U!�
,���?����ҊR�wg�[7�yH��s$jum��1��|ӥ��i�ff>��7���� �=�Q�Ժ�R�ڮ��冽��Q̼��ip]2�sc]I���7��w��FX������8(���( �g�e��Y���I��H
�8i��Xi��:�*�z�J�:��*k�[�{P;PK銋[&[↪�images/admin/minus.pngnu�[����PNG
IHDR(-SPLTE���ҝ3�/�0�-�Փ�r�]�Z��y�z
�h�h�e�ȁ�y�h�h�f�ǃ�m�[�X�yҶnްjްkޯjۮi�ݳ&3P; �&3&3xF��&0�#݈`&3(&3(PF��&0�&3L&3L,
h�&3h&3hfeLfeL(8HdiW\diWpieH�ieH�paC�paCnoi&4(&4(ntB�
ntB� ntBcnal%�@%�@idEupnE���8ZtRNS@��f pHYs��~�CIDATx�c`�`dB�,�l�Ȁ���� ���1������0��(2g����i
������a�<n�IEND�B`�PK銋[nQ����images/admin/native16.pngnu�[����PNG
IHDRK^��tEXtSoftwareAdobe
ImageReadyq�e<;IDATx��WmlSe~no?ۺu��p��M��f�4*�(H�"&
����F������#��`�� �QP�,
"�b��7�1��ۺv�n{��}˽k���v;��}?��{�y��{�D"��12�a�g���b�LH�P�xub��ƫ[�ܥ����L"�`�q�ŷ��z�\6�1Y��s���,X�v4�p�3�ј
�]�3u9�gG
*c�i,���㣗!����`Uy�pZ0�����m¹~���m�h<#���+��/GXR��-��F6�8�w8m�8ۈ���ϝ��+��/}!]fuM�a�w��ȏ9�6�k��zL����i�M��$�p�Tj
ĸn*ŕ��4h��ǎ�A�@QhHȵ��"��
�
F�ɾ�a.{-�.2�e���쭧�[p�˄w�z�
�6Ի8�S��>������M���V<B�[u{�
�^`T��̱q��2+_F%]��h��M>o*(&�ł���m��f�ю�B����'L�*�f�6�l&z�[��
�4�e[D��sa��6>f6T�eM����,����f�9.4��`�l;ȁ�|����l���˱}M�p��k�'��(���b�
F��Jʼ�����S�%)q���g{�h��`㝅�v��p;L�~ʏ��(�e%��~���z-bT��)�jg��;��i5bd\���['�$m~|Ə7�¶�\��<�64��$_����eU��Pu9�����<��˝8�:��5���I����S�'� Yn�!�,<�bp4��*��?,Q�H�� �Q)FYS��9NF��x���y��:xg�p��H��'{��*OT�t�,�pQ�E��f�˅�`��!^����+�߷`˒R��Q�c�����l���~�L�"�zkdZ�V�pw�;�!���"~
']Œ�\ʒ�=K��Ḛ���څ��Y8�D�^��!rf��u�<?4����z�S���y%BɊ�w9��<Y��g
C%5�����ƍK��h�g8M�=5�8�k�K:��2T0����|��M�SD�E�/e���j5 �ò�q!�l�d):*~�Bck[wbך��r�q�@8M^�0��E�z�[��������V�ƨ�iƲJ��&d%�pYJR�����e�ev=�@�����wP��v#����7;]բш�6գ�$A
�%p�'��,.���<������iq�R)X��%����Ȓ ��f�-�"���_:Q�U���ʰ��|D��+������N)�K1I�-6��eT:t���t#E�x|R���<6f#f��/X'~E�Y3tc�#YZ\�IEND�B`�PK銋[���V��images/admin/native17.pngnu�[����PNG
IHDRK^��tEXtSoftwareAdobe
ImageReadyq�e<�iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c061 64.140949, 2010/12/07-10:57:01 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpRights:Marked="False"
xmpMM:OriginalDocumentID="uuid:7EBAAABA8EFA11DD9FAAE23BA555FDD8"
xmpMM:DocumentID="xmp.did:1E3535097E5311E08F3584759DAB68A5"
xmpMM:InstanceID="xmp.iid:1E3535087E5311E08F3584759DAB68A5"
xmp:CreatorTool="Adobe Photoshop CS5.1 Macintosh">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:0980117407206811871FD68D23D5FB14"
stRef:documentID="uuid:7EBAAABA8EFA11DD9FAAE23BA555FDD8"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>E�N
�IDATx��X[lU]3g�N���m�Z-�-HK!���(J|�)�M4�#���/��2�_�PB�[�S�
�-Hy�-4���흧������m����9����Y{��*��0�-���۞�L�UO�-y>,���w�G��&,��G��Ф��P�ښ�W�\B�m�ؼzy-���|��7x�0��;`�=�1w�&&>}k~������i�A�"7!�VA fB�Ѱ���>h�(�PԜ<��n���V�<u8����+�G�_��?���%&�d����
����2�(^�u�3?����2�?��e��u+�
����P�6��>����YLb��f3����f.��
�#�Q�3`�m�>�΅��y��_ӆ����n�Ա�au|?gL_Y
QRA�t`�<qg)�,�+
��-����1_���_����/����{0��ө
����1��t�k�Q�����&�]+/T2��9 5�"k ��Nԁba�>J��b�9�I�F��C��7�M�C_���/�jo�3��1�l�_[��Y��5imrNz}mu}�4}H}݃p��S��&�����K6YG��c�k����9 R�)mhGع-��
@_T!���#�7�(��}�4����)KL��e��~&6��v�7,����@�]���Ub�����cy���`�֖Z*��i�xx�;�n"�nl{�?Xl]q��%�e�Q��71B}���<���Um��L�%�>K�K�&���W�.Z��q�C��Iƹ7��ǒ�S���m���s��+���C12)ok�VV�2�=i}�.
J��l���� �G�`Q�h��o��"����!(��jN�k�?q`l�m���1��8�{>�~�,��y��k�K��c�P.�� ���uY+c�#��
J*�cTO��Ⱥ��\���[`��&�a�S2�\�lQY�'/�l�%��U=�ڏOE-E�Bcq�EЫG��G��?��z}oT���i��xJ(N�)L|�?cq�P ���]�&YO�zy_t/�.�9<�<�Y��� d�ߚ,�߹�^
"�$���`���߉���
@Boq/i��rr��]�A��y���7�z��gI&�]�|q�Y�d�ŵ^� y)�Z��
�~��z�4rz���S�
��cV3��d�-X�Yt��bVC�Yo�Ԥ��J�9��7�Y���
�W��8�9�O{�IEND�B`�PK銋[b�0� � images/admin/native25.pngnu�[����PNG
IHDRK^��tEXtSoftwareAdobe
ImageReadyq�e<�iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c061 64.140949, 2010/12/07-10:57:01 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpRights:Marked="False"
xmpMM:OriginalDocumentID="uuid:7EBAAABA8EFA11DD9FAAE23BA555FDD8"
xmpMM:DocumentID="xmp.did:E22C8CC8268211E1A76DF2FD3265B1E7"
xmpMM:InstanceID="xmp.iid:E22C8CC7268211E1A76DF2FD3265B1E7"
xmp:CreatorTool="Adobe Photoshop CS5.1 Macintosh">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:E494A596202068118DBBE12BF99A3F73"
stRef:documentID="uuid:7EBAAABA8EFA11DD9FAAE23BA555FDD8"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>8;�+�IDATx��X[l�e~z\����[�;��c�N�� !�M�D/�
�xH�W�hL$�/����pC��H<����e�ucsk��c�vk������v�
�[2�������}��Vv��m�g9qz����\��!���x������M ���^L�TYY��h��TVE*$�{<�St� �Y&�#�P��
�[,P��p^u��D<�Ƙ�ڽ +F8A���}e27�9�
)P H�S� *�r���UA_j�t���((3B&�Ak�
N��h`�`:;<�Y�Q�r�U�O
0�f�>
�1�|}�X��X��
qe�E5�ӗ�}3���-�f}!���Y��@�y��ǑH�r8�( �9���R�o�
�:_��V+�g�H�T)��y@���,Șo@�8ȆZ�B�vq��Y�]?�c��5���E�ԙ�K�2"�8��/֡��w���za�{o
������ېo�"��tabh&����ia<H�$�s�ŕ"�����!K�\i���b*��R��wpZl�3�ͅEr�Z��T�1V����|~х�wU��HW\kb ))�lMt_Bcc�xV�T�n,&�9��o�# ���Er�Y��6���<���O@o��uwbEeq2|���^ӒL.K�܆qZ@L�(efr$��Cu�ӫ�kDlȺ��� L�3s�5M+F�/��1�N/���6ڰ�jÚ�������Uu�3��9m7N��9�}��-b�������;��_��
�w���p����:4������kLc,�?*X)
�d,"ȍ�87�(�*AY
"�E3sYىڐ�������sg�$�[c3�)����0�p���X|���*��j�۠�SB�A�<
|��$�h���)<�m�4����~sf�$�sUݹ�.��7c�ܜՆ�Y)�Q�YvR�,��F�c%���m��;�fqBӾ*j����|Td��݅��߉�)&��B�3Bm=�
��I����G����fܣj��/f*�1楒���)qU�%�/W�8�w
�yq^Z�~���q�t�6��c-K\�RF\�e{,���Ih4���_�X,�z*�MU�)*m�h��2��Ƚ���B5~=�|��v���o���߿��5��}�G�R+W����b����hO��x,�U���}�O����{͍��z�X���/��(�&m�iO�x����B����s$�?kG3uG�&��͟�?�b�k([���3:�G�a���a�o*L�
����h�
��Ȗ��ųO�Y��m��W�q�s�X�Yך:Zu-K�J:
T6���1���:��@��T+p�tR�N�T�Qb�[���a&�H� �����q�
�Y-;:�5�|{(����\y����=Bדpw�"��z�f+Ӓ�j��_��i'}7;XC���E���'���I����`IEND�B`�PK銋[_&�kkimages/admin/notify.gifnu�[���GIF89a��������+����#��;��
����R������B��H��j��a��C��R��D��f�������1����y��3��
��M��>��A��,�ܣ��������������j��q��e��Z�[��s���Ђ��}��v��x3�f!�7,���px�T�H��bI:e4
�Id\4-S�*$9b0ǔ��<��eD-%���%
�(ҨM�,3�H!C*���C�+��7.��7
����7���
�\TA;PK銋[Mȯ�((images/admin/plus.pngnu�[����PNG
IHDR(-SPLTE�����p��C��G��H��C�蒼�I����������z��B����������u��?����������q��;����������o��k��Z��V��U��]��*�� ������C��Y��V��[�娦�(��������������
��
��
�����,����������
���ߐ��)������������
���������ݏ��������������
���� �������ׁ��y��z��{��|��(����������@��x��|��v�䵡�C����������z��C����������v��G����������{��H�� ��������z��~��k��p��p��l�ʣ|m�|m�h|m�|m�$4A}�|m�|m�$8A}�|n|n<
|n4|n4|nD|nD$4A}�y��y�$�|n�|n�h{0�z�4X|n4|n44|n�|n�$��ĞtRNS@��f pHYs��~��IDATx�c`F&fV6`�����A���B�@�����������UT���54��ut��
��ML��
�-,��mll��l퀴���������������������@`PpHHph�_xD$CTtLtl\|BbRrLJjZ:Ī�̬�\$w��# ����WT" TU����# 4465�����(����WIEND�B`�PK銋[�¡?K
K
images/admin/priorities.pngnu�[����PNG
IHDR00�`n� pHYs��~� �IDATxڽ�yTwpZ�����,]��WŢ���Z�x=�V�j�� H8E�C�J9D,YDnBB8$�)ʙC
$B�I&�$���{�xO�}2��o�7�%��1���t:d�
�fj.4Z��Ys�L�5z�y��
d/��
ey3�=9���LǫL���:�YڗH��}"'4��[�,��$�q<�A��"%ֈ(��3�x�V���!�S�w�RC
�=�k��hc�� ��V��O#�5���2��vX��TG��ԕhU��{2�i�}��(�`���,�W���AMS��H��a��Q�#�2�,D�Q��ee�"����.��2������t)ٗ~j�"�My�<�K���L��U�������⧓��S$4�dZ���"!���,R
b_@��J��1'���dJ�8�g�"����M�V�=����,�a4q�
M���$#$w���6�G?I�]�@�a�\?�4�j�V�h(Z�Hh�Xx�p�"5��퓹�-bB�Pp��:Z�����j��-VC��$�ϣ���w���_2P-����ς@����iށ��a l�j��l���2����@�]�W?k(��]���2x.�2y��(?���)&%�"IOɋ�J8��HIj����{%�mS����\\��o��s�+�Wn����Bk�~�B��|�ޒs��}����}%���e��>�)�}�P�g�"�5���6�2l�������3�����XG^�<^��a��NکUB�6HJ���Zܪ��ZgaK��PL���!�F3��-X��6m��`��H
�H�n�NF��(tH�C@���%ba
��t\
��|d�Ӱ�V�Ǜ2�W�
����K=\��6k�1i���a����B%s� 7��_��ҳ�+,�n����
��T
�C��X
&�p9��j�m�A�x�q�kͺ�u���W�#�g.�ZX�-ӎ�b��r�`����n�z��|�Z��/�l�W�%u�O"�R��`Rd����'u2'�n���;�V;W�òީluj���v��H@z5/WՎƆ�oͅJ���F�e�{�î�ԡ�s4�ҵ�bӔN�@cC�U�L
/�ET=1�hP�`lh�?h`�OI܈�6��U_�)\eW�
W��l᪤��t�=`?Y͍Ts�`��tC�BrCL�Hr�$�\l�y�YczE>u�X��&�h����(��hX~
�T������g7��n���A�
���1�Dmm�ɓ@���$�p��9"����2U
/�6�ŵd��6�����]u"ge\�W
cz�� �6O�W��AS>�����7���7<��Vx��
9K9ǭa!�*��`�8��^q"�#��9�z7��@�9CC{��X��2/��h
���T�͆��(�|�Y]WX����ä���v6r,���At8��!�eƻG�>@;���%�{LOcC��;�#k��$�xMQo�m�*�-w�FI�{[��)�H��lL`1I���� �R�0:�����2�G��X�3����@��!���7e���|���4y�f��Pi'l�n���4��U�)���dL�Xd@����B(��6��ä�G��C�H_q8�M��1P�A%뚲x���e����E_AM��Ɔ�dJ?�VU�?q/d*�&�XW�ohX�����O|�'�;h�"��}���<fR�)�)K��{B���,����Vc�t��YEQ�x��,�,���[���L�%HMBhN���P�k?�B������e�^x��"�/�B3E����5���@��KF��I�o��D�,f�Y ��ņ���74@iu:A��@���R�D�>e���%Q-f1�����֠MR?V?<��264�F���ķ|��:h�o�b�lV����J"��G-�aP�P��1�� �Lz�P�{�_�lv�iH����yG�o��[�6�`��v�`���5�p�H�~��H�G߷f�v��>�;��o���>�o�8@���d��ٮ8�} ��'���Id�[�LC��(�+Ѧ��k���'g����]q�n��o����[g۽�k�f8Г��}
�f��%��M��/E��t�=��M�6Dw�g�"��'�ym2s��j�`���
��v����>�~m�ۆپ6���!/��9����h���X��qK��-�6�$��u�!9
?E1�z�|*�u� ���r�@��@�귷��w���m��{�����t���>f��T~��-x�d�oc^��mO��W��<�:�|?(3�(�o(s���3�@��@�
0�94F&�p811E�|��+��x!���n���I�¿Kh������䂭�%��O3�_F�7�#}l/mt�68�I��M�n��o{hrRt'������x>�/pqE�b���B8�ҍ6��{�
ӭ6��O�ZG���c]�l� N���),��T��RP&��6,��7~��a �F�˪�K�ѯ�:-2z.�o��-����6���:>��JiIEND�B`�PK銋[�_I�LLimages/admin/publish_x.pngnu�[����PNG
IHDR(-SsBIT��O��PLTE����も�RR�::����
夤����((����tt����%%��66���붶�oo����
䒒�CC����cc�������??�{{�))����33�mm��HH����\\�rr�����22�;;�����LL�99�**������##��{{�))�MM�88�ff�ssta�`<tRNS�������������������������������������������������������������b pHYs��~�tEXtSoftwareMacromedia
Fireworks 8�h�x�IDAT�]ω�0`PT���k���)�(
*�`���i��K�S�_)�Hf����;��z7�(����,�S�Ns^�("%��Z�"�LD��^]_ �䲩=]˛�@��6g��=;`J1]����)�|hjƖX����A��.3�t�<6D��QQ�#裣��?���_L�@������oIEND�B`�PK銋[1����images/admin/publish_y.pngnu�[����PNG
IHDR(-SsBIT��O�PLTE����U��߷���f��������ﮅR�����X���|������͑~��7�3�m�EƳ��Գ��K�ƒ��3������k����С�������������c�ȿ���Cg���ɤ�։���1�U��{������!���+��)�ҝ�����a����w�ʎ�Ǜ�u�䯡�����Ć�ν��R���/��u������L�ٳ��
㶇��^��;Ŷ��ș�ˤ�o��/��0����{x��\XtRNS�����������������������������������������������������������������������������������������\� pHYs��~�tEXtCreation
Time02/15/06j���tEXtSoftwareMacromedia Fireworks
8�h�x�IDAT�M���@F��jA����}g�D�C��o"�18��n��CQ��O�ՠ2�y
"1�|f���~-��f�-Fq M��Оh��E�9K{��(�j�_[J%s�m�JMe_��H2�qЭ��v��s3��e��H�z�+��9�>3�K��ls�]�ZF���ns�w����N�Y��
{"�k���IEND�B`�PK銋[� ����$images/admin/rsfirewall-approved.pngnu�[����PNG
IHDR�L�otEXtSoftwareAdobe
ImageReadyq�e<IIDATx��]`E���}=�TH�����.�4�B׳"���=��
VDN(���`��{ �/�˫[���<��Kif.����켝o�_�� �
��˅�ULt�7B�(�Cy�.�r1D�.:�tс��,]tс��,]�.n��.��.�At�r$W�B$^���K�)��%��1��>:��V$w���g�tѕK��q��)DQ��[^@*wѲ���)�j[�[�(�7���v��\�ï8r?%��q�`$<��>YvJ�WRDE�Ɋ�b�@�@|e�]�;*���5{(��x}Ht`�
��]Ż�\��o�x��U���ܒ��dN��ȊD3h�x�夻�waF�o��}`t`�&���e�g��b0���d�H$�o"Ї��L(_����D�g�R�[J<�+��Y��>�CR�сE�2ga��9��0�o�[,��bo��_��)��DP�
)mUВ<�0�xYR|�R����o��2M�:��}��*Epj�8Q�rIe^��3Y8O��xlD�e��9�n
hq������\��*�77���ч�^Kt��y��U>�}�Iܢ���
���*�衬��̩`b��8�jZ��r{!���k`g�®���$ŝ��%�h�4BE�7<�Ĺ
��"�[&��(��AF�C�>��b��2�%1����G���2g���lsjW�vs^c���ǖ���y�$��x`H��
! ��4�-����BMhC�4����'��u��}��#�*����`��2�\�WQHq�@$�y����*�9w��d�1�������Q�,��P�YN�%�^jp��F�h�
���-[�܁t���W��],��Hd��:��j*y���涮�o�`��;��V��.?U�{I�S�7��F��K��%����n�a3
N�C*&�?-w3�;|p_�+k~�cǎ��R��lӦMBBB��7�b��#""z��y�5���T��l�믿��!c�ΝeeeF��W�^�p:�
���4Pt�0�8(A��5YxU�ɜ3ϔ�7t�ZVM����~R�yvU~eD�V�]������קN���ZňFKx��N% �H�.�=a��7k�@ǎ��3��k�<�Ȉ#�L��}�w~��g�5nj3o�<��R[S����UTT�7`i7D
a�1 _z�%��E� ��D(A����8J4��P�~py�ڧ8R�9�1D�"�Up��C�aK�L1�'���5t���ܢ���f"744'�p8IXIfm}���
vQE�'U^y���e�o�t|||AA�-���kWmM�fGVV��СC�N�Up�_U�j&��y��'N�BtcժU56���l���ݻ������o���|�A����z�_�~��x<#G��cs�7"3�2�y�w�6H�+�
���J�^�A��GFF^jU�*�@�.���,�j!�'�Bx�D�e�e�&�9��Ȋ�1��!D�}.wQ��$�WUh
O���Ȟ<�MC�f
�z0�KJ���}�W�nW�l9BBBB�x� �ٌ�����v-e�G}��oOJJZ�bCՀ�y�ƍoٲ���1<�S�Ly�7������HRll,���t$RRR�Pmݺ���[o��ꫯ>����0S�o��ݻ,4����q��@`���:t�ݽ{w-�>bM���{,g���u�*�?�8�Z���z$���c��f��P[l��c� )>Er��ҕ�b��a�G�#on�RmgoQB�Z�9����h5�r���G��sV��i;n/I����F`i�J�_� O!��}
���������`$``!�K�.-Z����
1���rX(��G�ŋ#�ѣG�Q�F�ê��[�lՊڝӦM{衇\.��Ν;���c���H�߿�U�|��7�w��Xa9�����ڇ~x����|Po�]b�J�Kƻ�9�.)I�Ȃ���
�PmH$����ji�$:�����6�&�_8A0P+G�ypR��؝rv>�6NDU�����"���Aլ�q��1`b�W�|��qj݉'��tY�k��k�
����~���}����4m�t���5�>j�(�o������N+�ꫯ�
�������@̊>��wߡW���s�� �en��r
�-I�x�@4�V]tPyS6\�<B��ddK�@!�P�>���8%6#)q(������M�f��:z-���)�
����9F��A���}�e(������MSb�����o��f͚!q���%ʺ[�nH,[���|��'xTX��/�` �o��߿?K̝;��}�2���W7H�R�Wd��*6��B��'5�[��0�Rd�!e-�� &��,�/:%��"��o9(��qf�xEb"%u�t�r�J�lR��g�axx8Fi.�h�<��3S�Ned(���L]j&=zt]�&�C�h��Eô&�|�����q;��0b�T(5d�*ߴi2�9�.�2�۩S'vؗ�%��q9�Ñ���g�Ǣө�_ue�_�Y�P-�W N�o�Z�������V�
�P��C�(Tĩ�Ũ����1�$��ut�c��A��=��Kc08�A��aDC���@�p�|@
��ĸ\O>�$`
|/\����/�Nqq���?�`i�n�iƌH�E�G�}�v����N_�d���ә��1'�L��\v9�[pQ�hx�\��"���*���0��ޤ8�H�KDGsd���)ԪNeӰ�V���ĨV�3?�R�feS�&���[��$�8�������"�
�A�#��D)�[҂�X��nc���*�,��^zI;�Z��&M8p``P�wL���K�5l��"H���a�L��'O� ��Ny��7�A~(^
{�ҥ0�.2pQ�H\j`lI��\�)Nm
U<� �CĜU��C���k����E�v���Hb;PS��po��"s��Q�����b�j_GO�Y>��S(<�0�16p�4���_��Y�f����������|��?������c���$''�
Hm�̞={�*86l���3g�b����?�8ƻ`�^x�h6��
~��5a��l@�RK07�FV�E�djm)�Y��~��~zb��+�����k�U�a�8Q۹kT�a��S�;כ"���f�3kb$GJ�غ)�i<���Tz���4n:���Ǐ3'�E�X����J���^;��6�w�b�-2��t���SOC������z뭌,�xl��Κ�-�捪��ٷo_�֭�p9+�`ƨбڠ�ۋ��#�b�*����tP�y�Pr�DJ�O���m4����O9�:ԼWQ�*�Ä��_р�wC�"+�(��kk
63O*\JӔk�r#$ +3�'O��<�g�}��0f�`����Ͽ뮻���#�&�P���3�&N�Tn�j����k�
Ģ�7ui� ��7o���l�J�^����@�^�Ca�]�Y��n�ɠ
�Q4|�p\"(�$lA�rN":ss3�|��sbr���]0/�x~t����+߷V�"R�vT��8+�n����#7��
��#w+�s�K[q��-��Ќ����};��$��K�~�w��X?��
��p��k�����iP,Sӌ�I�����ښ
�5�~�i���K����T�,�/˩1��:7�}�(��۷���rLᖕ�!����!�D@'ҧ[�C0�3�j0*\}��ړ�G�:w���KΤ�>��m��"Sc(�-�W^��SZ�}�U"��q�USW�$^[��=��cl�����Gl�afq�&=k{��{M�H����A��Ұ�X@h˖-Z�
`��*�UW]U[S�1�2�S`a\8!����tj�Tj���[���,cb-R� �z<x'�q��ե���u�w���=_��
���YO�Nz
�����U�T�=��aq��;����M����NS��ŷ/ٻ|�+ÁKcx�����J�L$�mtƟ��5�{}�k���mjG�=���-��o�T̶m�`��>eX!�Z���.�s�a��(�ѣG�;.�2�I��t<8��o����[c�۶m�/0�u��ܵk���N����D�N�4�G�Jtt4'�
}��c�;w��uq��a�P��������2S��+�
�h�sft��Ү��o�y���k��ܾxb'l�����fb��D���$FQR�L�6���%�k�}�K+p��m�.�^�w�H�3F��.؈L�7?>�H����QFW�}n��_��0>���Y�y+1D��>��*IE�(�9.i?�qm�.�����Ц�Y�9'�i0A��K��$���'J�"������H�D�Bh(ŜjH1%�6��$�Q\N��.�{�h��&�r������~$�^�,P�f���+{�6Cc�nS���ʢ�`�7���E��hn����%��a]��!��a�}.@Q�YŰ%Q����M��U�%..�]�
�����*�=Q�(�8<\����x���.�1�h��ظ��F�3�x|I������!��^�"�V�&��I���W���TTq�,D��6�M;���֥~���Lqw��䑓"9��#)���0�!Q�Rbl�u� �%��y,W��6�g}��n����B���_`A�w�/��E�ض��@�^��d�Zd�<x˭��H�X�+���*��Qk�v}JꆎW_�p8�IN��w`Az��9n���(+ߺ�f�����
%�{�cw�8��6�D���
x�)����_ȸ2�
4`�D9].����8�aÆl�9���'@Z�ؓ��㻉�-�!&�W�[ƞ��K��ne�8�W�^٢��]MLJǰ*=�'Jee%��Jԗ�+W��ѣ�m�|#�g�}�����'"�\����3Y��B���X�j�rC��m�����G�,���t:
��k9����;��F`]\n�����g(�C��|���[�ֶq��8�*�:��\q��ÇDQ?9�
�%�7t\bR���*�����zG�����9x�`�eǟo��r9�$I�G�fUkү_��K���ɴ:�t9U�ƍ���/���{�Z�|ymSu`��;��{�as�5�֭[zzz�+����P5iҤ�9ʝ:uZ�jUxx�y6��#YYY:tHMM=�7�?��9ssڷo�z���>�cr�S��?%;w�fc
��HII)((�
��t`�E�I�&�(y��'����-Z�<y�Bu�2�8��G.SY>
�w��D�舭z�d�̙���ӦM�~JZZZ����̤�$v8d�߾�N���l.���q�ǥӧOgK��ٳ���O@�Fx��q��ҁu�����z!���k֬�XGs��O^���V�*7D]�$##CC�̑kOe\������]t�w�trr�ʕ+��)X�s���l���>��cLL�ڵk��'Ǭ�&w����ݠ��.�������l�2`���/�m6�رc�ϟ�JDDĺu�e�&l��IJ�%X�<j~/��<x��㩭rxx��ի��G���]K�}qa�S�T�?��VLtl�5(9�g�Cb��V4!������y�ճA�~�}1���y���8�Ѫ�0��zv8��Z�l�~E֦��%ǖ�n���}��iU�W�
���t
U��x�GU�ְ�t��ֱm��_W[�~0`^��Y�Ei7��X�$��nӂ`7��!ȷ�8�-�J3����_�
ݓ�J�ˏ,?���|�@a`�-|l�?�0t�P�4Hй�e����_1�����G]��]_�0]�x��GW~����+��M
_�c?�a�ӫ��! C�m;�
����
a�q��+Ơt�q�F�;>�J�
�k"%0Y�-��Y<�ج�fg/l�������V#�J����N'L�����L��K���jyd�C-�H7��떦#�_v�..տـ��G��r�
�����F�g�������b���l����n�ظ�h/0�6�hI�.ڔ�)��!8[u
��_;�p�H
M2yew��~�N�2�g�ai���x�bm�ǷM�{`�Ż�峅�)#[�h�ԅ��3�;��`�s(�0/8��wx��/�
��7GVgІ����;o� �T�1lHdd���|UV�EO�x*�9Q%����p|�s��� {f����}����z,�����k�>T��A���wЅ�^�~9��E6�-���fP��u�b�����JkO��������G��S�
��U;1P���vD�/����+�xj`�ڔ*�WUъff�{V�����`F�C1�n̍W�N��,�K�^��,*��6G��Y��ߞrЖ9t]QU!S����fE�"NA����Wo���x������Je��5�`��6��W�CM�m����> g,��^��%��}~��1B�l
z߯A�Ǩc��x���!��� fŧmN2���W�6ىlk`�
�@Y�`���F�ݷ��Ʈ�&wu����2o}�����ҋ��va�����,]tU��,]t`颋,].�'\d�k��IEND�B`�PK銋[hͳ����)images/admin/rstickets-pro-box-legacy.pngnu�[����PNG
IHDR���Y�sRGB���gAMA���a pHYs���o�dtEXtSoftwarePaint.NET
v3.5.87;�]�oIDATx^�|g��
sK��{����qww!B�wK������J݅�P(Py�t�l����7\����nv��]���^q��g���;���{a��=<��o�y�۷o������~��_���,�nӻ����ǛБ��+~��w��U�{��N%-�O8����?ߺu�رc���{��ihhx�������O>���?���O?����ׯ3>z�¾KZ
��T��q��"N�l�y�P@���������566677755���c8�����~��W�Q�.�>|�����ޏ?��x�Ǐ���Z�=��/�_y�_�ɚ8p���իWϞ=KZH,P$@�6����ݻwA�H��
���*���Ν;7o���ӟS�����T�8�O�<��������֖����Z�Q,mmm� uڏ>�����b\�
�B���~��2�v�P�r���'��/��:�������_�R�z��#��8q������ǁ
Fk"�
�
�NZc�4�>$�Z�I�$V���_~�������_~��W�~��ݯ>���/����o����#!��6�P�g�}��^���4+qU��q�_8���/ap���1�z/��
A�H�D��G,�$-����Z"�5=$������o���{�?���O����w��P�~y�@d$����M�>�8q���.]��o��g��Q�*`Һ����/|�~=CD���s��F��)ؐw$lТB$`����N4��&�*�������~|��/����ݏ_���_�x��,�=@���yh!�M����36��k�,�1����R��q�؇,l���������Ɩ:#�U�N�<I
#Hf�L+!T֮�j���ˎ��S�D���r����ܽX{�������{w��{�������?~��+#�����&�X�
��+l���O�4�2�"k�/�A��&W$\��j�?g�>�N�2��
����2��0����dK�ATb r�VE~X���{����EZ�@�xHbE�y�M�ֆ]������݆����/~��ý�����{��U�T�X5�"��)�"�x!��0���3g�����S|@��/����K|��۷�jjjT��#~�UUKd��, '�,�K�8����?8s܁�?Y��Ib��Ȉ�k;n5���?>���߃&G��~��%Ҭ|�%-��&���z������H���6U6������+//!����>{�HU5��iEI�=�����ىb�G���o��{���7�>�;��e�`���ݜ�Af�{Yfl�u|Ӆo��{�?��>���~{�ۇ���[<|���/ Nm!����ėH�)r��y�l�:u��@K���Ç�$��j6�R۩��պj�EF�/{�K����
q�(�
Y�l�C�|K֨�]%-B�p¬�8��<ƣ_�,��.�F�r�p�ѻnn�}?#�Vz�{����~�{˕���S�}w��ß����?~�G?|��'��+v!��Z���ۓ+�d�K�o��Ȉ^a�Fx� �`�V�f������<���߯��,A8!J5]H֖��c��I�j,]cr������?j���\�tiẴ�g������;i���3�KJ}7&�bT����w���ZRz3��O�w����x����B1X(���W�/&�Ƙ�%>-�0m�&�lL��j�H��~���I��{M�)E������� ��eV����S��QeA�l���1�t�;c�2>~�����k��ln����+o��;>-��m��%��NL��|3.�f\��Q���y{Ӛk��ϭ�{����|���ʺa�J����fa�@ʪ���,��[a�EK�)���
�H�c���?ĢeS^5���o�8 $eK9j�T�
YԞZdº�.H�Uq>z���>z�$�J�d��{�\^�_zz^���Sn�%ފJ��{)*�bJƩ���;�\]v>h��]_�}�L��W�PU�
���&�L�#sM��Pm�z��
�0�1Pg��ET��5ށJ�d�Yi�� �0�
J����1�0��B$��&D5��p�@��hɓG����'�6�4ع�I$uN�}nG&��t+:�����o|y�ڗ�~{l�����ۮm��~�oǹM�;���ß~z��ޏ���<��O��!���+��{Lbԛq��k��1y_ڠL��
��f����^@e1�Z�%
; �X�[�b])m�Z���j��H�U�ւ"*�K�&UBȂ$i�^��I8�C�}>�����?�;�G�l���ï'݊�w{����u������'3��d^Ii��|���o�93'��_�e�>���O����?=��C��?a����!��>~�H�aw�Da*%�d��*jhY�j�eբe�����$n��x+DUp�(`�.>�ZAC�n����@���I����4���h����&���/j8���?����B��+��n�"qo�ՠ�k�bomú�V����_��yz��K�ֽ��bк���Net�i�p~Ê�s}O-��ξ�M�~t�Ꮟ�<|��G��
@�� M�+�>����}�"e�,�^ݭ�YVL��ό��K�¥�#�҄����YF���{t
v`_5R�.�ѼV��***��&!M2���<o���G���/�]�8�<~���[vx�K���^$o���������D��in�ٲ���76\��b�ٵ���^Y�p8����K}�͟|rX��[߿���??~�X�_���f�k����y�+����e�j&���kR�wٍ��V-lV�{�=�&K��UK�9��Y�7�D#��p��
|Tr�l��k�����
�-��$��%4
�iii~~~k֬AbF~�/�|��?<�;��4�v�[�HZ/\}-x��- �"���y��䭿zcٶw6�:ryŪ����,\t~V֕��3eK�Ypf�����/���?|��g�ԟ�^�\��w����.]�����ӣG0OpF�6�2`����5
�ǏY�
�b+�=i�4�y�j��B*�\W6`ci�!�v"rZT6�)L�ST����<q�8�k���B�������b����
E���th,���xQS�/O?���o}=m�8y;ǣN�h�_]�������{�ͯ�~��~.
�J��ӫ����� <���e�g\^u�x局�'L?�xl��~�
��c����;�4t����հ����@��-�n~�у?jR8�Ν�`����ε;!&�Z�*eU�/���S�a��Y��֪�(˘�K�I��*���:�l�
��P3[7g]#�=zt�� Hisss7l��@��8��B!$*�=��ӟ?�:֣^����+
��yz�?}���_~���VKХ%���O��[pf��S}N�Y||֒�O���{�c��I�����᧨1����c�NV75T��ػOk[}���q?����'.^*ok�s�P���{��:�ǿ��k��|�*����ѭt��(_=x�����t�����?y���~��W��=I�LK��U")�"�
ca3%�d̷�G5wv�����r+W�455522Z�x1B���0��}e������;n�j��W6�Gp]y�7�t�7����#D/M7.,>�,�Ē�g������<�\pl��Ó�6r� ��]c�v�p��o�����YP^�SZt�~�����K��;���kZZ��*ZZ�[���k�8}�*ZMK[���;r��g.�s�?�쳏>��ۻ߃+ҟn��,:����t����_��֭�U�<�<�)/[�$�����P�J}''+M� Zׄ@����̙�(O#��R!;�ۿ��ǿ^�{֫�ͭ����~|�+���|��?�����^�Z~an��E�'�/==
�1����G&M?0f��q�#�7��=�Mv�w�<b���]��dg&eg|���>���/�**s++�Z��|�QQmuNE��W�|�IsWgQMu]{۾cG+��Դv���j>p�����m_�m��mjz���֏��v/�F94m0F���G,�2X�6���%�kjD5H�yX�Re��?q�ȥ��NJK0iv������k�<y2қ��`�S
��O�;�J\ڜ��yKO�^}=pӱ�nv~���}�yɥ¥f�������1���9G&�8<n���S��qh\�-�:�G�u�h����of��н]�1)I��q�x���Ƿ?�0�
?�
��?�4��0�0�Ɲ�0���7_7�����/���ҍ�g�\�jj���R���aog)2�{ۺ�`�n�w���'O�ff���sW.}�p
��� J���(륥W�Z�V��I���F��(�
�B��h?�Bv��N��C�V�Z���kȐ!�G�ƫ
��_��=���N����������B���[�u&�����4���i�NY|j���3g��4��i����#�&>�k�;\n��>��S�bw��.r�ٶo�]�#b�K�Z:ZsK��@7%������K�N�p��Z1����;����WV���}���w0���wo��{8�{?�
����w�^�uuw�R�Ӄ�8���jZU��g��V��9��FQd5��0��&U��Q�I���������i|�QQQ���N�86C���oe��E-N�V�����R�+��.�[4��ʮ[�;Ol�{b��S��°<<fʡQS��|x�N���g�����OtM��v~܂�!�_�5:.�#(ܔÆ�4u�eK�C�6��~��0��tg�����쬬sg����_�����EXض�#=+��O?a4�䗏>����>H�����r֓ǀ������+O~�� ��4d���>�^?ľϿ��O>�D&�L*���ǡ+@�l������+fѲH^�xA��Q%�J�_�8� "����0`J����8�_F���D4���l=������h�x��eM����/
v]���"����N����;���'�>4q��S��|p����,G�u��y�Ƒ���~�A_N�Mӝ*���d&&&����X[XXL�:����O~���������Μ�r��-9y��p���o��m1 �Qq��_|�SaiIRZ�w���������w��P9l��QPVr���=y�w��_QK�u�c�O7vt���'O~E���m���*S�z���O0���1ƚ�w@6|�>�œ����XT�ˎPp�V�� `�
h���fff�7o��[�l�Q'DL�(�c��O~�yi���ѽA*k�^^�sj���cs�����y���>4i��ӺFO�1�s���c�y���1��yT��������3��9�ۚ�K�t��ʼn�ƌ�8|ĈL
����_o�w{���f�����+C��?�)������Uk�|��G8���
K����w�D�Ƥ�fG%��~s�=�i9Y�\F���w>��c�9����i���L=�ѓ}����]�=��b�����d
O��2Pݲ���c��}�ɭ�>��ǿ�
/��K��?3pD���G)�%����0PC�4ip������d�4�u�VX�>�
7��wvw�_6�
7ع7H��w�"p��D2���9�q���r`�Į������5f�Ǩ��J�6ٰ�ҋ�W���y95Z����$����%(" ��<>���!��#c?Q���7��4�4����){{{h�|���m;�������]�q�ɯ���kV;q<bwdd\L�β��-�w=w���:*!����_~�MVnN|b���s�zEMu~qс#�!�Ͼ�z���epƿ��*S�,|6�
��G7�u9��9q�|M[k]G[���z�������\)���p�}���3f����:::���˗/G���K������~�����~�1䐿��ֵQ���\�{h�����<���G���|`������Q��PmsK�V�[��g�b���(A8֚g\O�i��<���K!tuu����2&��O�9gϜ���412.�/����v��]CCs��Z���Ç�g�f����==������i������ݴc���玟>�kwdVN���}����+j7���y�`nQQ\ZZR^Nau��G0fw�;���w���SY�g�~��>y�6������jOsCK���wPԠ�b6�"L��T[�@�� c�%333)) �"&�:++�^F�88����4}�w����Q,m���sp�S�;��I��c&�N�q�^c�<��u��
�f�{�صY�h�M�?nr�HA��c�i��D��3&&�������2,
�"��wvv��x�1
���`go����~c&c�����<8�n���F�B�(((��9NNpf���+rOߥ>Vv�5U��M7q����a��ٙ�~�eiuelrbe}}lZ�����q%��J�㓓��z��O?I�ɭknC�t��ɼ����;�}���������N��R������������c�j�$�-p� A�0�8_()���a?b�>��<�/�s�C�}�G7?����&E����έ�aí5K�,��5uv�ĩ�gt��ue<�^wX�a�1{<�{=#OlZ
ȡ��ht
�q�����M�Q�7?a�BH�@��#p��'���g��������L&C��^�Q:
Vl۶�ԉ�H���/?�����,\�P�t��iihN7��#����,..F����_���mܼ�ȱ����VQU�+2�ڍ�w�[tdM˞���k����ܬ�=
���/J�*��
>��|#|0���]����iQ�p>�-�����n�^�:55F �P\\��Ld�c`֩O1�����ge�K�5{ Zl����:�/��hl����C�q}����sD;�«M6��7i��O���W�5���s>��D��g�h��D�ûG:��{���/�,
vGr�P(Pp�_ߵkF`���P��F����N���c]'���aꈿ�M`
Z��~�:�3j4�8K��Xq�T*E"�ε�A!�F&��{;�/�O��`�BpE����_�ۺ�����o�4�k�J����y��3!-*�okFtv��;�>���O�����7n���=$���Iu�*@*}���KtsXZ���C����(#�Ld�� 3K8���Ͽ����O��Z#�:x4H��-��䤎S:F�k���ΰlgXz��GT �O��?�6�bʶ�+�B�&}a��}�E���\4���"tj|O�i�i<���ĩ�GD͒�N��0?���:�wBٰ^X��ߗ����L�>][Sk��}�ǎ2h�c�:4h�
PGj$����-V�X�?���bܸqxs��\�9��H_���^UW�*<)5���K�cv��V7֣����+>��(D�$'F��5��|��N�����fV"�'C�P��� 8��>�,u��
s�1o�>:���>��F�FOi���r��lw��=r���V�w�ܳU��*R6�e{m�ȳ�f�/�jp�֙���F�;��e��|�J<�°>�tIti?M��
|sk��L���C��V�J%ބzp0�2�H�!�<�1ԩ���PW��Ԭ1x�왳|'0S���[�d����<*2f�f��w�{��/������qXDd���.,"M�����GJfFEm���>A���j�w�F%g�#lk�7(
�q�W���C
�WZ�lٴi��q�*��L��1���~~�ӏw���uGCfVO��29�%��T�{�HݛE�=|�&����(�9�㋚y�F'i���R
l�r]*9��y�3|�#�UNN*�/@a�q��s�~�< ��yu,fX-rQx��dKP*Y�n.hAw������k�;w.�lc}����`x1R��`h�3��L-~���e�8����'�kgN������W��B�}�?
m�a�
e����ޏ�Q��nikE.$��k��._��b_�~:�$�W�I�c��(��������cf�K�(� �Q$T��$w]��~��w�����=t�`խ��/Jߋ]u!��9��'�����!�6�ɛE�f ��J\�(���kM�6v�F�;F}v�S���w�7ܹs'|>! |<�Cs�{a9�K|~۰�4�
��@��k
C�x����������;fLG{;�B`@���NtT�5�+����,}�ɧ��!�Z����˰��ݺ}�� }�iS�~��w�.^������ٵc�����p~����j?��"9�$jx�����˻��m]��۷�SQpK���[�:)���`lQ�E��H�ir��|'[wVy�Qw����~�=r�;�~|����;�����o�
?�Iz/>������Mj����]S߿w_��T�#����y�
.z!�6���8@�
z$�|�N��bL���e�TkB����䃱Q%>9�A��=�y��88�Q�o^{�5a�<0�X.\�c��
��P9�1v�)�`���]�����8�����Ά���a3�a(�|5����������\\\�F�p'��/�N|a���sP��PE�1�(����������_~���>
e���)$O���/�=����'_c���ݥr(��n����N+|stA�I��#��H�*UDy@��,o���&�x"��oHtU���XQ���!!!���lH��w���x�
oooЂ����o���ˏ��$��Àm�������u"�Q���k�c���/#M�S#ʖ<�"ǁ��� �>��=��·?��L�e�$�ט�4&wb��O�������R�MӢ�R��LI��`"�����0� =))
�8�x*??�u�/<�=xCx&Xi`��4
�o1b'�S��y@y�&�Qi�@�c�E��x�C�����B����c�V��]�f^�w 'N5�
U9�ʈL��Nu�WV'M����.]�""�M�6!y�D�O�,]���c2��O���<����0Ru�*<���_�~x��/�~E��������-x��<�,��ɢ*�qa'��>�ˉ5�:�2
ȚF�P��S���|<N�Idz�8!`�hC��7��Po#����h�,U�@��:Muc�]�x���d ��'|v�cK���8rp777����d�a��T�eG��a[�";4O&�願Ďi8��0X��C��D��L1��4���|��;�ǛE*uRhîi?9':�EN&k�a%KӂhXlI���J*�E
DS3��4l��ga��q�c@W�h�<`$X��~|�uX��RgT��"Q�7oͼ��zeu�t=8K|JH�D��
|�N�]s���j��=}�b%s���iq��z�6ű/���Tb� KN
[��7�߄����"_KmS��d�%�0�A�0ט1J�'�͠���G�Y�N�i�
��V�H�ȝa�g͚��"[�0~�"['{����T��Y������W�$e:���T^l@�.P!N��*��ᰱ�aa
?�� ��A�=�GZ���E�������7%a�2N��r�4�$ bE�2||Jc^��8��H8ٰ�m�i�Y�p��%�sy]�1=_��"���:;�Mb��fP�{�7B
�*1�3�!��.^�ˌ������ä#̆�E��#q"#�/D瀔)�e���F�2���1�o���2���|�;�p�Nec����*ݞ8�����<Q$gL��U6�f���a�`Im��
G�!b<�}FB�=H�{C���]�d��N�@�@��\�d �N��DWB��FI/V'�NW�ˋ�g�<�����ౄTA���ʇ�cJcH�ئd�J���H����8ux�E�-���j)�UMT��N��E�l{��c/[�����Q��1�N/���8�-(�V�J�e�p��%���Ы7%��\Ia���K��G�d$�!N��D�H{�ZzC�l�۲;i�^K=�Ά���+�m�u�t�<6`����P�@�R�Rx�e�-%*@�N�V%�F��`��b?>w�>U-}���$#U���}%������
���.��Y3� Q~���@�ʈt_���I#;�A
m�yV���I�������Uc�7b����o�IU!(N���`:�%�I�$�@,Y���L��j)�����T���%5����¹h�"@�TA�/�4��/��*�Δ�U��%�q�qt�3Ks�Я��ը��U��Q��A~�����%�>�:��-f4��"i���|g�f�����*QT�h��N�EwAB�
d�Ti{�:���z�}�O�Կ$�a�8��l���L>$*�R0�>�[�P����
���4k���
�A:�χ s�P�
T�\H����qQ�jI�0�x!a��;��xH2�c(��
6�-=�Y#�e�%¤�Ɔ�`��g��ldK�+��h�A�W���t�
3�^1-���'����b��|����Ӿ�E
��'�\T:��Q�\)�!p�|�Q4Xb��32kT�`!�B��~,-t��7⤳)��,l4O1=�:����k�'r̔��Y�����tBM,'�`f�(�\�7X��N��ĉ���5��xOm�-&J��`�a
wE��Y�/9ƙ�O���qy"P�Fx`8����6���p����P��[l`^ׁc\#�.č!CT5ac���'�{0GyeoT|Af�oJ�HǤx6��%��1e��l��7$fT����
4����=թ��X�t7S5��٢��YB(�C1���"������T�Ic����`�JY85�@��2��b� &OEDD���)Ꞟ�8�1��j����c��}����È,x�:"G7�!A�Oa���F4)̦<��1L+[��!�u8oF<2��H:���iǰ���]�/����]��p��0_�i8����AT�Mp}�+�i4�!u���3*0N� - i�(f��j��̠��68��0�(4b
��<�g�UD�ÁN��_�ʘ��P��8�f�����%���:w����l��LX
,���,�T�5YT�[��gM6�J��g�ԀS��P�U!*#�D̜9�
�LxK���ߢC�ᤩ�dxi�mֿ�\ӝcq�A�D���Ao�k
�Bjl�ˢ�@R��0��٪�+��0���:3���0�c�}a�����S�q�����C�`�����a�~0���ǃ��|H|0J����?hb��"�a,{(�\���u�v����P�
�z-��E
&L���#|C��׆t���,�a��t�z#,��F��J閆�N�qP�>D2��Bg�I�k�\����
�.^��#G��-6P���`�a{!Y�@�w����p�E�f��7B7�a���M�\`��{��э����X&tt/�,?���52.�s�g�+
�#��6������zi��-�К(�=��^q�i|���f���^��b�8�/�30�̭.�X�D��9Gk�~|��$S�cro�)�Y����'�'��*G�;�!,3N4�:��;v,�<F��M� 0���w��X`c�1
&�C��:�1_]�ap��ÑxC�U�5�6J�����G�ְ.x
}=o_�� 8 �ķ��Gk�m�y`�؞���5�>q�L>�|
H�&ß��2I'�NX'1�[]�m�a61��8�Yf6����1֔\�%\��D����0|@�B�F�S��L��@�t�#D�� �a�q�����%L��c2���q0Ċ�wÛ0�?���?`B0��
f��Z��z�s�n�C0��4&�_Q']���'�5��B�����$g�Ak�}|zD� �P�@f�R�`T��Q_�^�#�tŖ�S
�Q�J���d�n����IsD�G�A.
Ai+�A?~<D��!A��p�>��+�[�!����`�!_�3���BW�DW���<�G�G�7>L����`l)������ ��!�N|���8��ID�rl���{".%��8��:��
�
��H�k�1�� ��
oH�I�l�E8I��O/'�L���@�YeS9 O���ƙ��N�S<�#[�A�
1��EE'������FH�0��F���'N��897�=e�J.`�!k��/
=�;�}(Qy^��|��ǎ.��=e*�چ���%�\�{p߱=}F�0��?�H���?
��ob'�?9K�A�C���gC`�#AA#v<J ��h\�xC|7�Jm0�gq�Ёh���.N=��x�*Pm�Jx��I�&��?�f�8�^N��TO��O= f>:%��Bʈ��a�a��&Y\�_��}���t�G}���tM��m9|gN^qNLt̑�':��}==�)%Q�E��,2�(�!��i��`F�G���
́�Bv��\�9����Vg_���"|�K�� j�8�8�X�$RY�ق�jt�D��0ĕ�EjR-����L;�{u�|�3��`Z�Yi�u
�@�>��!I��>q23����)-,�ml��v�H���N�;���s����T'���-%|��Pa�h��Y)KA�O{#v����׆�q��B�eB���p�L��v�x
�,b��:�^^{�����D��`��� ���)6�%dk��q��!����RJJ��(K�L��m���h���rd�'�C���y����ѽm'Z�:���s��C�%�(9�w��K͂gq�e��
IA�8;d��^�ta���̈́���a`�r=����1M�1P�(,��3ۋx��Wt)ĥ�����o�B���9��HC�����!���Ӡ��T���B�"�|x+�Q��ONr$�L�e�d����)
� ���,u�9Po�7Q+>����#�:;V���;�m��j�р����ݶ���}���T���<�D���}x�t��-JT8�
5���(�C�8�(0�1j�� �8�`�wCJ�q�H h��E(�
Q@F��o�5�*�LmZ�+"UD��4�X�p<B0� �:�:N::
��3�<g���ރ5��B�_
_��*���^���@�&L,��P�-�c�wu�n
�n�ˣe���OM��D7|@���O����dZ�%v�B!l-ť�o�14��N]�=�6bl�O�M��x��$L+���B��8݀�8/�6�+^�lq
�#�DMl��#愱�"qM�(�
���C�������>^��@����%$�����u`�ac����W1���Йh,k�]|Mr�xBKb��� ��?W�PW]k�k���ġ���Kqw�n�Eb��0�)�@ߑSF
IB�
ZȡRQ����+��2�1l-�)"�~JK([��k�> �i��ŹƳ@��`sc���4�DE�W#�DĄ4$w<�v�z1$��r
�#�ga��`t
dq����(��=Nh�b���NW���ú�}07�ka'
�(�~Q������ԉF���v�[��/���)�oBp�7O�D~FEE��ac�%>B���u�C�R��@q
���q$vN��{h�`�ޓM=)7��08�"㤗3�U�
��1��S�619��"x���1�o,�~�+08��ǰ��@�E$�Kف�|�,?�V�P��W灮Έ❋�繧�%��8��F�-v�G�m;��뉓�G��S�ؕPW��0�2�B�^p��й��!d�$e�
[�v�T�2���J
XSt
���PtC�˛>'��<��P6�,|Hha3l^��`�!J(��*0�"a�UA�8e�����s��B���ܿ�}u~xH��g��{O��om��Bw�]
���{�[��
�#��%{:`�pQ*E`� "6��pN�K�^��J}t����0����(�!�K�@�!DRtl,����DE`�@8�T��S,]�'c�ð��M�H��`쇫��mp�[5�Ĕ
Y�s��U�>�l�Ԡu��]TiF�����vt5n)Z;<}��d�"^�`ia�����է���
A��4��`��ya�ןbZ�6�đ�`�$�N�����ᐠW/�#D�衿�d�M>R���� ���i�?�{
�)��1����0�
���,[�Ri�v�6Ն��D�`3��gٿB�!*EQ- <�+��R�&*�NXpթ_��L����Y]�>g��U!~�|�x=�mz�����*<?pH(�w�ၐ硟�����|�F�
�k�5�e
�HA`�R�6��u�d0ڃ���-���a��&�v"�9d
8�x[l��O�g�$R
�R��N����;�Up���p�T��Y�li�"U6C�����L�iy�Ia�&�']rDs��Ȗp���.*�7�x�֒M{��eW����M2u�������e}�Sg�op}�C�[���Hx9�JF�]p��H7��!�K$��5zE�$x-`�!!�D� Ӎ���!��[�4����)(�Y\#B��
0wHiз�xC�H.���ը:��#�!`�F�����]e
��{Յ�,���Dz�"C�8UѲ��B�
�έ���ϙU>uF֔E%s'e��"gY"*vv�'���I�8�H(�d�*�\h�*�|8�`6!
��G@I� ����+
���*|[� ��`|�ƴ��͠o���.�8�~0CY�(�dA�(�#��a�ч`-���(ŐJ"4B蘵�,Q"���в�T�&Uu����_�c���d���.�hC�x�D
��,K�r:�}o5���*�e�!��@]lp��r"?�Tw��`���MUb�zN.&
�ϡC`��n�
��)RId8�%:�8��q"k���
<^R6��%��"����%@�0px��K�Vmau�f���_L���yl��e��7�Xl6��dj���|���z�)I3�ۻ���N�AB��p�a�X��N
�Uk�O�e��U4�F�N.�(��Wx
(��%Ji
V��`�N�q�1A��s�O�:a`�a��1P3�)��0�����"�]3�p�*x�`��?��J���"$E��f{Y��
TM��
Tm'�Q/elin&[�#�ٹ���DSӱ���{:�+VU)�jIj�j<�t��ޗ*#'��5
db�ROx#"M
I�lV
�cx/�w�5>*�I/xC�cpB)l�
G)ߠ�*l���R(DU��:
��xCT`��
q��F�!t��"�t��*�=��(���RU}j�\).���߉����QQ�r�p:
�/9F�~$�*��"V������0�T��|�0��xȖ��6�ZD�,�ЄZ��@%b�zM��8ST/��������\��ɴ`�ɥr#��K�rU�>����e1�a�z��UqZ����<[8�^q����*`���I
���6�ĩJ�W� g�T=�j������Uˇ���T�����iU%J�R'�?�7�khy��B�8鷕�ޒ�e�0KT�.)�E�>T��Y�|مe�j�y2�:H��j��BJ%�Ē�V�9�ҫ�}U�Kɨ�ª��}�RO��WU')�%�g���e8|9(H�q��P���$r���xy��V�҂����%�2�=�h'���'z��%� _��E���+Q���("�n����JU��/p��TH��W��?V�T��K؝/��|�Z����Mo��N
��|�h��;{^���y�E
�-���EH8�!��ƽ�V����I5�Q�%�εW��f{�P�.�XV�/�H��O%�jk{�g�_�ɨUT�&�%ؒ[���t�8)^U�2�T����{�!_D(�*M�ʺRU�RL��RY���U�I�Wuy�7}�[%9�zU
�T�a��oĩ�*�jL�8��SR�N��B�!NU]T2����$��JV5�Q
���D,T5���eĪ�Ϩ*U
�+U��3Dz��}^J�N�qR'{1���|*�KT�@�BUr4��ҥ��w(q0k��W�X-�Q�����JV-⥇/�S�r���W5V�@Wm����,
�4�IU�8-�`�N��s��U���CN�Mx[��X��g�Y���\��U�<��BeY� WM���+N��3�y�X_L�?ǩjxU��,N�`��08q�Y�4F�:@�Ʈ� %��U��/n"��(J�r�XF�0��Ml��Jk̿��B5ۘ�
*�8ѽPK�
�T��Z偪�l�S�b��3~^z��a���2�3>z^!�5����']�B��p���d>�S�nXJ�
ݙ�B��j�RQ����4hA��Θ���&@b�<�ƴ�;q-tF-0���g�R���c!f�R���,�KF�=c��eB�XI���}qJê�r�g�b�@E%=��^���`� K"ha��KX!��@��b�TOO�,K�ɒ�RA���g!_b��`\�&�*��d�I����^��^����{5�l�A-��)�煾��j��ly��qR,CPɖH�B�c� ��a^
�6V��pH�X���*T�V�(��݉
����$i�%~��W�/Nf�,�U
UKKj�^=�j�A��yQ[Md�S��S�٧�e�T�\0*4���~�XN���Té*P5�J�X�B�$P(=E��|�$ �e@��^�^�����b������j��Z��-*��0j�}I�4HI'�;
�����0xG�P�!IBH�H��oL"�x/��8H�Mb�iV�,l:�e�ʗ5��l�!V֕���2����Z��e��ZdԳ:��^�ޗ)��aRg�8)�
7I�a�$ � Yf�ǴU�B�\�&4$<4hUXP��Еa�k
F[�9AI�q�qQ1� I��q1��b����ccb�ccU�>�fC_<V������5�^��B��E
ՔJ]������ۋq�f2��-�}q-�y5}*�%�.����Ĩ��N�-��
��-Xb��#re(|e�xԽ��rU@������
[������!��OKM�'v�\p\LBBLJ\TbBTbrLr*��%J,��W�תRd����`A�����P*�GTD$ɒ�C0�ƨ�i�\���<U����2a�X�W�T���e�v��Oc���<(�~N8��]Yȴ2+!C�ſ��+Cׄ�^�
O��g
�CVp�����hA!+��OJ���+*&"2jgt�����xlLT\BtlB$RO6Db�Q�J{��'k� 0is���H�=뽽U+���jI=g>�,��Y��5>b]�j坊��;�D��ND�&!Y�4�66�!��2d%2����+�V�^�~�ƭ[vEF��&&'�f'e�&���e�f���j;p���֮�M�+*K*
��ӓ��c�c�"���˲�B�)�z\֕��`��ހ5�5)>�.m��!4GbUz{�W�UM�=�J!V�4�+�
��CR'�I��:N�Q��w�(��:���!s'�M[v�LIN.,Ϋj,�k��j�8��q��c_WK[W}���}5��+�VUvTUtTV�:p����#hgn�>���+\����wy����g/a2�Z�gx>"`ۡWZ��j��+T�P�E���^����ٗ��(D�VY�������Uh���_�I�b�9���0�Q'D���)��s
���\S��l<�C��>y�𑖽�y���1�e+�-�2�-�]'��99E[�6�L��*/��w�3ڄ���f��[��eSơԺ��.]@��D��bB:�YX@���B}�@��j
D����P1#
�\u��>o�
}{-'�t��c����jm��)�%��s�W+�;z�psCSscS������)�mY�1>:�8����?'W�Y��7s[���>ӳ'�H���
�1��q�h[4^�?�M�ڼݦV�^�:��yh�rh��W��V!�\?bY�m��ŗ�)=p�����8rfO}cAn^R|B\tL\tlbl\L�ظ����ĸ�4DN�k��cX]p�FX�K�#
d�Tςë� {�SU�a^PE�YpxA�D8������Ͽ�{`OeuMǻ]�pUBcK}S۞����AA!!��#K+�:�:��W�XR4;}��h�h�t��0�^��Q�$�u�;
����w>g�ta��4�Z�g�ĽF�Z)t�zԈ=*��+�����8���[���o�~��C%%�1��Qp�I� ��w�K`"a
���гH�`f
S���{��U˄�S�r�J��DIx7Uc�Y�!���3]�����fi���ɩ�{Z���f4e���M!��q�Q��x[^�5'ь�b�K��%���l������nu��:� g �ϴ�%�Ê��Ż�ŻB�U)�.g�G�ԭD�U.�[7qMgP��w��{�k�j;X�]���'6>��(
��ɕ�n(��La� !�����=��9��y��T�z��<ϭ�HR'�.�LnTT}������0�߱}Nj�KrJ�*�V$�&�L��K2Ζ�h�
��(J�
Cj+���$X�l��Xa̟Z$K���z%�N�7�D�]��.u�.q�.}��UJ�*��
�r�ae�CK��e�.ê����U�UʡŊ�nS��5-�<��ȭ�w��s��Km����`���)�a�۞2%?��~�b���^��QU�ˎبJ����RϚ~�yI='9�V����,X"�A4PPY|�ֹ�Ssd{��4O����̆�]�ۦ�L���cl��,x�ְ��8I��4�Q�(�vE;�c��'Q��8�+���JlA�=�+k`_�ӫ����p��y�;{W�xW�xV*<*�Ur�*�{�̳.��=Jdޕ��5�UR�J�K9h��OӢ�˹?�p��M��J^>�
�P!�Rv�~*�p�0�GH�1>Ú\Չ,=�Ѱ8{-�
��:��e�ck����\����c�nM���
/�;��e�X`1��q��N��x;Y��
�^�(�X'~�#֢8'!�8���e�V��9��ūD�
,�g[��7Z Px���a�)C�r�
�g�ͣ\��a�g�LY%v/�/v�V11�`p\�t�R]]cBJ�ȝQ���a��S�+펃Q��(Ae��!�!�4ٌ�J>Bd�_ɡ�Z/T��j|�b�1�"��ý�b*����?�⳯jS�=�q���%C[e�M�C;��r�fs�-�Lh�
���xhCm�Kp���Kv� ��*�Ԏ|T�N��Y"����S�.�?���V�p�0�.�e2f��yq�܂��7��q���Ί�ѩѻ�bc�#�-l����d�I��
S\��X�2%�%��Z���֕z�:뵐�(�Zd'�R=��w�����p�GfǷ�o_����K(<s���/j���(to{��=�d#����KI���+Nq�=7ޑ��'tK�
⸽R|�F�cY�^�
ȴ��Ư�C�H��
e�ĵ\:��mQŬ��Ig>;v�M��&$�F�$�&S
C�K���G���cm�4i:AeK�/�M_P�W#�FI��-|���?0��~��g���g&g�]��n���Q
��{nM"��l���p뗷/�)θ�q�wr!�x�����
��į��v�S�2�ӫ��p����MU�x����JAth�»P�U'v��Jʜ\��Q�"o��ݫr��"��0U��%|Тj���)�[�P�����@QEb�w����ޞC4=�?�:�A��!zÏ���{�g�SS�ғ3jK�>�������y��[3�ӽI��H8��"��2qM���8����y�S��v�W�5��y#�Q�5�j���,-pb�Q-t��*+��
�G��g�tn�Ԭө>=����09���8��lJ���A#��vH�+퉓U��|�L�U�M{MU�����w�k�#������{���um)�q��B�1�ӣ�u�w��Tqڨ�G!
����3���/���WpN*�',�_R�*N�R�G�]K$�&L��{\���w�.A�$���Ws��e��mCJ��4I�l�E�=�Mk�ݧ�S5�y����(M�9ܪ#nl_5O%3�T�yԮ�]�1���~�q��������
yǽ�U�t|gag>?��5Y����
!-%8r�%���X�,�gk�d���<Ĥ�D�������B�{�ԓp�T�'T�L�z�J�(��6�F�/hݒ�
$�ڵD�Q.]���ދW�U�V��N���Rl��f�hl3l��B\�`��ç�Ҹ);K�4j3CՆ��L�`����"&q�W�n\oliJHK�H�]���r�ջWv�ߩ����8�ԠHF�ݺĆW�tT��_qW�*NnO��N�X�d7�a��֭;j���7,b���I���{V������^��dp:��&�
O;�r�w8�3zG�]����fL�\5��)��tq#$|���08%0�s�YᲓ��ah��@b��4�%�3g��$F�'D%�N�[v��>�s�v֞ �j�w��G�B
�[�S�Oq�*~1Nn��
��m�"�5�
�ֹ�P��E�JN�I�`�2�T�)�[�IA��ҭT��R��Z"(vZ�>w���[��)�,߽3��Y��:�qR&�Zl"����������MMR�a��j#n�eiB,U���tWW�!�62j7��eħ�d圻p��Ww��<�f����e�e���Q��(Fc�N4�=F��K�y'۞�����)�n���n㒆
�u��:�"g�w�%����3^9�l4��
%Er�B�'��J�(���b��Js/����pJ88��^%q��V�d���D�Yw�ƭ��}�2�w�`�H<vQp������4>�[�
��F�e�4bE�WH��R4K�2�n��qe�";�v?5=����}1y��Q�F�K�@Y+pm����M��uۃ����#�]�U-�'18Q�ap&��B��0Ɂ�`�K��GY�T��ֶqS���y32'��,_��W�KpUgYZ/�&B$�&�SQ�w+�x#G�**�r�нG�>t�����bT�(R[(n�(�E�$_z�,3��^��u���y�S��a���s{;�G�f�S�D�*J|��w��ŝ�/��m�'+�7:��H���
���J��(W���)Z�F��6�~UG*��6�h'�٥��=�B�^��8چm75a���m�qo��=�����O`��T[/#*Pg�h�|�[�أP�Q
UoP�Z+���l�E�uN�V��n�b�ĽD憝�B�{�˄�Ry�Ô��g/�w�X����̝ѻ�"�1u �tG�.&�aV̙�����bpR�J���Ym�Fc�"\2�CE'&F%šJ��丨���D��E$m�N���.:r�ԭow���Q�)�*����b��k�إ^��
��Wx��ܡE���-M&,"�5G*��q3I��#���bx�k�d�ɩӢ�bw����5&Mɏ1��P�B��<���G>p�j�����{a++KE�͵�/+rt��U-���Ƿ��uDG%FD���m[p��w��ޅ�Q|T�`5풼X���h���K
h�h{B�dL��J����{||rBL|TqaݕSW����C���uưR�DY-����z�jS�Yw�Z�؍e�Ъ�l!��$��.�dB������MY-��s�Q��N�X2�#O�/r�4���^(QknE�7�bx��T�<�\!\�
����(㍨r�ڱa��w.���Y�Q��+}��Q�ѻ#�)��2��re%�?�&�3�M������Q�h�]I1�E酝��_~�Ƨ��V�DID^�l�Պ��Ğ
ח����Y�8�ю*AU�'Na<5#@�Es�m��$�!�=�����Q2~b���WN,�ۍ3_�'a��4�{���Y�n�?NW�,I���e<�^I ]mM����o}��ɋWKۓ���lڹm������pI0��a���%�$%��`���S
�o���/�|s2�x���}@��U�w���V+'��p�7�T��Q�4,j���S��ɋr��;���!�^�ȉpܴwu�����Ҋ�yU{+ۻ�F�㼄:�p*��/n.%"��js-*��(8t�Z�UE�����Y��Px.��͓Wn�?{�x[cCiV^z3�Q꺴f�$��B��cl5=)�
��������o\����SwN��l�Z��Z��(�x�&GY3A�Q�PK�!m���gX���Ag�s���
�:��81ީfl�R���]�
�kJ+����қ��v�M�Ī�k(u�爕y��:�E}�,~�%õ��^"�(�V�\Kd�J�2�J��r���?��{y�O�ٜs��C��}�l�*GQ~�];qY1.P��1h�"j��:"�������˯�||i����;��Op���깲Z�[�ػL�l�"J͕"�Z�kcc��"r�/��(�ٍs�
�^Å�u�0Q�<�ϋ����&�C�uC�
e��BNr߉
��=W�ny�\1�~Q#hzAs-��7U��Z$r魱
��U��z>�Wp�e\E!\>�c��A)��nT}�Х�.�z���n��ỷ>�}�[�Ƈ�o~p�҇�N|t��fC����A���Y��R&�Wq\jy���}�ln5�]�idi���Dϱ�e�ĵ��AӈV�38�|~u�b��x[��8�iZҤ�����:q���#sR&I"�.#<�٭Η��'���g8���=*�y��"�r��X�V$�Cy���R� �*<&�Q9~vͤy�S��M�]3qZ͘ 5C�c�L�ԽJ�R�uCm�ّ�r��T^�]�ᳱ������g�=��:Q��#JJ����0]a\���C9#������r=�鎲(I��
pN(A����a���K��SmO���NV�j���C�2�گ,*J�2���'���+�2�j;)Z�-ֲ{y�����\�UVC�
'T�q�5EL;u���S3��^��^��� 8�1<$*�(�Nk���H;n��0��!�Ta����zݚ�
�x�
O�QF�sNPt�0�c��|��@���T
�{40�'���]���r�3�_T*J�n�r�
�K�عR�Z*Bs+����F�BY)p��ː1MV�DȥF�Z��X�"��j�al���Õ�]�,��-.�Z�6�0��C�W��x*|�(Gq����q{Ot<����'N��6I�w(�g���T抠�>ګ�$����@�']�lB��\ė;�J9HO1,������\�W���>J�(�I�eb&��T��*T�=�en�]a�+��gY�k�8���<|6�u�gp�a?���ԉP�c�D=���D �)�R-���M�=�po�Ԕ�cҼ'��rE��>���2�p�[�X�#t͑�f�]��in9b&>��A�8FW������[��E��bU1�@��z���"�k�fֹ��\�W�r�QF��0�\�2�s9��.ߥB���,`)֮��J�k�;]+�\��nUbE���BD͵J⁀�J�Z)����]�ε|�:�[��n(���u|E5���P��~��K3RU�g���/j��78�Z���8�
��LTD1\a
�l:�b�ݶ����j��g/��>Sm�[�o� .����f6K��MT��{�
fG>�^��5v��>c���p��L��\��-E@e����^�*�ͅ�3Td�(�*�rЂAFɄ�J�
���+9�:�s�@�RT_R��\)qA%�V���k
$0ue��*�
�G��f&���B�s��=�D
bLEv��i��%�Lp$��G4+I�/�)��s��\�D��ʚ����;~��p缬Y������d����p��P���8���\
��M�p�����L�(�!�P� ���S�"J*��*8��Ы���!$�H��0�]N�֘��=�5`�s�B
A
���a\V�U/�
p��8��q=�e�/�Z��5�e�`��p�s��rp���P�$J(H���a�f�,fFN��2if��9��I6�x���9g z��-TmJPV�.9�Q*��Ls�㫵�'AUmn�L�
�*����pb?�HPRi�R)��t�Z�7�*Wq��K��\j%����D��oGe��Gh�ȻN"��<�R�s�D��*�pP��:O�&���P^��6�
k��;�NQ4�)��2
�u�����{���DՎ���(d�`�28G�{��Y��L�3-K't�L�;p*
/j�|V��0u�Ex9M��zs.d,����<E\�(�ȫ�\���d��rm3_N<GZ�_1�|��
�k
rGE��3�3.�(V��0�r]R$�'�F���Zo(�m�Yie1�h���V��m��yV�]j��|�j�d=�m���<��cˋr�5F�8�0�a|쨲�e�k�Ĕ�7h��6���+QI8�|Rg�%��Gs���8�/d ��$�=q"���r���lh�`��gj8�
�-���l]�#*]u�iI�:ZL7^2ұ���ߌ3��p��S���}�ɃL��<#�i��q�şng<Ro�g���EK�����Y�7���OՖ�p\�uBt������9�;
"���w"Qq�GSd�K�)��p�� |N�ݴ�Ii�R�3݆�zdwf,ȝƋ{����\/�T�s��%M��w��5U�.����i�|��?�s_�媛_uc���)յ�'L�i����5�',�s/Jx�Q/�
8o��)�f!��HK��3.���`k2���:^�q�����6a���u5G4���ij4��yN�4����>&�ct�x������f��6�t��~���N��|C����x��$c�)����s�l�[����pI���ѽ��d��`�@\g��<P�Ed��;���Y�8A$��{&(��T�2���]�OwNJ���N�
�<��gګ��
���J��+,]�\k�����4���8���Ro�A��in`=h����i�h���J������_�E���$o�[k��e���]^��������_7��m���h��mκ�z�U|}���_af& ��,2�\��s��u��-4�0䬷��5ykěZ3��h���TTaYή���O�RY-�4�sh��o�b\_o/��plyѶ�R��lڐ�/ɿ��.ل��l㥣s=�NE��y�|F���Y~�e�l�l�z�y��"�׳��J�|�j�;���R��m�%�?p�k��o(��������Gn�9d���l����M�=r0g���(�!c+S�ܕ���t�]���Ӎ�&�Z�1�]if:Gh��j��b��M�.!\�F���7��j�4���|S�ޑ��N{�
��f�0T���p]�T�s�Ի�mL�p�|W�
�
�g����AY'�U�j�����U�"�=�}���v�oq6�|K�f5��ק.��7sL�{D�+^:*�S���tN�+�x������9C���X
���3��Me��x�
�����j��{�����&S
-��
,��̱2ch���f��0�k��D�WT��6[,��/��������c���Ӱ�dbd�Y%�s�5�n�s3q\ek5�X�
s���=��*{�r�7ԏ\jĞ2��Vx�K��x�!��6
dHZ����'��4]k1�&F)8_�wF;!�DQ�k7*~h���Íg��n1T�3���)bp��wpfs96y�g{1Ne1�M�ܷH�Fjx�wp�>��S�_�����`1�-�����X,1��e6hؿ��K�[nC��i{����Vn�|i�T��0��ch���*w�rST����U�1�Jy�H���Wn�Ҽ�J�^(����;y��H��8��Gi
_Z��V%bR�
')2�Z�4�Z�U�lU�\�
�
d�3#nn�"�ض�k�ʣ��nL.Q/�I1�
�N��(����0#g_�{�lT�wY�y�}O�������pNFĨӹ7u��5�����gZO��}ڞ^�D�h�l�ZSdr��L%��9BY�@��G����Ls.�9�������V�hS�$g���A~�v��X�S�\�H��+�,"`��p�E�Z�{��K5Ϲ5���AZn+G]�L"/��G^͓�9x�`!ǔy��1v.+
ĞE
~�*�^iJY���B(���P�)V(���%���5�.�RӐA���jfX۹�?�J �/*r@/!��
�~��[ �H.Nn��N��I'7��.�dD�g��������]�Ӧ;�R7�=�/sO`p�$
��BE_���il���w��6Ep�zS�Y\��^��;]�,'y���B�|1�RV��<�<�Q ���nn�2�"��6÷��a�R߳T)F�T,�t�
�(��7Lo(�:/.��*��3���\�\�w-Ɛ�37�ҫ�SQ�`Wj���V�R'X`E3_w���䵎R��VKF�*�5<e��v���:!.,�KF���h2~�L��ᴷG4�Q�5.m�#�]�m�낫�Xu�І�/�)��b9�I6�TG�N�
�{K��Iڛ
Iq�ǫ���lw�tI�<��@}aS�)��=۸�LZ�>��0�QZ�f;�s��,G�<�Zd$+�#�t�:��Y��s!gh�&��8!�r0�"v��
k.&u*�R�t�S��j�0J�0�"��:��U�=���E�ѥ��6&Suq)���ֈ
ތy�[9�Y�hj(�����Z�
m�Q�F�ut�i
Q�f>��v��[�RPm�U*w�t�eo<ǀ��n18S-b�}ۅ�����u
z�F��/�6xjK���=��eq+Vo�[;=i�Y�&7^}��8�.)E*O���'
Vm�tn�8Y��,8�+��s8H"��v�|�\I��;\Q1�A��<���+ͷv�U��=s9�]V�b���VV�$ȷٹM�t0���M0V�t�2�G��<U��bfb<�T�#4�m�Ǝ,Q:��m����x[��0P�����
����#�rԖhp���u\`�4�-�7&
���+�
���_�.�s�ڢ���oY������RGH�afT�J������p�'�"��'/��o.�Ήo�8tz����N�>y�ԉ��
c��J�_��g��%óܝ�) ��4�j��s�[� �����%��F�d���N�8�A���(XB��GY>,��"DOa��H{�3]�\*����G�dD��
��=K�"�DZ�L6Pl�����W
tҘ>H*2�i2��m�:��ci�X���`����eNҁ���I:nB��s�W����D�m��ul��L�^2�}�,Jhh'X�5��Τ!�K�8�+��y���E;��P��TT���z��u]�'NvzNI���d�;�xŸO�9n^�Ԡ��'��|�Q}�n�n��4γ89�W��"2���*c�|�4>OH�H0����'7^f`;��f��S�%'��h��,�#N2q��
�r��X
�̦�N14�2ҝ�a��d\�зF�a2U{����s�5&�>�e��x��c���t�������u�?e��z�ɋ9fSL�&��q4D�kM�4n�|��~�����e~���Rc�da��k*O�*�'�:��1���*�XZ'`F�*��d�y��A1|g��0�����q��hn���}9�[ڦZ��/H^Xu�aE��S�!;��A��^������d�k���qN�$�ɦ��{��<�I�$rN@��4G��S��$)v�,�(.V��Q$�S��DGE�P�*tK�)S8�B;i���3,k9k�DY.ٶ�,Q��4�"�H���
��8�k8�-��HS��<�:'A��h��i��؏�9n�|#�z�-��ctt\i;0mn<�@��(٩?�
�P�S��s�ྮ7E[�7m:X2�s�R�uȿ
�m;�R���b���Dmm7M�%
ͩ����]ru'j'��j���{=]�|7�pk��n�^��m��<��r��� e1�Ɍ�a��\�V��=u`�
���0
�=`�s�����``���0�Υߡˇ�����K6A�+�E&c�O���s�[E�{��*gDNBz�sb�N�D��i���s"G�.P& �ɶ�Di��8�+Kq�9�39�T;qG��$�pT�q���G�9E(J�dZ�sx鶢LGI���\�ı�o9<��9�g���r��K�6@���q�n���B[�P]��d�E����@37S���+8�w��z����b]��h9�z� /��x���,-�2[M�����/ғ&st�o����æ�Ї��V��[��<�m3?�����S����m�1�72X�a�D�x���NSi�f���3i�5a0
�9E(��:W��^Z,q)+0ͥB� B��B%&��I]�iJI��JE�v
��T�0��V!r�b�'�ebĔ�n�Y�Lh^����;G$�[�]��t�7A�j�桞��=�9�o�J��{%+�2�1��$#�Q��]U���:���$�,��%��e��-^�H��"y�~F�@_Ǖ'��"�d'K
Rm�6�\[i��8�A���!F9:' �iYJ�:�4�`5�j�i��a��sʹ&jq�i��/�?�כ���9r��0���d�!y�Pjh��Po�֤�1�n�o��%�v@�������ػ��|���<-^��[��k����Z�q��ۿf6��M���~S����������bm�����m���eIݳ%�@]���s���@�Q!�;�K-e�NL�pPVً�(�c:���K�ԥ�8�q���
F�E�*;Y�)U2��KJL���"���%�<��О��T!�au�~G��&����kTb�ǭ��oS|'�Y1m������C���=<V�� ���2��҆�SD�;Q�h�-�Y�tG�i&o�%�(��qW8�%o���K�z{�p;���N����6C��9����p�����ev�����l��Q"����h���A�sl�����[���n�<�gh����v[j�@Y�=E�=^cD�����J��L��[�7�Ya�(���O�~�pG���>�f�.��Sf�8�&�a��R��;-]�^�r��w��,�ih��8�VTj�Z
t-+���b���AV��L�s��:��Kd����Y$w���$��\e�\Ti/(������s�
C+py�G��r�re�cځ�ce�^!V��e�
��ѥ��3ty��̄ӻƹ߱��a�p�=RgO��qV�F���{G���_�"�
+6�De�o��_��w�S�}�gO��,��doq�H�f�[9�r��H-q"�d�����S��?���ϩ:g�p��X�u��-���� �]�^w����2�{����ְ]e.O���V���8i�Ju܊܅N�t���B���"ˉ�S-�*��'���ia�V�1�Z�i��hm�$��<�~�~�L�V��mW�)Rx��LF�H�ۄ:v/P�e���K��� ��yn\Y���c�j�0�A����\{fV~�H�o�)
�|� ����LfZI_\!G�%��#
0�Ӷ�7�g�8'Z�;ʆ�~W��-tϔvؘ��/�z{�u0��H�a5��Mٿ�'�wMx�:8��E�����O��QF���\�2��Z�~�o�&�nv��@������G�z���t�싌�_�����3���=�}/���N�x{^�ǝ4��y+K����b��4D[RM���p���4�����Ye�v0�`h3�b��ۣ6{��ihe?�f�~�~�h�`��A܁�y��!��Dk^���������V�,��0�b��S���k�Mִ�3ycҿ�|[{�Y���d'�:DX(�8�iB�G�4�4�A�m�Ih�<Gq��(�ʵ@"α��Z���َ��<�T��]�8�GI�(�$�\'Q��k��!�F�;����
�rl8:KPOp- �y��]f� |�
s�eC$y<�H+�E�f�M�2��i1�pȈ�V���!Xj����p������
��3�M�����]��l��|]�qf��xMh8���K����f$��X'E��~���a�֭?�ѵb��M�7�z���Z\y�4,[�L��d�;�ۊ�l���
��p��D�G��m$p���A�7-���/0��g:����k����:^Z����=ߐ�9��ySs��Yۧ�i�5�r~�&�0�`J$��kH�{[�����3u����&�T�lspO�Kvr]b%�t�"Y�*R2��P�Αf9�D�цs��{��8ێ�+�Qg�:�l������a2L%�g[��܊��,+A��
�V��$A�H�����^��a��=re��|Q��ɍ�p%�V��f&�
����$-�)Zc4uG4\:PY"5]`��ge5��t���i�8r��H==n��-\b?p�kV~�ڶ:���\cd��^U�).�wI
|��u�|�3���y��9�V�8�F��væ�����gfed���~�?���S�*�4L�`����E(�ߖ,�a�t�h������p�;����|��@��.oڽ�%�8�Z�k�(@h��u����F�uM\F�Kp�?��p��xGy6bf[A��$Ӟ�(�3� ����;I39�tI&@r��[�)9<��9Y�.�A*3%����&stz�ǽ|%Ev�9rq���� S)�3��d�
�딃���h���#[��5�M�d��;ͱCt'���a2A�d���h=�Z'8�Z��:&�t���+̖
m�k�N0��o�(�k�Bg��S(�m���u�4��X������E��K��+_���G#�pj{��&��NN���`���a{�;6���P[i.]�t�Ν��n��'Na���d/Q��{�L�����żf�o��no�C�����r���C8n�ʗm�:�q��tM�hN��_�AC�.�|�x N�T�N��4� �J%��.NΉ|e�H�uN`�r��Sl�i��4Y&G��
L
tXh�6�m��r��a��s��K&_��;KcB�(��nf���Y��b8�P��}{ě�K���y��5�%�&�L�<�L�ZL5�أ,7D0h���z�_N[�����"l:p��26�k>_߽���O�*�r���2#��:�s����W��o1�<�D�<B�=k���n��,�yKE�5��%<Q�-��*���V�w��ou�mG����-�i?�y��!\����[QQ{�'Ni����a�{�(�"��.�R��A��Q-p���"Jr��
d�<N��8�ǁ�����l�16��|�T�$ݞ�a�Ͱ�bg��8��#G.�w����\�\��(J��؊R��$i��:��-�ƶ�g2�b���O_���]{��&��c���s㑺�K
8��r��������ip�e��@��:�5�2�Jǁ�o��u�#�t�z�tlV��ސ.�H��nIB�Y���ML��v8��h��ԛn`���FZ*�=�]��������;�]P^�c|��bcaG\h�V"�V;pK�]��rq�
��˫�+ŵ�:���z��2�K���Z��Z��guȪ����������+U�,Y�'N�d����N���8�L�q|�h�0�W�1�%:�c��t,�j_�j���Ib�_ʒ@K$O���d'K�@��dG>�YɎ��q1�M��(K塡,���$�N�: �vB�P��H�B�HS��:�l�>�-�r�7=�"~�;��p�`�i&>�_sK��H����/����f��|��z��������Ê/�S$����G
��d"�ɶ;��%i��F����E�<�,�[�Щ��9�~G1�R��%�R�Y�ɝS�x"ܴ���ŻQ�q�%��g�\Tl+-ub&p�q�)��h�P�y��Y�D�Z����iA=&Z&ڌ�`�����͛7º�
�*����-��{��3U!�a�
����8�=NM���$p^�� q"�$I���M�GC��icX:����=��:5٤m<�رД��Fo��q��e�6V�r|����[/��ߜ�o:������c4���v{Ms�`�QC&���sm���'�K�eD��毨>�g1�=�x7�o��懺�0WX
H��/��`�G1�u+��R'EwX��o���0"�{�b��L�$u}uu5~�j��� dXݗ�lUpr�S�
P��M�I���!�����C���=��p���BP�oh8�l��Q���b�
���7m�����[pwZ#+��r
�4����(�i\�o.W��N�h�,Y�ě���s�(FO����|j�EN�<\�(y�PfBm��Z�L(/q�1����U;���o������X����?-�{��eU����tK�y��%� ~�'�?4��4�H�(��h��^I�����C%�JS4ٳP�i��.o���$�h�>2%�`;�pK!n���Q��P:vZe�����X0�5U,H����s�HI����l��BS+��K0��T��(�3�GT
*��a�i(6
�3���1��".*�h.%|\M�_�pGu�@$��zJ��)H���X�"������?������qO܀2��غ&Jݓe���q>E�bco�2�n��j���,NU��'B�
Չְ��m�����|d
��k�\����/��(� c8�D��?�J�k'��\�E_�őd[K�l����ܳ�.��(�U���\��8x�D�B����8ֹ��[�b:n��\
df6��t!���[�G��DY�0�آg�Q�d���V��q��-�y��Λ71-X�F+�� ���
�.��"ڞ��WS�82Ulj=z�nu�℥E#��!̈́�8�,rMq�=/�J���97 �-��bHG����9I���S�4qI����3�X�M����s
_��(�9ZL$�
>p�2"
L]�g���0Nn���b��\�UZ��:f�t�W�Y�շ\k�`�J�W��o4�w�y�9�Qu��3����m�N?���֎��f�Yg���A���,m���a�U!�W:���uv�䈣����%c~��n�8���Pm���.��6U�*�$ �Q��4ˈ���5E�x�'��%��
�Z����@+2���"H�Cb���t�<����S��C�� J��>&��eE|�d9�`i�4i.Gҽff�0����§���c�Y:O��˹�b��#-���o10ݠg�Z�
L�p��Q���*}�0]�0�p�0]�Uaz���ktM��5[c`�ژ�ն߉[g0&��P$1\^���(jDc�
�mmh���y��}�;���O��+��\�d o��bL��40A��8V}��k��-I!��E1Ɩq�=����s��^>U<p�:ԧb�5�U���\e)LLD
jCS��@{PpB�<
E��,�h�l0�Js����HL0CC W�L��3��9�{n���.SK0ۨc�Z�d��q�6���[�74�2]�k��t%ħc���"��4T�$T�<\8�Bum����1]�m�Z�d��!$���n�Y�8a!�yN�=mEЊ���#���j�J�K���o�g��8�n��%�^p�(p27�b~-I���k�L����s�XY��$Q2�,Q��T��$�@]�5^Ն ��P��� 0H�Yh�tGQ�n���i���f���z��:�aZ�+Ѵ�C�ЌB��6㰧
�afk�LCu�V7t
��
6�16^��1[e`�o��J5[m`��r���J�U������1�\�E���T_�5~���&�X0}����Z(���p
��ĉ ��)�tzN5���W��
J`A}Q67e��*B�%��ڊ���%�(3yh�nLs�$�p��C���v3�MF���!,�U�Fᚆa�!zf!zXSöE��E��9Z0�C4�aHM�u�Wk�Ƽ˕�k��iw��6^���v��
��!�0��5
C�LW��(7H-��u���l�7N�TS�79p��X{1�m���Sx�r��9rɈ��F�6�9N�
��Tm�8e�8��^��Wa4~�����/H�
�w���J���p��D�DA/kx1g_��\u+A��f�D�swZ�m6�\g`�Z�d��q��Q��a��A��a��q��Q��Q�L�uM��&A���
�c��f�1��o�RC��ag�V��Np����k��iZ��%}���&iz�D�f���Q�3g�N�l���Q�0�g�QK��%|'7�N�����:��
�l�D;`�f"~�
��D4�m*�&"dE�NNA����hO{�p����8Y��I���ņ
юk�ma���~���z�Ն�a�ơ'���+t��h+���t���l��i��Y��Y��y��Q��q��1xv�
���+u�LV�v��Xc[/p��:�[��b�
7��l�o��lcå�i;'�l�|�¾=gk���9P��mE�j�U{��0X���`��حN)nW��:8�[�8��_�Fh�X{�N
� �n��3+G����:Q�~!PM�(xbr�p�
�(�H{~�U�u�?�
w!�G��Ƌ��<m�%���t���g!�̲
��φKn��v���s�<T�a��P�gB�d�<^��t"���/�pcK`�1^�i�l�q��j3 �1-����l3�mD+F:���Y�h�0 ֳ�3����2�
h����a�V��_5H{S�
]��G?��d?�&����o~|�詃��t^/~��c�D���<|`d���wη�,\��ѕ�UV�Y��4Z5�v�Q����8�o�n������!05��(��r�7�n�"������aj��c~9���v�'��/��(Q�7%�1v�X�\�8������k�a��� �b��%:�x�x�9��y�l��Y�m2�Zk�x)�+�j��a�������#?M?-4S��3M
'��j3^���
�@M;�C�W0X]�=S_=��e�(��r���P'�Ef���7�N�>5�|wrsb����Գ�N�U��8�ꟲ�'ba�v��!Ӣ&^�}�j�����1*���ӭ�*BsW�d{E*
繯U��Ѣ���,�u1]�m�7�$��|���Fs�v[Ģ�h�0b�����5�D/�����T�t/U�=q��I;��4q��0*������6t{Yj�UQ^�
�|jOj"�.I"�D~�o��a���r��Y��a���rMm��:K��[��韛f�\�d��������y��E�.K�
��N��
=C�C:�o`�H�4��(�E�>�k�4�2���G�/�N�2��:���S�Y��ەT�;3bk�#���}}p���M6j��=���W��G��:u�?i��G�O�.��/9R��0zX��Q�g�M�#��X[�-�6_���t����!�ˆ0�G�l���Lt3��b��i ���k3`�q�L�W��٫�K�8�
N;}��f|�j��/l;�:1Ɩ�˞���~��5��C3��:`�i��?��W�x9��Ɗ�mڃf�L
�L��[��4�a���8u�B�s#g%�&�td��T���X�Ә�"&��pü��[ϴ�*-;Q�0v���KSɒ�qu����WDG�E�8}�̓kv�=|�XlV|L{�Տ��� �^�ܔ�v�vG�ư�p�X�11�����ĸ]��j}�5�:/uY�Z�/�2[�������6��6^��6�e�h��ZF˵�Lu��خ7�n���`̙e��^'f>Ź��D�e���8�o�c�.;�N[t#�;����a��2���4t��[�����-�2��2Z��~lC_m4_m|54�/4��\:�.�f���f����X�=q��1�i�V' �,@e����\��Ɓ�]���X1�b�A�]�9�U'*ā��c��6T���?���uG��%��m̟�
����g�?��W;�:r����Ve��� �7�[i!
�6Y>���ً�J-�5&+�
Wi���sZmۯ�l��
S�e�&0D��肨��2���A��GS��_���$H�j���fs���A݇�I�6��e�i:lj0倏 ��n�B�[^ht���o�G�p�l���n=�Y
�7Z�m�|��R
�%��KѴ��s2u��M�h�jc,*��
c��X��a��X�f�i�������
Dz62�C�@-�?��
�\W/t�N��kO5���-y�>:��huҞ�5)�
'�C�Mǚ��o�<�]U{���h��YQ�Q�
&�����*�2/e���i�u�Z[�pm��چ�Fk4̓
����j`�Z��ޚA�a��k5a������v��>ZП�����J�G�,�y��e��U�q�G��2:c�H���ӑi;и[l7Z٬1e*��_4��|4�a!
��C�kR3X��f�= ]�mx�-�?�!>��gZϯ���?,0�p���nU�jO�j��y���ʁ�6�o�8Z �� ��(��q�@^[��݁M'Z����.�nL����;��=3i��Z�d��>��&��:��|��!�P������L��$ ��i��Y���*}�p=P4 �7
նXm`�Ri��:�~ͧ����Wp2~������X_�Q��'�̵ 1ÝUL�cZ��!P-����q��E��(1X��(����X�h>�.����x9��L{]"j�ߋ@U%k�\i�Q����5��
̂�����Z��痵`r��� �cpS�
S�fF+�Vh�N� ���G�
�����#���2gJ�
j�TU� L���`-� m�`]���G�
�v&nj��x��>���W����d�mAa�˴M���Ѭ��X/73��ô:�uM��-�5���jQU��It�ƩF���j{U����aoU����k�i���l��74+r��C7���c�Y~F�FH�Wj��2���S�[�������P�5 C�H�0@EA�Ɩ0�0��|-�]�œv�\�:;�(xS�����{c��f�?R�h��\���\�/�쁿�$2~W��_�a`ih��[�KP���u�4\�c�H[��f�ʊUe"Vi�=I�����ݳ�'`�!�B�}�4Ƒ�����-�t�m��u4�5�`f�$���V��fPݠA�
@1U$=�f�AF�~VA��AF�����(V��Z�0�,�v�r�����8u�ڢU��%�Ĥ�%��&ƵG�v&fN�:�Vv��_�����nE>�t�`ؗ �
O.ײ�3��71Z�e�P��i���/��[0Do���B�g�"t�g|g����8A�O�F�ZX������r]����o`hb`h��_'|���02
4@��8�-����
�u�aՖ8.���WyL�<vv�L��a�A���n��Y�#�aW̞�1�;c[#2a|RgL���Y�S
Of��9Xc`f�m�L�[�z�jl�<�6������\�k�@�p���-�f�~F�=2=�p��Ӷ��C}֕§>�J{3�O�?B$uWJb%w�y�����q�������6�$@��_��O�l��fB��Y������h������Fˆ��X?�,X�2��r���B�)V�Ӭ����e��6OY��xe�xA��Uk+׆���\�n{զ�Ɲ��Q�9�="�uW|Gtʾ�����}�E��%��������W�Ueh���:�m��,{����^�j���"cl���&˘f�7���
p�A��a��I�6��5zA�ala-aKM�u����g�L�x���"}�Ef��l�>��+�#�
��}�ܸY>����rW����)[��d庲�+�m�ܰ�vÖ����7��n�;�3=�#��di���w�U�/>�S�Y�R�Og�+�[F�$�FK_9zyuN��`��j�_����N'K�`�ӸW���:{|luW��O5�i�a�=Sm`�^>X/@�Š]��:}�
-�M�}�
�j�N�o:]�r�)���{���ة�b��/M� � �����Y��<�
pea��իK��V��zcɚ��-�˶l+�[ �t�β�\ͻ?ܼ�م+�_>x��/�\i|���w*��\a���b&�]��V[�ᅡ����W5��R�O�=�A8�h�8
�>Q��W&�Kd�biu����[1�(�?-�$���t���B}����,X�/�,�;�Y5b��scf-KZ������<0�?
sY@��β��e�%��E!+���\W�j]��e[v��HٓT�U�gN��8z�ȕ�._x���|xy�������'7�]<v�k{/�_��b���ә5���7�C�� u"�o���٭K4u�z=�z��_�'����4�ޢa��O����|���L]����y��LS�B[�@��uC��8/j֒��˓��7q�o�����ox�M�k���V�,�Ь����u��c�wG�o�ݗ�֜�x�v�ɶ�w.\��Jש�+w�i>�����`O~EG�ͯn�o����?��Ν��}r�������K���.��k̷��4\�z4\����9�_�G]BUګ�Ƞ��Y/7�:
�i0�8� ���#~*P&�����p�Ӗ�
1`�`դ�I��T� ��K��IJ�~�Ѻ�������B=�EL3A��@�r���,�"�w�����m��
f�⸹��&.�MX�,qᒤ9KR�$/^���78��涧w���Y�cMΚ�۷o�Z���`��;r�]ۛӚ�q�;�퇎u����8~��w2;RK��f���CEW��t������}��w߿��E�ڳ���/�˪Ͳ�5��Q�%��h0�
h�"n�5^�o�^N��Y�`�����T���\���LI��^� t����e~68"�EΊf�dAZF�4�k/�4FM�B�&J�zKQjF�]v��L��GO1t��.�7�o�?SKk�`��Z�3�ys��^A����sʬ]SgGLB���-���0aĹ���-MY��/�gY�"��������+�}��jc�
b_:�U�Yw������/�x�B���S�N��~�xo��+�J�v���K^���{|�G�|�}(��P�������ۻn����7�����x���|u����sU�j��V�_��]�j�gi0q���`\jc�T�d��%�͖jZ,×�Q���_�l�(�8�U�3���g��^c%�
���)p���C����v��Xwo�j�j�`�s�>��a>���1�i`<�x���4s�l��lx�Щ�&͏�;?z�Sl�s�
~K�/���
�}���,^���7m�_�2�5������&6$d�f�.]��z��O4j�:�UT_x���ڤ��u��8}�|QW����_�q����蹣MgO�?y�̱���<z�ȩ��_��|rg|^W־���*=\Xx8��Hyő���UgJ+ϕT�.�9_�p���bm��=�
K������,f��-��
zL��D�����CH�B}E�`O8�fk@���p�[q���ϐ�1�!�?tA]��:&��Ќ�,�3�gh4CO���m��6sM���$CC<ƭ=eӄ�;'͈�2'f���s�fKjoi����.�时4
cy@��Y�p�!�+V����6�j�wq�撍�ՙ]�:;��?r�p�����OEU�z�ځs.�8_{���{7���.��Ʊ�Gn}z��H�/o��ij����hA����9E��K��,,?[Ru���TIՅ��˕uW��\�Gk�҈��f[��榰��7�8�;Gh<^�p���|S��f�&F�i���2�«yP'��k8{�Jdl�Rw����Z���.�D����i��61�n�3ASc�
�y�f��x�`h���u�fm�:w��Y��Ί�
:'b��ٳb�L��0#n���sg,Je�)@B��7e��O@�2�Y�CrBrV��"� /]U�ruaXxq�ꂰ�S-G.ݞ�
�`�>��ې}�rg�K��w���7�N6~��{7���u���DS������e�K��|���Õ����e��-8�]z���ti��
z�\���PY{���bu��w�
Wi�ڄ���~�{+�TlZ��&#< �oI��9�g�
*�dz�fn1�Pg�@T��t�.�LX�S��X �@��&#�yC�fhM�2�e>��a���p!O���k�ڑ��L�1iZ���gFLB��k��� 3b&͊�<7v�����cg.���$a�҄���%-]���BPdl�oP�C17`e�����U+oMQ�����K�l,[��b���M';��
� r��g���r���W>�x�LWZ[r��ڪ�U��i9�I�brd��J�=�Qp2����U��P��>]�U�˫�Vԝ�n��X{�zϕƦ�{�/��������?�~�я��km�T�1�pEXVHHƊ���i���Ο�u����i���p�q�����vX۷�V�[Z�o�'a|�x��X6Ylh��wF3]�g�D�x�� �0�JGs�����v9�(���Rm�t�f���h�0����2t#j����7w�%����YO�0c���>ܹ��e�aa^7���sʌ]S'o��6u��i��L��:=b��ȉ3vO�=ev��9����̘;s~�� s&�]�4oI�|
j|�/�XB1 k��� P��
�\]��d冲5��n�X��j���[�6n�߲�|[����_ܺ���wN�����Suy{�3Z���$%5ǧ�%e�M�ϖ�te�ʡVp8��h~鉢���0��g��/֩����
�k��6��l����}�?;t�#��:���oN�kh۳�)�Е�A+2��7i ڲ��K���.Z9gƶ��V
�-9β��na1����kh���h9SA���~���s��|�x�J��!��L�����0��e4S�p���\�g��!��k��5������L]�ٸ��L�iZ&
M'0
7\��jf;�J����6t��Q�6���m��퓦혌5�'o��h3"���=}VԌYQ�fEO�3mn�y�8ka��E �'�_���f�o�b4��>�Y��پA9���!y+V���*
]S�rmI���U���k�Vm�V�q{ͦ��[v�o�Y�5�qg\Stc������3қS��2���h�P��7�(��&��W|��*����T+j�W����e��֫M7Z�������?�qבO����/������Ϗ���ĩ/����t�����śÊ��䄅g�e��(4ꟺD}��/^�pQ�1��
F��=w��ac�}]�������c<M�r�������.�S��2
1�=P�w��������,M�Y�F�tfi���О=Dg��9zs5���G����2��,-Ñ:Z���<��5�̶s�u���r���c�l����&m-�Kj
iΌ�6+r:>���Yh�b�f.������]$/Bh��ty��f-��'[ʘS�EakKV��AE��j6m��Q�-�~���
����������7&�+9�+%�+��da����$�%�A��"�8�W�Z�������8���A;����1O|�
��g�:y��SX_��l��}��ʶ�)
ݐ�zmNXh�
dK����K�sq܂Eq�o͉���QS��2=r�ݓ�FL�e����.S�&�[N7��ed4Wٷ����2}ܺ��O��WWkN�9u�֟�i2S�d���L=��:�S4M���14gd9��n�g���G��c̪��֏��[G��6b��v�d�������m������"?j��c
:����iF����%}��L������@|�05�!�W�)�G[_�z<b����Tn�^�ig��]�["��n�ո#fO�ŵD%�F'��$�'$4ǥ�ON�LH?��v0>�Hz���#��3�g�/
�0��G�E�#
����{�����O��0��?4�����Μ����o�c}���~{;;vW��P��p�ի�CB�I�O5��ti��qs���B�03v�Ԙ�S�'L��4m�ĩ�&L�6u��)ӷM��i܈0/�rw���x�Q����[9,�t\fm2CWo���DM���:C5t�1�k?�J����6,�kt���k�LX7v��1c7��eԄ���S�Ŵq;G��5jb���Q��w��?u��gFM��'?PDCP�����E�A�R4��e�龁�v�~��MW��凬*]S�r]a���
%�7���\�n[��mU�vTo�Y�#ƤB���ݘ�������ґ��/ ��e�O�>��{0+�`f����9�G
�N�/*;x�dTɜ"4% ��/x�N
Ě6`N���?@�<�ũ�_�:����_w�����o.\��"�W��ү���M�kQ��\��
=44{zkP���ǩ��hq�<��g͍�1;z��(Ɣ��5}���bF��ĉ9i��I;�N�:~�����M�-^
��le9ޔY�3��`�4�^<W���MZ�9~҆q���u��-#�m�� �GM�9�m���)��O�>aR�]����c"�&����5��ܘ��b-.��G��8��b�bJ���~�1�� Fx^hx>�W0�i�j��Ϧ��[��o������mu�#�w`�1zOD\Sd|sTB(B�q�{��SO��ٙ
���se��-=^����hq��c�U'�+�TV����X�x���zc������h�A���v��Ch�>;|��6�N���W'��~}
���7g��7�.}w����^�z�2��x�ߡc�c��nEQqk醍��6�^S�
57�dE���h��%I��s�T�8�ٻg�K͈D�r�ԝ��38q�X�n?a˘q�F�Z7l�o��=~�hZ�l8�^���>(4e�.d(4���8}n��C��p�Lh�z���4�6O�"B��O{���ym���]y�/�)vⒸD�-W�I���%Jl"EQI��E�`A':0�0��z#�z���@б�b��}�\{�İa��s���i��펿�������w�
����i���>�ҔUD(��_�����7瞜>?v��Ĺ���x��EPxc�
(�X� �]�uo��s�v�Ꝯ����{��]�z�ӷ��:G�=cS��S��\`��>�Ĺ���k�ŵ��Fte=
]��F�7�u]dD�BCRkN뷒Z�
���*�m�ّ�83V�6����'�O��83p�ăϿ�x�G`�X���w!��
}�J�ڵW��!Q�P��(rJԯ��_H��T\�+�d�g��Dd��}_���X��$MQ����g��uH�x�X9�C�r�Z0Q�V)�v�M�IԀB��|�P������''�<?~��x ����k�"
�,��X��H�إ�ӳv��Fg?,Ŭ�?s
OxF���g�Og�3s��8�,8��]�斤���r�ْ��YZ��l�����eMli=�����RzSR��jM �%e6'��8>c�Jm93�-ɼ�X�Δ͝qx�N�˹ڴ������^��ܣS'�����ޏ?�=�a�Q0z�r�_pw�G�~w�}�����0=��f-��xeOj�2�T��Ae�=�uU�
��9]��ߞ����
���߿z����U��-���*"�5Ǻ�C
�J
��~����4����ةsc�Eq��6@�+7��|v���u�N���ۈ��,�is��G&�'Sޱ��Čo���f>0�Bp1�l)���
�K���Hll��7�Ki�Ol��McJgL��IT�Ybf�d�Ķt�#�e����$M��iv�6�.A�7�n3�L�f:.O]�:z���3�O|����_|�U�v��~�;G0����ݟ߸�*��R�D�B�C�
tP��+��#���>yx�7��Pթ*M�.e�i���*M����#(��|�1U�?C�y����~����'�kFN5��]ss�*#�"W��i��>]����Lz�Eǟ�&g�S`��SFE"E
���R� /7T$�M�"&�[I��5�eMl��Vk�b��l��ikͭ��m��˝vq 7�df��"���'P!˵�m��g�7�ߚ�ym���'g�=>}z���/�8�y�ǟ��"���
�ͷo��R�l����^᧠t��*�W,^Y�d�.��5�R.=G�f��O�5.��ڕWA!c��o�s��[G�^�;��o�<rL�ۨ�`���clL�4<�zDE�
�R ^?{q�����Q�BPع�ѫ�0�
Y�!
YEN��
rZ�`\(�WDJ�aJ�,�ُ�(U�,jP
I�)��iB,�#I;^�љ�&g2��zNg���"n�%��p9;�s�y�P�Ӝ3n��yt�E_���X�3��tǭ�����/]9w��7��85�j<�(6�w���#�oCP�u�
L�^��L�^�F�#����2^ѭ����
U
X~}���yl�����rHQ5���F���Ra����
Xn0k�Ͷc�G`�"?���}�?�<�(d@,�=u�t)Q��.�.^��x}����7�]��x�c�f�fG�������sp��{h���Ly)��E�N����Ќ��ȥ��gV��K�Mdu-�Y���_Z/�A4ő?�Ȩh��)=�bkK2n�k�ܪ5b6Zk��skM^�ֵiX���k��m��:����J^o���'�b��k�m�_��\���;����W�(���ON�Q������|��þ�
�����Է�bU�7;��W_��ʟo���r�w��'s^�6!;���o������~���~���^�
]C~�k�ᚾ��?)~��ܨ���֑{�r;�s�X���.�'H�������Ό�:;����N��4݈B�#B��\�Ҿt
�um����}`���=���1�cP�X��G��'Ӿ����(�L�Ή�!�ŹeiQ^]��.���D�����66���uC|�ךb:sLo��[��zNk�7�k���*nY�fl9%`LX9@D���Kx��|%��$�K�0��"�����'hu�z��/��ko���������Iܣ/}MY�a�ѣ=���w:���;�o���
�z�� @`!�T���3�(�t)���삍/T�
�����c��o��K��X�ߌ�8��$"�O����̷��~{m���gWhj��
�߀������"
�"#,ӂ�~�5��t���UD�ia9���붪 ��I�)e�!�3��ƨΚ2Y�h*���5�����l85Z��'洊f�dEF��,��uğ����-Xγ-��ւ|i��唼���J�@�.�R(\��p�)���`84��<�cӽv�{�^�|�͙kx������ߎ�����z��/���#�����v�x��
�/��0j��o�B�^{�hx�ڳ�6�j��!b��i�!�)\�4�`
��Pa߆r8q`^�>���W�E��\�v!�y��S7Bp�A!�)�SC����0럞�C��;���[R��D�������nk��.�5����0D�iӖ���]`cCX3�k��W�so9��7
�-`���z����E�=��D9o�˧����!�R� y��+;�Q,�R>�K�b4Z��%B�ڢ��*�<��S���և��}k=��!�!�M_�2u �I<�
�����|������=o�z�H�_߽��;���ou�P춿�����h
�Tl6Sk����v��I/�6��!jȩ��<~B�.TQ�,7F$(��r�Pxw�v��n�����;h{�����`�1��p�=8�n*�J.e
�ɹ��|h��5
�
�)�7��̬1$�pg���5~��5�y�ѯ�{7=Q��3�B��+�pDl�����S�@Q�91��@�Ȩ9ʥ@�(I�P���U��R8RK�P
)���x)ʐ(ǀ����?��妧�1�b�l#��z�q�Yh�5�����o'Ϝ��w�����
��O�����K���5��u���%�&������ZdQ8m��K�6����#A��5���)�/F�:=J���7&N_�:{��k�n,^��:��{��o�����>���98�z
G=CO�����0�ԏ@N��P���B3��bdn)2O�4�H�4B���o�",���\��}�
Rín�6��&�����I�on������D\�6v�fͶ�$�'��彾�W(
\��<�Ӓ_ >Q���h�$�Y)���aQ�1>��+�x).e¾�?�"@�8��$��x1a���2
��Y��I�92�ʀ����;�_מ]�<�����M0�mE��j��/�>a��������=�w���V.�qS��S��;�m�����s�Ǻ��ON�?yv��g��g��/�\�ڱ~�K��k��3w�m��[zX���A!0��<~B�ftb�Md�Ŝ8��l����E�u�JE��Y�}:�=]�-hÛƘYҭ4�A͒{Ac�hto�Z�eeӹa��6�_��]��뎘��X�-�hsE�΄͕F����
9��y�(X��)CT��P>̋b.�@���/���e)�d(�&��
�%�D�$��p8����j�-]N�%�VZCVAnY����D�7�҂�2�x�g�{���K�q[s���%�S�\���_�|���#�+�Jq��ǟ<���c*�ŴB��9>��Cj���'<������iF����M](|`A
���ȥ��K]�݃��K��H�B���ADG�2�BhfY��戡eu�@4�����Y�̂}qťY�ZX�.�E��N��dp��h*��Σ�M�������ɥ\|�C�)�j0
t��"����b��-�e('bo6�Ť���QJ#4��3�
�K��C�,'���T%���ҥt���T�����Z�-��E���lb�ڰ".-�� �O�){���F�b���[z�;�
w�o^_�|q���SxC̩�/O�~^������_"jJ<�#U˛Ί�}j�o�(���w�[�z!
{�X�o��Ň�>��!�0�h�=����6���W�6~���s���j=�)��禸��[Y�j�뫦e�S��j��֩۰��m��,F�^g��yݖ�fQo�������
ϝt��pF8�xc�8����/�s~\Ŭ/����@��K���
���d ��3��,��X&
ȥd������v:�*��v&_�ᜫ�
�B[�ZtG�樑\��zH�\��S7Qg}SS��q~Y�C·��,]@���1ݽ��us�ʕ�o��9}f��E��Z\�1�#_bdA�=�8=~��o��5�qg��=�N]G7(Dn��\�aR��@,�G9�Ct��J�`�\7arF���=e�k�\*"�,�H�ҚF\�Q�4�sK�g�Υ
N��X\s������%�`3y��[Kx��li6��
n��3Y�����4q)�7�q)7bƃ+J�( R� ��hП�������'��L(��D�_؇tJ$Y���D>J��SE9SN3��S障����L���m��`�����V�W��>!Dơ��1
ݐ4�<K�4��8 F'}c1����1?0��p�>p�ܷu>���Z��e�ӱy��ꍥK�琊O��8@|6�Z��oP�����r�}���͛��{�;�Ǝ.��n�^K�}kw��吥SP����#"R��R��d�Q�/���o5��0kbk뱵U��}q�8�b[ֺ7��K�-�A�Z�tj,~�F�lr��nݳ��?��&x���2�B�#�����J$,7�C(����b�*� ��_���BL��ɄC)��`,Ťh:��E�e��+)P�� 4��\M�k��N�5_���b5_��R��V����M�XSfK¸3c:&m�Ti�O�q�_���N�㓁�1�o���o�C��������ٺ۵�ѭ\���7�__�|~��������t��������һ�[��N��.ӝ^�=�V'��}7����@Tri�M��{��N��F��pj�O;Q4��ȥ�����ܐHa�a�m#�AFe�)�ؗ,A3��Z�9wځw
��4�aݲ�b\��vSX�58RW��ݞ�Õ�c��]n�����g���W�p��̅�<��}|R�G}��hA�Q��H%Q��#��b$G�#�i�*gj�TEV�Jm�p@�!���y
�"�Y
�|��K��b[y�"fΔݞ�ؒk|k+n4�0iۤ�^]�.�WV�++��E��ٌ��or\����C��!�n������{����k���&
��aw����{-��[;�֞��[�C��AGߠ�t`�E
�(B���'��#���3�h����㋖�]lC�BƦ!��ɔԭؖ�q'��giç�
�16Qav�F�����,�R��(ҢW�żOB;�N1��_�_\��Dž=�T0���<0�3J
�L�$� *��HDn'�J�t'�_��P+��%�P-�*�9�pYR�V�ٖr���:0�'m
�T��!��F7V��Іޭ���[6��bX��/�Vf��S��i��{|̃$<4�y��58����� i�g��{/j00��C
eY�%Rd�qD!3��'D!���h�(��SXY�r��"E}ڏRW����j�)k��K#����6<�Q�#m��l1�%��J��}5Yo5'��<!��~_���l}a0�'ň��@��1P(�J&P���πHT�t)�,%��j��2��M(l�Q�*;e�q�T�����N����[��#B���=��ۓr�RN�l�&��C1'�I�Iҙ]�p0���bR�;*�6�iCc^\ޚ[���p����#�:���{p���1��G�~�!WCȨ�=q?��1���S<X��=>�g~��mTę�
�)��NFc�2G$�&N�1
A�V���*��V
mz��#�DWʎ�+k<y����f�/����B���Ŵ_��(�<ܸ���y���(g�EdQ)!c>1�#F��XFB,�6�UP��ș�f+�E
U(�U��J��m���T-�k�J�\��@�n�j}��S�٭�w�`�mgw'^H��T�,<CΛ�`@�@���&M吗�$��z�^-Ww�xd��X,�v�u}�{6=��2址6㇡SF����g�<�?��<%�R!�'�],
1��Y�o�RuL��o��i>�k���r�oSQg���-�,����:RVg�����d�Ij�.$R����f=� x�a�Jy�'{�)rF�/�{n!�
/��I�����P�������J�b,I�~��(yL6�H�Ka�r&[ʴ�Y�.1T���Z�U�8�j;��.���(��Dg��Ą%P�*�����`gڎ����+�p�x"���H
Y��k�|�Z�����j\ᗞ�'���y>��!�Ơ��)��od\x<�?�pe�!��~r�����Լ��ac3
�7[���c?
�4��m��6ۚ�XT�Q�HXL�8|�����B��Q(PD�C٠���v�B8'qaw�1*��~�$$�qDj0eDX��j2^�ɵ�\M�a�Ue�ɴ�c9��8�r�+e�,s*y�?�EɸD��wk;{ȫ�KF��Ѷ�WOo˘|���b��_-pփ�j��n^�&�B����8d��`0�FEQ�:L���\df)����MB���
�y�8VbP��)x4�6�P�h�i�fX�\J
�҆4]�sD�lS��0V`P�D�R+�:���O��:=9,�8QJ( e�B�j!���rF�9��8o���?N�e�44�d(BSH�p�`$/)D�r%)��נ�O(�,�B���̕��r(��b`�,U�,
U�� ��ܭ���5}��j
-T#�
sA���1���$��������m��d>�/�˲,�\.���nۦ�YJ,h������cA����3�)�4�A�fcx]�o��S�S�(\m���Q�ͨ��2a?�qiO!
�j��l�rmF)�n���#dxL�����M�]1�#��N$�`B���ШhA':E)-�ߏ�b�Mr]D���
�rN�~9lE�"�@$��"�T
�f��JP���;|n����U��E�R��
�/�^0
�#�E�%�ހ����"��r��n(_�V3��
�ׅ>uU��61���(+���IV��8v��p��g=>��
)�+������]�"�E�6J�)��5�eː��4�9�<�K��O���
�e�7��WHz�(�8��t_���=�|HHp2o��G�b,�NC��%��B,6#]Ne*0ۨ��l+��$�L)�+Ιb�"RI��ȥj86�RD!Jc-\�����y�G� �|�m��
�p36�����yD�?-��G$IB��r�P�����)��Hi�q�]�/�74P+h�J�8FSAk�
��E^��:}�ic_��,#~�6D!��gI�ެ��"�Y��丘����Ϊ'�F9Xk�'�=!7�)4]�|�At"�
j��('�H�̩��#_@8,��?��.�TD�)�Z��'˥��y�����,(w����VF�:�hb�jB�ƙ��iF������
:_0*"�"(��@��b1�)�}ָY�՚��0��5f�
C2���0@�(��l6��2��Z@�u�����y��oƻ/�M
F��4�S�P�]�Ek.91�1�+lC̹$�7���.�!;�(�"�(�4�"�"��F��LM(d}!˥p���`�"�@�C�!���)f��ȗ�4�?��a�:=�N�\�
oO!� {�w��;|n����;%�s�����4QQ-��eI*%Tsb8)e��=�n�PCȽ�4�c4\>w̅�����;�$L�#��:?=��#
y*Bf0+�.�i�
���H���촫os�l�"�rNG�n���
�BHO���9!�F�rP�R:(�}���.�'���3��
�h�a���ĀR8^�&�!GiE�,&����N�TIV�i����BSy9UHQ9,SD��TU4��3h���@��9���2:��(�T�:1N�W��J$R G*R�Ey��z�����'!J�(��N��Mr�lY*`H�$L��b��~�ܗ�L�ꔽ}�(��^[�b�Z)��[��Þ��Rn,a8S.W��)�=y7�'zAW��l���#�-�-w��p�~�%�@��&�U��0��
�"�ԅ�dP����2��F-��Mm~��Jd9�dgV�����
:�;�6�ZՊ��1���/����w��m��5��ۢ�SJ��+�Q�Ql�T´YT��� ЙDVV>@'�h]��g�jrv2��6�0�y�)�^�����k��d�#n��gt�]����N8X��˂3hwmR[3�3�`��6�x�FfB�"ipɆi���P�"�L3�&��5
:AD9�d�KJ�JD�����!����Z{�?�Ѓ�a/�N���.��H��@�
2�ћ����OS>W��E�".�������!�b���Ab$�A=�iR�}a㐴{҈?�e<`��=h'x��.�q�{�J�O��C%'�q�W<PE�b��S���X�*=���D\�GmY���@��RЮ9C�=5��"�Qƙ"#���
"w+ս��n�;��B�U���t��*WK�1��&/
�)0�U(��6ǩ���Y,�l��?��D�I�y�b�K�S<3zL
>��1�P��C��1F��J`
��ٱ���=����
Dᗲٯ;���B�P�@)�%�B,
]�@��/D��0W��BW���W �5�:^8�l9�)dr�M
�f�R`�1
k{Uf��H\kϿ��9��2!���mC���$���
ذ�������G19�Lgҩ�bD�{K%d�$�d���#
�Wt�V�͂c:���(L�
�Å*ub]��24���
��RV�8�߉�n0&r�ݽ��Ĥ�z��B��C���0AJ��ZP�}G��Y0�ʮJf��
�leFD)~��5�mR�����ی<�wqخ��
ͽ*D�*P�C����'�%��
�����z>���Ë�7d_Qi�mr��D:�NeSx�x�8'��ր���(�EaA0(3z���-�Ki� 4~�G�;��.���w�y�8!���;�q\t���h�P#��H˥q��PV��{1�U�8C�v3�?��D6�b�d�E]�[���'�u;e�GQ�����B懓Mѩ�I��:
c�6���h3�LH<��I�d��� 4�(���$��x!-�4����MQ���6-ػ�p��n1�����Fێ�7<.�U�F�$db<��0�1��5��0%T�Q|W|�eJ�pMal
�(
�T��1�tJ�����Z���R��f˔��&.)������~8?�'4���N�yD�B�b�H�����7��?�b�H����N�?�C�)�bH�Q,h��p)��V��T"א�-�uB�H�`؍�a{� !(�#�q�(7<�Eol c�BA�9�Lj[r�(D�%9JY���ejET��|����"^]����f����on��D�o�����ɲ
{*�țUӖ�D+e�Ti�Xޣ���:Z�/h�#�p`DD�
���W�EFL#�
h�*�(��,v�iKW��cݛ}�\��cq�"�;5d�(��uʠ��5(dQش�A�����n��U�f�/�Ӈ���6�?b�+�z��$��J����ڣ��T(X�eTbt_�����l�4�ՠ�U9A~
8trh�a����7Đ�_D#���!>zY.P,��Bm�i��"�3���ؕ�H=>Z�*b��N9�T�5x�K����R,*̵����1ͧ�U�Y��+B�-��G�f������4��7��0���d�))��0ew���=��]\�{�R���)$7����4��H1����x>�($0r�a�O���
���F�������:S��]�Z��m�t6m^�R�
Ph�j�*�߆a>E�2�'9�dv��~�{�W��&%[���G}�VNT:�"Po��;㩇ث��@a��E^����>����]��
T�h$e�&6;���-t �}�~~&zD�)[t#u
Q����u%.)4��F�P�}i�pIM���%s�I���?ٷ�ҩ,P���ߠ
#77(_)0�4��)20��EB!��Ʀ��/c�}��1�W;E���jvmI���Eq��5���(��!:�
���!hkd��������f}Ğt�K�t7k%Z����U���?u�Ԣ_B�y3� 1�&S��v��Fwx���Q6kv�(_����8U�O���B�:)�R]����ř���X!��.�{J_E�f�䦶q�d?K�����4��BU!�/h����N8
���rM�Vܔj�6X$<��m�Dl��oi�I��(��Q�q�}aZW�������Rh����Rq�����i�C57B��Tz�B9U>r-��A]�JS�Moj��G�+RM!�L$��/���;����t�d��h��y��Zi"�=�&��B���&U{�S��@9�Q��1���vx��g��?�/�n:h�}:�j���gʐ��P�Dq
����7�k�Rw�
�&�f:�������V:լ�2�RJA!�U�7�E4��?rh�!������N�
M��r���~�w��¨z�Tq�Bg���&���b�Hkj42�^B=����L��sȘ�fM��G�o]���Nz������E�i�ѵ/�ar�6����}x���Z�ӃN�}�G�P�
u��m��:���Z�$���3$��7
�W�6C%�<�Oy�t7����G��]������=7:տ��A����TV[�G��?�s������/��{��f�5�,����w��w��?�G�����C+T����N�9c�?�!��=���ʋ
�����(���q}yt�8�痟�܁_�In�O�K~���?��Ο�6�T���XN�C��|IEND�B`�PK銋[
�_�A|A|"images/admin/rstickets-pro-box.pngnu�[����PNG
IHDR����j� pHYs��
OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR
RB���&*! J�!��Q�EEȠ�����Q,�
��!��������{�kּ�����>�����H3Q5��B������.@�
$p�d!s�#�~<<+"��x��M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!��
e�Dh;��V�EX0fK�9�-0IWfH�����0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4�������x����6��_-��"bb��ϫp@�t~�,/��;�m��%�h^�u��f�@����W�p�~<<E���������J�B[a�W}�g�_�W�l�~<�����$�2]�G�����L�ϒ �b��G�����"�Ib�X*�Qq�D���2�"�B�)�%�d��,�>�5�j>{�-�]c�K'Xt���o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A�,����`6�B$��BB
d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$
ɈQ"K�5H1R�T
UH�=r9�\F��;�2����G1���Q=��C��7�F��dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"����V����cϱw�E� 6wB
aAHXLXN�H�
$4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�,
+ȅ����3��!�[
�b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w
��Ljg(�gw��L�Ӌ�T071���oUX*�*|��
�J�&�*/T����ުU�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_��
c�x,!k
��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6����E�Y��A�J'\'Gg����S�Sݧ
�M=:��.�k���Dw�n��^��Lo��y��}/�T�m���GX�$��<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��=
���Z~s�r:V:ޚΜ�?}���/gX���3��)�i�S��Ggg�s�K��.�>.���Ƚ�Jt�q]�z�������ۯ�6�i�ܟ�4�)�Y3s���C�Q��?��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�����!h�쐭!��Α�i�P~���a�a��~'���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl�������{�/�]py�����.,:�@L�N8��A*��%�w%�
y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L
Lݛ:��v
m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y-
�B��TZ(�*�geWf�͉�9���+��̳�ې7����ᒶ��KW-X潬j9�<qy�
�+�V�<���*m�O��W��~�&zMk�^�ʂ��k�U
�}����]OX/Yߵa���>������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n
�ڴ
�V��E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa�n��{��4���[���>ɾ�UUM�f�e�I���?�����m]�Nmq����#����=TR��+�G�����w-
6
U����#pDy�� �
:�v�{���vg/jB��F�S��[b[�O�>����z�G��4<YyJ�T�i��ӓg�ό���}~.��`ۢ�{�c��jo�t��E���;�;�\�t���W�W��:_m�t�<���Oǻ�����\k��z��{f���7���y���՞9=ݽ�zo�����~r'��˻�w'O�_�@�A�C݇�?[�����j�w����G�������C���ˆ
��8>99�?r��C�d�&����ˮ/~�����јѡ�m|�����������x31^�V��w�w��O�|
(�h���S�������c3-�
cHRMz%������u0�`:�o�_�FqlIDATx��Oh\U����NjD�E�-�B���XQ$��(�V�Z��"�ܸ��B,
ڝ
�t���1X��BP,5b�-M�&�Lg��7��=�x��I�`�Hr���w��~��}��77�m
�o8<��*�6���x��^;��䟶�����?�9�O}�O�
��ml�N-�:���2�h�re�����b�pؿ��r!�U�"����mu��V)]�������"�,Z��
K�9�t�bcC�
Mt'�01��rs�(�ЌZ�3JyÜA�X*澣;�k�20W^@CC�"&|���B�z�Fc��7��CU!�A&ue�
}j'�%<�&��"^y��)�A@��u%@���h��&O/"��UAըM7k�䞏�;����$�'���?�K�\Ex��oL���~o$�DH�+�rQ�{Ame_]#WMN5SCU�O5Q1$�#]
���{Ԓ4���������T�oϽ�]
ԓۚEb�NJz��|��M��|v�v~�-q�+����J@��
��u�4<"ʖ�����vQT���eT&j�]����瘜?���<�����Bv{KIE�5AÐ��4Z�w�)���n��u���G��摆
M!�+ķm(���HC�=��6�,��Q���U�͟(��+��*�H������Ԍ����!_�q<7R<����nr����Ѕ��ϵ禆/�ϼW����O6ݺ\�Wj�ʉŵ���#���l��JW��?J2眥����si����ι�Kι�SH��ιюu֮����"P�tp)�4�E:o0�0�Lsk9���]f�����>J�����|Ǣ�k=�ˀ�tģt`OR;�’�jf���L7���H>�V�l�����Y#�f����ͬifn��dS�_����ϋMa��sι3C�$M�6��44D�,���a�o����,�b�)���
��4�L2��s���}��x�����h,N�}���{��y��s�9[��w�N�j]G�����z��.ݗݮ{�[���f�x�[��L�8|(u��>!_�/�>!��"u�B{�]��ep-W���R����E�.��Q����mW�>�?�:ڡ`_��E�x@3
�*�*r���m�?D�?�@>
���b�'+(��@!�4�I�z�ҳ[X%��_��`0�z��H���~��m�g�!k�,�t3��}X��f�7�촳��Zd�=��U�:n���)�6��f3�Zφ�_���
�J)�]
V�j����)���=�H�v�t�u�l��-�l�0�m`�����a ���7�-�?�ۚyl�`��e��,���!Q�p6<n"G�0�_���Vq�[������[�ھ�T
L�XR�����ViE=��~C
�@��f�~j�/X4�Sc�:���je�g��9S��.x�R��-��C��Q60���%t��/
�k��*����U����Kj����0�l�/�lx�1u1��wH�[����4zr�^�x�(��7=�_7~f�{�4�"B��t�y�䙛��w�ϝ�=�{D�?�t��:��}ϵ���3���㉈vђY��㽘��/�k1�3�h�4�~��k��c�w%� @w��^�K8��������S��ȷ����si0a�w �S��΄ő�_U��Yl�u��h�{�_���Z[lTU]{�Δ�
�`���
�@�@-��"�<�B��T0T���#A���!
&&����Z� ��1�W��N;-�Gg�s������F��h�LN���3������d[����7454~��|���?.i�/���.旫��Қ��2.=��K�/�5�����yE�B.���˪�����#sxQ����S?=�'����W�����#���g���X�N�G;2?�ca����t"��K���쎠�R��]�w]��b��۞�/���R�mG[�ݩ��_�`��6�||�(�@9��^���#��w��pSE���r(�k���q�+
�Z�!t�;5(?�-��)��"�QP���4������^w��7��F��H�s�oH��
�J��B(ya�j��q�@Ⓣ۱w�Q�y?���EU8PT�gr�5���a(�-[�{��I_�-��:x����h�
i+�WW�XhzmD
6a(�]�)���AL���5}y?*jw���0$8L[OXi�����//c�g�;0�z�KH���X�O;H(N�J)�>�S�Riz�|nW���'�ǕG;�@<�� P: ��͉I��sc��U�<c��no
i.WJ �G�9�L���"�8�x
vֱs��
ޛ=�g��, ! XhѴ���T
���ph��u�_:��E�*��)e�ڵ�)9%�=� �P�!Ys����-캃�Yl����P�1�)������fz��C��*�
s�b$H4$!mMC7���f�W��
��) aK�;�W�up�LEk��/�����M;��˳O(�7��N"���,y*�Dc
��YyH%hĘa��N��$H[w�l���or��w-�'�<�uEo�x~N'�n3���#X��^�p
=vB��ۚ�7�8akۦ�����>
F2X2�W,��m��wk>��r���V���J2TR���X��U2T�GG��#sH�$lc
�{���T�I��#%!m �_��$F�rQ��TR�S 6�Dpk�q��ޓ�]�Q�ӱ&������1Gʰa�DLB7%D\��$�<V�*�
�_R%$d;�I�0�w����V����|�+�]���ST[ȵ�""`GtRdTBFDTBD�c=��B�U���-m�����G�k����m�n)�KfKݫg������5g�~�Yj(;G�e�(�Z3�6S���Լ��&#��/��dr�_x����~����&�45�6W잷2���.�o3�!�=��c"����f�{��1&���l"�$�܌���1���̭0~_��~����њ��fs�X�mLX�7�
`�o��w����3��.6�Y�Zc|@��~:5i�ݬ�f��{<��=2����9H�gL�0r��3 `�p�zМ=}��If��R�i1�SMl�y�4�Ns�=j�^4I%��>Sܦjf���-+]�x�>�˜t������f�g�@?�+1��~8㬦���~��#�x��w�ι�O1�o�
�����
��*� %�q��u(��t(��Z�NG-`��(����:jg����T�/:����h)t��u��/U�K��0�hR$����}����9��Ͳ u��A7�;���7��<�9����=���{
�^���k�5�u�smV�6|f�rV�ܻ�j�,�O�_&��KV�,��-�e���ɽ{?*w��e{ng���d�">j�����sm���
�FTL=��i�:U*^��:�S��6QF`f�.hS�b
/���)�3�SI�^�})�4��)��>��4�d�D?�x��_�9��
%�<P�����I'�I��39�3�
f��ꕝ��P�P1H����}A�����|%�81��)�g��N'P1l֔ga����R9Ol{L�mUh����w��i2�X��B�4��L���C�b�����"�<��+
�9�{���8�>}��j��J6�t��Wr���I%�<U���l !*�Bp�(g
J;�F
�����I�s����
����Mz��s65����:����s��%%��C�V�ӽ���Q�y�es��f8�e�#C�l�T�J��eJ�#]��vjU��|��"Z#�zц� ���<�9�e�½����[�Z�?ľO�ϋ����)!J�A������g��v�OB)І�ބ���vZ�ee�;l���e�<n�:��~�k�3��H�;�R�`��|�.�-aᚕ�3!x-®�{�����&�z�D`���y�+��CG�t�B��W���0�F��
36W/Ե%t'����X�I z�[W[���DG��1�lG6��
2V�z�~�z��* �D2#��g��/�
mJЈ��]�����!ӑ�x�d4�`��(v�#wp"�����n��h�B����ˍ� Lѐiϕ��
� L�N�#d��@V:�.M$��`���l>|-�O�
���`ƅ9�s�.~ �Mw>>P^=�s�
��1̑�u<��;X�"h�iR���&r<~�7\��+C�m%x�*�������w7\;�vXhq��:�}ȶ�%c�U��t��7�8/��z���6�h����(d�� ��W�Ln�w�%���".ڸ �H=��p6�M��l{�%
d�s9Y#ڎ���h��?���ڸ|o��4��8��tA�y���+]s�9�='aZ�M��
�XmX�#�kb����v|���;h|[�$��Vk&�$S5p�/�֫�u߈;y Cԛ��5y����v�}�����`m���p|�s��XF�.�/r唷O s����4���1���5i�t=Z��g2{�Lf������!���VGHQ�oO�R݉��߿9�.��|)��_�%�cc��4�n��A؊)���A[X߀]oZbg���~���h̘����-���5��z��|x�2�o�r��zW��ƾ�O�e��x�"�P���4.��R(�Z�`�~j�|�7U��j��nA��8h)��QS���[z��M���A@��j%VS�
�Pv*o�4$����(�5E�
%��-��E����4/�}&q�� 3�.��l���b�=��8�=q�~��)��Q��({/PtJE8�91��O�k����Bx�v�Η��w)ə�-ޱ0y��
���(��QYO����̆x���ilF�e�А�k���-VLZt�~���&yW��3��nP���>�>�|vS�VƱne\��������GN��kO5���ln]��<p(�����'9���4�=z���;�u�ҿo�Q�W*�9��"B���Ji�W��ufs|g;�u��Ӵ̉�� �S���?�������#��'��"�OTJ=^&��_���F)uODnq�R�)��)�J�G���K��Uv3"%b�H<6��o
d��F�r?��e��*
X�-�R�籲�p����%�$rS��+<|h�w�Y܈�XZ�
be���J�QY�y�Q��[O�Fڿԏ�O�?x��X��O��$�q�a�J�-ե�zd�r�|[���cd9��+���_���8��n;X�ֿ��c�=�f�
�i
X^�v8
�0�>Wck�z^�30�*k�:���:�C��X!��s�-n�R�5h��w`��ܑH�\`ph�"C3
���j�n�@��q]�j�C�!������2�`��f2�3[�����e�\�@?��l-�R,��(J���$��"�@�s���9�"w�?�da+(��/�"l�|���9�~Nd��aTY[D��B�"_�ϯ+��d�m����q��|�
�^���k�5�����{�U�}ǿ�s��GC�2V$+(����R�
jd%P��Ě`�b�M��+5&mҺ�(u��jbLb�iV��44(�Z��a��13�̝�w��u��������{�38�(�=k�{������Ϲ�|���?B�8��%=.��q�E�K,z\b����q'�H��7�t�VKb�����'�K]�5
��iXv�ꆏn]�����f>ް�W6,�Y�s�oW�\�;~��c;��;>��;����`َX��,��Bo�
���^��$Ks1�I��.�G���
O9�{���������?�OWS���d�|��R�.Fˑ���y0�{3�}6�{G��W4k֤�����(A��J̐���㣨��CW���!�2t��v����=�^��dГ�
�݇��4T>��>:�>��:@�
0|\�'=�����/ U�t��=���+Ӎ�L7z�@�KRȢBy(!L�*D�$�%U@of�T?2]}�M�#�яޮ����k�觷\B�|�M��� H�ct��Й6ȩ�l(%a�0��йL�OFNfHP�㡄��̫4b�:�i�R_��G:�͕��_$�!ʃ!D%���ntfR��.a�S(���y"t�b�
���Id?&���|D���)��vEI�m}��9ȃ�C�K�~�冈��h�N���Ê�&��\Dg����ȧ��e�[V��@�<mh�Wh�'3m<��0d0y�X:�Q���$�2܂@!;Xd��8�O�g�Lؓl_��z�zC.|Z���Pl�E�2�i��}@�%�c��Y�4��T�[����Axl�`F �:y~�w�9Ţ�g�4�L��P��t7z{K��@�l�#4;h9M�]k9�$|"�%��K��
��
�FW)�Ќ ����1e^]��M|3�t�ȥ�M� `��EG���!� %�#�#X"�IA��Y�/
�Z�?/����y
��_c��B�ڕu7a�hA_��tb"��!41�]���`���=�?�[7���όk��k��<�@��=�i�
����i鋝X$1[���G�^�l�^�ۮߍ�S/�Mϭ��'��˟x.{�}x`�=X7�3ص�5���l��Yd��#(����?6 r���\']�W�ų��{�oz7'� {���;�FQ�!J�Q@ˑ����/\��-} E]�}�~�~,~z��C5b��T㓘�oƯy�O?�?�9�����G1t�s!bQ23���g �u884
"�����ӓ�K��=z5[z)���A:��㐶�����NgfY��W���W��ç��v��ꦵ�|�b��ӈ?�~9V�C�yd��B�-�5P�l�� �;0�`��ӏ�<R3�t���a?9���)"G���M?�#�#��m��|�q����a�Ɋ-�Չ X~��EF�9�lK�tȲ�@U�a�چ!iʂ���ށ+��
��.e[���%���b���:����#�-�����_|a�]�d���lŷ����ʸ�$�?��|��0�a��K6���ˤ(Bt�X�%ڇ�F^���ƩŶ���5ɚ�h���$oXu,�Վ� �U@x�J5�_���C��0����%#�Ji�\�Bo�EU˝+Ʈ5{g�^�>9��%
�]5���N��С<r�E|D_X�m�an���@.��\.���'�������Kؾx>?����bs����ƒ�r��܀}�7�6Yfۅ�
�+w(�ls�ȇK��o���&:+s��5�
(���Z��������|�b�O)6���cK=ܲ{������~Ӯ٦r��?c�}������y�kx�E�v�Y�R��N}n�����G��D�϶Q>\4�b[~�0,�?`䛍�:����{�o+�CQW�9�M�'����8$$k[k�fZ�P��2�2�
��q�M:�0:��w�|���Vl��`n5�
�\@��]�(���um�o7g(�@i�� h$��S%�k��F�Z!m�k�+�}w���r��Rlb��+�f��7��/�Fv$�i�a�0S�E������.��܉�f��a��J��U*�n�vMP���[�Z�����]��_���s0w�{�̘��E����|-�h�Hn���3����Y���f��k�
�p"�/�?�i�R�Ɂ�b
� T��i�!WB�X"XTzxW�I��g��}T_P�7*�u�N��aC�Ӓſ�z�]ڸЉEp���M�6�����߲��g���F�� 7Xh�,�X ��Ji��p/�"��}TϬ��^$�����7���M�M3p�ƈ�~��c��#�D�Ѧa ��X��-������_��[���D�".��}�,`+K_6���D�?�G��$�)^����*��K����V�|k���d&@y�ށ7i�1�E�߱��j����I����ʈ]�Aׁ�.2�%��i��JC3�t�+&�HL�#���H��!]�ݶ\N*.1�/'#���8rV��=Cs�J]�T8����]�8��/��JФsjB�*h��2�"v����P���ؘ؆PT�
�$B���)�Q2hT�[B���BAĶ�,��"��>"���_�mL��8؈��}��T=x�����3�N�!�H`Ut�
��y�tl�al�Pb�X��`џ�jF�$��D�} $e+��%�{E�ٱ�%���2�zwۆT}�#ݫD����L�5�PM�ChJZmUu�8RCj��;�K�7e��!J^Ab}Q�69eYA�WG����7��2C��A$�.��E�GL�3��
7�mHշ?�}��݅3��)�{/q�hj���I_��ڃ���TN�(q��yU
��FP��E,��oJ�4v|T�:BR�7bJ�uh�ac05�U_m��U߶15=�T��c����G:1s�-M�omS"��̥:��U^�s��u�r8�:��2�h���P9�%$��Au0�J�[*��m}��^��������e�>��N��{�[[&5�k�ƿ>L�?�2��ܑAV�A�iNCPb�s�]��ޒ=�����;�?�Y�`��
����^""���/�$E�����}������(��(\��?F���C�'�?^մ�xu��U͟i���h#[�|�������~&]_�Y�+Y�T�
7��W�5������0�?������\�W�v�:�H�K,z\b������ѓe�^"z�����h���&:����a��N�S���D�}g��i��P\��#"�Y.AD�^��w��z"�0�>o$�C������.S�0&P7ʈ�\
�L��,��h��
��ʺ��̫���$q����c{\����ǭw;��&�/k�v��9�G��`\��u��
��K;�:�
k�y���_֙���]��d�,7U���"��_�Y��q5���X�
�q��>CPZ
�Z�d��l�l����70ne��q�������֙�m��3��,���6D�S����_�dY�59�oO����B�_>�;O~�R2�#�9�*���̲��s���^R��?�r+ʖ���3=(�/��/���7�N��"��јu+�E"�eC��|��e���7��-�`A���!9�n�N�_��%�W�#�Qc�d�gCr\���BQε.�R�6��4>�� i�n��5¾���[�=���bw��f�~7����q!�se��R�h��IQ��R���+r��:����;Fy�,���ƣ0����7���x3^�lcj���-��҉�K�٬f��a�3�
':U�m�L7K*��|�}�m9���C"��W��:`f�:�Mg}vҠ[�+���~�U����>+��4�W$8*����N�lC�c�x�s����=?Yg�u'�7������s+P+�^U)�$e�)ӄ��c�X���f0V�Q�2r��J�1ٙX�{\��|��~\ұ�k$z�k%�=��r�l��w`�S�ټ@���Y�M��b�g9�n�,5e����4�E0極��;i
'�(�R�o�B�~f�.��ێz�m���b�}�a旬Ud�[�Y���q����jqW���k��wJ({�����z�j�r巊�́
�03g�y3ﭴ���L|G..��q�E�K,z\b����3��?{W&Eq�ճ��*(�,�(�D�� o�x#"J�h�/扟���� ��1���A�E�)*�ZI�E�Y؝cw��ݝ���ު���Y�#����S;�55�3�{类JvUNvUN(Q� %�'���PzB � %�'���PzB � %�'���PzB � %�'���PzzB 軟>�z�N��V��U�g��g�3/��_��O�8���W�]�i������+�=>��k.��(wY�tY����o���e3WM�{ƪ����jj�%+��Sp��ɘ��lL[q.Z~.Z~.X~:�_~�[~�[v*��u�.=S����K'��gO�Yϟ����p�K"黇��v/l����p9&@�`Ox��`�C�4%p=~C�"ҋ�c�ቤ�]
MD�?{)o���@*% Rz�k����>G
H�<{.<��<@`�3��W�� �W�\A���0�DJ@�r�)���'��<���<���c����r��5]�"����wh"��G4�(�y0!�Y�=(
�Ndr�HgsH�r��Z�˶
�mF&ӌl��L�t��47�њkG���iM�a�
j�$_��� �{,��'�t�RE��t.�t.�lK
�.�#�@hiv5@
@���:ڻ�ܘG��-��Y��N@��҅RB�P!�*ܳj\�znmkGc.���6��Gw��G���J����ƃ}�R�G>ݎ��VE�^o̓���OK�H��[<y@��M�9����Q
��8�z�
���@�J�mib&�l�B˶6t�u��W�:%}�Q�M{�l��4��[ј�@�r�
�h/�#
���S��ҷ
��3ү��](���~Q�Bx1��nt��9����t��&�4Rl�Q�l�恀TX͛�p��A��s��})��L��·UQ=����CP���Y@���tK�����p�p�y�D�\Ӻ�$��8.r�?a����T�[j��7и:���_�$��D�jDpd�-����5�*�ovo���V喇�3>�
��^q�1J�m4����kt�
W#XO.��^г$h�x�%IRw2K�v�4p��4�`&0�F�`MP2[e��#`������X{Oքhf)��n��^!,�xH�r�75gYR)���*�\
�t�ހ$���u{��L/�_���"�O@�#�^u�#=.�bò �Ǥ���0�J���\V��,���^*#��Z�]I7o
^�x�"����N@����/c%���l��A
n�p��B�NU.���m�`'��-:����fP��s��������$b�V��k���J���8h�E�0�n��߀��e-�Ǭ#�v�5��k����2� ���c�mRh�*8N[�4��]���bw��Άn�P�/�����.�t��)�5��ΰ��`��U<�i
A!Me���Dz@�RP�P�39��q���{8��R��֍Ӫ���Ɗ�/c�b٬�n�Z]f��³c`f����\g���ݏH<�I0<c"ئ��MC�:�tE�-�O��]�Nm$��.U���N�t�Dzi��7'~���k�?]��^��EȂIxp��7���H� �C7�=����Z @�BW�[wE²�
�x���{���'g?do�`��8e���p&.�������.8���ϭPsV�}�ű�[eH��$>p�(�����{3�7H́�O�_{�K�m��p��Ūt�q��^.K
�O�>2Bz��y &-: ���ǟ1��k�r��K1�� (J����i�E�d�+H<9N
���Q�B@�/B� �5#��ڑS���s�ѡvG
�վ$ia���U�ʀ��N8l�_��+nb��p��+��
6�����b�Y�R�Ļ{�Z60�ѕpN��B`И��0��$��
�!���x��Mqx%�K�>�|����_}K7?�+�-�D��W碤�rK��C)S
I|H�9�>�A6�g�=�0��8t{֑��k�l�ݥb�1�
�6��J8�ND��x={I����Wp����G�jCk������<�I��p�8�p����Î��q������z�jԤA9�j/��T��s�0�g�Qp�W>6��~q�
"��T�'�c�<&�`AK��]�>0�j��;EA��|[[�T��%��p
N��wvps�/���9���[)]�����p�8��7�7��Ab�wگ%}9��f��+�6�-���R���Ot���8�Ա-̦ܶ�����a>
y/p���8��9r8��V$C6�\�-�ɥw�k�/�2��ls->.�}-�De!�nR��zؖ³u���~�M����)2Z�J|��ɐ*�-���8�R���U:�H�9vF���#�����.tu9c\d�~�ӆʣe!�vழ�Wc㛴��n%����3���o�>&40B*w��6=p"���G��G�{p�}JM%ȼ²H��b'j��>{yV͞��*��I/W�Pl(��N���w�1�����^���o��ǭ���9/����8�+�y���:�Ȅm�N;&�c�����/��"!��N1�v��W��_|3p�x~S �E��q��fCI*a/�c��꽃H;q��vp�V�7ea��)b�wp�����^��g1H|p*�.Ն��v��\h}�iS�jw��="\=�ژKG���1tDE��ħ}Hǫ��`Vǚη���F�ZWP
������"@`�qs���Y �
0�������RZB���~*��W���;����;rx���;�\J�Bn��ګ��Hʓ&;��+��?�G�
?�عi
ecI�+��z�ӊ�JW$-�V�U��Na���.v��]��JWo�ʗ�t7L$���I��|B���앐���M�l8��GT�;4�n��1��)�����w���pr���$d�(B�L��1#�myT��
߮�ㄩ��3|�o�a��<�01�!�N�=�'��IJ٪���o���!����y��?`����נSB�X5ȉ�ÀSo���
���7*�p���lwR�~ڇ�&A�����[������ؾ�0Ъ\�G=�)�OE��b���wFb���=%n*����y$k
���$
k�� ;��IA�Jȼ��t}��j(�t�d`�
�7�;N�����=/�?[.�;x�������*ܴW*��
�2͜1ni��s�t�g�ՓD
5�@ʑl���((!�i3n��&[q�7��e_ņ�zLx`\/��M �ؐ#�f�B���Q
��^�cRT�3��_����N:�`�RI�r�.U��v7^w�h�U�s�zx�
��L���P�0�p��#��BT|��
��d�Lޝ���BUM
$U0.�J�J;@J�ǰUx^���z�j_w�;x�.7n��7n
�&U�Ɖ�v��;c�ŭ��=�~�G�(�c���*���IiZŒC,�pm�+�0��NN쵄W�ƶm�� ��z=I��"d�,�F���l�.ym1ӈH)..�FU*'�H|4�m=jk��7=N���c0~�h7o4���q?�Ÿ�b�]�h�j��ʜ6��=4�^�-���gF�(\�Q���I�!�b�M�.Y��G.��c�@x�{=n�j9ɠx/=xh�h)�$l
���S�:�!�ۋH��zP��W����|V���J:*��A"&�c屪�z8E2mnj�.�V�:qL3lӣ��F�����f"*���-9����x�ZD�-��65�LaO;�;�[9m�t�2�.m�ա~�g�`��Q�ץ_+
���C����3���|e�I_���j��C�Y��(�x�opW��6�`�e�=��`�ϒ�s�}}�us(�
��T֛W�X��
@Ie�-He%�8�J��V���ci��j ��� 7*=
���
�3'2?����]D������i'��}e�cOYIg,ހ����P=�J
�Ѭ�Gn��.]o�m��4>���߳
}��&�d��Z����;��B��n�K<�s�^As�^�v����� ���jXQW��!�e��/]��-i/ەЀ>L���[���
�U�7��n�?"_Y�V>;pRY&��X�3�F�K�(��TR/�[3�&��p�i����f��K�N�
/���֗%���l����7��MU^j.ٰMK�bɷ���r]f
�ֹs�>��W�Vk�1k%��0&B"ȴ��a��u,��:����SΪ��u�����ƱST����%��k
�j��9���T(�&'�j3q��y���J���=�h�/�A���|vCJ��5��pH���|�������o���
l��k9'\�z�&��0?s݀}���z��Yռ4Tac���C'�Tj� ���3�J��(@K=g�A��
9s`a�! ��Ƈ�G7>��@�`�2�=��wl����{k��P����%tGR
��0����7c$��k�T�J��h�x�A�ص�xQü�8��%��v샴��&��
�v���d���q����~�/
�0ZCY����<Nn@��M�i
�2#��ο̃'[�Ӿ��d~��_���j_[8�|zWI��Y��JK���Y����a�d�I�jdJ��nZ�HntÏ3������n�k�'� tC������ׯ��_�4"�t��6�������~�I�#���6�i���7l��G�
�f��geK�~�������3-k�ݫ7\[؆k��pM��
�n��������u_����Z�
�խ��Җ�o_�0���Fn�q�ͷ7�@�An���F��h���ݯ�#�
m+���쒆{��z���濫���kJ���GA������a�7�a˂��cP;W��JDT�W7\s�K"� %�'���PzB � %�'���PzB!ЅO !rY$�xTq�b�1�+B�6! !6
!&;���X�CYT�K���N�m�>x\q����g�G�-B�.�8���.�xB!�����6q�~)��\.p%�G��nω0����,�����5f�Pfq��O�a��`��L�is)�+Jg� �*>?��/�)�!�+�o�4��Y����*���Nݙ�>��w�S�tڍ����6x#����}j0}�'�C���WX�If!������
��� �:��"�"��E~�u�<�X+�
�F����[���S|=�n�<��g��4>*���p��M1�7^bP�o��LՓ 5���~8�ővf���@��5��}�����68+Oǁ�C���o�+��bu|��2H�6�gNv����.w$]E^`-����}> �v>����2��ɺ��Q��w:�N?p�i�S���^��=���d��un�$z���R��|��\�P�]�Oq~��>�~]�x�{\g�9��=�]�Ӏq$����L�v����M?�7�S�8��G�3طX~��3�_bU�#��-�Q7;�V~��n������<X��=��]րW�w�Fwb|�_�N=9��9>#�>�,-\tw��IN��N���fl0q79�?���!~���0�16��^<@��{;M��B�?���C�~��B�_k���_���2�3�z�-_��^��&d{�;F:@�+�sw87?����
��}G�O�����Q�(�Q�m���;���
WAO�(�k���H���>Gr|�s#���9�ހnv57�q�L�~�m����`W�K3�t�N|v�w{h���kN�Q�����M��;c4�
}\�)0��Vp�㗌e�
��xo��ހ~�dA�8��b�<�t��#��S1ΊKc*ԏeg�g���
�^c���(�'S��F��������{�Wx8��p*�AG�P�1�ݛ�FrCï9����Io@7v�éw9�?�\�6�Q1>��ЍN����{gB?�F��8-&>��s�`gmzO�bS��Kz��WA�w��\�l�s|���%N��ߑ<B
�5N�ަa�8ᚱ;�q1ޛ�t��[v�S��-��g����'{�q���X�Ǽ;�[#��d��Ɲ~w�a�;���{��&�3k�
�h����,��o�s��'��썛X1���C{�:1�#=|��c�D^M�|�ñf�ɼ���tзف����>��D�DidD��R�a>���2�{�����8�EO44��⤋�bG�q;_�M���G\�$}�@���1q��H�t!�ײ��|g�a�����n�����=���G��1�np��i@�82�y��K�>.�3��>�Rɂ�̟��Sw*�M��_�vѸ�^���#ک��g3�Y�Y��m:����M��:��=�~3-!�M<˴���J��L���"ZJDoV�G'_�3�[�y��#�D��h=GD
1�k�c>o�ۙ-k���B_vV������W67Z퇔����PzB � %�'���PzB � %�'���PzB � %�'���PzBۥ�g���䨪�w�g�2I! L
��
[ؔ��@�.�P��,""��(� ">���M�EY��$�@dM�:Yf�����z���qϭ�U]=ӓ4���%ӵu��|�T��Y�V�6�l�t���V�X7Ί+�V�X�@�bŊ�+V,ЭX�b�nŊt+V�X�[�b�nŊt+V�X�[�b�݊+�V�X�@�bŊ�+V,ЭX�@�bŊ���|��>�v�ߦ�m�y�߾��)%��Sq�8g��3�s�O�z�)3ϙ?�s��q����lg�?�og�?���~;}�d:}�d:M�7���o|����e:�h��;6ʼcߝ:���;�S��۔yG�)�yG��yG��y�p�\�N�s�ߎ�s8��s&�9����s�qs�q���^?_~�|���U�}�1�Q���I��#^����&��?��6x�@��YJ-�<@D�HBr���8Γppt(� �@ �I�[���p� @���u��J���������9��v@.�YP_�co����"�����@�?C�$0B$�D�A"��Hp$p���H���N8"�6�#G@����
A��#���oB�}��vB$8�~+!۹�`9��n���@ߜ�}:�E�$I�����I�a@9���G@8[lb�:Np\����8 >A�������ۇlw72�.td�H�;�Nv"��
��@2فT*�L2�L���.tw��;ۋ��zsy�.H
��I+A;4��,��������[�o�2�CPn����@�]�
�`�*<�$�k�0�����5w�B�����2�hK��Lu�-�F[:��T���]����Ao>�|���W�'%$$�!��
$!���
I��(���y����ՋLG��H�w��=�L[�,:ڳ��!_pP�������
C���@�d�+�F�8��������";zy��qG@�Dw_R���4�R)��S��d�[�ABr����v�K���2�wB��)A�z�\|r(���s$�|��>t&��i�BG�R���E$
�H� �
i�/��b���$ ?#@��&k` ����Ю��ǿ�cp�H����d�hK��ڑB�3�\>I��p}7������B���C��!
�, �U¸�`�v���.z:z�iɢ�%�lk7r�yH��%0���qvY���������
!En��=!p���P�#P�E�;;КJ�=�Fwo\r}��� �x��c�q`@�c�2�DX)�#���,AA��aCp
Z�Q�އ,��"�@�����nt6w)��D-
��a�������@�IЎ·�$�V3�mN|!r��3i�t������B6��j@h���#G�X�����Zx?���C�y
�x�8�:�
u�5@Q��$r�<:�����U���=,�����X��2�K��
�Np��<�S4��P,
��@kG��.H�J9hV]P`�����A�Dog�^��A�e"�.�����$���s�X!(�����(�@�D<M:F���"�k�����\�
e^����Ӓ#��1J���
a�ڎb�3]Y�u�����`���~%��AFP�t��;�c�8n���7�:�@�/����澩0%2��F�
�H�F�g�x?�-�����lS��u�gv7���.������b�Qo�s�@�b�V��o$hH9�;"7�"��4���b����/���|kM�*0T�118��q��qT������P�`���|9@���30�.�!\#D�'0ȅ���4<�A��\W�2���`�����[ �F�vR����hϤ�ѕ��,6yp�n�5��F�m�lly�`ew\�BB%�-5�=_���_�G��]�#�R0��#���u��S
V� 3c`x��@+9r�@5�ҳUc���NQ��j#�UB
p��If��n�42�]
�:��&�!��"���U�z�3�̚5W6:D,�/���ck�*C�:�����ke����?���'��H`�u��ل���c�hv�CD��s��o��5�[�����#P3��$�qd�d�'=$;;�ѕ�k+��
j~�#M��c�M1q{E.�(��:߬�A�.���A��r�
Ţ����� G��Ǟ�|?|G��W������Y[�W*p_`�2
����B�3I���_�kF�d�Q:UQ�"��r���`6ׁ(���F�/r�E(0}&�|�+�^D���N����
�M.���֙���vj���Q��@��8B����
~�����)�ݼO� ?�\�F�탓�����:p����b��B��B��\[}My�ɡou���)�\[�d�Nn�Y�@2`�CJ�R0d�}��_�az�;��a�D���� Ꮓ0�u̱�m����h]y�8��$��r��6���,2���4cx0ɦ�a<D��x��?Y
:��kͣ�)��d�;�|�rܶ�o��1��o_}y�b�w���{��u#N3�r�
�����9�(t!���
���3�O��B֝��Xxҡ ��C��~"��9��u��7��ָI|_�X��k�$ߗ$wH6�4bC5a���ޑB���]T��N�E�������+x($ȯ-�+CO��_z����=����ٸ�K�Ĵ��~�����Q��,����o�'&�p"�>�z<~�x�����a�Է����t=�V�Ph/�+ȈG���t������7cy#f�
���W�1�d!��
�~�a�L���CT[Xof@�$��,�
LJ7�U'#�V`F]�hj�M+r�p*�b��|sgm�_�5�-̞�W�{-��M�&���ʪq�w�?���\�+_��λw�s�^��t,�o��D-��z&^��7�u����{0,U��5y��^y�q�u�'��3\~��@����aPd�B�zF\�~؈���u�G�a-�e�g���P���\!�tg'{a����lz�cǮaF}�w�<8�U�k�0{�|}�o����.t�woÑ�=�7z�8�q�����-^X�,^]�
殙��V��?|�{��p�s�p�{��<�'�3�"|�^���>/��^�6{8{�oun�-o����R�>�R�������P�3�����,Վ>n�SN�k����u?��|7�'�����{s}����6� ���i����KI(��n��/'��]G��P���[q���'�#�D���j�(���Mo��X3g={*��|��h�m��W_S��M~9�o����啷��!�|�����w�����|n��Z/
b��~>ᗰ�ی�Ԅ�у:�&%����t��>�
�a���>tˑl�?�F.a˾1x��y�4��gr��p�c����G�nH��%?���&a����~��c��s0��g��,"������5��������}���O�F]|��t�8gL�f�c��\��K�z��E.7TI��y�tu�$FuZ87-���EWi2�]�x��gP�����q�c��ŕϯ�i`���4���=6 ��������U���\c�S�s�z��נ&
��t|nT�!2����r\�E�v57
��]�M��S����3�H7�M��4BGg6T���q��$��k�NSe��Jn�;�'��W<��^�:<�;�Q�%�0�������E�>���8���
�E�sp;�Xn���h����A'|�H-3��P �Z�A`�77�m����_��7�^Pɞ����G^�'6-�0c�
��[z�1bL%�@����{��6{�}!n~�O���2�Y5����Ѐ~{�˱���_��$[�N�ĂG]t�χ����E��"��:�I"P�ڲW�r�U�<�}���3I5)���� ��
y��,o�E ���`E�迒-�Tu��s#v
���n�Ln����X�Y��7��8<�D�E��+��^�*)M��1"�|��X�����Q�k��'@�wBL�pŸ�,�7���[<p%vB��;\nj��J1�eXp�NL-���
�{I�b,�,[w��
p��
�sK����m�r>���ïT�B��ڇ�i��1�zӭ�oZz2c{�v�ꓠ��5蛮L
�`�LG�\>���8QB�(��-�(�S����u�ӫ�V������Ӕ]��V�Ɩ<��C����{'Q$)�^�다��\s+��̇b����juoBV��@���/\�Qb�cX�H���I+y�LD��(���#Y���SI��qbr��f�^��0�K����H�a"�MU
>!v�א͞}��-���v0]�P,�bp�#�-�:��{\����Խ
��c��-���~���=�poH��7(P�DyȰ��}蛦E�j��!�ϗ%�ty,Ű�e]�A\JB��C�%Y��v��)/�)���@���?��g�´�N/uу=+�?>&K��"�X���)}��Zp
����|��?�Xe�� �� ?"'I
�X�M"\���N�.���{��8e!��͡���کBC�4�O�����吭0aĶ^3��~𭥘�;�ʎ�W��"���"���i�
n���S�F�u����Z�N�Me�θ�빡ɱ���K����x�O~;o�K��7��t�N���wǗ�����w�K�����a�C
��2�}Ү�#���}aFi�e�����@��NMdL���\�+���2�
p=9�z���q�0fȘ
�Ι����p�\�D@�������r����x@��c��Ű�1��t]����)��w�,�7IYD���ʪ�J8������F�Od�9���qߟ�0�eA%�>M�S�4�=�RNf|�
�>�2�S+�!���"���dPz,M��m�c��&,�\���n�zC���`��I�<8��^�h�Z�F�hl�x�6z���C>�Dž���qr�.S�\��B}�(&=�p;%� ��|0�߸-��k���)Փ׃II��BY�r�r0.��)0�!l�����Q�a���<�x����
����[p�"�t������"�N��=2���z�l�3��X6���?��}��
7�8��0s��.���!��+{��>(���z<Bf�7c_��K�K�N�DZȂ�(�������
�˸=��=i��<�
��&��;�� ��&I�c�li$���lեi�d�9p��♵OV�Gi�O�ar��9h�n�s��)��2�L�I��o}@��b����"d����V�@/���6��,�7a�K�$d+H�"��
Q�p H��-�@��JI!�\�I
U���N#"ܶ�����6�
��
pZO�G��(�x�/}n�>|�Ss_Yނ˨���� BJW�+��E����ʥ7�)���k>kNmm���z�#~���$$PU��D�J�q"7p��q.��
��a�xߌ���/S����%y������ϒ<�c����}��
�=�a�S=�Kނ�7�G!n!�&�
�E��{/Oϴ�:�o܍�\6�J��A�r��]SSLrm� ̮�aL+mF҈����>F�G�y��0�p��#��G��ų�Fl�<��(-@��v�L{�d�2s"�y�J?4*!�"��o�51
���p�loP�{f�p��5�B���Ն�^�@ߔ-���2�t ��U��V
) ���VH�UԖD�V_0�K*����OmuҸ퓟���������߮���+A,I/��_�g�O�>s>v���g��e���Y?�?[���T�%�SƸ�+[���Q�.�ԁ���w�����Sw�ʦti�4HN&��T�V)����:e�
@2R���]zi�o#��$�Yd��C�-�F&P7�U�
��,8��p�;��#
C�pH��3�Y'�����p��5�M2���{���x����f\$�9��ZfIХ��T�Z_��UM��ވ�u���E
Bi���㡒$e��
}�B��*�m[��-��[[/���>j�c1뼹x�
x�
��EF���~��Q?�Ӥ�^�!2-��(ӂEbp=v2�ӯb��x<�E����
|��͝iߌXw*i�"Џ��;
0���w۵E7I9�L&�����I)}މF^�WY��
fhD>|Bը�&�"�E�|6�����_b�����oR=4�G�2�z.2�{$4� G)}�-�)FDJ���{�w����˾���Ϝ7p�W�U����煤ǩ6)��T��^&�H�=|�y�zl�,E���k��A�脺c�.+�>�I}��}�a�=���C�ޏi8����C�N$��,���:3^'�Go7ߑ<�/�
e��Y�|p���1����A���.�Z���t���1'y}8��ނ�-|��>�!Å<��F%P�m
��"K���;�ܵ�ι?�u-��u-��Z����\��_�t�����q�����A��,zIF#P�Q�-W��Մ\��k�#u_^@������2
�=���R�Rz��r(����1;���GJ��H��\��z
�٢x�!�-|(���Wl��
!�x(��`{�2�}0�C�G����ԅF-i!�9�qҫ�������0|�0Ŝ{1grD�����ғ���~��WDa������#ƺ�D���X��8?�KÝ���\�Yt�Jr�͔�rs�m=����W�o�'}��@���f
���m�#��%�P?vA��d�̀��2���KXx�n/0�z险#?��&�O�gݩ��@8
���&M�LaI�+I�EN����\�������ʠ
�C�Eg%�y4����[��\��B�i;݊M��W�\?hK 47"�`F7�k��`�r�}��OK�5��y[��MtN�)�!C�F�F^�L�.�v�R�>.Ja��_W`ft���8�G�#���I3G.CV�+4��5ߙ���-=�Ǜ�|�b�,n_��a��KIS�oU���H6M�yz��9R�}��;O��Q����$�g<��D�|O)�hC#5���!�\���iA)����P
��K,�e�u3��h����0�F���f&�K>���(e�q�J��ߋK�gd�����3İ�ʅ���t��&�z7��ғa�_#���U�`��b�p�k��|�y����sb����j�l�:�S0�����E>R��*�1.
%$#ϛ���bpӂ1x�����;�ܝ���I[z������\�8��S�!��u�
pj��5�3|���V�8
�-��|5)'}�n�ܞ<�:��bi���4,#�����4�ި�.�\Z[�]�*�A���
���X���9+���.aҍ<j�U����z�l�3ur~eA?��[c����hBtŲ��Xֱ4J|_\3�Z�
���P���;�r,��| �i7��9�ֳ%�����-(\�k*�6-����zb
�%$�~�,��YNP蔡�9H��m�^$M�n�ۈݩH�����|�ɯt����w��d�j��>�@�~� ���(�R��{*f��俉��֘�z���n�OL�>��7d��%����إwF
To��3����t�=#����W��"<mXh��%�4��3p�.yC��dC�sr�
��73�nJ�@�`��5����]]�jqmq|����n�
y$Ƀ��5X�x"�ct^����%�!H��u7���z�u'��Ռ�U#j�K
1J�Kx�p����C%��y`���en[��*�7��ѷo�����{��vr���}cK�W�*6�-��;�/y��%U�W3�{}�1҄5��I�yl5]^�A��`�}�-���-r��Q��P,���pF8%�|��k,�t;��M_�Vj.��[V8����윞�ޭ�;�,�Յ4~|���?8iU��M�
�-�Q�o阤�>����ː���y��f����-C�}AhAa�/WL�tP=!���L��.��G���Y��˧���ۯif�����q�?g?�ػݰޞ�>�"�}rU�u^����o.�O����G�J��Yn��#&��؞����Z��g����'���Cr �g��� Up��
�F�-%+���{��8�if��ifrB�]�K���4Cբk��[�b�� Z��懒_4c�]���Vl����]
I�jY��]����
�؊�<�^�nP�O.�1�eQ�j~�.�!b��&FT5T��w��d����y���ۓ
�5�hfg4R�&�Ztk�-�7�d:��d��ܺ��ƽ]�r����.��� =��N*v�wz�yD���`�Xo���5�������KJ����t�J$�;�Θ��2'��|�sǵ��7�����if�-w�oμԽ*]�f; [�b�n%d�{�S�֮��첫��Xr�}?��q�'7����ƆO.^��xK���;&�\��v�;e�|���m�h#���&K��!bP�\�!�r��ɗe�w��t��-�Om�c�嗮mX��&�f45���i��״\�|W�|c!
��Ҡn��Z��vZ�[�<��jʯ.46���������5W,�|͙Kg�9rɥ�w]z�ꭗ^�f��K�l��5
f[vɚ�e��mXv�چ嗮mX���3��\qY�Q+�h��ʫ[����{�~�|�k^�j��-�uk�z�b6�e���"�N���m�����kaᅋ��W����_����6��z¯�ް���HD}D�%�"JQ+5Q�
Z�Q��:����
D$7b�?�f�nŊt+V�X�[�b�݊+�V�X�@�bŊ�+V,ЭX�Rt!DB1d�V'��J�-!�.��Z���!�B��|�r�U !�VпJZ�:�ݶ϶ !D�1��K�sths���sWUx�
5��!F
!vB(���b^6d����_�;@�z`AB�i��@Dެ�!N��&���r�9>�zک���>����r>_�hOo@�9�X�����[��744����7��}v�9��a/�Wb����
�K�#��s���������k�3��<��=��x1�7������6�`�`]��u���rG�����POm=�7J�2�x�/Ɣ����j^��,g�6����+�q�9������X��#��?8�%��ȹ�
��+P���g0Z�A�ߘ�}���/����i;��F�85C����/8����Y�&f�>�.;���I��Z�u��V�� ���Qf�:�<z
��l�"����<�}{��u��;���lc�wF4��Y���D���Np�]y��"t�F5~����;�
����F_aԃ��6�����C���{*�g���o*�9w��}����Kc�F892��e�G=��|C���B=��CXQ>NJ�Cc�cX�w�o(y��9�L��2�l���Rotn�����+����S}Ύ,�`�Op���>O��2��Q��Tx��b����-�!�5&Lmh�ph����H�s��a�'�c�]��&��
}�����l܀Z�V���Dw9{(#!
��=���mƲGXў���F��n?
/�n�}�mw
x���~����|�Z� `v�OdwuO����x�>�>������/��Ƚ�JuE��Ox���dܟ=yN�����h��x�O��܍�^S�`�
ͺv���e��xP^�M#6��;�8�~l��_����˚�-s��z��c�9�ui��l���2&�<Fgbp����{mD��P����;{~;�l�KCF�9�eE��e�+&��gth��
�Z�W�bEX�,b|E��/�Zv!���&?�x
���o����0Yp�\7�5�=I�cȸ�B�|�M�u�0�c�*ܮȚ8�ޒ&XZ��9����f���e�X�
��a �f^F�+�Ťn
�3�cX���X�g��CS~2�x��9}������!�u��4H�a�]!�Y�]��{$����:�O���p�#
�����/��X�x>�>�CV��`B�\&�9���d+v��z�F:W5+�h2�]�#���y�r퐘snhy���h?g����PV��bR����HQS�V"��/y�ۋ<'��x%���s�+��l\�
d�1�W�139��~b���9XC�et����>����R�9���DL�c�s���7�f��56�ɼ/|F@o�QdP�؈��<��b��u��;,��>{f5<�����xv��.|��ؽ�l�ů�kV��#��1��8�x<��U|����]���+��zXY<����f�������q+�4K��`���D�YN�ت�8�i���\�?#HӴ2;��z=[y��2{�V}F������E�Be$�I��nn+���k9��/
����s��h\�X�_���p���LC�-n�=9-������G��P���n�<��=�;��ս�����]�
�>;�۱��J�&6�#����~+�*8���ŏ#�@�����ٮ�;b����/F�=��O
3�Y{��{GV"�0�L�gE���4e>_�{���E����sT��JvE�Ip�$��{}̲sZ<A����<��-�&�|�w]%ϓ�{|
{@���'����i�33��r�f����pq�n�ksb��<&sƲ)P�r�(T�ޔ#�R�i������iV��c��oX�:��eܖ�#7a+v_N��
;A1צ|�/��/���v�3A5����H�2�T���b�teD Np7k�F���eMo�ط��D_���Z������י9l���5��o��<O��Dr��U��4,�L��O3�£�O��
�c���D��V��:·J�,s�>�J���y�#q�����c8���+�n7�1�m���8^�)�>����|��1��V?��� ���P�QS~�؞A����<�V��J^#�f�� �S̤Vr�q�u�?�g���ױ5[�bƧ�q�/���a�1W�y�`��Ǻ��3�2+�'��&nf�ü�ϰ�|b�m^c�!�����
�y�'�6S�f(o�0o��ߚ�k1sd6_�c��e��\S=���}Db �� >�,�O�-��6�^�f+��-�d��9��k�ٶ�ם��
��t[�Gx��#��D4���JDg��~ެ�'����g:M"�g�l�HD��DTKD�huD�7]MD��M�����":��0��N#�+��#�G�h2�;��""w��Z��":���E�����"������r�y��;��N���/�I�ϩDt=h��GD��i�lwVp���sO#�{q��y�#�hXd܆���<�q����Z�o��o��.ID7��|+��uy��KD�� |�)Dt-`�\iܫ�Dt4�_�=��5D�H�~�v�7���T�X��݊t+V�X�[�b�݊+�V�X�@�bŊ�+V,ЭX�b�nŊ�+V,ЭX�b�nŊt+V�X�[�b�݊+�V�X����j��IEND�B`�PK銋[�
R����$images/admin/rsticketspro-legacy.pngnu�[����PNG
IHDR�d��(�sRGB���gAMA���a pHYs���o�dtEXtSoftwarePaint.NET
v3.5.100�r��IDATx^�]�G�q �Âp�Npwwwww����B��q���
�
q������{�{�3�wGB�v��n�vgz���������{
����������O����,S�� �J��/��?��s��?<q
�YBR�h�[C�������ƃj�r��9�瀟~�9�瀟O��T��Yץ���v2��@)�=���W^���#���>_�M����/��?��s�ρ�M�_
��m]Z�|{���Oj�-+�Ϗ� �FH�����
Rp[�dݘ���!�lP��M�[�瀟~�9��@,r@���H�$n�6�H��dΥ����y��l������z��T���ۚ�I���ڔ���4h(?(5(A,V�_��~�9�瀟�?2�
h0���Lʵ>����\^�*-Փy�_�ٝ�}�����h+h��4Sw�����n��r�@P�矓��9�瀟~�9�ˁ�0�"���{K�
"�HSY��LYxe��|:߁�4I���'m7�j{JK������䵠Ѡj��T���~�9�瀟�'�@��FPη>��k�:�U3S/��H+�s�\h�Ԛ�]�!�/O���������FRyw ɻ5�{���
��*��|r��*?��s��?lr�� ���\
$���8�Es�"(�2�X2Ay����(�f_�&�.M�i�kt;h�%w䕜[2<���}��M�r(��n�N�i����?��s��@��@���
��^������r��}�[Vx���%5c3@�
�0y������Se�� Zy�Օ2;i�#̊Z�o�.�B�4~�~>���
?��s��xS��=pא�e��'�?l��h�V�l�;�X2��I�\��'i�<��p�s��4>PS��*�44h:��Ľ�T�C��s��?�x�8�M���
��7��;�K ��ǜ���=r��:�vlc�0i���0g�s��'!z䙁��x{it���
�/97���|�|��
�מ�;��7��?����ȃ�
��߷��nΑ2a��!4]��٨�\��Q�x�L�0V�w&(+⳨�w?�N��,�Bs��]}jJ��ً�V�9�瀟~��9�M�
�i�}�=��®b2�I�j���I;6�����];�
&������#5b�3��|�p~��:3HӠk�(EBsJ�-%ۦ4O�?��˲)eS�砉�����T��s�ρ��x��/�2�y���Z�.���l��\m�0v�s�d�١�ٜ�ϣ���X̓�i?����h}��UPkPP��K���s��?���r�ե�����~��7��W��<��|�ٛ3��vL
Y��=i�c��
L����gh�!��H����N�ξ�%�E�(@y�9(�����s��?�x9��
W`k�}��ۤ���������GjǞ����\�3�2U+s5�� �
��i�
� s�Y㝇��'CO��!}���;HӃ����
7���IV��A
@����7��?��s����q?o=�ƸGp������]Z��s���C�\�c/�L
9*
s�8�\�I;v�g`<8��F�N�Ҁ��Ov�s-��������Y7����?M���/���~�9���k�u�#��/�%@��v�D;佦c�����̥yV;�x��3��v�p�2��9�ޱ�vLs�Q;�f��c
�#`<���.�Nvը��n�d�x��4�WUʄ��[��d�K�5aV!�"�r�0(����6�9�瀟~<���w��
�M�}1�D�?�y:w9�Ze���]Cvd�g����U;��Q��H�X�q$
ww2��Ą$L
�x'�u��t;�VZl 5w��R��$��Lg
�ʼ.������sZ�3ܣ���9�瀟~�g9.:���6��
Y�c"�Ys�bzL��j=�1�I�{s�2zVs�X�؈�2���vl�L?:Q�q��cce±Q2��Pz���!w�4b��= ƽ�w�>sG�q�������G�I�#m�Cx3i���T�YR�oF�����m@w�5��+�瀟~<��}��H�RXR�+5e���R`[����t�\mcO�Ǯq�#�U=�%�i4Ý��I'G��#�d���}��'{V�]keC� ٹ^�O�
�Bd��Od����e��y2��t�'@�j�����`��H[�r��F����NGZ��C{n�ݖC���y�e}��AG�m@�8�h����瀟~�9�_���
�v����&2� �y�Ca:���S�LO�1���C�h��1Rf�"o�]��$�˟^��~�M�߿/>�Ǐ;���o���?�{��˷�~+{�
���kʸp��^��Xg�k�Ԏi��vl㎇[H�Cͤ=��a�����`oU)�-��ؐN��O%�C��4��~����?��s����qt��������Ƞ5��`MKv�;6�����1���z왡2�dy��2�wz��=V�G�ɓ'O����!���%�}q
�\����~��-������H�k�]��g��'GWʴ�e��ޚ��
� �o
0n"m6ֈ���@}�����97��,�R�P^*�g{��_%?��s���5�UtAy������qE~��
���Y���2�P�s�T��Y��t62��2��,Y�w�|�헚�Km�`��_i���3'��郲��FY�����uy�xd�"������$�69z�|���@S�����P�Ays�b����<��i��t�a��vL0V��`#qPCiu��ʤ&�jI�]e���`�_��\�0*{�����5Щ&��҃�[�x���?��'��.(/�j����v�d���_���C$\�D����zҩ1��"Y�F~���fL355��vȊȫ����e��!2��zaP'�|1��{ɐc}d��~26|���?U���l8"���4n��[�e�m2o�,��Y4s��ۅ7�4d�q�c
�8PO�ﯫQ��u@�5�v��$8$��w��OY6ҡ��DyQ�?�ݧ��ڂވ?���
^)U��u7�ޠY��Z�~[�d��2^�'�\;Td7�KB\�?��|.���x8JWPj������C1<�/���`��x�E��>S2���ط+Vㄲ�ه��o^
0N�]P��f�s��T�]J;ʼnZ�3��B�N�2s��Ռ=�|r��p�\��f��f�[?ޒ��;��}���ce��n�Ǒq��0'z�ӳ�'B���"��{˄#��o�ޣ{��75p�ꛯ�}+e��a�`+M;&
�90�f�e+@v�qMSn���F��Ր�;_�<�5?�<��<�9K�96V�R�Q�Z�cL�*Uy�58�a��l�3g
��)s���2d�,Y���Ibat��2
eȔii���~�н�㙯-~�j{��۹��햵a�e���2l¤�5���3WD��^ꆲ2��{�W�T�,R4Ƽ�
����e�>ʔ9�tԷ|��e��1`�coԭ߀�y��ks�ߣ[D����ᕪ�0�!S����"�yA�ӤJ��U��i;�Q@ʔ��<k緿�z�V�f-K�/W��#�Ǐ������ُV�^Ӳ<˱R����^�<
�)s֬��y�Ӥi�
A���봜�o���AK�ʙ�H�[�|x�����4[��2��-��S��|��Y��L�<}�y��$z�o�D
�Ous�;ydc���;�V<~�y}�r�\��9���v<Tf�"]�v2Aٓv��q$
אF{�KC���,�3��@�.(����e˅��/`� ି[�
���y�נ!m���/�O�R��%%A�1ɳ�90'��9y�|�qs��ڻ�Iۮ��)P`'N��i㷶�:v��s</�y���S�IPp�Ե2��Y������ҿ����?�A�FS�2T$L8�y�ES�N���r�M�.^�i����P��h7��g����{�6X��%_�B�-@9;ʋ�ɘ�$�+6m���@��/-;t�
U��Z�H���$�=K���0��(L#;�o�r;�H�5�@�{�[�H�i<�Ie�1\3Y�٧N
��YG���^���Gj�2]3sE�+0f"�^z�s\���9rѻ�aN���dҞ1��D�|��5������鴿��%s�ب��1��
��I�=U5����T�QB�֦~@�*��+lޛo˚��}�5T.]&=��R��І�j�nshJ+�%��.}����ח�5y�|iԲ��3�5��0���`����QS�F�r���%���@9_��1�a��C�;PN�6m�֝�������ճ�Ir��{��w߷��q�̔��/�1˷��D|�ɲ<_ƃ��l�$\$`����BP�z�{���<���S�B��9�����^�R;�I��(����B��w�J2��Y>[�aYi�dzI3�x�Ɂ���H��Rd2Z���k��$
�C��q�C-����t�r��y
��~zFf�*��0d�v�d�q�=��ήJٔS��M�'4�f�oc륁��7ޔաaO�>ٺ]cU۠Y�_a�~���/� �8��G����\�-T�d������S�:���|�[���ό �GN�"�)W�V��YY+7o(�5�|�N��f�){�\�2�,f}�� ���<�-{�R��-Y�e�
����"���,&�o�ޏ���xT�|��R�J=�����ؚw��r�0$=��^�몟(-��[J��#���@�ʙ�x�"�V�~l��������5M�G��E�˰S��q��[�c�ԌU�Lm��@�zV.&1���jd�jwȱw��@ye�9r���}���2s�Ti���(��a�v��2W7��k�
��;JI���@�*��N
�)8l��%B����
�g谿a���=4,�ɒ<f�0W?�:~�A���Gx�>ԁ{���Q�ԩ�6o��=���8I�fs�2Lu��¿ʹ��;�l�Sb_���4i;��b�G\���EPN�=W�}�^[l)�}���,Y&Z_v�Ag��|t��tѲ�ҺS�3�D���m[s�?_@6#��r�e�ݙRtgN�a{
�#C���+��cc�ju���SC5�k03��N"4���
ڱ� �*�%g5��N0F�"�["�q��U�Qxc�wu��d��r��~-9ɩK�d�� �r_ݙ+R;�ƻ�W��Tkgy����ߜ[��II`�-'�`��|�uY�y�?J�Z-
�7�+y�
���^���=z�'�b�f����i_ziꤝ���ܬm��7fm6~�
��W�����B6H�|��uPΙ7#;������(Cv;��b�n�6��EPN����&[�~����
�j03��F,[�Ʋ����@j֯�'��[s�?��>`��
:���T3�v{��,}p�Mב��Ü�@<��4���yd�l;�U~��g
�oܺ�9u�;6�p��� O����5�X3W;rV���T�1sY3���HR�N-u�������5m���~���w��]��2��<k�@&��YN�ae�ܶ"�c}:��QPl�b�/��x��7���eR�R��%b��Wu�]}�Ï���<`r�oΙ�PA�i�6���a���S(W���֭h'�>(��{�+Myحo?������P��Ŭ�^�&�~|fAy�����߮[7I�b
�n�^�\y�Fp|Y������
".Π�E|Ŷ����2��{����=D
����5��@�ޱ�\�#�1�#"ʻ��A8җZ�L�>�8���c���coڱ��@Vy�U�j:s9�c��t���T�{��B��ZA3��g���x\n)!{�I��m4�j���1��ښv\� �
������;�H��oCf���
q .V�T���Z����]�7|�G��+���!���Õx�ĉ�x�d���g�Ї�]g���k�
�~���:=F�,yC�ޯ�{�se�BB�"$�]�V�m=ߊ��;�t
���`ƢE⍦-XP��r�\X���k���%(��b��o/�r�+?����F�
n)��
�<6���9����,6Ɓ�ep�����b@�,��?��Q*p�]Pf*̾�w�»�5�� ��ecw@6�y<��h�rd��XE-�رc�֞%8٩�S3�Ԏi�>fe�vd�r��3��@��<�ٻ���F2k�49��|w�;y}ǫ�bw}͙�` Ⱥv�W�Q��/kT��E6听k�#{M@l�s#�F��y�5�2���}��Wiӥ��ҥO��_5j���q9�TVe�����*�=�w�R�����k���$6~��'؛�@~�t��`��C�mh���J��˚4{�8H�/~���v
�5N&v��y�����V~l��Æa�.�|�++��7�}�(Q����Z�m�[���s�X����<�ܻ��ʩSw���L��E�"(ǃ\
i߭��,7i��(����3���\�n���~��������<�ė�F�֗˕����5����[E���%��!�������w�����̃+�#p�5d���~p�L><6����~�1C��d
ܿ&��cu��Ґ�+
YK��Ԏa���i2]�cWg.&�!m�4��s�=��.��c���R{7�ch�4U��Ԏ
�5
-%%��lk�����%J�M�=G�H�h���Pm��|�נ� bV��zM���r�ʎ�8�j�Vos���A��һ���/�@�R^�nj\o
�i�h�L�ƭZ�E0�Y Ds\9�a_��xV;m�нM�}(?�e����Jp�\�N��ƌ{�|.A�d��9p�,S��3 �/�K7NR��ʆ�[�
yld17d��,�u�[����^��9g������H�c�G�MO��ުܥ�k��]��\��{Mdc��o\@Pμ*@^�%=?m/%w���Fs����D@~��,��|�駚隹�W�P��y�1���g�33��]�];v���*�j��������y�[
�X������.���;�ߒ~�A�\+]w�urMh�$��2�֊Jo-(��^"($b�\�<q�,ykFg���ez-�E�g��[����A'��W|8��l��8���/\Ȱ����k�z1E@�*�j]9y�fjWe/Z�\F! ���Et<s ��*�w,JN�3Dz�|~��թe����냳�.}ǔ�w�@�,G��U�t�
�"(��uk֦�i���Ԩ[�:䱊(C"�8���o�f����
.|}1�������Ə���#�oZ����@�PږZ�:O�k+ev��{L͘�4c�+0���4��`�,d�QS>qL훯�k"=M�
u��8D�řK�S�t@V�@T2�&3�k���9��<$������^���'Ið�0����9��J3V`\)��T�^\�n+,9ק'(
J=\�X���~���1C��j�Y��)f�2�5F���Op��Wb�X��ַ��{�8e�ǍvrY'ĵ��Ԭyn�ܹZ��T7�1��I�&m�rb����>�A.t����+V����rΜ'��LkƏ�]�=��*U��͛���߀g���f��uM�O�R�Z��Ƹ�h �Hm�=t�q1m�|ɖ�(ks
hހ#�X��ߧ̝'P��([,̟�v�ע������;����RywI8x
�X9r����!O86Jf�O��fIȮ-&�{�a'Be���N@��b�v8su�w5���]�<��f���*g���5��i�v��Ȟ�cG�qdf.:s��]Y�d�|�R��odDZ��%���v����\a{1�;wH&��u��+����L�������Y�6��n-\�Բ��� ���%͚-�{�?��W�F�9�i:�{�A��T���n��2M��b�}��J�A��oVu���;���2M��@c@�&QD��:�(��L188G�s�,1�SQ����t���=�g�mf{���aW����x�T�i3�vO�*[6���h�ʠN�ɠ7�60v�m���"�<-9fr<��R�fͯQ�%(�$1��7-��Lٲg��)+^�([��c;�m�[o�߿���ʎ�9�s1íh�d2�b���P����g��@>���wF����%�"
�T��*j�k�v��CO��&�1i����{�.�n9p���@yڡ��x7G�L��1Y�c�`lde�����<��Pd�Lͻ�@]
���8DB%�g�J���1H�;ލ�cP�e��=r��9��c���Q�e��];&��^T�m/��r�
Y�?�x4aL_��
�9w��e�4j�d��ՔY���T�:{��eO�7W��~?�ɪ7���a��C,�%(cE�h_�6Iܸq�ċo7���c5�8����6ղ��9<o�ʉ����T��Ȍ�Ƥ f�$�3X~l������b�Q�^=;�I��{ܶK�G���y��Xx�5�
@S���q�ɉ��-2�G�N�~�!Q�l8����Y�qm-�x|)��f���
/�r��ҏz
����mձ㣚��=�_��߸�<��2��xr���Tɽ`}�9t�8�v�Y�X��j�=?�ԏq�����IYO�$I����x^ҿ���q˖����x��Z���m�>̞;�8c���C�ۘ<�U�Z�ѫ0Q{�&ϙ-/�/eY���9��3L�5�Y�|�88���߲s˖a���ĉ�G��O�$Iu�LA����"��}}�E84��7m����A�S�L�� _�����n?�`οS�vmM�(o���W���Z���}�pO����p
�W�F/�.
s�L�ZG�K�54ӵ�vLS5Sd�D��7�,��Ǐh@���k~���U�ut�L>8Vz�����G#c�#�X��u�q�d��c7@֎Y��Y��l4W;ٙ&��N:
���p�ɚ&�Ͽ�\��,�Ci�j�ޱҌ��0��T`c����yu�}b�
F��'Ȃ��6�'
��'P�W�U��X�=i�,�sޏ�8A���[��s�@�}�{�L21嗭�1�9y�e���(��\�`�":��%�IW�YHT@ ��-X�Z�v�d�̙2���,�=���թ�7&��^x�'8/� ��s�{�frвC+P���.��k{ɇ=�$�%L�����:eϔ%˂�K_�ӏP+�dn%��g�6G3nsD����8L�c����ǎ�,�ϝ�p��2�c��ܯ5�ٱ�����u�*�^��9s�xCFN�$n)\����Y��C9eAf�1���7_1�1S��|�XY�C"���2���ȏ�T����ïD�%O^uN��5��*S���P�L��p--D|����W+ר�@.�D:�߽���)R��±��� �}b�����J��#,��b�g(���9 ��]t4�j{Jˬ;��lx!i^_3]��cj�d��4��Y��9{D���;P6�*�w.��GzG:s9ҳ��Z�1�q�1�� �<b�q+�;�pю�,F"�!���D�;�{��.~����pN�l&UC_�@Y���`L�`\fk!��W����eU�;p�j!�/
�_�P��qc!
KL�+~_A���̷,{��lٌ��0}�[u�`y�Th��T�
�W�X�G�S�A.t�x���T�mPƤ����^�f@o��)#&�R�����SW�k&���e0��7PƂ����ͱ(�Д��ʗ���^5-��� ԥ����'��6�;=�������O��T���Q�Sc���c���eZ]����.��0��X�n�ՠ�Cj�V�{�}��90+�eh�c�����U�x闯�=��O��-P�DؙF�1��)�31i�-~�kҘ[q4'�Ϡ��7>N�?O�֮e�̰h|������K�6�'P�O�R�ƍ>C�lXG��o�?��R�j�c�{�7ߒ
��(�u�}�䵻0���G�kZ�cj��IGG˲�K%��)�s��y�"35f��I��2<|�#����hk!k�lt�ҽ��ڱv�"��z"��ڡ+@�<b�=�{
Yi���\MvԖ�v-�o��F�
]"�Bq������VHH��[
H�
� ��SbA��*6x�(�� ܌�"��k��R�N�Ve��:E����W<h#��6ndy/���K������X`�U���k��˗�6(+U�o_yu!��=�r2�al�ڵ~��ݪ�~�H�<y��=�&8kp�����ӬMk3P��݂N={�eU���Z�õ�@�{��!=���
V�><�B�G<���i/��#cT��gB�3�r:h�[:t�&�-�iվ�
�[��u~O�RZj^��
1����>�k��H)T��-P�DL����n#<Xx���^��U��N��P�0�]�.^�y��NPN�"ś�7�����1o��Ӱ��|��6��:�]C%ψ��=��Q�ʀ`�m��J�ד�w�J�C��x;m�X��y�Ęc��=��╋Z���ै���++B?���}�+��
k�,�H��c-�I�Y�i�<bѨ�\Mg.#�� �$o�jg��������m�|��eٰ3D:ok�yWs�X�?Vڱ�4@.���ۘ���'@�������`��#��+�.0���F�Ү�[6q�7i����Z�����k���$��R�r�;�Vu���^�&���^�G1��ƾc����v��ʃ�F��U�˕�6(-Y�o�{h��7a���q�w�'��UG;��?b�cġn��j|#W���3��>�q��t��\�c�O5-�<�tO�V���Û �{�<sy��`���+|7k�詓�H��b��8М?�?|h��S=����Kj7l�U��������!O�ȿ�m�
�X��o&˽�l5�ĽmUlv�A��Y3,y4r�2}��S~0ݢ�_J�)-�7�4`���x�ӄ��H�� �<�C�zu��b"C�Ҥv�X��;}�e�����Y�g�]_�*�#��u?��w��N��<�UKw��;&
9�G�+GOqd#�3ã>��8�����N��y��c��g��=V��f��1�T�L��
��:�Ef梩�����V���%
�+m/���'@~yK~)�9�FE7��U)�W��k��G�o��deF�0��`Z�c@?�r��N={��zr��ʉ a߀�m���>t��ąӑ�~�!S�I�&�C\N���Y,�2��+0b��z�,[&ڠPx`�g�f�a&[�;(¤��נ��g%�w�.����2Fg����ĘiSL�רEso����y�;vx8e�l�eL��a��\��q`ꫀE�a��z��b��;u�_�Y�_��k{���A�b�X�N���Q$�r�]~ٽ.Y�dԔ ���H�j&f���C`�2fb�'b�|���[�KlZ��Ed�8�f�.�qd�O�U�ov�A�8��U�Y��Y���mkԭ�Ī\��1��I�2�o?��f����k���X�*�4���#'M0�?����}���l����_3��J<{�C;��竖�q�vV�7gK�����4M�O��h챡0E��S'�1�eODp���S��ݱL��wM;>�w�t�R�H���D
Q���j��k�B"C�jMC
��\j��ʲx�"��ۯd�֙Rk[�ޱf���Z7W����%7�ը�F��\�T������q%�BCa5�ޘ�pްM9�5�a^�mت\�^�VMz,��I�S�+�n8��)�x
WۘXq,^�_�ȿ;�I�D�\e"��y.�>�w�`[u.Q��h�2̆�B�����_H�BS�c?�ovxJ
� �~�����ַ31�w�q0������mЬ�'P&�)R���CƎ6�;�����<�K��-hޮ��ɋ����1,*&��^��G�ޛ���)�<�K�.S��-\[��'=��S;|Wנ>������Q��t?M�m�t��ի����0�T�2Wkկ�W�>���~���a_)LB�\y�l�9���vu��[2f�ʐň�^xil��#�J6�]PN��A�F��=���+�B=dc� o}2���5K|\�y㿺?e�TFPnU�j�����T&�u�,M۴��ۉ���y�0���v��j�w��+(gY�R���">�)�Csk'D�y�Ot�>AN�:�e�R�(��ki�[�3�cd"�v��{dzU������E�w5٩3o5�8̑&�=ԩ�R2a�����e��O��:�{Ǻ�Z�M@.�)�ߔ[�l�!A�S�(#�MX���;z�)q`Z�rzFS����2�U������)�^eh8�)�v�r�n$4j�M۴~X�|�Ϡ�o����L��S1m�3�`/,t���J�A���fϠv
`qe���o��۪n���W�]S�,�%����sh��(��<�ωu�
|5fWƖ� .�̞I���$p��ٰy�G�X���C�
����1��}�8S�/�o��ؚy�6�K�p/�����r��_oaax�����j!��O��wR�m�f�n�I�0�o�W}��g�G�E
����:�E?c2S�F���_P�rH��9K����U+���Hʃk��I���:£���u��y�5����*7;�m���G���v@���Xx�������rn�}��O����g��>�]��}��U�!�j�`�D�r���^x��Y݃E�X$�a!�6�p
���*Z����]���Bx��B��+�����CRI�߱J�<ZJ�D&�nN@����=0C���@枱'"X�yL�a��[x;����P'��Z�j��Ih��8��(0V��f`�4duĢ3M��{�;V�\=�v���"d�=�~ks�v@~yk�v���{�$�r����*`�,��b�h?c%֭_��Q+���^�Oa��?u���AԪ<�{3L\�'�)Q�2@~̢�-��u�v�f�k�.�N���q6&S�XI����`w���Թh���eL�̞A����©�����;l�
T�d/&���ϳ��&O��%☯
�ҿ�1Q��ĉS�
|���d>1�7{&�o�A��@H�Zf���� ��>��$./���д[<��a���AQLz��T�P&�@]�"n��������neZw.^*_@��~?��o
�����PX-<Ձ���f�t�kwG�P��и;c�Z��c���2هբ�^ï���
-ڷ�O��<ٱ8��37�C��e��f��'N"�J~�{�J����Rv���E� y�2� ,��g0��rM
��3��A�r��~Kf�1��~�2Z-�͖���ȓ{G{8���O+V�Bo�\C��A}�!�e���b7�����E�1�d8�]^��ܸq�i���^i�Ԫ_߹@:��r��5j�8��ȞOu�Ҏ����Z�&
;�dzЎW�VL�m�*���m;�Iħ�wk7)��'�lԎ �Eu�����*��}.��p�ܹ�:�� O��8Qê�g��p��J7^ܭ���L<�Y��N0���J4�eR��K�u�y|�+X;u`D��9���àAb�m�
EK7����n�1����S�N�{ޞ�mx��1L���TOЙЬ�0���r<�8��g%�[��E<�����Dz�͞��G���f,n-��'����s��%.�"��N�T6}6��ЏV��L��bqMM����r��4d�,*̻���m��\t�i6Iv�A���-���L�K�;F�f���)l5p��9�`�ɧ���>�eπ%ƲNVuV���yѸΊg[�ݫY�����k�{�_ݗ˗��E���q�`�4v)`�8:��{C&�����x�0Y������wv��i�\/á��f���]��3���m��{�کN�]�c=U���i2�#�{f.��r��n�vO���(�����j���Gv����ヨ��ߔ�[k�J;��Zr8x�����r��2�?�u��M��� Ǖ�p���'��S���S����f=i�F��C8��VΔv1~a�N@v�
'ڠ���gpB��ʽ�թ���@��#����<�1�����=Aӫ�skԫ��`��4��-���+)CC�i�P^�cA牨i`��k�N�ڨe����
� x./�2dܴ�t��W��%(�4����r�0Iw�����
�7���!�F���d�!�!�P�3.8?Њ֨e�~k�>=m�a|u}1�W�'��hF��M|.�[���u�r�cx���0O�m����ਹ�j.�"��L��
o=�USο!�̻3M��.��U�~В��E��4�XO�h�Z�L#
ӻڝ�
�yR�/�v�%9��4Ws�ؙ�zdf.[$Q�\�?���qĢ�Eoi2
ӑ�ζJ�`�\�|e.8X�/��B���T�TZ�;6j�
�lM@&��IQ�����f�gϙ#����#�1�=d
�f�i�6���V�8�f+#�`�Z5�:(V���h��0ֶny��Rl߽��:b�mPF8��~�?r��2v&�Gf��o�bܩ��RF��?F_l�D�2���w�ZV�X0�p������bA`*W!Q��^���mVW=�����kc�r8�R��C�3<��^�Ww��x�̇��ߒQA9y'&�1k�wя��L/}�rz�'e+V���Ԅ��k�qd��7�&O���Ъ��V/�r����v筞���*���&C�⌺������r;���$,�~G����n�U���6:!�zo��ؾK��&�v�oژ��2o�(�
����AE6��#�.��U��$x�i��^�w�s���� ��w����_������s5M֮y�#���5v�E7@��#�Eo��T��[+ȼ-����z�����]�m��
�c#
V�|�̳~c�
���1K& ʙ���9��[3�0����s?�m$H�Я���������I����@2&1�/���Ym�/y��
���}`�o�5�����������|��4����7�FF�5u8�%{VS~�~)
�&(�/A���=���Q�_5k/e��ɢ���J����r^L�B�^<���}�N)S�4mC`�̒��d���"U��<�ϜA����O�0��g�rG[�#o�&]���_x������9�����5eȜ��i�Me�[�^�3^��%o��b���p�K�����P�>籐)$L�襌�L�M�.�
O����2x�=�+]��L���Y�5
�Z_ދn�%o�{U���!M��4du��#�de�
��矝��(S[�L�3*�����A�{��A{]�V�1��5d�q�3���{Ǟ2s)G��[�Ȭ-���q��Yw��_]
�6�L��`\0$����IGM�2��d�1��8i"I�<�ӣdI$I�Ē0q�{��[[����K� �ԢZʼn�,�c�IQ~l�?���ď�$�Qdw��R]��`�P/<��
~�A9~�xL��ċ��o&J���=���#�^��� ��L��0Q��va�$ �6����,q�lB�?B�/���@���[9 ��⠍;��]'LΦ톼�l�
���O�;+:�~�al�Y\�zq���<�I��K����e�AD�X�v�������x�ww�L7n��'�5V�9,Q��p��@���:�@���S*\����\>Ϸ��~��a�N����յe6��vI�s9������S?�x��t盲w�^M�d�1Ý��u���Q{�8sV�pc�w��v���4�:k�1���Z9t�1W;�d��U���W�L�/��R3ϳފ��M����<Ns5��T
$H#���=�5�e2��8 @��Ӡ��
%���F��b�P�K݃p�h9�1��F�$ųb�G}�al���cZO
���l�+��r|���3�7PI�$��{� �t@9�9?���A�
�K��w��]�sN�=p��q>��;����Pe�� M�F��[9��T�N���ǮL9� >%N���߆<ӼIp�
]r�����!A��� H�^�5P��;c��5��P������H(c�[�I�c���V[nY��P�y�1�X�r?l��f6��n�\
{9:�\nga�[�>,m7��G,���G;˜��h
K��[�n�͛7��Q�&����%lo���/ҙKs�Reb�ؘ�KK��Ǒ&�Ĝ��ؑ�Z�;+@&;�X��<6��d2�;C��䓊����-�ʵ+Z�YwU���Iݍ�5����8���Bʎ=e�@���H�����I�ОaR���,�LO1��v;ˣ�i��� �ߡ�kz��(�ɺ&�Y[�}�Qi�1e�vƋ�)���\c��BS����ƍg&&��f�L�(��]��74����l�#�}��7�(A�������)�7��'������0;�0 dj,�rת-�~O�b�\@9��|I������hQڡ/(�����+;�,�J��>�}|��=��~������l"#,}|
��;�:@�b^�sm��E��7�p��2:�\㋗e�ͭRp[6i���fS"��գ��{�if]2O��#�7�|�B��`��v� �{{5dw�*�q�bg�ݕ5@���G urde���&qnj=.�ő����"2y�8�|��BC��عc�kcg)�Cd��g�|벨=��1=)%��\��t�0AB�i��J8�X���&H@g�����`��4Ka�4�p�����Db�~���0����BB�D�x?^4�xД-�,
([\�(�SeYI��ߎ7��I,x�����a��ΊG���lFfep,x5_�7�{�V�L/�>ew�yz&�����J�_��M�({�}A�(ۜ3�����c�}>}���=u.�=z��J2,gP�̞�/�&��>3e�܅Zͫ|.�oe��y�7+~��?�����r��K��K�М8!��
w>�Jz�
�-�kj�$��0�;i����ko�H@ִ�8f��F� u�q$;b��4����9s1M&4d-+�D��̙���ĐڱdzV��TP�oP��e�������-�H�
�\9�̒�C�SN�x��b�\c� 2�{QW��_����Z �6��^�C�
�a�Mo�)3)�� ��v℉y�T�&K:���!�X?(���2v�
h��|�#+�J?s�&��mP�z�3��`��E�1�+�<!��?FoX%)�E�YO��/(�����A�Дm�2�~Y��A `Aq���@�~�8��9Zj��мlƪ��@���o�M�Zh��e�g�WO��~�(�����f��ܑW:"G�v��1�@�t��t<�B��*�m�˟^Ҵdߕ��w�m�-�eok�T�0W;�*�I�Ws5�P�̸c{�M;6�� �%6;�d2ԩ��2v������I����H��
�"�v"�Y��@Ǟ�')��L�����l�}���j�UB��7�g�3ǜ���ӽ̎�����1H�ح/�EW�-|���}e�y=���>�4�x�l��<��bj���d�#+��CN���"
�-�B�N�}��_t���i�`��Z�>G��x�#
s�+b^jé|���~Pv�I_��2;j��A���){�Ɋ�ʧW?մa��l3~�i�Fi���K�jw혉@���F��S�jw�ju��Q;�ReBC.�%�3��=.�1���4D.~zAe�&�)�}��m�
�:��1���{]&ɽ6�e�+���WL@������jpj�q��=9bR�h�Kp�� $@{��Fs���3��mP ����_V2�~�"��o��e�|m��g@SVL��v�����yԪM��#��oQғz����At*�D�϶�����VC����:ͮnAy��At4�i���_��
��i�15d�3�f�y̬\<թ��p�\9w��)@V�^�ݞ��j_�v��:�q�:��\j��x��3����J3���\mԎ����UlCn�i���|�#(k{�Ƕ�kh�����rF��5�g�_���.�����U>��ϟ� �j���4?���>>�y�{���2_�25����,�ݺ锞�f���4e������=nm?����pߛ{�V�$6����'C٭a�=E�,{�c��0�ʌ��0p���n��O�|
���d����e���fRew)�2��t����E���t��L�=I6�m�@���jY9Gы���O����{k����fl��t�����:���i2i�v�X(��1�ce�V�H8�V;�IE7䔁{˙Kg����;���Ƥk�Ay:�穘jʈ��3�;'RL`4K%����M%��N1y�L�Ǯ����!~P���LPN���L��a<�ț����+���M�1�d�
(�Q�O� ^�s��ܚ�◧�5��8qע,_C�|~P��@9)@���;+��g����v��9�#�V7�v����eŶ�4ӵ{C�~��G�#��=�j�\ԎI
�Q�N�3�U�����\: G1U�ג�xҎ
�L�L��\]|�c��%o�13WHv黱���p��*�k��0�|�{��s�ɠ2ɑf3%5��
o�vMLA�����mm9AB��0�>:+s&���MB�9%�濹t,�3���.�����2o�-pd�h��x�{�Yn��_V�C|�u�SԔ��S
�
8�8?�;��c�z�<�V#���ʙ���:zʼn{W�
Bz������g��ξ�.��8D����A�p��X캿���c�:}P��=&�Νı���܅sr��
�#r3��Z����ӻZ���?6"a�Ym�{:D�Ke�깱�?�������{?����j`��fkR���O�P��T�m��5m9n�3\���ڕyM=��7|��c_�bm���|�@����-V@��B�,�k��Ж�Y������Mi=tR���fe�Q�}�`�����q��c�C�̯삳���l�_eGF/{��<D�lO~(���V2�1�,c(gm�.(_�sA
�I�}U4��Q;V���<n������Q��.��&���e����$t���s��;�Z���P��;�cg�qd"�P'�v�4dc����D
�\�p�r�;v1W#m��v��ʄflLB`�={ĩ��I�\�zY�n�
����NPvh��̜4����Д����;ow�㖩-�5�W���b/��z�Ϗ�eXG�F���D�[
mO@�{��§�3�K��a��k�!�-Hy����x��{�vd
rAm��}�F��5+`�5_��6/��A��7|h���`����F�pA���?��� �
��c��z.��`���o�U������p�2Y�DyNg�r�́�h
m��:�#Y?Db��T��xo������@��m�yYw��R��n#�w������W�j�3y�{�P'P�%4g.��5�j�s�)3��w�j�\
@Vg{�[mL�qC+9|6\�V���|'��9$�BZK�5��=d�q�j���i�P��I�������X ���O�a�f1���0�}����b!�A��=�K���0��J��:zY�25i������X����_��fujRtA�s=�-[Z4��
y⾨�_����Z��-���@�u��P:<�%4����BL�qn��>=���x�1����� ��+�ˤ$��0}���B+����q���8�]@6j��f��wNH��Y����Q�Fs5Ot��V뀬e��u�I����4���\��Ę*ӹw0�C����vB��f�d�c�vl�[��\�;n���<}@�W����ˤM�$�d����<O9˪T�
&E��+�@�ϯm�+�D���6F=s{ȉ!�幯��L��
���P�`eʦ���]�Uݤj�X:�?Ú��er4�ț��X� ,
�|��e�!5�mr������Z�O39��)Uy="�(w>�2��6q\$�i������y�s=xX�d6.��r<��A�~�Ŷ��zf*33�(�+�3����s������ ��)U��v"@��L�� ����K���
l����\���dB;��]%��d��̥\�ջ#�V+g.jƚv�{VS;6d�2����]��ܮ�1<�yޱ��"��Ն��/b����ON"(���TZWR�;V`�4�
����(M�YeNNX�ʝڲ#K�y���C���j2UeiB7�YLRL*��=���ˉ����1q,���_V��*���y=���$��r3L��{�����ݥ�E�l�a8�WV���r|�YGf����F&�s��`�~�nKO����Pg;�H*����bQ�߷��r$��N��.�V�F��x��&��>�W�
��͏��n�G��LP`�;����D���H&b�%�e%���Ї���9U���5��J_T
�
��
�ή�l���W�e��oH��9�3����Ԏ�d
���td�k��C$����������puzy�!3s��Su�1�4cƌ9&�Z_A>��v�3M�gz`/]*����L�Fs��W�lS�n���\E�F��ﱩ)�1U
d�ז�߇@2U��'6��5�C�3a?�g&��W@���^��^�J�����x.��ȞaP��X&�
��9�=t-&�%�i�m���rPf��^cg��ON����[�$�i���6��0Ә�W^�(�C��o�E��T��l�$��xK�e��n�3�J����"�Uk`�=Kԁ~
A�R�6�Y����7��AYw��f��|}s�j���v�!-%�>�<`�Y�W��8ȶ�P�u��`)�-��
���14dc�L
�y����ɳ��j�.�N�ظ�P�H@v$q���\�c�IP;V�̸�B낥MHcY6G6�(�햐��d���guf'
Gj�Аu@κ*�eZ)�J��+�A9&�=v&P͑ʱr�w�����Θ�x',E�x��뜨x���I<
�aP�����DA��
��{�=A��{b�X� �7��u�z�c�SP&��-o�u��L���iqP��-۬9<���ܲ(�F��t��I�3.LX�>a3���1�y�,�(s�,.�x�"��w(��.d-�F>�)GyF9�|+����EQm�=VS3�n�p�M�r�@�%��f;�к���_�a:�W1NS,��!�T"�q��2�Yx}�����
�/ͱwl4WG������{lr��I��:��ȥ�1��wD�=��D��p�C���j�3�=i�*3s���Ž���ɒM�K���Ț\Ng.w�`�Hה�5P�sNMjV�I$��Qr?
��sCL@�[ ���r��q(��,[T0V_<à����y0����3֊���0M/�b&��L��A�9�Y�-�B\��aQ@8�p��8��c��n���~2y@��#(j���.�y���0a^���(��"�O!m,���W�)��o��؇��4g�p��n�r�@�֖����m�x�w��+3����?�NN@��]P^z�ui|��� -�i���1��su#��E�A��@��D'�&�y��J���
�\�@Hv��\���w�ҌU챥�z�1M���{\`m6�q���8]J��UC6h�d:x��8�[Дypyt_��)�iy֭]-WӬ�ġfEOk�+9�GxԜ���k4Sb��?�"]�O�}�A
��N��_ V���r��(��f(��a)�
>�Kj���s��]�����^u-��r��f�S`ǻ��xO��A�7x:�[Cv��}�3ʺ�c��c���e�n_�_���;��Я@Ӓ��fE�þ�*o�����c�ڱ�������*�ѻڨ!k�1�8���d�?6j���\.�\�v�p'o�NʻZiǚ�Z7W���̵�����EG��krʌ�S�-�wjɚ���
�,�� 1\/~�L�ܮX!�SL��Z�<�#�ڻv�U�+��a⻋g���D;���0����`���'<�~ߍw������ձ�ʄ"qV�*T.)��8X;��m��:�ۼ����:���d���(��e|���]��n�X���zO��~P�9(S$:c1�mu����A�~�l0j��0~�
��|�p)y:��-�9uq����t�2�h;o�ѻ��+s5�
�c#�T"�ډN
�y�M�.�j�ɤg�ѻ�q���c�3��U�L;Re=�˭-*onZ"#6��k�9����L�F�� ƈ
\�ѳ��<�����-#���,&�����Y��d����g}�:�=��z�e֙��B�B6|�)'L>�ڮ 2:��(�ޕ���"��MDܣ����r;'P��n^�g�j�eq��������{��|e�d��,�u
e7B�=9��A9v@�Ɋ��Nl3�{�b��4��@k������K�m٤���Z����,����\B�h���P�Y�S�3�U"j��c7@���eԎ��:�y�ݵcc�q�u���ˤwH7ɽ:Ы�L0���
/���OCS�C��n8���&h1�ྮ^j����/�cS�ճ�x@,�c2�_=�k�d��(4��v�Z�&z���U���^l�rbʁs0.�Z�ܥ3�Mf
�W�r�YP�/BB:y�?+>�������:�c� ���(fOm�&ʣ�_yɻW�ʱ����Z�9�Ϙ��g��U!�0W�B�q���r���`�ܒM*�,�%qj��?v�=6"�1�Iw�bV.g�j��C��Q;6=� ��Ԏ�E6ѳ�q��'�Xi��N��c5c��vlu��V>��4^W[��Jk�Gj�JSP�6�����z�\v�7�$��6k��GK���]f��tS�v�io�Ϥ#�0��ЦX19<�}L�(��!'1~��/;�vK��˳��^�f~]B���db�H�zT{�+v<���ڢ�2>f���/��Us�"]����e��3��*���=t�w,�a۷�!)�_���xoҼ�3���ы%��b6о�}�� ��7#xF�������3��ڋS��o�G�?v�2�o>�if��`Vz_�۵�cv�+tF�E�Ե�)���Řd���NF�K��%�O�oͪyG�d�yV�▷:2+�3o�.�T':s�D�@��v��� �Z�����`lf������3ʌ�S�ý�I�5Ŭ�c��Z2�c�<y.&�;��L�Z_^C�s�Nټ��\L���Eg������;G!%�с��
T�L\`����@�)�/����{�v��� JpO��!��`�\�k�N
����0�Mj�O=,*�gn���>�m}�����X�uxǪ��7ױ�-~gV6�ە�9ʤI�0��q�y�r����
��ɐ�Y�?Ž��
�N�]s���.�s���@y?�� :=��7����z:�J�6��Qe���!�?skG��.�¶������ ��n���X����bf�Z�-��o�p�|T��ӆx�tIb<���6B榢d����ʢ����c�ߡ��}h���(|�H\���w��X�� 0��4:�\�\%Yu�Cɿ%��wRi2�"�AQ�dҙKe�����rۋh���\
�5��<��3�c�رw�s-���f�b�j�TqM Y�g���0J����Y�\��c
����t}v�W�'�w�Y6��R;�:�V�F�w�0��3&j�vd���L��I�&��Ļ0_�L�@0��t!&�/�m.�k�{�ma�ɏk����A����X��}�)����k:B�z�o��V';�g����J��e6���Գ<�)��e��W����h�<&�A������[h�<\Cn���"B-��1=(5zR_�\�0��jE�xd.Z�^SQ�賝���:�6���sx2�/��D)V}�~��`�����v�ט�[X�r+�K��N�4h�>����q��.�����W��
�o�A<���b�w����
_��j��GZ��j�JCCƹǻ+;��V�4l� �:љ�k��d�su�<�y{
& �<f��3g�� �j-)���.gSdFM��Vr��
Bz���{����^r�O�N&��F
Y}^m�=�Юp�ׯ�p�9���
7�`���M���W�Ӕ�K��:#b��F��ٍ�$c
N�,cH�X�X-������A��TDp�oϪ��Y�
'{�g�� &f�/c���¢��;�+E���c��
��z��+5M��<��e�3�3o5��
�`L@V` ȑG,*@��dԐ���3�1+�f���d��<�aC�q��D&��!ͥĺ��=dc�Lc"��X[^>��,ڼP
���=vq抺� �?(��V�--�����k�gu2����_]?�xf9���%���Ε���AS�*/o/-�';y?Չ�jg�1��Ǧ�q�3���N�����j�v����w\i2�l�'�m��ǎʑ�G$��v���_��s��K��'ӶO��� ��~���А]Υ�n�vf?(?���_1?��s��@����D���(��>&6I�-9���1��\�����Վ3�j�ju���v�t���j7�jOG,zJ�o]fiR_��/���ܾ}[���Y��#u�ޱJ�B��kf�M{6���5-������vE@(�i;D�CR���~�9��@�8�Ҕd������ʉ{G��0�=�:iy�u0V��j�X�Oy��v���P'�C$��Й�Ժ|2o�l�d�;w�8A��|��
Y�w��[[�Į��
��!�Bz���+��MoI��U�}�hj����g@1�����o�s��?�x68�f�5�ʙ�ȡ��K���H4�t��e�C$��c�:)@�@ك��{�Q3s9�X�vL2���P'�14dgf�
g.�i2�Rej��8H���Jzd�����Q��o�ɾ�{��ƒ}Uz�\M��Zk+ʤ��ds�f��QZ�k"9�{����
?(?��_?��s���@�Ik���.0Ͼ>E�e��ؐi0�F�:���\�4co�Ncc�LK@6zW#]��P'cf.�DPn�Ӝ�>
w��մd���'epH_)�:�4\[SFl,k�����O#��bi��!9C��a�v�G���Y����?��?��s���@��I�e�$�ftA��Wu�佣�}oZ)�5��-����N.�N�kڱuf.��E�v����P'�����c&A�q.�r����5e�sgd�E2e�x�vt�<zPӞgm�.5�V��O^�d�����p�r2����>���W0��N/�=(�{a�.)���Z�S%a����j*r�?�/�g�y���
�=W]��]<��:PPPE��v|���Do�K,(��*�?��vIi����J���j�;���wY��el�]%T�|��g{=2�M�`��qo��^g{��^O���S����<��3�~�ʮ_�տAo�K��6R�l����6�%��ی�b}<՛߹��d��
��2�� �e��.���
��֤���c]~!õ=3����45��.��7�~F�;�i��2^]{�3�������xu���5|y��c�9G�9N���$
��%�_��5�s��^��xo�,
r�>s�w�e��c�G����b���:>�̍�_�qo���z�9�<]�y�%��:ʝ����"�s��U�^l��l�G)�D�s��(���
�V�|�2#v1G�j�1�<F�L-� I@�p'��\��Ǧ�N4Wo�.�G,�d���Ԓ�虹r�M��"7]W�ESV�^|��͛7��Ӳ9t�l�w��s5���i��N��]0V
L vd�1k�ח���~V�3x��w�qp��w���#�9
�$���UA�@_�n���z��I2�9/��`ճ���&��^��L��&
�{�/@�@�@o�\2v�J�-���S��
'��s{P��\����9��ol��w=<g�~��;��_mE9��qb�"ϘX"�K��a���F���}{A��Y�\N�g_�'T.j����i����I�]
c�)���7N`o�;���U�<L����X�C��5��".����IW��$�o�>}b_�o���
5J�+9p��B��M�����wO�cr�E
��p�7�r���-��F>7'k.�YnG�=� ��@��>�2 X���O�̬�k�;3\�M6\����?�y���|�k=�g���ᾨ�"��5��IPg+9�5T*�8־�O'@#Aڡ
xO��c����[s��q�)x'p�=_�(WA�_g�Z�3>q�dm��l��Yφ�6�[��NK(>�Q"@#\���d�����<���V�~W��m��FJn�'��"����Q�czX�8J���?��ԙK�=V�,*��Ȏ�\d����q4T�ݻ��� Ċ�g/���Ȱ
���0cs�%��@v8tydj��e
�
f��⤼�;�S�Sc�g�x躂��(���4��{'���y��
5�j�P��9��"p.1�v��ES����Rka�n���;��/�����;W�n^�:� �.��a�J��W�~
�s�7ׯ���Exg� �Fp�<�s���2�%'5q�`���F������V���︇��P[C=9�YO.L�|��� �����M�:O�6�r��[��[��
g�A��r!b��Ho����9�w�/')j@�>�|Y��]fXwg~u|n
b����Xc�(�[Ṋ�6��g.
�f��X�5
�7֑u�d����
����/y����ɱDž��|�o��E;��!��6�عb����z]��s�W���=+�7��7����<Ӫ����
.ލ�)��zq�Wq1C
��K�\��^;����b=�
�A\��Q��"�|���u���4� �c��}�9��y�e�<�l�)��W<�|�>��@}���K�=�}l�;��q&r��u$η�{YO��P���|ȖnV��ܡ�-Z����r��R�ti��/
�Ԏ
i2�ls�:��ꤜ��کNFg�M8f���#]��
���
kI���,��\�p�ƍ0+p&@���O�&����<�=���D���y
���B�AY˿��8������LXJ�(���M)\�r���y����f2b��
�$�w�ԖLSk�
.�r����D��*�i�Ԋ�c���@9?>spm��U�g��Sֿg}9Q�4�f����8A+���N�;繺�_�29�l��E��'P&�X_NJ�
�)uy��y����×/�̉F�I :�xPf���x�ݸ�u�c'<5�A٪LN��cM��;M��#�s������i�:s�I
�2$���d��(/|O��b�}��;�4.p ���A�'����\0�
ʥ�i��L`k֯��I��x�Kݩ�`�d�s�>�����7P�iAU�w�w+@ژ����
�)�S
�s\sKB3����67_����xO0f����N���?Jj\|7
��Kg/|R�\Ê�(��s�uP�QZ>B@?\,D�=�ր �Xt��|���e��9�wkf)�ij���e����@x�W��\���T��4�Fs�W��
���Z��{���e��u���4m�D���C2q�yWe��+
�:t�=�H�v�)��Xu�!���|j�wA<@[
O��k��=�M�N35]3����^�˨-h{�x����rՙ^��� �W��@_���P�
�Ḱ��� ĉ�`��/��2'|���m��;�Ms)�K�,�w�,������i�l'��
�
��ý���?
ʴ�(���eWoStA��4�A�YM��@��L0c(����2Cywٟ��
���
�e�Ӏ���xd��m\]P�s��u�e�r�v���ej���Gm�&v������I�կ�4=��똂�9�A��LGe|���
�A_�3�C��3��%�s���:�_���B�V7ǚ�s�?y�3��6j�ד��]Pne�{|��qP�-}\�,�rQB�3�e"
(�O7g��/�ʼڲʁMm�&eِR�|�P�?�%��U�<����20W�ֵc-HyW��\�c53�#�Iw�v��:Q;��wl�Hg��s�n�v��#�XK��
�ܫ2I���dŮ����r��I�y,LF��ҫE��@�� �F��
P��N��VgW��>�/������
N��@��� Dd���U,�&��re
M9��
w'����+{�A��4�
���(���k)�4幜���)�l#'r�D��J9���[reN^�9������
2�+P���agEe|�Ww�
ֻ&�}���)(S��_��}*ȓ����w��h�z�}e.��_M�'�z
��4��{e�
�ڃf�����23����Mv|GY���r��a!D^Q���B����4�[���.(��I~�jW�]�2�B��=�A�&|�2e�"H�+}"<��c
�\0Mq�/yeZL��9�ƅ帗�D�5��5�y��w|Qk�[pd.���\�p�k�����n��xP|g=\Ʒ.��l��JC#�}�{��
�r�
蜤�.�2_{0s��(o��@�� ��[�K�-����F0��
ڱ������dOi2=�:9�8�\�����:)@κ*�v�b��A��I� .�CFK����꼮�\�c�cW��
�a�)�O0A�5e��EA���L�W�wA4�q"7:>����p�(S��D�s��_
ԸINg�s��� 8N��A���>'UQc&�q��
�4-Cy,�(��t�q���
�s�� �f�
�5�'��tͺ�n���V���LA�}H����zݽ�2ͮ�Z�Wp����|���2G�P���9�=��q2�␚������(3�('��;j�ܲ� b�����{Y���<(�ǽ7pfy�蘯Cq�'���g�w�\��
�S��Z���L`{U�R�v��8�)(ӄN��I�L�.{��+֝}��PD`%U����v�k;���C�Q��Q������XI��E���
*�{.f�A���]Pf�(���g��(s������ .
ۂh����$��5����ߎ0��b'r��{�d鯯I�����
�f�=M���`���M�xq�"�k�d������J�<f��eC�S�O��4�ud��g�`�����/8�)�p)�*��T#(��#A]A��hV4��B�#W�@�a4����0�s�;³
���4m�R�DM�}|�qb*zA'O�0D|�s��
���y�0>sГX56�Ήl�
P&�:�U��)�ϥ�� �;�W�rF�9\�oq�ue֗��Ɋu�FM-����&���2��Eo?y�X��7P�Ħ��ww0�狦LM�rB-�m4
�λ�ݓ��ɜ/ʑ�w��Ls��;M�Q���)3YAcA��7�
�e֛�k�='h��E�~
�L�(��ql���pD|V�Ls<ƔQ�S�6��2�^oX��E��
P���
�N���i��x��c3�c�Zo>�3��m�2�!�W�D��5O��$�y��)����\pN��ׅ��dY��
p��;��I&��ru�ly��=���)�\u�r�2������fh�#*ˁ?wˈ��$_h�� �[9���wlt�����"�ry4W#3����x����ک!��j�/�c#
{<f���"_<�U�qdR�Ƚ�Șd������ ���EV�n�$4���5�����}�Zʚ����Ǖf8ȹ����S�@��,���렏@*<A�rl9zdi����^��D�rdSf
����G |�$|�(s�@s��wN�\Ms�v�>�Y�2W��Bj���ߑoԦ��E'$��k|ӟSPf���}����&Z�������+-^_��)��)3���5.z�ƿ߂�ap
�[�{�j�N��;vi�����ɘ:��� l�
2�@�.r�����G���5��
/5��w'(�:�����n�}K�]�f3Y��Ԓ vN��K���<�3�;���y]�_��m���w���o��:zq���Bs7��E��=�2�ϸ����M���A���w�̭Nחm��7�J��$x�KК�I�!n��F8s����,jI�xV�k���n`l�(��8����J�d:zeZ��-�/hnf�p�ྌ�8;�P�ʚZW���Q��O�������]N,ڊツ2M>UAA��[yUl���ɗ��+\j��Ϣ�L9e� �����E3�r�
P�ʖ�]�8W��AAܟr����\ŷ�d�̪F�?�
:�����r�GfL֡�������$~qk���2��~�BC2��E�&����@���<>��<�s�a� P���;�P�cԔ�x���`_.\���I�BM��f='(�mn�߹����c�����2�o�z nA\�9c[���\�Q�)S�<��|O�ڽ_�~wKHlh���~:ʧ���A�
���(��> .v�@���g�,�Qcn�
�s��m�(s\S#��q>�ŋ�ǹKB
A����/�4MY/�c��*=^A�'~
�a�N��G�B��O���[t�9�T��L] �s�|��2)q$��M-yB�ӑ+��T����3��S��q���c8s1�X�;ֵc��J3V��Ԑ-5�����Z�Ayvꊢ-gZ�b;����X���q��Z#'EN.��6(��B3�'F�&JoA
�a�@c159�3��#v5eLN2�ڊ�ھ�9 ����͚�� n*�Z�{
�����s��<\��8��YlLJ
e%�rq��`IS�'?�b��RNP��$@q1����@�2�Tq�OM��w5�M�2��Q�4<�G��B7>��iZW��2��Z��Z����{PLA���j7����&�#(��릅���Ps5�o@�.� �M
�D���L���?��S�/�����BY��L�ϩA\Q>)�4a��ky���FP�X
0wqH����Zj�A_��݈��u��'���k�8��N��^4��:c����Ņ0�@�|�|p�S3����1V�L-|%��_��L��u#JV0|g�)��ą�Vy�����D�^���t�de֓�b�����:L���I��8��HV+a`�7_�
����}�!������so�4�����'��tR`C��d�{АUܱ�;v&���\m� �vHi�1dMS^�b/��DހYi�Lc�d�sR3H�@Άk88{�3�L'3-f�q@\QNq��A�� rF!�h��E��q�8��h
,Dm�W�|�u���U��GS25Q�����|0N�
�?M�|�Ǡ�^��4�Sc�s�@Wg��k�`�+m�+�e
en�����L��:���
��ϭj�`��1��������zY��nL�@K��45�=u�D����k��x�����CTp�m|��D��r������Ɔ�S��� ��@��≌�9A�o��DK��.���^�Ou\Cp��;��u��/֍��a��Q8V��`�x#(P4�r���������X�~Se��\,{��(|�F�����Z���5e�<`y����.nei��wj�c�k����Lʶr��,�
���Ǟ���'�; ����h��h=���z4��g\ppLPyP�����_K�a-/�֟��w�יqM���2vᝋ"�mZ�8�hݠ�ܣ���*)hj
/��4_�КW\��|���β5�t��\���^�ݝ&u/T�"��K���0����d�&�E;���$
i2������{�n���F�@�@���C�y����BA�
�/�j�fB���?��s���3�����叟*��d�2��br���W| ���p.v6���f�,�;_�ޙ"=N���NJI�մ� Zӄy�"�]��\Q��5@;�w��Ԟ��-����Еy]Jɲɍ6:�Ϻ#���)�v��lSK����R}��/5b�r�2�S���~�9�瀟v8� ��=�}��I77y#$��g�)lu��?Nq6pU��I���Y����sK�sMe�o�eޝi���2�j�u���=�Q�w\W�V#DI'��(+>g5�2e���>��
�!��H���i$﹌��|f���$��eҾ+y>�T�PXʟ/$e��2�qh����/��:+H���2��.u�ҩ�W+](v��բW*\-|���BW�\.p���[K\̵��砯rn*�U�Mž�P�ZвW��2pv�[���n��=��\_�eL��6���H��C�5~�9�瀟��Y����5�vܤqR'.?s���2qрNIʤ얤b�.I*��];���uIȫ�3�k/�$e|;Ŭ�R���+�n \S.��Fg���c�so�{������ɲ�ȸ�Cd��>2�F/|����M�_�"��w���;I����w��}w�}k�̺5I^�5�c����OG}9���Ό����[}������;o��U�{|�vy�����˻~��6�����Z}S�o�o��i�m�>m�mЧ�W�ZU�P�@�T��K��Ҩd��
J��R�x�Ku
4�P3O���4��Z�W���R�W*f�y�l`��3U��r�jWKe�z�DƊW�d(w�P�RG�X�\�K]̓���ܠ\ɋ��B�)�aO���ϙ����瀟~��s��rh7���IEND�B`�PK銋[�v�RRimages/admin/rsticketspro.gifnu�[���GIF89a��A�6:�/s�k�b�Y�~�w�̔�˔c�Z9�.>�2L�BI�>J�@K�@�d�[F�<���&�A�64�(���>�3Y�OT�J�?�5�ә����<�2e�]Q�F?�4C�8V�MF�;P�F*�*�,�!�҆"�=�2%����`�X&�O�D�
��"�1�$2�&B�7�����\�S�
A�5Q�G��ʟٚ�z�rA�8���A�7U�K�6�-L�C�Ł�փ�Ж@�6n�f7�,�Հ}�uL�BS�I}�vB�6I�A����f�]n�f>�3�υ&���ո�����x'��ۏ��y�㬑Ќ��3�(d�[����Ø_�U�Ӥ?�47�+6�+���b�ZC�8?�3I�?L�A-�!~�wy�q�R�GZ�O��ޗ4�(8�-W�O�وq�hL�Da�Z^�TD�;#�4�)(�L�AH�@���������ʁM�E���S�I|�t��ׅ�t�mT�J�۹�Հh�a������ςu�m�
+��ϋ�ԃK�C;�0\�Ta�X\�S2�&<�1C�89�-u�m[�QX�O_�V.�"O�F~�v`�WC�9���������T�J�~�wo�g0�$g�^5�(<�1q�it�lQ�Gg�^C�8R�JJ�A.�!Q�G��'�N�D�D�9[�RG�=F�<8�,�լ\�R�֢V�L�Ԛ�D�9�?�4���!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmp:CreatorTool="Adobe Photoshop CS5 Windows"
xmpMM:InstanceID="xmp.iid:F4E7BBF66F6511E189DCEDE00DF875CA"
xmpMM:DocumentID="xmp.did:F4E7BBF76F6511E189DCEDE00DF875CA">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:F4E7BBF46F6511E189DCEDE00DF875CA"
stRef:documentID="xmp.did:F4E7BBF56F6511E189DCEDE00DF875CA"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!��,�ʼn�*G��#3N�m��`.i�ʀ�ЄI�̮S�Pٖ
N�\IPM7\�7g�x�F���D$�rҴ��tHD�� eM�PcV_>����ije]Va$��6�ƜJ�AZ�@89+�b�
.���y�G)��#��Ú?$ �F-\�vȈb��Y�@1��b�
S�"���i�+x8�Q5'��Ee
��$0IJ0,�"K�c���串��1�)A�fH#?��p��fG2`$�M�*=h����XY*�B;PK銋[��\�n,n,images/admin/rsticketspro.pngnu�[����PNG
IHDRWD5v�tEXtSoftwareAdobe
ImageReadyq�e<,IDATx��} �U��WGwϙk2 �O
@QA@6,�"
���"����_<Q��C��������,ry ��p$!$$�d�陾�}�{߫z]S=�s� ��]]�������Y?~�F��g
�,����ء��Q��2� _��g��M�$�{�<p���=��=�9�,���_�^do��Kn�s��1ڎM�JLua�={a�W^�Xb�%�}%�8��v�hg
�;Q�]j°~�@�|�qo[s�g��^��O��F�?ķ-�Xb�[�CD��h��8�o�կ4E�,��b`�h97Y�!�hp�x�Ul��h7��j|c�%��(���B��2�6
��P��i�]����m�`'lp�.8 ,ے��1J%ъE��'z`
�m��#�u�Xl�w�p��.�oc,���Fc�SE�R�˴��k���)�88���>E�ŜhD�EQO��jx<ӤUt�}@������,��v,[�%^ɻX���#��Xb�e�(�F�m-sb�Z�[�%7
E�粐�础�c�Ze.-�/:��J�e��L�l��΅d�k[ �6�>$v�T||o|[c�%��\opw���RvT�&�um��\&�l^�*2V�B�Z��&k)۪b�b;7b�K.��8�3e�U��l��'��́�t
!@���] ���b��Y�}.�������E�[@�>�
��,�;]7!_d200��\.H8�
���
$v�q=e�[�ZL�S��K�l�8$��E6Xd�
X0�Rwr}�� ������}�ؙ܃���K,\�$ڟ<N�
�����B�P��t2����8��?�+���x �@�#��g�F�>���]�V+�w��=�%����:�~j�i'i�$v���Xb�e����D[#`Б����j��1A��/-Sn��%`��|b��pb���*�,#
��c�u�b��dö�2+e��q�tf���7Ψ�iJ#^��%�X�����R��e�j)�C�=2��.���
�H���"����綶�r?@Ÿ* V�J�U3\+��d
C��p�6F8I�"��������P���[K,�L$p��G4���oXs�<�m�l6'AY��F��`s2 ��j`��t�\;[�``�(i��d$
����)\[��j��ԁ�G�-��v�K,\��V'�@&����.�� Rm��&&R��V����ԌU⨭��%+����Ek��F�Y�`�8s�|����K,�Lp�Y@�2 Y�քY���;!�
���X�
�U:����� �v���f�vp����L�d��_��>��7�ٝyh>��m�>q�u�-�%�X^Op=C@�G}`%��tUd�Xp9 [P�
�v���d�����Ok�?����7���@� �-:?��`��Ysv[f�;��IG6��Xb��ה��K��AT��:�����[�V�X��kJ,V���3g�����m�]�3�S��BdY�g�`�*�i��;0(+L:�ȼ��+�^�A���/�u�����%�X�S�#?~hx���5�h
����h�I3V�W�%J`�X{���^x-�<��ٰ|�
X6i9,jZ
N��^ؑ��R?4&�E���_ſRL,�����絛�ud99����>�AÒ�zV`���d~�Xb�e�ĺ������M��Ju�R���]�����R�5��aWd�tĿ,�¶�+��q)�:�t8��d8l�J��jʶ���D�Z��oau���N����PL�^��Wqu�*G�@U}�U=�(f�{�^�y�N}�
��q��BG).YK,���#�˹��DŽ���~� PX5{��Յ�b;t���E���V^'�\s��B�N�c
��e��S�S�g��`���s�O��}�`z�Ea�$�A���*�*�
`�d��
T%���/�c���D���^?��%�Xƛ����#�cr�+{�vP�;���g�7�fe�t,��|g�up����~�Rn�|<��Qx��e ���ֺp���j��YG�}�K�p��}�'-��c1_�����dv�*�"�.����b!���<���m��]�m��}�+Z3��-Z\C!�X�G�6�^����fp����W�����]�0��B"���(�{���Y��*'�W{��KÏ�������/��~�*�ԱRN
&%'A�IJP����@��g���;����|�o��5-��WR�UF̔���
�h�Y@�8�(��Q��%Ix������Q���E�@h!1�UW
P�&lm�h����D;O4�1�ZJG�p�K-�*ڎ�c�E�:��c1)��N�����D�$���$b�cE;��qP����GEK�p
�T�_���f����uF��h�����T��������Q*�e�����!��4N��
�j��7aI>c��I������q�1K���������Z?h��@���h���b^��˧/���?,��P�Lp�}o�]����+�j�@T�uQ�U�WZ)�{cU�,��`Oq
�Z��u�2��Ho�;�y��~-�wE{��������}�}M�o��O�s��c4�byc�4Y��8�:#a�7Ѿ3��:���*W:d�Ұ����.��Ӣͨqd��й��"�~�mɨ����_��JI��R�Ul؞���:��l��X{ڲ��:ѷG�|�P!�8gR0��g���;����<:�I�\7���:8�O'ÌE%5Wi��Բ�J�.���*;���j�ݲ^��4.�?y`c��#|�#8S�?)�ǩ�2ľ�R�,Z�ƾS�P��c;�b}�z3��x�$7��{��@}�h�h�y�~�Z�~C�wl���Ӎ� z�Wc[�a���Sӓ�X���*��N$��Bې5>j��j��/b[%�������a]�E����D����E�
�!�BW�\�ir�%�?�$\"��c�dSA�l6/�b�@��!dU���7�s�SKT�����%X6m�֔V��T ����G���r(��,|q�����]t��t<�ʽp���y~�B���+�l�Y�[�$ث������U����i��V��{x���tb���S�_}�����*}ԉ���^b��O�-C�L�Bۖ�&���ym^�p|1��Tb(5
j_���9Z�$���
�������֟��`� z�q�1�7E���h�o�ɻn�:J�
�Od@�-��S51*���������u���N/{�[h��ZN�C���^��;��d�d��_Y>i���*�K����Ϟ�ַ=%�����a`{�]E��XF}W�dL��wo��כ��+��zP���`��!?��6,WWh�z/��3A�%W4Y���g`��;
n�%��
T)�oUV
5�i�����p�+>\����o����E3�'��/ݦ���L��L�褹�&����1֬��.Z��~m`}Y�5��+Ul�����-�u�����ˏ&�b��|�2j��Q0����J����u�2Žܳ��\��K�j!Q�V�
������\��oT��%'֥�r��=�<�i�CPv�0[�e�շ��V��OPJ3H�N���6�7���RC�ӡtk*��{,H~^�~�l��D��'D�G��������4�z��T��wvı }��.��Q*k%A��}�V��ؤ�U2�D��l`}2b@��h��2��D���H1Ğ���s��q"
��yYB�7^��I�2�|��~0�5��ܢ�T�~?D״�hr=���ю�s��4�Jf�{�/�?f�R�T�\V�`�)7+�\jh5�g�T�iʮ��M+��Й뀖��)@+�P�UH
�LF\�i��a��j�ON�[��{WC�FH��S�Y
�
�(����6W?i��G�mq�����Һ1z�:*�7�켚la����J_�J����������ئ*�n���������E:7�����GH?>�kXL�Ӕ�����l�&����(��#�̽J�*�T�e����ﻳ�3��L��`
N�߬�o{�~��%��"���@y�%d��K��}�X��Wj7�ca��7���r.���<#d��W$B�Wz������&�����I��w���WQ�F�~�k4�ri�hH4@{�҅��jmh��U����Q�ݸSm`�iA�X�c��T��-K����VZ��U��>q�f����ކ��J��I:��@yw�5\�
6����t�Q�/�Զ�'S���1����������k�Z�c�"@�5��n�����<'��Z/�b�9���0s�H�I�z�17����v���P�+:�>K�)�q��_��Lh�,A��UẐ]���}�DL�ߖ����0��!c-�2�U��*O<Ho����
tLX ���`� ���i��aS���,Y�Ńl1+�յ2.�rղ/���ޅ���Vր�R������.0�|�W6�M�p/v����*�a��4p.Ll�!b�3� �K���OL�VÆ<@�l-��
����k��0b�#��B��*3��m��_Tx�*��TӉ�-OT�[�T�j��#cf�z�|��gʼ7���8�j�߳.��%�J^y�S��ܯ��əōTTEvT�L1#��0��s(V����[4�Z�bJ����ٵ�Y�e�w��-uy`��*��nRR��KIL*Ik6�[�X�i��ZA-YEj2�e� 2��D|�c��g9bWh���ؓ`��i(Y@,0<��5�M�hO��)��j�bGi[g�?�o"�i;w�����j8��`w6��Y�?C�~�rO���^�h�mp-��1�,������k�b���vC���|O���d�R7J^)p^�S@��c=H8 hm�!cg5���y&�U��U\nVl�S0\�a&��>�^��;�i�ݼ�*tTE-9�#}���8��������5g?�"���z�0���_��"��
�X�8>R�O��v}��r��d�y�u��TP���ߏDLH<4���8�Q�3��7!SkF�!K�s
�Z�
f�Ǻ�$�c_��2�����t���/���]ؙ�!Y��Zfc�����;�VL?~}ν0�n��i��E���4A�C]ź�DP�*����~U��A�B=a`�V��h%�1zh�R+����y�쇦���P�v��"��j�DΘ:)�I\?���I��(�+ XG���Pf����M21]�e�Fp�n��ڄ�;�g�Tx��2��"���On�],��K��<��c�P��
5�5p-���?��"�披�(ּW�s&�j�%T��"�vc5��L%�u�:X8e���Z(�(�ˎ�,���ν�l�b�BK�4��rL���EH�N����2��ԛʭǾQ9 �/3^M���Z�@UZ�Rp�U�WWa�x��SC��s�d��BDz��2P�����ɡ�F �Z�|
��U�E
?�r6]OXZI�4��;h"�8�׳'J�����U8���=��z3�]m|M��x�Q|רc'��Z�)�\=��0IF~vԧ���Fşײ������Z�e�;Bg(�����v��U�����J�E��Ϊݶ�Qd�7��x�mg��/�ruT�kaG^�g�8g|o�k���l=��??���TQIp0����1���*�}�l�g��zG#h�;L^��<��@o4%'m�WV�}��0NV'���?��O_�v�e6���I�VAs@-�������#�8JK����L���9]�SHW�bA���NEV�K��K��T4�1�:�U��g������'/9 �һ�Sa�4��0�R�V�VD0��S�*��%�7-S֒j_M2�^1.�T2-���D��#'�&`p���i�D��]�B��[�>�^�Ɖ�?�Wy>P�!��O�9e~�54^�f��aLĵ��A��
�UH�'�S����
�h�����4K��S���
��X��V0�k�אSʉ�� }�bP�J2�`�cAI,�2TVX�xY/Ë<;���j�v�/��3\�A������^:o�� 2p�"�-��]2,���}�=ue4Ԡ>L�m(���yz�5�K���am̬
�V��"�9b�"1�a�R'�*����+�U��yYhM&w�Sү�J��gM�0ceA�?7��ި't���j��4F[F?�
�$����zQ�r]P�[���s���b��.�E��m��(դDj-V����,
��-h[��v�><?��N�ǡ� \7
�ﰸJ{��B���}^*��
�~����9�16c�+���'�q\64��jfl����W��D�����$h6�qMv�b��e��5���4��dV�����t��88��2�
�B�G��lPCV^~��cgsEfyvH�@�jF#���j�*����~����v:Oض�^�'�n��,"̾DO��y�!��%��,�sL;F��=#P���!�9�����܅�X��3��0��C�T��0�E����E��>"Zf�s_21`��/+�A�G0W��
y��܍��J�8U�μ���]V�����3�B��ࠑvE+�
W��ʘ�_����jhٛ�SnF��95��ձ�Hr�)��u�D+����
�a
f�,ދ����l�;a�������<�]����S&��
VZ���y�CɇI��8�V��!6���Й_+N��N"�
�/p�LN�z��7p��$֒Z=RYM�x�%<��azt8�G��*D�it�D���˯5��~������Dnır ��C��K1�X�o��/�m��z����ME���W���1�rF��ٶ��a��Y� ��`�Wa�2XIcxx�y�$��Ƣ����U��K`p��_�p��ۺ'��#B�C�}e��#�F���\]��:3��ðd��Sfs{�LX$�Z��g#�U�Ad��FC�4��[�eSOT0k�C'��]I�J�v�2u5�jr�;-�3������`Iխ��(�}]^~�����L.������ڃ:(��l�Q�+#��/�j�`ٴ��p�aV�[���!+ô,[�b��*K{�o/>GjEi�%�Бp`��}�I3k���_��*?�L(Bt���ʧ�/�PQg�T-=ʎ~vpE�k>AXk�z�%@.�c#��p��SI��m7.D>�$j|��cQ���W�4��&�+
���!d�{�6,�kL"�4J\�u��ڶ�w�����f�XRŰg�Wds��v�_��e���o��
\��ޭ�����Y�X++^�#�fc���XH�L�z8���BS�;%��2��!]<X�K�U`�Xw���I�l�?Sl+m&a<Y�i@�U-T+�m��T���=��Bx̣Xs���Z���7���az�1��@*�o�{�!��Qd�4@V�ȋ|�A�a���쯵�ݐ���/6�\�ih,$G6ȻC�o$;"�s�qͫh��vHS��̙1���Azv��_o�p��At��:b��A�m7��ס�*SB���@��lЀZ^�Jn��V@���R3?ʸ4��o\?�z
<߾ Λs!��8���bN&8d�5�_�4���>�-��,���9�Y���[��;/����M��R�g�~H���GM3Y�K�M�9 �o-`l`��xWĺ8b�|+D�ё�B���j9�7�NO��:������l4��'t�����ի#9U��W}�@��i@��f�h@tl�^��öͰ�ab>��G��J #U�Q$Aeg�a4�([0'?��VR�ך9ڮE꿲����)�������viH����с?�EkU?y'<�kܲ����f7͡���Ys�VX�v�`zc�,�}�-�@g���)��/��4��� X��LSi�~8}�,~���"�?�y�~��L"����=�I�G��Q>�5wM�����c���~bc�����6k��2ο+ֽ}��g��
���)�l�W��L7
qj�o����H'Nt����������긮�~ڨ��@��Ve�(��=�S?/]]
�=�=�j�+z�Kef�S���b
�u��3��}�^Z{K�%�3%i/zE?~�Oz`�{��c��Eg�I6:�^ɾ���}#Y^;����*�|&b�dRk�A���0�dsXc��aU�f�0�o�q�i�8�&��w�M���iZ�}(���s<i��d���p�Z�';~�@!*�?ʶ?��XTj�_�sYĶ�4W�D''F[|�Wϵ����F�2���~�1�NҖ��z�*��GE����R��$�S�<��1�k��($KPh+����%�6l��)�lwe:%p6�& v��"���
SBY��(`�AB��_v�
�?�n#�Y���k�!����90��E�\:b6F�M��������f��0�ǫ�c8q�/��+ .
��e�Q����/U�{,�:jY���2ҡ&���j5�.E��$\���3�$�[/U(hih���ð0�d�e����ңQ�B�`���}��릈~��c�չ0�HR��W���;��TR�)t�l�5�8���׃�����6�ys�c�R��~ȥ�l��5�Ɨ̂@�wt�S���ق�R\�5���q�2�I�P-s^�R���|ơp�i߃��Ɇ13��7y���W�"|��oÒ����k+7��ƫc`5�[�ȶ���`�����'��R*=
�����ÿ�#
h�XF#�I���^���$.i���5�l��^|�^m�>;�r!ח�W�(LK-�B�,DZ��V _-���Z�~�
9ӕ;�ۊʞkf�:��+��ES���f������|�
e�
A��e��h��Ns���[��L?���oy�>��T7�czLeL���F3֬U�%�,�lk+.�ҳ;-���D�W�l5�
(�����ղ��)�`\KPܭ�L�5���6�\Pl�=�����\!��n���_ɾ�l�XY������#X K��}]�A�S�0�y7������������%��d��`�9*{�%�@k��jVВ�٤~Sl,�b�9���2��)I+�R9�Q�B��5Z����n]
�I��΄:�N|^*g�<V�*�#�$��w�k��D*hG����X�u���k��َ�Y��w���&�|l*��*��,�m�v�A@��-��`��V��d����4#�]�\pP3T��\e��K�`����U�Fx�}���x���7rW����X����Y����
`yO����3�Q����̌�E�9�҂�%ч`����\�/x
Jp�e
uIC]����T2T������F�����X� �F��Xc�%�qW#��X��%^��~rJ��A�r���d
�����dFqV
���+�����(K0��ܷN�u 8�3:��Q�f�`�(�<
ď@,��2.��
7���K4:/�&�dr��H��X~��٩&�,�B��cT�E�#��z�
pu���d�Pܪ�n��P��ac�Vu-��yr/��}o�;`X�Xtŷ?�Xb/q�Z1��i�-��|�[��Z���*M���\D$����w�[,H��Z��Xx1������խ�J\~���rA�z��](�z��?�����\����K,�gB���$����)۪T�h6WR�1-�B���2�Ǫ�Y�>=
��`��*���b�:��Ga�e >��hƊ��ܞ��O��+-a*awl�%�X^WpE*�Ts�uSR���^`"���(���z������5�w�-M���J�1A7X�����!(#�H��x|V�;J�%Lǰ���K,������lM"��lvp�V2�lV�g0Vi���8��G���tp!�e&3�����bP�$�B�V�C�U���sC�х!`Ų�{�[K,�Lp�;�YO�<�>"�i��jE��-��#��j'3V)D�|��Q���\9�0�
��z���L`զ�
�'���6��.v���M��.g�K�`ū6�îb�%����� �)��+��Ǟ;�Ձ;�&VZ�`��S,C�1�`�R ��^��$��y�:`?L�f�2�˃%���6ېhu!�D���?�<��0��`�����b�%�Xjgхs��,�[2г.�u��e���ּ�����d�K{����)#~�2l�ܬm�v�)����}�nUFu�)��WbF�4��uO�����^9.݁�'{�3�Xb�e���kA�S}лA�Cx!��{M�V��imZ^�;�A;'@Q�[����Y0����Z�6!��U���۽^�B����%��ʶ����5���W�.�X��Zq����K,\���{}=k�w
l��nrZ��!�y�c%�6�,�E0V��6�^� ۓL�U�j�u6�-������w�]���ͼ(
X�W�P����K,c.�Xtҷa�lM+�>���l<3571����25����������O�R,�`M6�L�����g3w��������z[*)A�/�����\��?�Y�-1ͽ���
�6��w�⺷%[�v��� �&��u�����d���ꭢ-U~�����sk2��̾\X�2���T1���!��K,���UK�����}7as��٩���S��Rs9�����N��`���$�5A�*�{i�����)u{[
�J��6������q1�����M��H�Xb��o\M)��]�g����ꥐm˵&&;Y��ut
Hc�h���P�]#��=�2��{�o,����&�F���z�^��!���ak\���s�R��b+���~!�+���s���IEND�B`�PK銋[z�tMMimages/admin/staff.pngnu�[����PNG
IHDR00�`n� pHYs��~�
�IDATxڭY{t�U�g-�q-�r֬�,R���x��"��\u���:k�z�"
��PZ�nӴi�&i�ͻI�&i�}��4m�ȣ�#M����K>͊����Y�o�}~���9�KY�������͛7CÉ����z�BQt0�dH�0���XwO�[? \�Ō��7���ǎ{������bP��x��!!
(�tiiI.�9rd���۶m#@�������5(�$d��ABgaa!11��g�ݵk���^{mϞ=�� ���+(@
�0�a��e�TCJJ�SO=���/c1�/�UBj0�!��3k��t�z���۟��^xa�Ν��C�e�������7n=ztÆ
X`ǎ�=��B
&0�9��
Ch�N'�߲ej♠
��e�m�'4aC���JXu�����k�ڍ7�;
�@�nݺ}���]�`z5(��I�� Q�k��P(|��G 4���~���Ç��#""֯_�iӦ����!:xy8�I`�9��C�=��y�G""6�ٳw��
[6�����<t��#$�ɠ��!&�j��[�ڼ�0�!��d����~��X�vp'��'�yc�������;�t0�dĦ��}�f~�~x�0�!��dmj�@
x衇�����j�G�����4fƉw�~�O�f#�ظ)��_��o�{�V�IWE�t;�Yuᥝ��pr�@�u:��?�a㦨�6R;^�:�J���$�|L�'��&��迋b��oo�����%E��0��^{
@ı��Ҳo��͛#�y�Ϗ�$x3�Z�.���t�yx&�)��Z�p���7�z�h�}2"�p���w�����ˣ�=�k^�!O��a��>ٔ9�B~7w����N����k+�Ikp{kc)���_�ŗp��{~�轷^�S�2b�z�H�%q>ٜ�m��Z��6��N���M�H��c� ���*�
����@���W�L��:��}���6F�`��ˠ�Ә�f��5}�1e�.q�&~�|n�pj@��S��H����*Z@���%O��]��T��k�
�2����1K�h��Ѫ��?�N����Q~ܣ�hq�;�j���9����L��O=�zU��}�����C��C��A�)@��+����N30��w?��.�A��}Nw�~��`��=��U����_��/��~ޫ��W�qw�N�a�`��p�J
�7o�9�W�,C<����o��8ٻ\·�⃝��t�#{�?�V|�S���pt�wJ�w�����nU����g��_�w����z��'���C�&��\k��,������w��p��E�܁��K�_N��.��v�^U�H�����L�������P8�a����cjr�;��ٮ(f�_�`l���}��}�}��݃��+�ژ�+�d����+gE�����pX��Px������Rf��-m��VE�]fj*,��k���?�R�h�G�3~�����|���[�h�[ػ
*Z��Fn��Զ��ڵ��6<�mn��̪�����Dg���M�+14�
V��Il��ҪV[cM��d#�us+�W�y�j�njd�h�Z�%�v~�Ef�I�lRSSq�MYe��d�z8_��������,6ijxe՜�jNY
OS'�5��hST�:{Z=5��f
Ǭ�3���X�e��.w�$�f<E+�`�S[Z����R�M
�����PM�ĸ>;'�T�K��b#��X�41J��j�<HR�"��;�F�}���!Wg������������y�����VYU+�)�[�ں��VI%��44�N\^}}n-ߖ�����
Js��<��"���F���]V�+����f����ѷ�0�����)�wjʋ�k�0Y��T�e�v�W�o�j��@a���RE\�'��z����
~@Y;����PM.*&8b(���*���7�M6dMou���...2??�vqq�}Vos��-s��`��8�Z���^l
�i�������(��_���U֫_�#(��)R���Z��^�o��j��wjiqannn>(�`8�QԴ�M�H.�����Ѓ�A
�HSm��wc���ba�.�!��*�x%��H*P�Y�nu-��[�zk����:���}e�k��*Ѓ��B
��4��J-���,t��d�-�!NaJ���9�l>�IC��(�@���v�h�\}@1;;;t0�����
E�FpHVi"��
y�rR�:�[��Q��di, �u��&�
���r���i,yW �r�{�>�����-�-��Iu����pS�� ���
I9���/Mg�<�)�D��ߛ!��G,�0�&L���Ҵ��L$NP�+֢*i��ܩ*���>�_5um,U5@3K*�
5�&�,0��Q����y�.�'���λ
�Wb���żL�_�
�d�ae�T9Ej]n(P��H��S��0�Pf��9t��*�S�:�H�-(��ʯ2$�4�jQ��2YVn���PCqٹ�82'.�{9�(�.
�#O�5O���᪫}�)�̏��<M
vMf����7�{��
Ux)Op)�w>�ɐh�VC��D��J��f���s� �E�?�.���櫈��C�'�8t0,(6�����$(�>Mg+SYr�#A4��d.<�K�'ӋBg�j@�?M���_�,�Jʃ��L����N��P�H_&7+���@3���&��CVĀZ�:I�+4�%��"��ł����Y����?��f��}
��Φ�~b�#s�)�UPŔ��d���V�����36>VP�`%�P�%�4���.�p�g�P��+䳩ԱI諸^^=���E%�O�g�L$�N��I������͂��\^B��J`��;�!��*��ƽ�IB���4�Ǟ@�"�Kb��b�M+�>��|{9;:)w`xlU]�[uiLx�'H_]L�.�LQW)�1�cH�
<>��:@Ĩ�l�&'=��|�L�
A'
M�T��)�q&��O%偞�q����ܪ�g���d��I<��
����h�O�?�F;�Q�/�=P�$���L�(�`H���p��"�#�g��,�*�Tb.|~����$�H��0Z��E}�ƍ��~_z<6������e�D'�*�
��D���U�i��s�,�TĀ́`NiJ�9q)�Xlډ�<)�qc�nEM�í40�o0W����Ĝo.eֱ��'�A��u5�#�&�6
������ܯ/����:��O'�s�ES��B���^��n�����wwu544���x�
;!��A;�B���e�4(hC�1y<>;:�!�gS�c2�W�̔|6�'Q�����:��O���7��m�_-��ydd�����t47۪jju�
�ެ��$JuEuM������t0�$^AAc0C&0t9pWpN��?��p���=:KKKp�+GH������v8����0�WP�2L`����R���/�\�s�KGő�IEND�B`�PKꊋ[ԲM��images/admin/statuses.pngnu�[����PNG
IHDR00�`n� pHYs��~��IDATxڝYyX[�u�~���˗&��i�N�v&M;�LZ��4�t<��6��x�`�`�
cc�c�H
�"� �&@��?mHhAZz����a;���{�9���9���.Q�|>����,{]�~��0�-2�E�E<������P�+j-%+���'�q�i��1���Q!Ep�"�
����ɂ��sHV��3[�}��A���PXQ�4n��6��L&�J���)�p:א��gsY�E���t�[K���8�zEw�e��|kY+�h��^�T��e����+^(�,w�7�%��"���g(�s�
y|S�Ȕ�1d��'����gwQ�Ej�����`�K���w-/
�jгqO�3���"�m���k(��s
�k}��>wV�3g��ٺKS�i��P>�-����75.{\ASy�S��*o����͝���7���s�%<C)���
�4�AiLU��Cu�GT�ʄ1u����܄�̸�K�6�=3�>���D��,:�Lޗb�z �����y;�&9-^x��ߜ�op�el8��<A��d{h�]������h�{��
@���Leʨ�Ĉ2��Lb��[9�����Vi����^`!�z���>2,�
0V�hKf�2��C��+��-�F�l�J�����썠`�0
�^��Y�(aP? ;<�H
�om���m�HL/�^�C�Ď�K���5ųڛ�+=�h��pE�
U���"�Bl" 6ix�`(ȳ���%��'��_�+��C�Z9����\aL����2��8�s�~2O_1�*�֔1I���
D�&�7��-��M��
S�ƿ�dm��
��:�`l������H���%��-����Jb�&�D��y��Ax_h��S�F�r�,e�l��s6��}��|��|������������<���k�+�x�`��'�
0�
m�q����9��8����U1�~L��q�ob2$C����c�k,�
������6���2�
��_�3?��88��t��/Kn`hJEl����,��̟[f�������ي���s�ѮM��Q� ���/!rS&��L���gw�M|�0��
}^>�v�E�JM6I%���
�t"��
0�Ʃ����7L� �ވ������q��,��W�;*�u@���O�J���Y1��\5������O�Y����+��dK�Y��˨^$��{��v��5�O���緇>,�}P�5��zl}sHu��)
��4>?M\��:̄�������??��b�������[Z����u��C���沋�߫YW9�?���¿U?�T:�A닛��5H�F�������9K�;9(.�f�o
~x���'(��c��Ӱb���
3����%���������ɗf�v�k'p�n����5��%%�0*4�Wi�V���E�=�y}���#_��_��}������-4���Y�#>/Ry�՞�(�~��gvXu�n0P>�U�x��mA��6�$��6
,���fϕ���j�{E���Q����wN�=�ײͳv
��_�{���̎����+��>n���V�|�
�nF�en�caI�ι�M�Rx������%�{>��K�wK�I��iѵ�X{7��PT��:�����4��T%^.������2�UT~y-+�|p+n*�c�
�SP5�?�N6����_e��l�e��w�숴�k�Y�]H����5f�\�QĶ�>����H�Q&��n�x=�X�l>�}��}�8��m�ֳط2��g@�~u
��n���*{]@�� ��5��@��d��g�U0u�����W\6�l�5���.�O�Nf�.�P�NE��,�Nc�9�����u��K}����+h㨦xX�&s���F��1�]HU��@tzB����<��sw�ۧ�Z�/bƳ
I_&5�4�����S��Nj��|1�*�,�h�F���d�Y��,p4 �J'w���-�P:\oh��Y��n|�8�2���x�sÑ��+������d��PdzS�FC}퉾Y��٫���5�u�����ڮ9C�qQ��*K�Z�U33=v���%����_��C5�ſ�L�y��A|��;eU{5
��r�F�8�ר�D�����)\:@�s���K��0��]�c��P��b��r��F�<\}�S�ž�ae]W�q<��V���m�B���9�r����9�m������A����z6=����?R�v�G?�ۀy�9 ���Y�v�*��w���ض[S��cP�+��J�(�.�k��u?�4��\�z�����Ee?18
o�Jy#���F5�z��0�'*eYP\]�D�t�sX��9n�U�rT�|`V��Y�J)"��nݼ���t�Kö��w�c�*U~�Ks��:d,e-��Y��4�N�;���N�-�,hZ�tv�g�B�}��ʿF�z�9��G�Q.*a.��u!u����uuJ�|f\�4_Y��0cx���-�5ܣ�զ%�s�)��=>��.3�@K�/
obB�� �1����,���^�����-ے;�]�M3<1]4
/��md�
)�G9�7�%�Vm��\>��
JAp��mn�d[,�@�pjDbr��
#�� �ts�)8����R���a��|+U�T�-hm�P�o�}K������ ��|��-��xIV��E��&�Y���/��_k��A>���)�&��p�Gw�G�h�L�[�� Sy��rxW�C���Oj�qP.m�)�,�VEK2����(��y�+�DN�<��U��t�����>K�/�Z�X�"Ih/��`Ƶ�%�C�����8�iX�T�*�����&�i��8�Y�P!.�x}�"��&?��|C���T�5�N��';5�H���m� 3g��-6��9$����?��|�m��*�Jz|��=A�$�)DM
A}��=�(z@���n��ǻ�$�@P
�sL�(��M!h��c��K=��i3���XK4�Cʈ��B��@[kv��R�5�:4g:������V�1��N}�M]/���F�s�e1�`�@$
�WǷ�N5�c��Is���vb!/V/8WV��ŕ�@W��>�^�FP��)O�{��(Vq�E~�ߪ<�$�W��l�F��R�HgӘ��x��m"��3�Z��XEِ�v�T5fhf�3�e�Y=b��H|��������:Qj�:�JmS%�q(��f(%��Y�VĢ�k�{j����M|@�A'��{�<��i��b�i�G��
��aҜMQ���\��p��?(�8Ʒ�p����)xUR�"�L�0�o�E7�4A���1��о��
�x�`��{ꥉX�~�0��W����v�n���q�?�D�LK�Z�jEIX�1��8Vy���^��F��6@{��d��C�H;k$�g ��~�]WN�2�?t�2�"���偕��#=�R6A��J��V$��h`J�(7A{�|�%;K�W=E�>�|W%C�j��XEn��F?\����{C�����i4�>ҋ�juy����
Ml�P��(#O�*QСFYL�t�dm��k%�6t��!��5�T�U�����d���"�-�Ȭ�
=�ɇ$��.�����p�,o�'`AiX�i\����ڔ�K�lR����]����$V���'a�HR~�c��r��ɍ�
�"����JS+>�$K����V�����m��v�E��r���:�Cu�M��"Ml�A���(z���Vx�-�#MhJ��F��Vx����Q�f1��#���&I"Jz-Kh����6�RP��8Q=S-�ّW���U������1Wmm�������('� 3�+�[}r��QY�Nw��]-|k����V�f�'p��B��pW�����3�K���v�IEND�B`�PKꊋ[����images/admin/support.pngnu�[����PNG
IHDR00�`n� pHYs��~�\IDATxڭ�{pT����V;N��S�ZQnB*�KjE0��P�"*��D)���VQ;*���ʭ��t��l�$Y� I��
$!��u7�Iv��g�^�;��=9� �~3���>������h]^ �������3�\���kyc�ц�n��n�����踨*4�dh�_�~[�X�����PSSөS����FcJJ��P�I'C`��[~�F�m�(L
�A��V^V�������_��T\\l6�����
M:�̀��I7N�Ky��
Po��i��^HMIM��(,,���<�|[[��b������t2�f��Ў3w�Ky�
�f���?�.c����^����҂,��t{G:�3�� T
�J~)���F�~I��떴�L�o�Zz[Ӛ_�V�9�����Ja)1��&���a
pH��ZMb�O�w�L���7ox�8���o�hv�څ���}o��nE3���}�5�~�� TByP��
1�Q� d��4�Q� �Lk\��%��>�0Q����th~Y]a-$Z�*�a
pH��ZȑZ1q2ĮbuOUoOV~�o�_H��K������_����;�UڻI>_��O�<+��=�*4�d�08$PA-�H(�]�Q��|���)W�ZtkSB\o�R���=/�^����۽ѳc�k�3��v�������A-Th���a
pH��Zȑ@H,����_]}���Y���&���O�9�\+���;�Mշ+ɳ}�`�ބ��m�ù�zsEeaAAnn�Q�P�I'C`�1�
��6�
�r$BN�n�L�X����dN�n���u�_{��
�C�e&k���WV9���sŜ�%S��
��U��,S^^iii�Z��!0�@�
ɡ�B9!P���L�,�Ֆ�߯��>r�-9+���Ԯdś��npV�I�q7���ӛ�w�6���{�&�a��@*>�JV�l�r$BQ����ٜ��^w���x����
�?^�}�g��5���i_>�̢���\�s�:>}/(\ Fm{�J�,c��@�*�� ��CT;2���c�dff?^�����|�/�����O&-�L����Iy�_�?�Z�������#���8j3�� TB9!�����H���
{��=��zb���WV������stt�5��/�ܮc�
�$!�(�cD�[:''��;00�)PN9�u����S����5ؽ�C��7Nr�
aF@�@�W/��z�"��H�DH���,;;�������Q��$����3�]��b���T�{]�/D�}�*Ŝ"�r�"���
���ȭȪ���"�]KYe�15�����иe�j��*�\e@B!��Bi(���MOO���
�!��\S��ŏ0��H��c�-��!�
B�!�E�����\�K�g�ل0c�����\^���e����Hj��v"��H���D�Z]]�������>�O������e�7b|�@!��W*ȉ!�.���/��@����8w��q}}�`�|oD�*�C��Ӥ�g�C!1e$����Ш��2g�
pH��PL��r�"�a��jnn���jkH�
�����r����I����5@�@%�6��CiYC����{���<X�Z�Ǔ������|��+����?��!�
B-�D9D�Ɓ�s��FH91yĀ�G�.��� Q��d|��6SfH{[�*���&@�@��9�!�E0|R3�����б3��UE^,CNׅ�w͛h��SokcHM�5�1�a
pH��P��H
��H��"��;�9��գ�P� ��C��Z�Q���i*�{�$_݉�M��$��
�p$[imnj���"oYY3M�N���Vߗ�_~����-�,_pS��+��Ň�Z����_�JcЎ1��!�
Bh!G!�(��ib;v,�h΅�����Q:�]�|��3ѵ�a��w5-�\z�O2n���{������(��҆�@�*��vȑ@9D������BS��̬���ɎͿ�~BƸM�t���g�/���k��n̜|Չ���N����|�2C`�1��!�
Bh!G!�
Ť�ڏs{���eZ4��3z�_�z�i��2O�=/y�zҙt�#�N�\tK��+������q���
M:�3�� TB9!���@H{u"9m����(�gZ��_�o�����|���i�K����=���~錒�9VhLIa�f��
M:�3�� TB9!��G���P�3����<��0s���f^|�- �]�<=僯p�g���t<��遲�~�gΞ5�ͥj�B�N�0�c
�L|
�
�r$BN�������֦��S�︾v��k��ʳ3Q��eŧ}[�<�=�W��&L[�ӶK-Th���a
pH��Zȑ@HՊ�mٱ4�%wN<v�k�φ¾i����}�n��C�kHy��
��P��ܝ��c
�C�z3ZȑiOݹ?�!q�Z�g�M4ͽ�&~V˚�}��o<��E��1��#��sT�E��F
�C��B���8`��&������g}���
q���;2���6�$��N�
�a�
�6�{��>�?g���s6��ǥN�����$����b�ن����C"�1�`�1��!�
����#'������U�d��ԃ鿼9�о�egjj�������
Iq��"*t2�f�D���#b�q%�m"O��=0��4����i�.��l��<��V�P�I'Cʗ�ɨ�4��!Q�"����DEH�Y��D�y��s�����n's���AE�r�ȑ��4��B��D�N�R���ɓ
�6�U�:�r��Ŋ/��y�3h5�u�T�{��R|z挱tp7�wvv�0���!�A-�3>�8Mb*>�1w�mW+�bB9���)�#)E�,�h���QqR]��'R`ǿ�QQ���T��y��y�����4*B1�8:�̑�$GN�K������U��c|��%x�"��
���K#�IEND�B`�PKꊋ[ػ,��images/admin/tick.pngnu�[����PNG
IHDR(-SsBIT��O��PLTEL� �֥��R��ԟ��c�
������~���V���`���k�/���W����߲֖��}_���]���g�$�渌�PP�
���ݱ\�v�B����������r��[���\T�
��I�׃�ߩ��\���R���W�l�%�Ұ��p�5��΄a�T���`���8tRNS�������������������������������������������������������em� pHYs��~�tEXtSoftwareMacromedia
Fireworks
8�h�xIDAT�c�Eh|C4e6Tci-mn3Y���X4@�HC��RF`k5y�@|a55~�;���L�X����}U�K�u$%%吜.o��ć�EQ�����89Ř�1}���&���<IEND�B`�PKꊋ[\���d
d
images/admin/tickets.pngnu�[����PNG
IHDR00�`n� pHYs��~�
IDATxڭY [SI�6�����gz���Q\@VA
�"����l$!�-�HHB��% ����J2I���kQ>��֩soݪҟ���NOOI��ξ�`
�T*�R��Z���p��b�F��z<
�B&�����F��S�����AC�D������=<�;���{���5�0>>n2�&�=��ޞ�|>T��ֱ۬���
�����'��V�1F��rB{���S�>�m6էO+��3��]��*��7��'�E�M������N���*�.����lɇ1
țq8I3�)�gM=L�|kk��}ė=gwC��,�$�0�A��^�"y�,��hƫF��bh��
���7L_-j�l���/�
�l��N4pxx�OZF{.o8��|�ާ�L⫵��^oN�2�7��5Ɇ<''0�V�18�W|e.�ë�>۴��K�E���F���
�٭}t@?��?�^��=o��צw(<X��J�Tqr|3帾�?T"Q����(7���D��R���OŒO����KMO�-,�/�kKE�i��˫k�bey��\�)�O��ֳUSYm}9��_1D�jE �$�-�P�M�8�S3v�K�Ѯ��#��I��s��2�-��;???��O9�lS��5������#�n��`�՛+���q:�� �'g��QC�P]�oNe���Jj�T��N�ݩLk�,v��"�OOO�t����Z��hc�ёJ������zy�,F�V�����i������ѹ�9|��N/�`�h���J�)���Z����,
Pτ�
w�@/���D"�Z0H�>2�C�r���
��O�N',�B�^�����������{{{�
]���\���J����D
PW&g� [����8�uT�@DȈ2H��l6�A��NGGG���y�[�/���T�<1C��Ejc��b;~J��,I��240�ݘ����K���>S
!](��+�c0�AJ��c8
!��K��hh|T�^F�{���C�g�ɍh���*��)Ő=�?R�gLi��=mH����Kc�?E� 2Z'sx#E�F�����j��[����p�B����
1D��א̒ET�Di-}XnXe���C�777�:��'��,���"�{AmZZ]!Zb'p�p{����)��3$Lk�":a��
*,��IT9�����0Nm?e�f5M�|�9n=�y����s�p��zJס���=��1E��B�i�M�2BRt -�C��zD��3o�s'��`��g��y.c2I��Y\�k�>�1
C��'��,f"��F-^_�e3�uc���b��x�>��^o�!&��eu��0�� Re�U|*�����xlC� ��zaa~aqi�f\�� ���+�VVqD�q�Á������-
ȴI��=�&7v�W���/�D)E����&�'��W�B_���D�3nom�� �3�'<��l�"�[���!�*AR�4��7a���IQ���9�^ul��+�UU�Y�D=$�_\9v�/TmB2?�G�/�D�H1$H�?���I
�จ-z�٣eow{g���-=�leLKS�|�Z�:�s>1��!�
�ٞ١ȗh�"�L��Z�
��{΄ɂo�;;;+++���\Y^Yۚ��ݵ���r��δ>��h2!�����#C��W���zYb�e�����=��0Z�\��
�� �����"���c`�D�Jq�}j���ϡ� �AC�!dmybuT�*y�5��e�$�<�����P��w�2�4��{9?����4��M�yVqB�?a(��?O4F���Ѓ���j~lY�:N<$
b����EwsN��17����d��I�ܪ�q�쬋D�B�����K�(��r�>a]������+mә,�� =www��e������Բ<���9N�����Q�j~~���^��W�"�4�a�~��R�J��Fa����w���Hy
����[˶={v`��<�i�|��/���;�7%~d�>m�}!�P��~%�Ae��w-Z�_�ЀH�
B�
<.k}�X�93ҤQQ��b�"")�I�@O��6a��7�s��{Ea��{nLI��h�|�izp)s�\s��ރ�5�0��<��]�Y~��#U,�h�:��fvQ��I�-6\o��D�4��#,��+:c�;�mҙ�$�H����Mv����l�>�ޕ4,�7['w�7�[�_*����P6o$������{e�w��C>9��?��K�6�x��d��'�#?g\=�����B��/����z�^���3[�y���vQ��`���nzN�Ӄs9<<��?pZ��fƊ{�R�d<��4��a6�^�����MVܷ��� u��Kb˹1�Zo6��&���I�R2瘙�seM�#�,N[ݠb����\d�
\�!�"���R������(�s�x
@&)��ِ��ż{;k�O�=y�r@�7�pWG�|7X���L�lqJ�}�҄�!�ܫ��~�|�u���Ky��W�$#Cr�ՎUC������b(�A��>����r@IT�8��6]]O��{��T�uZ666�9�b6[&&�SSS�
����6pE%%5v'u��
>���Pl�f�ZSK��B�b�Z�è��DB�A��fp��ϣ3�pKo���P
BV�q�
��:��]T=�C'��'LBFJ��PB�(��?�F�+a�*�^�p�U
r�E.qG��G�̂�Vzs/n��[�~���J^��b��>/�?P�R�|^��q��50�V����b�:�,`��[=�7a�
E��
U!='�8P�WRٲ��H1)���3�xYm�ؠ!'���1�
�f�=���ʒ���wmW�����G1�rb_�s9�g]Q��_l�N'|�*>>�⧲����@����W�sf0]˫�������7��n�f�.��UX�MÝ7
1Eh�1E�Ŭ{o�Jر%M�%�ߡ�<(myP����QY������q����Ǖ�J.N�1��
�C�p�
Y-�T���_��e���Q��Ϝ�__T���e�o�5����W��Wu��3/h��u������|þVԄv���Fqˍ��7ߵ�*i�]�~�]ǝRnL'��{����{^,N�U����7��4�4�Y��-�O�&��w鍒T�0�)z��1Ei��u�Oo�"�)�F�S�I��$TO=H��$Ϩ^��M��ug4u?gw?o����,��C3ZOf����v�C�stC&&SF��b+�-�;�KڝRΝ2.%Q"�������{IEND�B`�PKꊋ[~�]��images/admin/updates.pngnu�[����PNG
IHDR00�`n� pHYs��~�VIDATxڥ�w\SW��淋O���[W�����uUT�Z�DE�2e#�&��F6��`�=B
d'$ ��IRq��y='ߜ�ɽ����{�Ɇ�����T�|M*_{y��s�tmN��P�|��?k��~���
š��ڋ�:��I���C
�L�v �]sk�y�@v�L��[�r�� H������:_�Upč�e�<ia�.��īc���9iO�d/3s'ڸb٪\ŵ��=��Z�dU�U��(?��bη�斩")K,c/��K��e90֒���V)"Y�`�nRTL��L����\y�B�ӆ7hT9��p){��0ĭg��]��n�dH([���cI����r�hutA:$\�]�Y��D����1~�0w\
V�-�Z�@�-t�o�tx��9[�6r�����e�*i~��d��V)bلxMF\�
W1�ir�[�[��{�'j&x����k
�T���6�CqC�|2�db��%Ds�|1af�N2�`��-H�ER�iQJT�#雕tM/cyb
�6��
�ǧ�96�#�t��ӆ��A�0��1��"�pb��1�bϷ�;���R�R����12lePA����/�z�<�>�A���Xa�t����>����B�Jm�����R:?y��G��prƧ���\��<pD�R�^�2�c`N20�@�m��|QO��,T2�J��,�<��t�`ƴ����&d��VH��S��EE{�0���OauS���$n����ԲL��E���cZ�9�p
��"O��]h��W3��Y$]PB�ɛ�*�L�R�n�׳�����߽HI#WE�wM�}Co�8'�}Ԫ�c<��b=�M������yr�;%�M��<fj�����#�b�U2g[�B<ԙGqf˙3�ԩ����Qvt/ů�W,YQ5�N�
�>�pz�i
�@�i�=�k�yC�;~̟@ �g@F�$.`��
����@�]��:�B�
�l)u��5�9����&���R:7��J�A�)I#T/to���s���T�1�7�i�j�X5z4�Ah��oT�=D�١�=�������v��G�S����h�Ri�A4AuF�jXs�<a9}1oL��()��`���qI0�{6l��x.{�WiÊTq��H;_z���&��Lfͥ2��j�yc�fij}<���;�J�|F��O��� >�l���/
O��2�y���,���n�m+�T���R�߫�6��jp=�{_=���roڢl���3�ʮ' $�)�|˱?C�S�Gb��d���W�wk�q��#��$����^Z�3v��J�L%M��@�M�&'!��tE��c̳�sy̥��>�9V��o�vԳ�lͻ��8w�;}�3��ؿ��G�m�:��k.�M �᭖H�ih�~B٩�_s�M�[���&��~��!WܨW�x��C{�Gd����f��O���~̽m��:��q��J�f���M��>��zus��F�b��K�ŘO����̴/��ɫ��I�N�(~�Y�A��+ȶ;5��>�A��7<ɣ}̻��K�tS0��� �N�[� Ct�
�b'�0g�U}}��R��-�wv��
��h^6������K聎�?�T|Q��k�5�²4�|��������SU�(cX�e�Fe��n�>��;�#v�GtŎ��H�
u��1���z)1�I�3�G̰'kv�4j\Ek��p$m�fc��������a!��l���&
�Q<�'k�kgh?�Չ����<�Q}6��|Q��2�Ud��ꮻ��f�>@f�4`�<h�g>h����:fd�q�����Y���9�6p3[x�)�m:gpg9�
�)���}��|S4�����L@'��D��_2����K������7��nW��t��v��u߮�2�%��S�,�0xN�L���}�5xȞp5����h����K�����f�9՚�PMτ��A?H�ӏ�E���c)@�3�(ü�sE�ư���%8��
�t��P��)}����n��3<��B�u��Fnz����_+�8`/��.�j�#�ƣ�����n1;=�����!��0��Ա�JVV활z�|�AA�QAӹ�&
����rh9�0�E
�hg�F~E!MP5'�Mn⥶��z�
J���Z/���j��j�D�;D|���0%��I����$S;<�PT�N\�^B��d$
;�Vu2��Tf-0P0�j�$�w��F|�����-��Hs���
i��*ِ�Ih/�e*�{6�����v/���|��f��m����8G��Cv{'}�
��z��}x����c`:q%��ezP�^"0đx��b�vȭe�z���ϡ��"�@��gx���BX��^9+��Aq���NAV1�
�o>��S��S�v��/-���~a��S�ڣ؝��=�����keh>��i.�`d�������vD��D�]C�z����mc�M��q��x��h�]��}3��S7�ȃ��at�[
���u�v����S�A���[?��"�+��o\���!;���'��
|��dj=��
����
��L?�[�1��]�5�Ϫ0�l����(dܰ(t���W��`G�LF���m3�0��#��:��5�Ph�;}.4�c�at�IFՉ4�<5ט���[mC�9F~���(n�g�N��]>ɻ}������K�럶7
m�_���ݮ����mvO�� �r/\+}�u��Uj/�(t����
���s���B��c���A�
>k��u�;E\K.�#��D*B?�\7�\#8�H����m_9G}�$s�W�L����^PuO����Q&���^Ў��l�}���j5�B������e̐
vh
7�e:��:R0��NO FR3��
��kD�3�N�fV��d��T7 ���N�j���gA�Y?����_9Fns���
b�_;Gms�n�dӥ��~�6��9����Q�����o
�Bz4�F
�\5�Ⅱ��pFh -����;��&�
mPN%�f�˦�b���5&)������В��#swx@������0�S��ϬB�V��/��>���&t�U�'vΧ��Z�i�<X�C�\]�r�/�;���P�H.���*9A�ܐF~X��}6nd1����yxk�ji�<l���<���[�FI`ӆiB`Z�R-h��Bu��O�=���/�[n1{���m���͍�u?]h8���߇�_�W����e���
�l�G!ݧ��[�����Q�
���t��;!Q�/��k�%���{I%��k��3 �:���1����)�L,U�K����]w���G�=?�����n�x�[퉶���*m�֟*w��ٹd�u$c�-��cx!X>�\�:^@=ϿW���u����X!�e.�T�y,�n�d�]e�W{5~6��pt���o��w=����&c�͗�6���e��W]6_q��W]7_v�|�q�E��-A�u\�+ߣW���/]֩�NvΥ�1��X���+9^�s��d��'ń_���L�bJk$\��,i�̮L����)�ᝰ����sV��[o4�ި�m7��)sۍ�6�6[m2t��х�q��o��f�*��
馐�(N���#8�Q#?����������ϕ�\�Z���$�в&wʻ��&��v�$����mw<>40������́m����,���&C��f�CC�ϝtb�^o>��W�������pҸͳ �\���g��fp��3K�KG�ˁ�;er9�ˇ��*�����u��eږ~�[}v���V������f��}`�(l6z~������/8}���}����P����
uN
Y�MX��������!ۜ�8%������^�X�/��$
-��;�X����y�k�}�[�__u���v���|jb���
ا�֟�l�`���__qR��a�aoi��r#\5iи�x�i�t�BHf�d�t���O�1C�Y���^�~xM!�T*�����Kq=����1�X}��C�!Z�����u�C����u��ם�_sV���ۮ��ߚz�
?�q~z�=�p�FN��_j���<;j�8�
�jY� sě�t)�X}u����d��'�ɍݡ���"���^�cn����~�
9h�m�mt�*��8��S�E��� H��o�_��m��M���XMۮ���;�;H�P�i-����ym��F������J!��w�GV���!/E��v�z�;��;� 9�?�A�q1*�,�@Wv��I#ӆS�=7���tꄏ\ͦ��[:�/KV�W��篧wlz��� ���l6e|�8:��*�b���0�}N��4�80@`�]�k���b�Z{��ĉ�1�.Y��r��nYv�5z#����y�+f�������W4/�Z^����p8t*eb|�8J���D }��~Ph��Р�2�A0;+^Z����o����7��S5�"%ͪr�yM��O
��%��@T-,,���p�\6��4*]i:
�����A5�npɚb��-KČ�}˅d�{䠍/�L�0%�,��G��7X@-������D$/.��i��b
$8*�z���t�ɟ�J�R�Wk\�=��GQ:&t�L�����@o{�՟�a}Y�^��:��"bL��Q�����'����d'��3M�Ȗև���+���]g�ͬV�P4Ü"�2zI��QZ��Ǟ�,�����벿��}�+ua�"�,ID��y���Ҋ��+H�^���oӺ�����Ҕ�*�ޯ����!v��]IEND�B`�PKꊋ[0LO�TTimages/admin/user.pngnu�[����PNG
IHDR@@%� pHYs��~�IDATx���Y��Up�5M�'!�`� cFGD�!�Db�ۨ1H|3�EdD��f�MQW@p�FQ�P@��G���/_�O>.��r�S�N�_�N�:��Y�v�������۷oߴiӿ3��A�:��Yb�ĉ
7n�7oޠA�|��n���c&|4�j�M��
�۶m[�`��?~�5�t�֭W�^/�(P�l����&�E���/��{���ʛn��omʦ�h:#�
�������+p����e���3�ԙ&
��M�ֹs瞧-�0��#���h�v��d����n���$L1��
��/����_|�:Td��p=��]�t�C�
��2^q�w���*2[F���s�kN���*���ص�b�����8��+W^xᅗe��C=t�]w=�z��qY�eSL�H�3�x� |��G�w^�Ln��vE�o��
7�p�:\u
��+
�(�b���[f�8��˗��Ln���.��{��W\q��������#��2��A�(P�|�-��聑��,�'���{�]t������A3fLuu��!Cn���N�:Tڵnw�y�?2��A�(P6l�bܸq�
2�
��W��g�}v��gG��ѣ?���5k�,]�tʔ)O>��x�s�9.��.�x�Ѡ��ׯ�"�~��u��UUU1K�,�'�v�Z�{���k�b@���/az�����?���7�|s��<���AǓfmm��f����r�)�e�����;L�۷/@�V�r�ڰa�W_}���_��2a�
�g�W&s��Y�h���j�y�f:4�e�>��cL1�,�'�s��G}�믿��K�+,�����-[�|��7F�v�����8}�>��Ӂ2�
��W���C�Ǝ{�תC��͟|�z�j)hp77�g#�=M�f�;|�p�d��8~�xMM�ꡁ�?��i
� &q��;h!�#ƽ�C��Y�?�ꫯV͘e��Ȟ={\A���?c�}��e˂���
�-��F��x6b�[:4������6�f�0�8v옋,Lo���;38��Ah���=Y����@o��m�Af����Լ��[�A.�J��$�$ij��ҡI�,sY(c�v�EB8�K�,ԠL��)b�[:4�e�{�WF�w��q���o��p$�R
�]���&���:M�f�[F�aN�8�k�����;���GqT(eȒ&�lĸ�th�7�>|��$�2:q�͛KVl�`�#ƽ�C��Yv�i~�X&��ݻw+���P�4�>�]p�1�m@�?w�\+�@1U�u�LG�ݱc��MEWD���3�_�|�j��bĸ�thΚ5�4�p;�Y�+H�ȑ#��ՙDqT�؎8������$^љ>}�ՐQ�;�\���h�8�`�У��Dq��hw
��*�S�N��$3N���*d5L�V�����d��@���Z�U5��������b�Y1���.z��bĸ[SR��R�� /Ԗ/L['
ީ2F)$B���1�]�#BC���L�x�i"� SK3��Qg�e���|I�
�*JʢL6I�tr�mۦ���h1:V�a��P�3;εG�0gE�ۺ��\��D�d����W19p�]���cM(ܚ�[�������G�%�~q�Et�Ԧ�k���]]+�m�̙
ȜL�L���q+����O���ܷo������W����H�@ěM�ٟ�$�Z��"
�yf&QٵA
���A�WZ���F
�?e�G�^QH��}Q�����qj��'�+�js��h�RA�9Gs��$i�B���;�_
`��Iŷ�c�%�OQL\����7��;�I�آD�J�'��-F�}���m�duuuT�X��%���,L���]�>���}jN�Ë��|��]P�$
6�8��S��-��l�#�UB/� }>���s�;�2 �?iҤɓ'����Pr
��M
=\
^E�K���}@�_�J�K/����/�8Pc3��Q���6m:T
^�t7ȗ����+��C�p��7n y�)�������@��kͩ�#���'�#0�&GUU�P�R�C�C�8������q�Fޟ�t�x;�ah�K�B��1cƎ[¡dC�L�2lӆQg#�{Y��D�KЋ#��&٨Q�^|��D�Y��#��"&ŋ����Y��
�%�:���@���9rd����Kr)�ttA����9���M5'��������hW�C�>���#F�x�F��,���~ �}�b��N�@/�<��;Ç/��7O@/9x�`�D#���\�ښ��Ĥ�@҅8�S)�Q.S�<���s�=��E���<��3�<���棑�)�&��t����ǝ*}Iڰ���aÆ2hР���y�8p`��8��)O#1�o_�@_�I�2zڲt*zDS�V�}[�~���
�%b)�H*�{ī��<�_#m��� }���]D���Ǐ�^O=�T -El�@$&W2�I�z>��=$
5�%v��<Vdal�X�D#�ٴ�m��W:pG��C��,�.�G���R��q���K!0y�T�2�5Q+��W� ���f
<_���O��0
�5�~��}|ݺuvdp`+���F��dd&���
��p��E=�M
|�`��ôy������:.Y�0�"��+"��L{#��t�mn@g�M���%~��0�)����0���۲e�ƍ]/59�!����1J���]�U�.��=3n�p��\F�!���e�s��������U�V�����,.�cU&rÊ��WB3Nq�vL�Ww�s�w�r���m�v����ۈ۷oO����k�9���kjj�Klkr�c�t�eSLL?�3�,�\��m�ɣ�X�cǎYP�&h�i�Ν;v�pcںu+�~�mm�B�eSL4��d�q.���0�SO�X�IEND�B`�PKꊋ[�@d�##images/arrow-down.pngnu�[����PNG
IHDRh�� pHYs��
OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR
RB���&*! J�!��Q�EEȠ�����Q,�
��!��������{�kּ�����>�����H3Q5��B������.@�
$p�d!s�#�~<<+"��x��M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!��
e�Dh;��V�EX0fK�9�-0IWfH�����0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4�������x����6��_-��"bb��ϫp@�t~�,/��;�m��%�h^�u��f�@����W�p�~<<E���������J�B[a�W}�g�_�W�l�~<�����$�2]�G�����L�ϒ �b��G�����"�Ib�X*�Qq�D���2�"�B�)�%�d��,�>�5�j>{�-�]c�K'Xt���o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A�,����`6�B$��BB
d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$
ɈQ"K�5H1R�T
UH�=r9�\F��;�2����G1���Q=��C��7�F��dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"����V����cϱw�E� 6wB
aAHXLXN�H�
$4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�,
+ȅ����3��!�[
�b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w
��Ljg(�gw��L�Ӌ�T071���oUX*�*|��
�J�&�*/T����ުU�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_��
c�x,!k
��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6����E�Y��A�J'\'Gg����S�Sݧ
�M=:��.�k���Dw�n��^��Lo��y��}/�T�m���GX�$��<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��=
���Z~s�r:V:ޚΜ�?}���/gX���3��)�i�S��Ggg�s�K��.�>.���Ƚ�Jt�q]�z�������ۯ�6�i�ܟ�4�)�Y3s���C�Q��?��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�����!h�쐭!��Α�i�P~���a�a��~'���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl�������{�/�]py�����.,:�@L�N8��A*��%�w%�
y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L
Lݛ:��v
m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y-
�B��TZ(�*�geWf�͉�9���+��̳�ې7����ᒶ��KW-X潬j9�<qy�
�+�V�<���*m�O��W��~�&zMk�^�ʂ��k�U
�}����]OX/Yߵa���>������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n
�ڴ
�V��E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa�n��{��4���[���>ɾ�UUM�f�e�I���?�����m]�Nmq����#����=TR��+�G�����w-
6
U����#pDy�� �
:�v�{���vg/jB��F�S��[b[�O�>����z�G��4<YyJ�T�i��ӓg�ό���}~.��`ۢ�{�c��jo�t��E���;�;�\�t���W�W��:_m�t�<���Oǻ�����\k��z��{f���7���y���՞9=ݽ�zo�����~r'��˻�w'O�_�@�A�C݇�?[�����j�w����G�������C���ˆ
��8>99�?r��C�d�&����ˮ/~�����јѡ�m|�����������x31^�V��w�w��O�|
(�h���S�������c3-�
cHRMz%������u0�`:�o�_�FNIDATx�b���?2�-y���[��b,��-c���W����b��=����
Y�A��30�E��g``��aXs�
��D��u����N���a=
���5q����R���K��X�������,�-
�p���/�*+��` ��
v�Y��V���I,&�!����&���aA��3�s�G��Y``�h��Ԁ��2$��,��C�٩���n��Gz��(+h����v��0$�|:�\��KBq��WK�\�
9�ؐ��$4H�����"B-"M-ME����D�Mm���&m�{Io�x����<RmMn.6��<<�I��է�遉O�T�weM��O���}7���T���v�������`���ti�^-��88���ې��l��.U���t�������`e���d����2��LB��F���"+��c�|^��8��|��ĤgEzV(���J���'���N~\�I��I�ʅ�ÎLB9�,��4�Z��uس���>�o}z}?���C���0)ʪ1�Ń����^)!$�vh~�2��\��7a��RH�_���[Y���E���Yjե���'z03�
�s��~ K�K�0r�e��%��vAs7b�� _�
]�'�8�K!�Y�[�h�0�+�&@���Z��Qo~�%p�Qǀ���7He
`D�(9�^�6#���S�^l,�A
��A��g0F`�Iȑ:J�+��5BF-?ڪ�4G'#�W�iO�\V5:�`H48�|�WK.���N�4R�ֹIEND�B`�PKꊋ[H�|�images/arrow-up.pngnu�[����PNG
IHDRh�� pHYs��
OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR
RB���&*! J�!��Q�EEȠ�����Q,�
��!��������{�kּ�����>�����H3Q5��B������.@�
$p�d!s�#�~<<+"��x��M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!��
e�Dh;��V�EX0fK�9�-0IWfH�����0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4�������x����6��_-��"bb��ϫp@�t~�,/��;�m��%�h^�u��f�@����W�p�~<<E���������J�B[a�W}�g�_�W�l�~<�����$�2]�G�����L�ϒ �b��G�����"�Ib�X*�Qq�D���2�"�B�)�%�d��,�>�5�j>{�-�]c�K'Xt���o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A�,����`6�B$��BB
d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$
ɈQ"K�5H1R�T
UH�=r9�\F��;�2����G1���Q=��C��7�F��dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"����V����cϱw�E� 6wB
aAHXLXN�H�
$4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�,
+ȅ����3��!�[
�b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w
��Ljg(�gw��L�Ӌ�T071���oUX*�*|��
�J�&�*/T����ުU�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_��
c�x,!k
��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6����E�Y��A�J'\'Gg����S�Sݧ
�M=:��.�k���Dw�n��^��Lo��y��}/�T�m���GX�$��<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��=
���Z~s�r:V:ޚΜ�?}���/gX���3��)�i�S��Ggg�s�K��.�>.���Ƚ�Jt�q]�z�������ۯ�6�i�ܟ�4�)�Y3s���C�Q��?��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�����!h�쐭!��Α�i�P~���a�a��~'���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl�������{�/�]py�����.,:�@L�N8��A*��%�w%�
y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L
Lݛ:��v
m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y-
�B��TZ(�*�geWf�͉�9���+��̳�ې7����ᒶ��KW-X潬j9�<qy�
�+�V�<���*m�O��W��~�&zMk�^�ʂ��k�U
�}����]OX/Yߵa���>������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n
�ڴ
�V��E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa�n��{��4���[���>ɾ�UUM�f�e�I���?�����m]�Nmq����#����=TR��+�G�����w-
6
U����#pDy�� �
:�v�{���vg/jB��F�S��[b[�O�>����z�G��4<YyJ�T�i��ӓg�ό���}~.��`ۢ�{�c��jo�t��E���;�;�\�t���W�W��:_m�t�<���Oǻ�����\k��z��{f���7���y���՞9=ݽ�zo�����~r'��˻�w'O�_�@�A�C݇�?[�����j�w����G�������C���ˆ
��8>99�?r��C�d�&����ˮ/~�����јѡ�m|�����������x31^�V��w�w��O�|
(�h���S�������c3-�
cHRMz%������u0�`:�o�_�F2IDATx�b���?2�-y���W��b,��-c��]���{���b��=��?�Ф(��eW�"����
��<�!�k-��D��u����N���"���5r���jC������X��M9)�����b��}� ���P��f&F��ѩa�[!N6�M�N��~c�{�5��7���R��e``���?CM�-C���A�B�$�n\kߣW��������ff&��?�0�ش��/?����?��2Fͺ�?202<e��=��������b�&�}�p��g��w�N
��������W��QC���_Q�O3|�����h������ ����g���*��{o�1j�N���?å)I�^a�[w�� �w�rm���g`XVưp�y�]gn30B��?7;3��A�����9Q�~�d
a������.�n`8�eN�@QR"���3��J��By+�U:%������B˹�W��s����>}�|2�y�,�9e~��9��в"��g/@�K"�-/Bno_�$������'���(ۡ���to=M���Jq{e-�@"������Y�C�'��5�Z��"8Ђ�X���R���{�1D��yr+���V�۪Q����KQ��
�,5�YGkD���ƺ�Vl]�>E�<q|}3���w�1oa>ie;�Zʎ���~�v�z��&^��,S�?��h��
�c�
����0
�/��IEND�B`�PKꊋ[U{����images/attach.pngnu�[����PNG
IHDR�agAMA��7��tEXtSoftwareAdobe
ImageReadyq�e<\IDATx�b���?0222�nnnaaa����
;
�a<q��ޙ3g��{��H/#>���%�Ν���ի�/^<�ϟ?L ��
�����d�4���ٹ���t����������cccK@��p��s455}ddeĦϘqjŊ��M�R���۷RKK��������٭|||��.]z��p��+������?�������K�.=}���@���
nii9���;u�ԓ���I(^C~~~=�&{��tv �~&��111����{s���e(.:����������/_�EHH��v''�`���+NNN�^/]a�e˖��(�D�,*&��u���{����
�0���jz]]� �)L�{�zw_�r忟��Dd�Q044tڸq�K`8h
+&�C���y�#�
����u(0�v~����
PP�����Ï&L�
D�r�?~d����w;44�@C�ޚ6{��7oޜĖf�m_cem~JJJ���1iҤ�ǎ��B�����
���JKXYY_EE8pjڴi1@�w�4c��ILLz222Q|�|���Ȁ�����y�@IEND�B`�PKꊋ[���mmimages/audio_icon.gifnu�[���GIF89a�+,--333?@@IJIDDQUVT[[d`_dgggggwpoqvvxii�nm�yy�{{�po�rr������������������������������������Ʃ�ĩ�ֹ�ļ�����������������������424!�+,�@�J�R�T*�J�R�T*�J�R�T*�J�R�T*�J�R�T*�J�R�T*�J�R�T*�J�R��*�J�R�T*�J��
��J�R�T*�J�R�<�L
&�J�R�T*�J�T�A�P)�J�R�T*
�Z�BRYdT*�J�R�T��)�0m�J�BQ�T*�J�R�
�$#&�QE�R�T*�J�R=�b���H�J�R�T*�J�Z
c4�(,�J�R�T*��,,��1t<�J�R�T*UJ!ِFR�aL*��J�R�T*�"�e
�N�sQ�T*�
�R�T*�b�0X:��ŤR�T*�J�R�T�ȣш,�J�R�T*�J�R�T��s�T*P�R�T*�J�R�T%�ƤR�T*�J�R�T*�J�R�R*�J�R�T*�J�R�T*�J�R�T*�J�R�TA;PKꊋ[���IIimages/box-bg-12.gifnu�[���GIF89a#�������������������������������������������������������������!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:6897235B345511E09D7691755906BE53"
xmpMM:InstanceID="xmp.iid:6882931D345511E09D7691755906BE53"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:7D6B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,#h�%�di.h�Vl�l"�2e�xN|8��0((��r�8���tJ��X�c��r�|(���z�F�ߒ�|>/�~���������
�����������!;PKꊋ[����images/box-bg-2.gifnu�[���GIF89a@�������������������������������������������������!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmp:CreatorTool="Adobe Photoshop CS5 Windows"
xmpMM:InstanceID="xmp.iid:55953E633B3F11E0A9F5FEAC25FEB1D6"
xmpMM:DocumentID="xmp.did:55953E643B3F11E0A9F5FEAC25FEB1D6">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:55953E613B3F11E0A9F5FEAC25FEB1D6"
stRef:documentID="xmp.did:55953E623B3F11E0A9F5FEAC25FEB1D6"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,@J��I�u-�ͻ~`(�di�h��lz�%t-(x��D���px���r�8���t-X���v;Xx�`�aL&3��;PKꊋ[1kL&&images/box-bg.gifnu�[���GIF89a�R����������������������������������������������������������������!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmp:CreatorTool="Adobe Photoshop CS5 Windows"
xmpMM:InstanceID="xmp.iid:C71495FB34E911E092F6BF663EAB75C4"
xmpMM:DocumentID="xmp.did:C71495FC34E911E092F6BF663EAB75C4">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:C71495F934E911E092F6BF663EAB75C4"
stRef:documentID="xmp.did:C71495FA34E911E092F6BF663EAB75C4"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,�R�`%�di�h��l�p,�tm�x��|��pH,�Ȥ�HY:��hj"�J)جv��z��\�X��z�n���J䌃���]��o{��z���������M+MX$M(���"������#��i�Y[�Z���������������T����X�����Ƿ*�Ϳ�Ѕ�����������
)��mѻ������������f��a����
�����[�Æ#J�(��� �,T�0ŏ��I��ɓ(S��\���m<�Qȉ,s�$ ��ϟ@�
��KJ1k͜PS�M�;��$J�*іJd����SyR�ZK���
Y���ڵ��xa���K�*Z�����]\�u;L���È;�8�m����2�`Ř3f��Ծ�})��LT��Ө��sWɢK�.���më?�vl����n�M��5�M9�O�H�N�����!�=�w�б�C�n���صsߓ�S��FO��}���R��kx���w߀�w�g��w�_�W`}D(�Vha�
�
2�Ġe>�$�Ha�
�C�"q"Vg�4ֈ�~v��Ђb]v[�2�(����Q��\�)�3.
�TVi�T�2{�$��\L�&"�bi�h��%��x��Nt�6&��i�f��G��|U��H'x�����&�袌&�̖{�fD`�%��dzf��v��2�g?o�d��f�)����j����f�Uj�����������H̤�iit����6*���F+��BN���K+TƎ�����,�Ֆkn��fk���TV�#ָ금�+@�����o�pH��@�[�}C�K�������V��{T��k�����{(�
C,������b\շ�Fٱ��,���319�\l�+ܲ��63�D;l3�'ws�Jc�s�x�\n�"`��Xg���V'
1�뢳4`�|�wJ]-�r��W{}�Is��T�jL�Q��6�p.��r����)3���O[ط�Ӳ=������xϙ5NaڭNM3��Y`�騧���T�Ṡ�9ٜ3~�ˆ���̤���^��k�m�xS�7z�o����S��ԫ��a+���u�<й{��ȽWo������b�C>���>����������K�t�����}�����*荌t�;'H�� p�cX�'yWj�!v��U�(�����؝c{���B+�Z,��R��
��x��
6`�>�y����
qH�����P���B��F���H4?r��a�{b@�2��hL��XE�P6�K�/��EՏ��#���>�q�l�7X��%&~�s���0No�~��$�x
�����rD�$1������H=HN�~�$o��7�ѐr�
�h��m�3%*wII��d9�EY��L�c$�H<���4�I�jZ3��%+� �ae�ב�C��e��)|&4���vf���_)�C3��\�-��R�S��h5߉`r�f1��OPֲ���g3O�K�ZԢ/�$�9Da���A��hi�}���)/�RvfT��h�G���È�N$UD#��ߩt�-
�4_
�mZ���iH���*����t:+Ԗ�XͪV��U�ԨnD�h�J�9� ��|?��R�VբW�JW�zu�=j7?�P{2���Z��R���b��˯�4�{�i=�׳���=)��J�H�t��mV4���� �B=9�������O;�G����\-L��Ȏ��0�H]�(�ƶ��C�$?���fU�E},dQ�ڔ��8ͧ`Cv\��v�˵�s�]��U�3�-1c��:����na�����ȯ~�������5mG�KO�R��Me|�k��ҷ��M,~�K�
�w�Ȱ�7�pX�EĀ'�#8B�-�qyz����֤��@���8�q;PKꊋ[�~����images/browser.pngnu�[����PNG
IHDR�asBIT|d�tEXtSoftwarewww.inkscape.org��<hIDAT8�U�KL\e�����ByS�����
څic��i�3ѵ��H�E4jM� &>R#E���&�6�D��Diu��@;��¼��\�]hL=��ۜ#�Rܚ��:)�R��,��%R�D0��i}�8��ݭ}q+��{�ɓ�t����t4n
�r9H�9��4_^�LaԲ��z�����[Gjo;r��*\n77�"Ų"���f��{�.���ũҥ�?�۶ݾ8�Sv�kn�����|З)��KV�1W��F'Hmn�Y�d��]n=g�"Ko/I!��:���>��
_��M"�W9��{(%�^���[,�mۿ��v9_h�l�-݃�R���R/
���������<v�ׇRJ)����y�f��m!
8�:B[żq�r>q+�
�<I����i�x<���j���D,YG*kPStK);%�����uc�ƒNsE������������
�V�iZ�c>��J�{$p-�Ε�f���Z�^�C�ut]�\.#����~}�R��Z�n���(�%��#�֠���^���Occ#�e�3e��j�&��m8�
��M����>�P1M�����������Mjd��.R�;�$K7VL�]�-�v�:n̤���N��<A,C����Qfz��`����b�P(���yR�~n`|#k��u�g��s��|d����.���Ik(�r,iE����@�B@Ӣ�O�8uu����n�����)B�>��rx�8;37�z��Fj��RJ !2��Z��f�T*9�>�/�Wm-�ڢ�:g�9���hr���@X�;�3�>�556�1JFg<��o>��kr�nl,�0g���PTJ�͛���f�IEND�B`�PKꊋ[�~�2��images/close-ticket.gifnu�[���GIF89a����ѝ�J��n�݀�����]�8�������Ăش!���ԥ���Ɍ����̒������ح��ܶ�
���v���������!�,v�'�^i�(٭����%KE碞
��d㝝)W����Nq��t
�F&�Pv.��ǡX$� �f�͆00���f���"�n�9f |v�$�u~�Y�������C��!;PKꊋ[�pK)images/close.pngnu�[����PNG
IHDR�a pHYs��
OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR
RB���&*! J�!��Q�EEȠ�����Q,�
��!��������{�kּ�����>�����H3Q5��B������.@�
$p�d!s�#�~<<+"��x��M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!��
e�Dh;��V�EX0fK�9�-0IWfH�����0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4�������x����6��_-��"bb��ϫp@�t~�,/��;�m��%�h^�u��f�@����W�p�~<<E���������J�B[a�W}�g�_�W�l�~<�����$�2]�G�����L�ϒ �b��G�����"�Ib�X*�Qq�D���2�"�B�)�%�d��,�>�5�j>{�-�]c�K'Xt���o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A�,����`6�B$��BB
d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$
ɈQ"K�5H1R�T
UH�=r9�\F��;�2����G1���Q=��C��7�F��dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"����V����cϱw�E� 6wB
aAHXLXN�H�
$4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�,
+ȅ����3��!�[
�b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w
��Ljg(�gw��L�Ӌ�T071���oUX*�*|��
�J�&�*/T����ުU�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_��
c�x,!k
��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6����E�Y��A�J'\'Gg����S�Sݧ
�M=:��.�k���Dw�n��^��Lo��y��}/�T�m���GX�$��<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��=
���Z~s�r:V:ޚΜ�?}���/gX���3��)�i�S��Ggg�s�K��.�>.���Ƚ�Jt�q]�z�������ۯ�6�i�ܟ�4�)�Y3s���C�Q��?��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�����!h�쐭!��Α�i�P~���a�a��~'���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl�������{�/�]py�����.,:�@L�N8��A*��%�w%�
y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L
Lݛ:��v
m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y-
�B��TZ(�*�geWf�͉�9���+��̳�ې7����ᒶ��KW-X潬j9�<qy�
�+�V�<���*m�O��W��~�&zMk�^�ʂ��k�U
�}����]OX/Yߵa���>������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n
�ڴ
�V��E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa�n��{��4���[���>ɾ�UUM�f�e�I���?�����m]�Nmq����#����=TR��+�G�����w-
6
U����#pDy�� �
:�v�{���vg/jB��F�S��[b[�O�>����z�G��4<YyJ�T�i��ӓg�ό���}~.��`ۢ�{�c��jo�t��E���;�;�\�t���W�W��:_m�t�<���Oǻ�����\k��z��{f���7���y���՞9=ݽ�zo�����~r'��˻�w'O�_�@�A�C݇�?[�����j�w����G�������C���ˆ
��8>99�?r��C�d�&����ˮ/~�����јѡ�m|�����������x31^�V��w�w��O�|
(�h���S�������c3-�
cHRMz%������u0�`:�o�_�FDIDATx�L��Ou�?��2;�3�.,
�JSRJ ��&V�Mc}i� ެ(/ �4�Dx3VK�1j��Ӄ�jL�hbb4�EXyawaw��ٗ��y� >������}��҅!�1g0tP
���VP�p�6);����*����
T�;T�&�J
�I��P��
R�4���LU�+
�Zw�p�ʫ�UDb1�6ZҤ�ݮJ�Ҙ۔��Ƣ�=2�dZ�>�F�zg(�J�P�<?���럠w4�UO�'G\�=aW�ma��Ĺ��Yvf>$���L���O��0��!XZ���e�T@��<)L��Z=);r�T�%��q�3�i�g)^���TH��a�9M��%��Oc�<�})��Or�î�?i+��T���a������WT�N��G���4�`t�@᭻�l���ڙ&;�ʃ[&(���z��g(�t�ͷ�&�j`v���D�dp�OV��M�U;�+h���Y�P���=Rg�`��Y�8Ag��a�QQ�7)�'���I[�k��vz�]���1r����N�sϐ����7_�+
�c�Rl��x2w���`��X)��[��3�'����-�_�@�$�������l~�ٱQz�,��
ϓ{��]C��Ű�S_ߤy���ofY~�u9P�6X��2p�:-'����
�ޙ�H�C�kxr���b�]_�#��"�SS<�I`%,D ���vN�
}���#�5����[l�����*��A)P
]4V��,�d�uÀ�gޭT���|���iP�j���D�=�]�Z�Ls,F�4 #��/�펮!S�C�%�}�������)E])�E��
��}�í�{IEND�B`�PKꊋ[�+JJimages/date.pngnu�[����PNG
IHDR�asBIT|d� pHYs��~�tEXtSoftwareAdobe
Fireworks CS3��FtEXtCreation Time2/17/08
��XtEXtXML:com.adobe.xmp<?xpacket begin=" "
id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 4.1-c034 46.272976, Sat Jan 27 2007 22:11:41 ">
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xap="http://ns.adobe.com/xap/1.0/">
<xap:CreatorTool>Adobe Fireworks CS3</xap:CreatorTool>
<xap:CreateDate>2008-02-17T02:36:45Z</xap:CreateDate>
<xap:ModifyDate>2008-03-24T19:00:42Z</xap:ModifyDate>
</rdf:Description>
<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:format>image/png</dc:format>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
5Rd�IDAT8����J#AEϫ���nIV�r=`���+?#�!�\��3���0�+3&�
IKZMU=խ�t�a�B����}��}��|r&�"���{Qu�č*.���p��z
y�c�>>�?:zP�ON�2���G.E�h��*��T.�����aS�b�wv�,C6LQ
e����5`00���v��|o5������2�z���}D�Z��h=?c�:��
�
��]-���[�cTA�e�^�6 �p�m��@+uL�n�1�Ʉ!V��v�\�'���,�n���
���z�1W�|x
��ɚ�i�1Fb�o��!�X�'Ĉl6�A�eY��?��Ęr1�t86���Z����Ur0��K�F�ϭ�+S�Ҷ��mIEND�B`�PKꊋ[��v�
images/delete.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<�IDATxڤS=OA}+`�1z54����Hl���cB,h��
�P�_0���/Il,�P� TBC�(��ޞ�����yo�f��mۘ�Ì��_�B@��qrY�ʦ'�7�u�R��
�Dž����o�(��A�'�����H�r�I��
���f;���,- ��%!�)T���dd�VC4�M�Te
�H�n��P(��J�J�E
�ψ�-`;U(��dR6
E����xk��zR�#����(���5���2}>^{=E�f�\�PS���8�ǃ�NY��Ub��S���
[�e�4�H1�8Ƙ=9��1�)F�]R�߯��{����t��8�o�H�"ۭG�P���eS#Vɟ�jxx�m���P<����j
B�e�/l����py�Q���
�mu��މ�v�(Ѓ�\N�m�WP�k��2"�w�`#��a8>IEND�B`�PKꊋ[�Փ|uuimages/display-icon.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<IDATxڄ��jTA�����:c0&�$DD�!���w�}�Y
�(W�\�!yC���(�7�(f�x�Y�
��N߬�c&'^�����)ƈ�qq��m�5��`�x������|��n<��t�T
�6�Y<O���+���K�ե�9�b��[gj�;o�taC�s�GhMh܉��
���g��W̟����u�d�g&Q�7�1�k�|��H(Z>?� >4��|�Q�l}7�3� T+������Ε��?�?����S�;v��O�Vq��i�c
�1�J E�/?�Fcl/i��]�aFc�e�8��߶�8:
q��2�h"`8c`�>�H9���+�?$2�b�apI�0ZH-�)�_�NE��z�JU~@'ɍ`�Ysv#l�.�#K@�(X
��u4 ��
"9���:�����
�t"g��m���ȝv�v9{�ˆ���Jaru�3y.�
mA�KǾ{p�w�@�P���a'Ƅ�F�
;3G.����������\�%���&����IEND�B`�PKꊋ[����''images/downarrow.pngnu�[����PNG
IHDR(-SsBIT��O�<PLTE��B��؆�a��`��V��o��W��m���n��n��s��ߏ�q��U��Z��n���o���)�עtRNS�������������������OO� pHYs
�
�B�4�tEXtSoftwareMacromedia Fireworks
8�h�x7IDAT�cF��f�`���0�/B3�τd�
��l|���0��0^W���IEND�B`�PKꊋ[�$�TTimages/dropdownbg.gifnu�[���GIF89a�888222%%%"""(((000������...---,,,+++�����������נ����Ҁ����������ڡ�����???���&&&###
***777'''444$$$111!!!666555999333!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:39D0BD5434F611E0A32FC47285039436"
xmpMM:InstanceID="xmp.iid:39D0BD5334F611E0A32FC47285039436"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:89E04B214C34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,�@iH,�H���l:���i)�Z���v��z9��xL.�ϣ�`�n���aC��������!���������������������������������
����
���
%��� ����(��� �����������&���"����"�������H����S���Ç#�8`��ŋ3j4q��Ǐ
C�Y �(S�\���0cʜI�&�(r��ɳ�O8
�b���H�*]���
;PKꊋ[*�;CCimages/edit.pngnu�[����PNG
IHDR�abKGD������� pHYs��~�tIME�
82x:�@tEXtCommentCreated
with The
GIMP�d%n�IDAT8ˍ��K[Q�7�����ŭ�.B+X�����C��BHڡ���
��v(�K@��A��-�K�ͽ�rQ��C�zs��ἇ��>�s�5��r�ܯ�Lz�r�����(��u]QJI��I�ʽj��:A��`�6væ�h�4~��]�~Z���4�N��"�F�"��O�4�M����O���������Omڜ�'������K�պz��hf���KZ4��''�D"�|~ ���Z�P\���+�f���*��b
`*9�
��m�e���/�ܒ����p���2��2��ӞZ��j
������pО_��z��mXXe������β���u�|�J<y>K�t:Ȭ�� ��tŞy��^�y�eF��X,�C�������P(�����mC�(IEND�B`�PKꊋ[�D�33images/editor.gifnu�[���GIF89a��������9c�_o����
$j���y��4Kc���::�X��ې����Ҝ�����������Ά��ޚ��f�B�6_�����������������������`56���ې=8):����:���Đ���f����؊�����`�����������%c���f��/i䰳�`��fĸ�fS�X�̀��Y]f`ې:65���S�������f��8*����_`���·5ff"X°�݃���6������:5������Aw�ff::��::���M�������˴6ƴqs���ܱ���u��@`���mLp��xY�:���f�Ѝ"Z�_ϰQ���Wn�:ff����::���`_6566``��5���1Q�:f������f��f��::f:f��ې��釫����f:6��ff^��ff�۶f�Ά���:���������!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:8ACA168434F411E0B81B9D3E1ACF6461"
xmpMM:InstanceID="xmp.iid:8ACA168334F411E0B81B9D3E1ACF6461"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:89E04B214C34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,��= H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ?�I��ɓ(S�\ɲ�˗0cʜI��͛8s��ɳ�ϟ"J��ѣH�*]ʴ�S�B�J�J��իX�j
�i�ׯFA���u�ه`ӎ����ۙ�@ɝK��ݻx���+J�q�
L��\�'���v���&�Ly�⒀+k�2T�Y��V2�ӧ=�
��5g�AI[-g��u�f�唙}�S��Hi#��{��榇K�[<���u�;w�|;��$��O�|���ǟO�~={�(�Sn��v�ڍ��K�k��1՝H��T�K�7x~��~s5��xd�ҟ]�G�Z8!B��a����`r�}�����0�H
/�Ȣ�7�D(&�gcK>��{>�hҎ����/(����a����'م0��v$jf�a���0�#�?��R����I�ɒ|r�`��r�a�x����cR��t�$�iI�\VF��+
Z������z�(
X�x�6�H%��Pi�^r(gQ�h#�B��j��&�F�`xE�:R���Z$�A��i@������q'�(("�%xR�ׁ�%y!��-��lb�I
��mM�
D$�f�%~�ژ�9�z��/��+�i�����R����\0(�}�a��''b���a��h�(J�
��wr��N��F�ea���o�6�;f���:k�,+IKp�h"}��{��ȝ�N9�/���#[��-�u��ib2�2�]5�1�m5��~�3P:�8�J�2�q���JHΝR�WB"W
X{8F�n���bF
Mj��^G .�ߪ��aO��Qf��4�*8Ou��������y��b{ ��#��y0��t�z�Zy�NN��z.�����o'�h�g=�D���c�a��Lؗ��Ԫ�As���?1��'t
fo���0j��e~j��N�%���}�C�J��;��G�����O3��^��� P}7k������i���R��&����W?�f�6�_��6l���a�Kt�!�0�<�Iq�~��4�o<)NтI������x�!e��
�E���hL�s��5��p�J�H�:�Q)s����Ǜ䱏��
#s�A�|�#"�H5*��_��
IIV�(@�lb��]%�6y�D2�OL��@!Q���-�
E`B%��
�4�jʥ�2%f`����(?1�S���K@�jZ�ք`Ll�/(A%X(B@�4�
X�%i��`
_� ��x�$
��&���|�_�+I&K���n �.��n��
�%�%3'�[F ���
p\S�/Q��ٙL0����
4��T'h�s
���L"��m@$�����Ę
�@��d*�iS�`�%Ԭ�FE
�x��iJ"�����0J�P��!}
'
��A�2u�#U2Tz�Ā%!AD�O~��&<� X����
��dIe�R�jL�N��l*�� ��$P�>0�
��}hK@��%Y�Ww�����%6�
�`|�i�J�Є&�!p���08pȫ^/i������Da��]2���@�� �
u�d��z��e�gF�N
1�H@��x�(�/��yJ8�c%Im_��݊@-��J��7�`����\��!CK{��.�4��I��wb�Ɵ��P?�K�ⱖ�� b�S'25�J� b#��d�d�@^s�������
4U'�.x�I���h@e`'�e2�gN�Jn� \U$t6 5}�[�b��'QC�@���
�A|��,��X�Y�s^�
�ÌEBc���<��Q�N+�$�z�[IT@��-�J��W\���obGR��&�$Mj�\�
�ep&pJ�N�(16�O
<[%A��GB[�P�^Zpr_@6�'��C��
yȂj{�@:����pLk�$7�q���X�G��Mi��<�d��&l?�F�z�s$��?�N9%��S�:�(ן��2*`r��`�hp-J��0C۔5���Mm_5�N�\����
6 �\-�B�
T���`�,��&a@��=�a��aL�M�젦�nɟ�&��J�Q�굫���
�Xٌf��{�Q����<�j�>�M9蟰���
(�
^�Jސ�BG]�m���K�84� z{�~&(����%���Y��a�������'t b�̂@&0�� �Y%�w��?�Ƨ���1*hb�$v�B�
�5A���R@z�(�
0�@q�3����BS�
y��^R�K\p�L51!UH!�E�Go't�U)�n#s�~�g-��DpiD�����A�X�$O:�j�n��IBr;1x$H0|1�we҃8!J��s+� ���7F|$
D�U��ySH��u��*�\wEr�}_��^�p�7�d(�O�K%�^3QLN���LH��v��X��6��X���Yhu�1�}t�
r@�����],1TP8'pH8H;h�]�J�Z{���TW��*{�X�H�؊�8@�HPt�h�x��&�8��H�X�Ș�0q��،�HH��ҨE�8�֘�̘���؍��p��Eو
蘎긎���T�7q��X���𘏂#�6A�������8��X�<�Y�|�4���,������$A������
��踐��pL�Ue��,i���i��$�崓!�#�jI1d(T0Yy����-��Y1ɓ4i��(9ɓ��?�D�>�jE���q�@Y9Ք��#�Y��"�� �Y�i�vƕ#1w��SV�9�p��u�u�dRh9�j�q:IN>���� IN@Nl�}>Y@�BY� �)g�v����9T߇q�%T�w����jɖ���}��4�!����"1C���Y�,� `�I��^X�q%��� ��!4�b�@����I�P�P�w����$����-�����qgI�6d�����ٓ�9��i�:��!PT[����j�)���ٚ�U`�"1O�ɟ�蟏YN� ��H�����IUŠ5x���<_:zsW��9
��O)e���8�䔞���i�Yl
���6�+�� ���u�7���Rڣ���'A�@��$�(A�o��� �*�0!�+Ѥ��:rz�C�M�q^j��I[��@h*�'��n��q�m��H�9q���c:��_j#��������KZ%i�ϸ�1�� َ
J�*��H�0a������ʪ����
~^��h��/��
��z�O!�Ⱥ�ۡ����1F�:��Z��z�ؚ�ں�aE�����:��Q�蚮꺮�ڮ�z����:��Z��JUt�����گ�:�;�[�+=�z�
��۰R��;�+[�����tq���
��"[�&{��J�(��,۲C��.�2;���4�{�8��瓰:۳>��6��B;�.�D{�H�F��L۴��N�R;�<;�V{��
�X��\��Z۵`��Z�b[�fkD_{�j��ؑ�l��p{Cd�t[�%2�v��z�n��~��}�����;�����{���������������;�����{���x���۴����+��;�����{��+�����������K��;��۰�{��k����������«��;��;��{��ˮɻ��[������;���{��K�ջ��1����{�;��;�{���黾��%����B�;��˷�{�������{�����;��[�l���������l�\��{������l�
��;�$�&|�ʛ�*l�,����0�2<ú[�6l�8�ò��<�>�ê�Bl�D\Ģ{�H�J�Ě��Nl�PŒ;�T�V|Ŋ��Zl�\�ł��`�b<ƀ�f�h����l<�n���r��t\�|�x��z��"��~\�(<Ȅ�|�.��ȊÌ��4�Ȑ|Ò<�:\ɖ�Ø��@�ɜ<Ğ��Fʢ�Ĥ\�L|ʨ�Ī��R�ʮ\Ű�X<˴�Ŷ|�^�˺Ƽ��d��|��|�e\�B{���ʼ�:��Ό���4;��L��|�kk��ܲ��ͨ���\��<�&[��̺��]����ΰ���|��\�{�L��ϔ����I����}�Dk�
���м����=��\�-���ռ�����!}�=�Z�&}�(��ʭ.��0�2=�4�]��8�FΚ�<]���@-;�D�?]�H�C��L��~�G@S����X͂Om
P�'Q�
�Y]�F��\=5pam�dm�p]Q�i� _-�q`�����
l�֟PՆ
�.���1Ն��x=�
؈�E=�Q
�%��0�n���]]��v}`����%QS�գ��_M�=֤M�M�D=�uMU0^�bM�t�$�֪=b]�-��օm�"�ڽ-�-ܻ��<�����{p�ò��=�&a��=�-�%Q��-�m�\m�ۍ�8�ݫ=՟
����}�"a�]��m��M5��k
��������M��j�$��@�
�^0 �
���IP��~�#a�@ �-�� ����-�̺��M7N�fm�^9��Y��@>�y�D~�Ԉ�J��6��N��P�RN�;PKꊋ[=��ppimages/favorite.gifnu�[���GIF89a���������ۏ�������������������������Ó����ĺ�������������������������������̯����������ٌ��������������~~~���xxx}}}���bbb���fff����������������������������������������禦���������������Ȼ�������阘������픔����������������������!�M,̀M4���@M3��7��?�
<8��> �E.��
���
- =�
$L&+�,&J$%F9���BD%"6
��":1�;/����Q�~&�@��
#����( �!ɀC
����(`p����$��� 6�A׆�4 ;PKꊋ[���;��images/favorite.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<aIDATx�lSK�a�Gg�0���^�!��Q�
�U�6�[�j�NhW�p٢E�V.�
�E�����@E�3��:�͜�<�������'���t��^5<�=`��_��S�|2�d�jU9x��F$m���3��cdO�z�f<ϫ�6���"e:������l؝k����vdHRt���v�H�x<>�ey���N�y�X(]��N�S$�N6�i��햒�&�ɭ����F��l��
j��F�f�Z-��DQ��F���?B3x�t8�P(���ze;�K�$�N�c��j]��ۃ����T`������U���F1��/�KĈ���\���O��nA>"�V��
��ng&�
M$�7m6��q|u���5�z@}���Sש
�p�^o!�د[�H$X��b�AO��l4y�M(
�l����U֘J����0}3:p�����`�1��b1S�R���(Ý���{��l6�"�=�Lr�"���Y�:�N7���T*�p���f
�h��h̺�n�\.���K��b-о���
6G��}E��Z���R��!�N��(�D�0-
o��x(�\�X�7}s�KIw�n�IEND�B`�PKꊋ[}Jj�images/favoritehover.gifnu�[���GIF89a�����ʔ�����u��Չ�Ճ������0��!�Ӈ��y��"��{�ӂ�Ԃ�ҁ�с��
��v��$��'�m��k��(��3��h��e��t��s�v��"��#��m��r��p�����������
���ӈ��
�� ��
��
��$�����(���9��@��A�7��)��-��1��������!�����!��"����"����#��"�����������ޢ�ޟ��Ր�Đ�Ï���Ց����������������������܉��e��d��bϼkλk��k��a��M��F��D��`��_��U��l�{�z��w�Ո�Ԉ�܆��w��o��n��m��t��t��s���!��,�������[�(�c�@Ө�(���7~�0�Ȁ,W<��@K$@�p��5-#@�0D<
`B;=|H���:��Ӎ�Fp�ʎ8VT��9F8<��h���hѶ���ŋ4j�M�#ljAR$`���=����b/�BsB0
�D�蒸��%RP �B��2Yb��b&L�3�Y
� �;��g���p`�
6lP����(�S�D�A
<h��r;PKꊋ[u)P��images/favoritehover.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<�IDATx�lRMhQ��٤�&i�$�؆V���V[�B�h*B����x�&DD/�^�"�=��_�R�Kk��Z4���%�����L��6u���~ofvf�Ǡl{�ܺ��W>�;ę7|�I��2`�X��-���
\/�g�%�f���/;�U@XH�e���߶�-�� ��0�I�P�,��|%�1�
��Ȯ~��T@U7�(U��륿
����p]g�|���6�Q�f��˒ɒ�(�q���dlm���}�D�tu'�6�.g��?�^
�pN8W[�ֵ��t\�%/7�0�+�.�E�+~3W���}��8��{&�WW��3�Q���j�����昮e@�r����Bu`�.�2�R6��`�#��p���ز���sa!���k�ח�'�^@�7ɨ�߁H#����7��s����n7K#P������pXY����s�=Rk���<6��T�Dk�
笝b(�r(�(���e�8�C�H����i��������$75SqRMP�P�RYq�˸
w{3j��ɫ�1>�3�͚7U����^�)��
������1�i�u�:��n8�������/��kw���Hq.�����M���=H:HۨFD%�I��g0h��G��x1
KCI�t��up�.8F��8�#�q<,3���DIEND�B`�PKꊋ[8�,Qimages/filesave.pngnu�[����PNG
IHDR(-SsBIT��O��PLTE��̙��lkkBB@����333�����������)((L^>�����zyy����癡��������SRRg|V����Ν����x�i;;;JLG��ֱâ���^]]���UiE�����rrr"!!7@/�Ѩ�����ZRR�����շΥ��RJJ�`KK6tRNS�����������������������������������������������������H pHYs��~�tEXtSoftwareMacromedia
Fireworks
8�h�x�IDAT�m���0`�Lƺ�ʼnΉSO��d����K�6�$�Z7]�~1~NE"7���~(C��\��#$����
]3i0#�Z��Q��$��J�U0q�M��t��FA��7Yx(
,��p=U����UV3���7���w�ju:��3�IEND�B`�PKꊋ[|����images/history.gifnu�[���GIF89a��==�nn�33�~~���//�������������dd�����ږ��������������������GG����~~����֦���cc�����PP�����Ѓxx�ss�mm��\\xff�yy����NN�ww�������66�}}����FF����==��ĺ�˸�����̵�Ɲ������NN졡�����ȡ�������פ���������������ë����ݼ���TT����ZZ����m[[���!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:BF4FB609352211E0B0A8F71350810230"
xmpMM:InstanceID="xmp.iid:BF4FB608352211E0B0A8F71350810230"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:84E04B214C34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,��TT����TNN���N+!.��!+,��,4%C>H5�'='%4/2
2P��/���*<IDA1;F-*L
1M-3967@:JB?EK3LOO��M`D���#"�E����(Q@4�ɇ$Ld�@�&&H��
��ɓP��²�K�#;PKꊋ[����images/history.pngnu�[����PNG
IHDR(-SPLTE������������q�ݝ����ؚ����ۡ��l�q�>v�C�����R��Y��c��r��z��ž؇�ى�i�ӈk�8�ɞ��N��V�Ц��x��k��t����Ճ�a�цy�E��_����併��y�^ݲX�r��xܰV٫P�i���������߸�Ẳ�hרL�d֥Iڲe�ņ�À�ňָ�շ�ڿ�Ƿ���ǷH@ǹ��M�ʰ��[�Ǻ��M@�B<��[�Ǻ��v��|@��K�CRO
}}}ǼCRO
����Ìǽǽ�ɇ�-��-�ǻL�l<�`<��y�tRNS@��f pHYs��~��IDATx�U���@����Z�%�~ -���>��>x5~�1��� "J)"&J�l._(�
�J�V7�@��*�;V��GfOZ�iǚ����Ȝ�����:��qX"0k1���2{�b�?����X���`����z��b�#p
�!p?��E\�_n��]ލ�Ǘ��Ns��IEND�B`�PKꊋ[� ��images/icon1.gifnu�[���GIF89a+*���θd��������ڍ��u���ل�����tټS��������}�ݙ��~����ȲZ��������u�����ۅ������Ш�ܑ�����cѻe�ޖ����������r�ք��|�ف��ʽ�;���ַK����܉�����g����������ɰJ�а������U����ߧ��v����[�ލ�����]��x���ݶ�����x�؈������ǘ����̤5��������j��u�������τ��״#���Ԁ�����������ߚ�������������{�ܕ��n�؈����{��������܍����M�ي�Ԁ��z��~����ׂ�ۖ�ې�ܐ��������~��éA����ڈ����������ۖ��������܋ϻp�Ԁ����ߐ�������z�ݒ��m������ے�ׅ�ւ�Ղ�Ԃ���̈����m��g����ޒ�ܕ��w��i�Ņ�����ޑ�ڋ��l�����5�����z�����y�ڋ�����{����z��z��r�<��վ�A����،��������������ߞ�����z�箼����݆��p�Ϝ������zѾt��~�ݨ�������������ד�۟��Lݼ3�������ΔǰU����ց������Ћ�������ۇ����Ԥ�ڮ�������������ב�����҃������n�ׂ��t���!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:6842CC35345511E09D7691755906BE53"
xmpMM:InstanceID="xmp.iid:6842CC34345511E09D7691755906BE53"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:7D6B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,+*�� H�
Ay�*\Ȑ�Q�y�E����[���3.�,�N�7=/�u ף�D#E���HO�
��3C�1+�w����i��"J5�5��P$z|,m��R��2¶[2u
>d��l�
�`�. ,S�h1��"o�ΥaŊ4��(��"�^#��("�paĉ�`��s�1"�������ie��ٳk��6�/�
+Vo��n�H�Dh��H8���z7ŶҬ�a���Xc���H�O��;.ܰ�B
Ob�7O#�|�
2ʼn��VQ�HtC�s�IG�G���g��Pс��CA�@&�D'���p�;gXJ$���b�&촟0 ���S�
�t���H��8ꨉO��@-h�H�d�TY��,���Ι<yc�;Rie-�d).����@H�J
���l��!9��s��ye,qj0g�w6�#��K���
�PYBʒ�#��΄�4�wNZ�!���ĬU�At���
`A��cJN-�� Pji��>�&F���b�$�:�!+�AA�`J���
o�@EO�j��hGa��>�T�&��Q�!{��A��,(�J5�p1��Q�&���/�Dd�;}�kG�l!�/����(���
�QF��1�%,��3p�>���6�ȝx�E.)XaEB�#6�qJ�Xg�&�H�K�p��4�RC3�X��[<����p�@��"��@2�|����-u�2JحL���aI3~
)�"�$��Ӊ!�P�+��aG�l6�
��:�~����l����r���,:���*��IM��B\����>���r$}���24,@"!�!�^����pQ&����H��#?�}��?��@��2`�&\��$��
~�#�:� ��|��۶���j��0�@��"L��R0 J����4��=
�F)D��y�B ��3��P�LD�*,E��^p�D �T
HA
��0��R[/DPD��X�i�A)^T4
! Ix��7p�jD ��A4��=,���ۤ�8Rъr�
<!>B���@�>
dL:(�*x�#��J�2���9GLjR1@fpO��
�`�)�Td%\izA��Do��h2�
�f`�^R㋱p�~PL>,���d
��$����6���^�����s9R(�{0�P��m���e�9�z��_�G,�(���
�'��'l2��d(7��>~3���
(��j@����G�P2���Y��IQZ�Xh��G��զ
=�Cu��V$
;PKꊋ[Kt��images/icon10.pngnu�[����PNG
IHDR���tEXtSoftwareAdobe
ImageReadyq�e<diTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:D2AD61F2350F11E0A714942B011F416B"
xmpMM:InstanceID="xmp.iid:D2AD61F1350F11E0A714942B011F416B"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:846B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�����IDATx�b�bdd`d`Hb�0�f�rbH
�H��&���͛7�0ӗ�A���+������q������W�>�@
=Ҍ��@4X���3@J�)�3=ְ�]��͛���Ȉ2<}��
�$�j�xszX�+��01�zo�A@�_-D
�fï_�Y��H�Ř��D3<bw��.�{�Vx�g��sx�|���IƋ�_^FCC�AFF��˗/�o�fx��@1��
)��9@�H��8��Ng��`۹y�(���l��lLl�f���;���6��_�����/�n�Y��R<�@����d3<�qcx�����k���h_�����Ke`X2HJI�t��N��uvf((�<�;���,�""�ll���}a���;��{b<#3�n���"���:'''Ó'Onݺ���Ã'�'H���N7�����7ÉÇoܿsg&P|&�"Fp�"����lY֠��& �_����'��j�/��:fo5F�����fU]5s/���^|bf`�f��=�ߗ�@��0�,��E10��M[(�����ܪ;���~d`8s���o�~00�)�+��,0����g���Ucdd��N���0H���K��Ԋ���_���Ϸ��Ճ4jII���Z[Z��=��p��5���a)��@�;bݺ=�6na��L;zt�L������`�,,,
�?�0���G?�4�k�t�a����9IEND�B`�PKꊋ[��
���images/icon11.pngnu�[����PNG
IHDRhOGtEXtSoftwareAdobe
ImageReadyq�e<diTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:D2AD61FA350F11E0A714942B011F416B"
xmpMM:InstanceID="xmp.iid:D2AD61F9350F11E0A714942B011F416B"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:846B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>��K�IDATx�b�e���f�����s���b
5����I��?����c�b���q����ܹk@���w��[�������Ĕ�Ռg��?�Qn 3����m�����F�?�i``�@
�S32*n?������{��h0899e������[�f���=��`dd$p�ʕg
I~���WW�r�bjg`aa�eddt:��������_�X��쪪�:��2���c��0����'L^^-�2`122<y���R���_+&GG�O߿3�+#C߬�?~�0d����+y����1�I��"%��g�Ʋ��?��a��cNF��@�M`�����0d���v�B $`��bffa
^~~G3[[G3SIQQI���_??u���S����~�Co1H#��@\JAA��������G=S�2�881|������_����y>>�����EL?��I��+���4��۷a�r�Ço_~35�a���/��d�KJJAzX���t($@�����][�1r3���FF��b���AzX��~��|||������İm�pP�C
@ro>f8�m�n�f ��gN��v���O���J|||������ ��4��۷�Ksr��ڹs"0��d��ҁ0��
++�0����>C�0����G
�5�a�]Z;�IEND�B`�PKꊋ[>6B--images/icon12.pngnu�[����PNG
IHDR
D(tEXtSoftwareAdobe
ImageReadyq�e<diTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:D2EBF7AE350F11E0A714942B011F416B"
xmpMM:InstanceID="xmp.iid:D2EBF7AD350F11E0A714942B011F416B"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:846B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�/_�_IDATx�bdX,��@����R�8��0U�
�����N#P8�P}��W�_10�}��ߏ��#�B�L3�i߿g`ggg�|fkó_��g���7�7�F
����101,[��!�EML�������]C>i�7.0���C���S�~��Pf`x���#F!F=�f��6#�
C{4d�\ե�Ź�8ٿ����Ƴ�/o=��hQ #�l�u��N_?}���ϟ?�������/>���������3<������
�3}����W�l����Y���2������_����W(4��X��0�
���eC�]<IEND�B`�PKꊋ[�����images/icon13.pngnu�[����PNG
IHDR�Q�tEXtSoftwareAdobe
ImageReadyq�e<diTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:D2CD4567350F11E0A714942B011F416B"
xmpMM:InstanceID="xmp.iid:D2CD4566350F11E0A714942B011F416B"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:846B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�76!IDATx�b�bdd`d`Hb`������x
��"\
Q��+E�a�/��_W����WN�q��������
�iF�y ����� �
6#s�.��r���e��q���~������*p
�$���xszX�+��Hb,��@���?���F�~j��<�Cf�0��L9��r�wd�7}KdfeeX�ޖ3�_��O��
��L�,u,�N���>�c���K_�e`٩��E����b��!�`�!H���c�W���l;7or}���>`�����l��g�>p���X�?�9@\���_?|`(���$�#��@��M��i[yZ?-���������eM�ci���05��]�k���l�e�����z��=C{�"���0`d������6�z�;�_R*t���|hX`,0"�t
m�tskk�_�3�8|��;wf�g�+d'$P��ߕ-��u�$��+��3�D5\m�e�A�
nN�c���*���0�Ab
94�@?�(3;C�+O��nJ:&}F���
ι�[�r���U�(���:X`��@CXM�L���=B�@�����bBR�L�u$�R
��$4�7ډp'髈j��(�sp�3<z���)�榯�>s<`�t���:�5��a����//�����Y�}�����W;7;p���t
�_��1\�~�A����7?���gœ�2�lU�P2f`b<�0�W#P�1C�*qk
1�IEND�B`�PKꊋ[�˻.��images/icon14.pngnu�[����PNG
IHDR ��6�tEXtSoftwareAdobe
ImageReadyq�e<diTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:D2EBF7B2350F11E0A714942B011F416B"
xmpMM:InstanceID="xmp.iid:D2EBF7B1350F11E0A714942B011F416B"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:846B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>��u�IDATx�b���?01;�Ù͌�A"2İk1����e�A4@1�>����/�=��H
�o5:c3�Ԯ��}��O�US9.��6��&�������r@�fٿ�g��}������ve��k�篻��������R���b�����
��.��V@������3X��� �:�;�>PyYl��%,F@v��e�ӗ����cdxte�>�X�k̟s,
����3�c۵~��o_���f1fff;w��kk�4IEND�B`�PKꊋ[���jjimages/icon15.pngnu�[����PNG
IHDR
�5�+tEXtSoftwareAdobe
ImageReadyq�e<diTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:D30598F3350F11E0A714942B011F416B"
xmpMM:InstanceID="xmp.iid:D2EBF7B5350F11E0A714942B011F416B"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:846B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>΅��IDATx�b���?�R!.FF)I
�b��@�Y�����h�b��1}%C��?012V��gf������*��W�ff��w�PP�����۫��S�������h@���99g�M����������������T��[R�ן߿Y?�}�����]���{��d��$~FF�.k�bf�@���K���N�tv����)d�Bŝ����;;�Y��V�����q�O�TUC�f^11�W����?���y�d����s��v��Ȩ���<I��LJ���L��������-�ǭ\\߮
�ocf������������5�X�� ~�nA
������-�
��@1N�?T������IEND�B`�PKꊋ[Gj�$��images/icon2.gifnu�[���GIF89a%(����������������������������������������DDD���������������bbb������������������������JJJ������������ppp�������ᠽ�������������ڄ�����������������������NNN��Կ������������֡�����ѱ��PPP���������VVVMMM������������ð��������LLL��̉��������r����飣��������霺���Ɯ���������������������HHH�����������YYY}}}ikl���뮮�eqy�����ۍ���������������έ����ӵ�ں��������˚�����������і�̊���������������������п�����������dlq��疖�uuu��������ݑ�ȏ�����������������ꄉ�����������ͥ����������������RRR�������̤�ӡ����䕕����������fff���aaa��՞�����WWWzzz�������ۘ��������������������������䤿ү�����������ddd��Ϥ�Щ�������ߖ�̙�������坹�����������������紴������������vvv��������������������������������!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:68679A7B345511E09D7691755906BE53"
xmpMM:InstanceID="xmp.iid:68679A7A345511E09D7691755906BE53"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:7D6B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,%(�� H�`�����[hϞ�~#
에a�z�����<z$8p�^=�����/��#
����$ ��y���R���{�
)�)��J�����{�<Lh�`�y$��J6a�|!�s�^D"��j��?]�t�#��+���e�݊�M@$`�5��̓��G�+\�y@�<�ȯ@��,��f�3�t����D�H�U��If][lX,�� F˽���a�J���C�^
����o����_\��p{X����v{
~!
��4�V�`�Ӣi}B�7��iȣ�+y���
XR�Ea�O>jt0�63Գ�?�$�Yt�eqA.^Txa>"�0��3�v�죀?
�r�&���5&��ъ+�����3>��$҄ ��ca>+dSD!'�����@=�]=�cO��P>�)�
qL@���v�$�ϚW�J(c
��S�B�p�s�K�|�k�x�ϸ��]�p�-�r�=�@ρ^�C�=��p�0��Nߠ�>F8�N�3O>�����L5�#�:�#�=0�U��>�P��b��b<!����2�9�īPL��>�;m���C-ȫ>�`&i��n����u10>+����C@>�0�0��f�>���sOH�t�����>+�AԼ��66ȣOP��]�3<1 o�SNS�� =*�d
�Ӱ�S��b�O�C�<��X�P�=g͌.�M$�
=<�C��s��x�<��C�p�4}L1�!@@F�4�w���>,�-��%`|D��P�pyd�y�[x�tS>�B$3`�������CI!�ӹ��7��1(�v�O=������cS\D�
�� ����P��OU>�?��O�@�ЁX
X��� 7`�҅@�2�@D �NT ��
�{p�+�@�8<`�@��GH@H\����l���3��8`�
H��6<�}dx�ꈰ<�z$P��fv*i�)����#
;PKꊋ[g�²CCimages/icon20.pngnu�[����PNG
IHDR�Q�tEXtSoftwareAdobe
ImageReadyq�e<diTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:6FBFC48D352511E08D5EE3222AAE0118"
xmpMM:InstanceID="xmp.iid:6FBFC48C352511E08D5EE3222AAE0118"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:84E04B214C34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>
n֣uIDATx�b�9���o5��ؒ�?�
��L�/>0�g����O�~�
�����˾��?1\|+�,�ga|�8�ߗN�쯴9��Д���?g� ��on���=ß_J��bd�'����ÇW^530_��F��F6�'B"7�h#�%l�2���r�8����X��Ճ+S��c�ϔ~=5K4�фo�Rʌ����bx$lS�g_�T���^q\{�AZ<��+���g����Ab��/c;���3f�����
�տ���f� ���10����3Ōb��������{�,�w2;�迡�{��2����ߟ�_~11ԯ�Z�dj�p�!3#3+������p���O���0�K�1�������l\߿}cay��#�??�
�LL�2�3p]��f4p�'�-�!�.-'
+%�%,���)&&�0�P+�ȟ&�~��$�W�(�?��+i>ͤXL�bjHł�b'66S�`kI���be��
151�Jd���'�k�t�w�έ_��n��<�^�:
��������e���ұ��W���<8UT\�
��*�a]��y�'��ͣJ"�J�U���0&�b��Ţ�'W���!ծ ��nhw���)����l�58�LGh��j��[�)x�,��oF�g������v F˨o�k�����
�9���\�D�e�&�PHXg�<�[�L�[a���
���H�n���J�P��/���)�\�
�2TUE��#oK�p6�ᮕ͑�
��N8�&�U��������'�^.X��+�5�}�eUjP�J^��XXV!�c{ǘ�_�Ci��>IEND�B`�PKꊋ[`�D|::images/icon3.gifnu�[���GIF89a,-�����[��������\��$������+��A�����5��z��4�����6�څ��w߹��@t����d���������d�����,�����%h�9��'S����)��}�r�+��j��K������,��\]^/��+}�����G��R��������b���9��kkk��g��K��I���<f�6��M��ttt<�ꩽԋ��T��U�����h��2��B����]�C���������%~���Z{�:�����7��P�����s��{��B��Z��2�����1����0��v��I��-�������[��Q��&��FSd�����ޕ�������W��=��6��9��M��3�����@����7���6���eee
��4����3��d�����*���yyy���nɓ���*�羾�0��6JeK��+�薖�1���3��Os�?��?��7��E��!}�����5�졵�_��L��6��0�������������������������������Ԣ�T��8���/��:p#Z�p�u�|����v|�_��R�V��1��4���g����$��^��$��?��E��:v����eoz8��'�����ո���ԋ�H��Z�?������������q��[�M��n��;��#q˥�������������������ǟ��*���0��M�Y��0Z�m�1��/����q������5��Le�������!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:68679A7F345511E09D7691755906BE53"
xmpMM:InstanceID="xmp.iid:68679A7E345511E09D7691755906BE53"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:7D6B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,,-�� H��
n��X��
_��#B
xK��;b㉈<$���
�;�H����:Bt�+���țӰ;�dd[�4����5�
�DN�0��F��W�Q-m��4��)D(��M��+8����h�6���`ȐY�x��N�rX*�ܚL┐�a����҈xr����{
�Wo�Q<�d���Lh`�Ek:$�� �.^�ȸ�Z����>�d�T�n
��5D�
>�'�[���,�4�^�ٕ#"D$jd.\�խ�O�S�
�()�� ډ��1JKtT
�8�AC8+0pQ���$z1�X�ׄ�%��!Q�#�N1��j���Sc�@�@x�
�q�#QL�N���k�'`��/\��J]ds���1BM��S@a�kl�E;�ĝ_��Hƣ�t�dl2��f��A��ਣ�t�@6t�0L~�I (���#���C:���&t��hB�37�1�0���,"&N����$!�BADZ�
qC�u�a�=�z�3:
�C��4�W�
��7<�-��{�-@�<�9���(�_t�-�W��ǹv�!�Tr��
�SP��9#�@FI�b��AJ��l�&a��<��`p��x�L1(?h�?`s�.lV*��B�5g���C'�-�TF)�<�7!ts�@��J�8r��\�0�;�`�
��p�-YP2�@��
7�)7��B�l�
=�d��b��8�N$�x'��H
���D+�!4�� �1�� �L ���(���@�
�b��6+�
,��F$���Kq@C"@!����O,�%؈��Dh!(B�_�D��A0�_N|��
���N9���n�!����l�H`�D���<B
��pP������?LA�
�c8� ԆR <�GHB����@%��L��8�+V�
U��8ġ*v�C���B����p��hE
��&:� �b+���%��"1�)V��``P+X�2�BhD#ˈh�@̢)��D�@ṃ���PL�*N��f�hX��F�Q��b*zHH,r�t�Y@����菑�� +��GV��� ��*\1��А���*Z�D�җ���* �[�R";PKꊋ[!W�0��images/icon5.pngnu�[����PNG
IHDR���tEXtSoftwareAdobe
ImageReadyq�e<diTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:D2CD456B350F11E0A714942B011F416B"
xmpMM:InstanceID="xmp.iid:D2CD456A350F11E0A714942B011F416B"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:846B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�LG��IDATx�b�e���f�����s���b
5����I��?����c�b���q@x�ܹk@���w��[�������Ĕ��g������ֳg��@�[�la`����ATT����?
�dsjFF�����;xl��s�h0899e�� ������������###�SW�<�� ���}���յ�h�R
fa@��h6/##�P��������_�@�3䰴��
�C���Z�%$d`f pq1d�������������(��e���!˷ϟ_i*+�~|�!��H�3ScY�ԟ@��s22>Jn+���o�~���`����
Bp�1��/�0F�����AX������������TRTT�����O�8q����?���@����'
�RPP.(,,#)
����Ȱp�l���T���gx��ç��������"��?�$���
����[��o�0\�pL�0H$���'�]RR
������?���""`�\\@)��&;�����yxx���,ml�AzX��~��|||�����a۞=�p#<��ro>f8�m�n�f ��gN��v���O���J|||������ ��4��۷�Ksr��ڹs"0q�d�&)aP��"AVVV%`KAS|��3`��ϟ����7)c[�&�IEND�B`�PKꊋ[%8��images/icon6.pngnu�[����PNG
IHDR�Q�tEXtSoftwareAdobe
ImageReadyq�e<diTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:D2921D10350F11E0A714942B011F416B"
xmpMM:InstanceID="xmp.iid:D2921D0F350F11E0A714942B011F416B"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:846B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�BIDATx�b���?0�}��A���b��0=xv����?��j&�����2���>g�{�!��7�7��~KY�\�\Y`�S��ݍ�[���8����߳�������m��b��k2�<l��׃�ɭ��ĸ�����������X@\9SL��ũ�S�f320�et��aX�T����\LL,�@��N=�dh^q9��ݛ7�N�f`Q�f`�����=û7�9XdVJG}3����={3P����@|K�A�1@a��O{�8���Yr��SR>�?x���Ӂ��
�"��
fN.QFF&��ظ�\\����c֟3�D�3�g`dfb��0p�- c�����}�l�33����ߓ��[���Pr}�Q��,�C^��+�9Z0c5�?G�3��������b���.�/c����@��oB�z
@�T��0EO�g�T[�:T�RqP�)�Y]�
"(�����I�E
nNtRp'AD�"~�jL������E|p8��=�{�}Aց'�:F,�4��.Iĸ(�'[�H��pf�ua��ij��Kvg�X����s$��G{���;93/�HxA�W���4o.L�mw����=��"g��ߍZ=nU���u�^��`�dV�X��s#*.(W���5��H�Z&0<0�k%i��'�8Z�9ؑ�X�ߞuEA�i�x/��ȧ��ҳ�R�a���di��T����h�FqS,�-����ڇ�k[��R)hz8���/Dz�����fi���j��V�˕�%3)'*<qiH�ZJ
5��o��<�!X��/섐rG1�M�
@�;��/Y�IEND�B`�PKꊋ[B���images/icon7.pngnu�[����PNG
IHDR�t�tEXtSoftwareAdobe
ImageReadyq�e<diTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:D2AD61F6350F11E0A714942B011F416B"
xmpMM:InstanceID="xmp.iid:D2AD61F5350F11E0A714942B011F416B"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:846B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>j�p�IDATx�b�����1�a?�ӥ����!P�,3݈cf8�?@1��ki�{������
�xs�����o��^n�
~~�9�����r�˗��F�7�ca`��rۛ�����U;@F#�%�@�TV�ɂ��O._fx�k��?Y�����Õ���Z_�ʠ"/ϰ�6v�)S��vƳ�;��ם�i01��2C���.�
����W�����W@�
h�ʟ�10|ca@HvIde%}x�VX��%��ҥ����@
R��J9��T�:����7~~~�G���M+`�T�b��gt�@_-_��PҔ�H���!���?�0L����o��3���ꆯ��>��O�;�IT����_�-y����b��,@�с���b5
�b!
��`�z9m���60�rw�b���9TWw������
>#G&H
�eu���b��������7o�~�����&&&q11!aa��FE#09��d��
�QQ�o�b`eee���cI))���g�&�zV`B`����B1�@�H�����IJ2̜5��?��+w0��C�
OQ���"܌,LF�8I�͚���-o��_���w��N�h�
�����қ3WM�Y���̌�w�g�����ՙa��U����j3D�ĀX�Aa��<Шc����^��a�IEND�B`�PKꊋ[��*;;images/icon8.pngnu�[����PNG
IHDR���tEXtSoftwareAdobe
ImageReadyq�e<diTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:D2CD456F350F11E0A714942B011F416B"
xmpMM:InstanceID="xmp.iid:D2CD456E350F11E0A714942B011F416B"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:846B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>\�QmIDATx�bX������C/�x����b��3\�x�6���0(�
����g9��2*c����=���d�O99�1L��e`�"$�Ν;��
�g<#
�
$@�K�z좣]��/��@�nܸ����}�������2p�𰱼��w����i�7@��@�
�}���!�`���HG����7��MB������:�t�n�GQQ�
�� ��
ˇ���3�-X��3e
�|!!f��@���+�?�3ppp0���0�ܼ�
���d���q�ښ�����7o��P��VVf`����K`�)ŀ��'�4D�)&�A��dEi
�{h@�?
W��^� �r�T�!I
�=l��۵���v�f;��������.s]�dRɓ���{KR8�鴷�sC��/a�'���x��8���ղ,�&C9�}�_D���J)��̖�lۆ�y���M�fbひK��4k����q2�1�ܦASFh��j�Cv�sӕ1�g���)�,3�'JR�X��^zPג��0��SZ������[�J)�5�#��
?���]���L���n��IEND�B`�PKꊋ[wFeeimages/icon9.pngnu�[����PNG
IHDRh��tEXtSoftwareAdobe
ImageReadyq�e<diTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:D2921D14350F11E0A714942B011F416B"
xmpMM:InstanceID="xmp.iid:D2921D13350F11E0A714942B011F416B"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:846B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>����IDATx�b�``gcKc൴dx����b��Kc�+������b0��g����~���F!!��������
F�)0Ԓ���r��-��w�2�߱��f`PV.|���O߿��������^�����GQ�
D�ۯ_�##Í�7�0=|�����bxp�*�77Cwu5H��n�Wo߾����d<uɒ�@���K
G�
���˯�?�����;���ݻ�9}z��w��}����g�6n<�Yy�����̌�$L
M��������?@A�
��h4;�˗/��^���7�g���W��}����������?@�\v����^^T�C��۷G�8P`�\�ll��?>���Ϸ5�g�=x�b)�Ǐa�ښ�>w^�«����!������s;;$�`�����5�Yӛ�o`��l����5Æ����
6H$R���Çp��u��Q�O@o%de��A�m60�ݻ����ɀ���ח/P�
2��ݝA__����ǧO`b��@r 5
�0}��l�_PP��ã!7))���
�"�A�P�A���ի��m��('���T$��ׯ��xq��_��j�.�?IEND�B`�PKꊋ[%�F��images/iconbulk.pngnu�[����PNG
IHDRh��tEXtSoftwareAdobe ImageReadyq�e<
iTXtXML:com.adobe.xmp<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmp:CreatorTool="Adobe Photoshop CS5 Windows"
xmpMM:InstanceID="xmp.iid:59941CA939D411E093F792C51DC4B951"
xmpMM:DocumentID="xmp.did:59941CAA39D411E093F792C51DC4B951">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:59941CA739D411E093F792C51DC4B951"
stRef:documentID="xmp.did:59941CA839D411E093F792C51DC4B951"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>:k\IDATx�b���?0����O�#L�eڑ���^��@
��������������{��1\�\~��/���/�o[��'��/�~������[o��9�>}a���%@�m���?
�r����g��L����+ÑG�}������/߾�]�D���������_�~��v��7O
M�������o�~�����U��i��g�A~�Q�s�:Y~������/D��_R|`30p3�����;�_���0|�������~c���+`z��X5L��o�/{���/��I�7?�d`����;߄�Ƃt�$�}�����Wb����oj�
o�v� ���
[�����$�e&�2�m������:88�Ł~cC(�
v�!�o�E�6>`P7�b8�j&�_d�a�����w� 0ax�P
�B�%Db�:�믿ۮ��A��4R��0�^�a��X���ǟ?��
�A�
e
�ـ�0��3��*H#H`hd@D(&C�|>��AN��m�gP4��L�k��tXIEND�B`�PKꊋ[�#o,,images/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PKꊋ[�Ls��
images/ip.pngnu�[����PNG
IHDR�abKGD������� pHYs��tIME�,�ޏ5tEXtComment(c)
2004 Jakub Steiner
Created with The
GIMP�ًo�IDAT8˭�]h[e������c�4i�棍m�Т,�u��ī)�0o�)�Ee8o����R�]�GA��L�7�0����v+��\?��,Mr�s��������{.��~�8���)�-]�
,�
�X�t�����ދ�����4u�lj�d�ȁ4c�(ˢ\o��i���ɍ��e!�ɹ��������`��W�'��M�
d(=��ؤQV�9?�r!��'��h��Ɋ'2��yG�D�pZm��H�C�6y.����K��Oho~��G�x�hnC���hCJLC�$�h/C���
�죤�����i- �<��R.r�
އR�+@h�c����\�_$b)���
kN;�N��p�@f"����l�R��,B�Rl�ޡ�l2��Z^G�,-�Roa�<�K����6B��B��E��zːR�5��hi��!iQhR4L:]�V��d���z�8�þT�B�(HC�ÇƓdF������&M/ȧ�^�]�~��Z��k7�7
�;����sK�[x�
=��ء��w�
���v�Ƕm��*��X]�|�/�|�x��B��HР��eq�弢�p�k��9.���V����ίs3S��/R�P<q��Ó�%��J��g�u��^�lT�\�c�,�8���M��hfd6�3�$I��,��f��<[;��B����=���N��խ����P��N{] �?�>���pl7�1��IEND�B`�PKꊋ[Īz�IIimages/kb-icon.pngnu�[����PNG
IHDR00W��tEXtSoftwareAdobe
ImageReadyq�e<�iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpRights:Marked="False"
xmpMM:OriginalDocumentID="adobe:docid:photoshop:4b6d0a6a-ccd8-11df-ba14-8629334cc09d"
xmpMM:DocumentID="xmp.did:562D8E6AEE9511DF883DE6AD8E9C48F8"
xmpMM:InstanceID="xmp.iid:562D8E69EE9511DF883DE6AD8E9C48F8"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:9DB61C9EDEEDDF119B3CEF1F2FC57A8A"
stRef:documentID="adobe:docid:photoshop:4b6d0a6a-ccd8-11df-ba14-8629334cc09d"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�u�aIDATx��Y[oE�]����iڦ�/-��4MZ!*m#�B������oTH��J
���(<"nMJis�M�ks�����w&3ݮ���BYi4�;;��s?���ɞ�K��`�����O$�咮(J���5�4���F��a�T��*�g}ZUթG�}��[�U�7]._�V��r��<����v3Z�th��a���?
>�#�����6�R��R��[,�X,�
����q����t$P�����R�����=��K�#��zY8f��X<�P��#n�?��[��Kijj��f��l�P"�8=[/�S�i���(���H�7�����2���B�A��6Y���Eʺ���2�͈��7�6�����56��AD�U��:@d�i�ɤ��V��p�2��v��8�AT̉��N�U����,w:`'n؉�PήPH�ժ�����
lpKI
����cs5�� ;m�V�幤��q:�_]]�A?�0��X�Z���'�A6�����h<xp�E"�ȧGɔ���|�y+d%f'��v�[���633E �5iz<^�H�<�L�c"�L�e�Q.7l:��X7�fg��|O�Z��b�|.W�;N��� ���Ž�c���u688���u�-,̓�(\P�x�\�bΒXK!Ub����� Ɖ!�����
���i���y�f�9Nd1T,
:��r#p�oB%&'o�`����
@�@�JQ�gΎ���R@���*��_������
�D�.�F��� ����j@�Q=:��;5����I61��i�'�@jPlzp
�KGG9 �D+y��C��;� ���n������4!xfX�
#�h�2P*u�mnn�L�����
#��̱sc��TqN�ݞ��N�ˎSt=��1��/?�M+�ŀ�}sb�JN��8�����Y�H|ȑ-,�1dg��E� �m:�"BjEX��ȒQƮ�H\�g���bw�\D�E��$���,M(x22Ӧ`�f�L~<��(�ă9a2Z���8�(9=�QEQ;�ĭ���\2'@<x����s�|]�ɋ���ZxkG�����ؙ�'�6
",�L�9��H)�<J[EUQVq,'n��Vb���Y����ϙi88nV�+���P��-T�i�lV���9�C6Ɵ�`��]�T��ϯ9@$��;�ymy2�}����?�o
= 1E�:|��.km�-�*����9���8$>Ph
���s�zz|�Յ��q���oI��o���Ç�l���
���;�#�{7I}+��7���������ih�x|����Qj�J�um����"�R]0��Օ�pGq8�h�д���Z������)v��X�G_^^z{|���13J?!QjF�]$ӊC�����aii1��r��#I=�[�<#E���(�:e�)Ȁ��{Tb��;wf��?T�P,���/OcA�~�i?%Y��kUN�r�b�p�«u�+��?,���4��8e5ն��^=�J�A@��-=tBB\�` �͉�*B�{�^�T��#�3����3�=:�Z�D�sCC��O�~f�SJc�B�_��5��d%�:��(I���m��f}�ϧ^��'7&�?�ø����
_�i��ﲭ��y�\E}*uT���2C�0��;�LN�6ɶ�&O*��kf�Tl(x"�R`uLaD�H�5��_���������K�s$��y���IEND�B`�PKꊋ[�]v���images/loading.gifnu�[���GIF89a�������������...���```���"""JJJ���ddd���&&&NNN���������888��������������!�NETSCAPE2.0!�Created
with ajaxload.info!� ,- �di���
���@�8�5p�{�۸�����@�.s��
E��B!� ,$`a`��i�����©�ҧ����X/(��;�!� ,6
��a,�$ "c�b�(�ϴ��2�����[��K���ӸN��U*�N�!� ,5
��ET��4b$I��<��uy�;�
�Ȅ>b�G��̑s9y��*�R!!� ,2
�di�ֲX�DQ��H�bRUEɴ]�:^��f�_Q�#����c�J��!� ,7
�di�$q]���b�iمa�h㢶m�]
��a�.�M$��4_-66ˠ��R!� ,/
�di��DQ����r%R�
�5���p���Ěq��^-4CY��!� ,/
�di��DQ����r%R�
�5���p���Ěq��^-4CY��;PKꊋ[[;.Yssimages/lock.pngnu�[����PNG
IHDR szz��iCCPICC
Profilex��kL�wƟ����P�L�W�Ya��B�!�T��t�&T[x�RdSF����l.(���C̐�`5�o�D�]�q�>{>=y�sr�?���TG��5�ƨ�c�LM��|H� O����IMM�[k�\�Ѵ�)i��f���
����2��,��Hr�:�D�ԟ����6��
1��A�1j� j��UJ��
`\�V)V5��BC�
`o
�3���)�5�h*0�n
4c�����|#��
S�E9��_(�τ��O9���7KH��6�|�'?,
�6���p�.���yǘ���82�i�aS��`�^��hQ�C�'�D
QM���N��f
������}�;��,0�$�F��*'e���ŏ<3%7��S�z�N���:#u&۷ݯ�?6�}��O�����9��{��(itzl��/�$�$�$�-����[4�l�-Dz,�N�H
yE�%OW�)�����u�-��UT��k̵K��̾��7u�8��R�jo_|������g.�D�
���?�w��ס�g[F��X�p�q��B���t`��K�"Αޤ��cű��
�iN�1w'o>��w
v�0�n�Iq�*�Y\��!q�������5U�CL?BѾ�~^�Ĭ�@�$��rmHUإp�B�ŎΌ=�_�89�>%b�
����,N��/����s�����t���{��~�Y#+Yw�ܺq��߶���U7슮�^���o牢���C�~���#�cs��i<��#��ƅ���/�]��j��v{�~��ÿ�F_�q; $x�HEv�<
("��C<$���%k9��6��r*���>�v~�
���2�z�m@8���X��(���Л�^����%T�o���?/@�%���׆��=
UG��F���C�1�')1��"u���5|ޭ-�EƗ�1WZ�����veת�_mZ�W��>p{������Kv)���������@_ӣ�� -խ#��)�٣��.]t��{��xCb��=1���p����ɪ���J'���ך�<�4���s@M"� x�T!�V��e10�1X(��Q�����83
2/�(��b�3:��u�`�B�`%t��=�`� �j�e3�@�O3�\C��̷�+l&FF%��eT�\
������ϴo�nw�P��O@XIDATX�ŗ[�U��k_Μqng.�Q�h1 Z1���>H���a|P����4��VH_jjKC[��B
�E��O��x��"��6��j:36�S�e��VΙq�/M���}������m�?�<�cǎ�$";D�+"�y3sfv�̎�e������gp���o�-{~�8õ��aڭ�n�b��
�_����[�n}�38z��O��y�f�S���9����9y��$ �CC�>}����_l߾}�8z������^ߴi3��E�?�]c��9���1280��5kX�n�Z�e��9s����w�m����>��Ç�����͛7s��e�:�N��ĉ8����C��drr�/2\��1���r�ʗ�l�2s�ȑ??��N����OS�Vɲ��'O���Y�~=�j�}��c�B�$_���Zycf�W���hP]��MLLąt���s�
�f4[-�:�?���7|cǎ��;�СCo�y����$���$IB�Z��l����N�@�����Q�v�����yV�ZE�q�Ν;�صk����}��Yz�U�v�uk��{e1�E��U�V�.
�:Po���bs����i��.
�<��^xl���eO<�+K*�
yg��"N�|��i�+Kj�!���
�1��Y�����aL��������'"��g``Szl�;Mkf�i���X'Ϗ�� ���X�bn��Z�p��!3[�Q��k͌�.�t/��X���ϟ?`�|'�3�Ji�0i�ْQ��1��a��Is���6���7 �O��&��Qפ���$�
{��S
"6
���o,yr��^����i��{�l �=HZI
X(���BB�-����,�lr�oQܺ�oþKoϊ�Q�W����PGWS��"=5�2�TjHއ�K�$��]aW�\���6�)�|��5#��py���:0
"�u�|�5���E��ܑ$�䐥H"
�K�D�6�����F����$�A�G\���M�>�SH=
q$yI�$��*���ڐ� mMkc!
�@�"�_����(H ���&�>��*"H����Md�a�AВիs,�D,�xo̯�]�e(]D5bf`�F�P���{@��p��~�w�a,�E��_a�)b��R��o��0�QQ5���K���K�ɑ$��Ȝpǁ�Qq�Q�ԈAq^��>��~�F�SEC$���+��� "w;`�`
t�x��^Ҡ$��A)�>�e$z�bg�/"��g��zGP��Ys���͍}�H"D%�,��k
�X8,8����p@���QC��C"D�)���JtF��z÷"��i����s��.�}�<�<!��8Ez�Pڣ��y�;E���Z���/�9O���.��?
J�%��h8��R�hD��f �S�hq�E82
Do$�n�$��
���Dg�����Yd.�Ɲ����H��K��%���K��Z�Y�脲a��>�@PS���M�4|P�n7���]�q`|��;>ȋ�,zd���L�o�w?d?0�
��v��YT���
�<<>E(�hm
��Κ~;�y�IEND�B`�PKꊋ[qS���images/logged.gifnu�[���GIF89a�͕߷E��Ԡ!ϘɋܱV��Zޱ:�o�ڻԤ٩/۳m̒�A�JƇ�J������a������!�,c�%��eZdZV �:���V5Q<%-7�@h<$�[n7�(*H��GI�IҲW�FK���U��@��^Nh5�
���i�q�r0&8�1#{��'�#!;PKꊋ[����images/notes.gifnu�[���GIF89a����������ګ��6Y����������O}�?f�b��[��U����۴�Ž��pppJv�R��_jl]�Ý�����e�����d��X����Û�����Ik�Uv�ez�`����𣴴�����잯����www��ܾ����̮������������>a�����f�����������������3�"�qn��������6Z�����������������ͩ���������������������������������������������������������������!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:BF6A3C33352211E0B0A8F71350810230"
xmpMM:InstanceID="xmp.iid:BF6A3C32352211E0B0A8F71350810230"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:84E04B214C34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,рg
"g"
�/]�]Ig8*>7K,T':fgcd!V]X?a^\fg
�`e]b_Aa�f
g&�eD����&g�[�Bafg�1Ǭ��g�M�9�UZfg�(�ɰg�+�-��fg�����̂3�8 Q�)Cv����=�@)R��&fI���#HX1�#l9@�ę+Y>`��d�0�(I� �@;PK늋[_&�kkimages/notify.gifnu�[���GIF89a��������+����#��;��
����R������B��H��j��a��C��R��D��f�������1����y��3��
��M��>��A��,�ܣ��������������j��q��e��Z�[��s���Ђ��}��v��x3�f!�7,���px�T�H��bI:e4
�Id\4-S�*$9b0ǔ��<��eD-%���%
�(ҨM�,3�H!C*���C�+��7.��7
����7���
�\TA;PK늋[��$$images/open-ticket.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<�IDATxڌ��K"aǿ�����2�)���̥Þw��=��֥�A��)ļ�Wlz�x��(QdEYGWg�̙y{�q�('{�3���ϏyG`�a\��闏?9�'�IqNhC�C��2���p^��VK.
r�^��G�n�K��@
�B��rP�$A�eJ�V��)'MӈH0D6�E�R��t:3�Ri7�ɀLi��
���뭚��r�UU�8��b�AH;�0j����l"�Lj���F�H$h���c{"�m�(�nOde��
>��v���O0{������p���%yk@�{CS`�5��5�A��@���qTDz�!2fZ6�1���B|20 ����<��=�Y�4����3�q�21�^��]��}CLb��]6����~Y~�N�4��"־�<���菴�9X��k*}�9
Q�o�*���q�.�!:E�&IEND�B`�PK늋[[+Š��images/open.pngnu�[����PNG
IHDR(-SPLTE3�f���������������������˘��ڋ������������ܣ��o��i��q�ߏ���Ճ��|�ό�Փ��e��k�b
��z��Z��c��k��q�ّ��r�͂��T�]��\��f�q��d��A�F�J�L��^�S�Z��t�$ګ3ڬ<ٯΘ̑Δ#Л5שH�ǣ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������`�ʎd���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%D
�tRNS@��f pHYs��~��IDATx�e���0EQ@K��(`ņEc�JB2��~83w�]E�`��s�i*�KP!�[����%����
`6����du-�C}�1ݡ�a20��& 0���/�(��Zo��8��P�>9Pz���?�0ƮyI*�v�wVy��f
��$n�IEND�B`�PK늋[B�;9��images/print.gifnu�[���GIF89a���僃�}}}���;;?��������������臇�����������ttt������XXX111���hhh������������������˙����⟫����
���DDD������yyy;;<vvv|||�����ϴ��<<@���kko��岲����VV\��퀀�FFIDDHQQRfffCCD�����;sY��ť��667���C��������������������f�f������ػ��IIJiiq��������������<i�___FFNTT`+\z����ffg��������ɰ�������������¶�ǻ��DDMMMZuuu~��YYY���!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:BF6A3C2B352211E0B0A8F71350810230"
xmpMM:InstanceID="xmp.iid:BF6A3C2A352211E0B0A8F71350810230"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:84E04B214C34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,ˀq�Ok��T���SeEi_��J @q4�qj^��<�=N���"n���".��)5D2PB(9Z8:'AQW1
;c#`6-�7#gF
+U3l��[L,Vf!\m� �MIȼ@�D���`���p2j�8��L��.Y��I�5hp$��%}xó'��;PK늋[��{{images/print.pngnu�[����PNG
IHDR(-SsBIT��O�HPLTE������������������������ݾ�������Ϣ��������������N������kkk�/NNN
��
tRNS�������������������������D6 pHYs��~�tEXtSoftwareMacromedia
Fireworks 8�h�xtEXtCreation
Time1/5/06ÿ'�[IDAT���K�0IQ�B�7�@�u�ټ0 ?�.��Ox4b4��`X=4� t��r�TA$Z��O�{&-{9Ɣ2�{�'�6��q���
� Y=K{IEND�B`�PK늋[V$�;��images/raty/cancel-off.pngnu�[����PNG
IHDR�asBIT|d� pHYs��~�tEXtSoftwareAdobe
Fireworks
CS4�Ӡ5IDAT8���1K[a��*�8��o$ڂ����_�&jݥ������v�LU��E��D���+�~�u�iK
|�,��}9��|�s�����y�F��1�ιI3�Z$u���������^�:��sÀ0�1A�T���2�\c�~���sz�ޝ�/���#��_���D�\�����q�1>>���$���\__$}���8�a�^����R�R���8�1Ɛ��H��9;;����Vҧ���IK�|��>WWW$IB�$Hb00H��f�I�V�%�̯]�}ߧ�����D�ݦ���W<<<P�V��<����l6K�������?O�h4HӔJ������xyy!�c�Dž$�1�9�Ԏ��c6���F��O��y
:�Ƙ�pc�^�٤P(��)ccc#fk-�b���c�s{��o�����`~~�L&�+,�Z2��z���C�8����igggA�����z�NE���c��X,255����Vk
�s#(ooo/H
�V����������8���%�Q�_����AҢ1f�97# cL�9�+�[���-� yK����8#IEND�B`�PK늋[�P��images/raty/cancel-on.pngnu�[����PNG
IHDR�agAMA��7��tEXtSoftwareAdobe
ImageReadyq�e<]IDAT8˥��KSa�[���n��QP��2w��ܦγL�[,bi��a�A��\�C��v��_2Ml�ZFjס���NMjm��kʷ�`&.#z�����<ϓ
���bV��P�T3�%�I��{G��qRiv�ȅ�
�tz�#E��6����Edd���J�`���DR�2<]N��;�4�Ѿ;���m>�7��8��ɀQe6�L�I���t��殷c�q!z�|v��j�/Xi���@��
�%1|h���l�
!���|������!
�Y#�u�U�N�w]�˼H3��u� t]E��>k%�I�f��o���R��D:�0��`�~�|�
���(r�
�on�3oG0!�$����V��
�*[W0_������-+����
d��W�&�2�ZfMF��VJp�iF&B��
>��R���g�-�
�~ C�m��ڴ���ER�
ឫ�
p�5ްy����+��21���K�aw�h�`�
��#���a�Z�T�Zo���L��ѓ���`"�(?��'��ˎJv�K�ކ��|�:�G9[�a�w8�2
Jw��f'��y����m�zsӘ��Tsw��_��_��ιIr�IEND�B`�PK늋[��d��images/raty/star-half.pngnu�[����PNG
IHDR�asBIT|d� pHYs
�
�B�4�tEXtSoftwareAdobe Fireworks
CS4�ӠIDAT8���MHa�����k����FA�&�q(��u ɓBj݄"ȋW
��4"�D�y�:uXvA�����J�V4��l3��t�
�v�?<���|C ��ɤS�K1�T��nW?0X�)��UG�����
�N�����#�"��D"p3�NU�skd��բ �EuM�N�N&�jȤSu[Ym�"�m��W��$u�M
�Q�k��|9����|����
���m
�����s�gC�i@ض�iJj��"e���IF�Fwu]z�w;Y�sݤQ7A7@
X��Q���<��X_-��'��o�l�u��~r/&8�+Ҿ�����q��!X_�`~~alvv���#v�b����d�l��z(�0M���,��jko�5��_x=�'��{��a�
��ǒEߘLp@�h��ʁ��JYY�P��h,J��Njط�C���˪�r{qq�cfz�m�c�h4�i�[s��N4,*��;�����7N�-~�f��C�\��J�!(�'w{�����.
��CW�����A)����ߪt�\IEND�B`�PK늋[�І��images/raty/star-off.pngnu�[����PNG
IHDR�asBIT|d� pHYs
�
�B�4�tEXtSoftwareAdobe Fireworks
CS4�Ӡ'IDAT8���?La��^�k{�-`$�ł �C&T7eqra¤ qrs#N��f#d��ѥiMt�"ZJ���Dۆ;*�ρ?C�賽y��o��ȤS�3�TO#�ڈ��p��@i�=
�ÑH4�I���)
�Ny�����(�T&�2��z�2������K�a�t)��|�ޞ������I@&�J��4�Fٯ:H)�4
ǩR��ukض
���$s���t(��Z'mmmg�@J�mۨ�����tu�`�&������G/��қ�7��bB����86RrP��86�����啷�c�#p�ƕ���eŅ&n��~�U�G$�Z
U�Q)��o|�����3�^���+�DG�J���xp]��.�"�e��ͭ����ֹ5655%��a[^���@
����:V��8�9
��1t!����~�B��bZ&B�N{�|eU�u�A�P`�P�9��LJ*�b�IssK��H�O�
�{��ڧ�����ɧ3+�l鈚[��}�D+��K=��͎�%�����hh�n�x�������hD{��IEND�B`�PK늋[,�Owwimages/raty/star-on.pngnu�[����PNG
IHDR�asBIT|d� pHYs��~�tEXtSoftwareAdobe
Fireworks
CS4�Ӡ�IDAT8���1h�A����5�6�&�(��D�T���8�(�ԡ*N.'��E�tp-�A�P�E���mjb�wibI@�������w��.��ݟXyJt�ݚ�N�2""P�؍�����Z.bkK�uqh�Oujď�S�,e���W��`�Ӣ@�����vnh�W�3�_��\�{�Nx�Ky�N)��ߓ
���0�al�5=EH1�nro7���:��~N��|�`_#���s`M�+�F�6��
$_���^�PO��2!�Q��?�6���._b�r�M`q��� ���7�������/<bv]�t�c��)�j��e�6���8;�Z�-�K��3
A�Nt������kL
2b4b�Ќ`Wm4$��������
�a��9f�%�?�pH���Z��/mŒ�[\����j9�����R��юV���F��N_}�����/߁;/�����<n��9��|.�ddK�IEND�B`�PK늋[oq4x��images/referer.pngnu�[����PNG
IHDR�asBIT|d� pHYs��~�tEXtSoftwareAdobe
Fireworks CS3��FtEXtCreation Time2/17/08
��XtEXtXML:com.adobe.xmp<?xpacket begin=" "
id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 4.1-c034 46.272976, Sat Jan 27 2007 22:11:41 ">
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xap="http://ns.adobe.com/xap/1.0/">
<xap:CreatorTool>Adobe Fireworks CS3</xap:CreatorTool>
<xap:CreateDate>2008-02-17T02:36:45Z</xap:CreateDate>
<xap:ModifyDate>2008-03-24T19:00:42Z</xap:ModifyDate>
</rdf:Description>
<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:format>image/png</dc:format>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
5Rd/IDAT8���1N�0�?WK��p���;7���n��Ԋte�K]%@EH���Q�R�⸶�-O������?;JDh�V��.�Z(
��"2T\
T��A�6��O5�_�Ґ`xĐ�����?�e_�D�kA0>A����בfCܭv�j��c��o�U�t�i(�1��M���\>�^2�t�,&��]�:(2&��@E
|��5o_XL�5b��gׇ{u��=]�@�J����*�m(uЫ�R�r�|E��H�NBۼ���|6-�Q�)�\�����D���"�Tc<_QIEND�B`�PK늋[W8�aaimages/refresh.gifnu�[���GIF89a�V%-*;$;&<,<*E.A".F&2J*;WWc{|��z����������������������������������������������������������������Ö�ŕ�ʘ��Ě�ɞ�Ɯ�Ҧ����̤�¢�̪�¬�ɫ�ĭ�̯�ٱ�ų�ʸ�ϻ�ͷ�Ҵ�ٺ�Կ�ڼ�ܹ���������������������������������������������������������������!�,��VVVVVVVVUVVVVVVVVVVVVVVVVTVVVVTTURTUVVVVVVVVVVVVVVMB4"
7FMUVVVVVVVVTVTV?R/-
@VTTVVVVVTVV7/8US0-6VVVVVVVVVH8JUUSP2�@TVVVVVVM/:UUUSSS.))/MVVVVVVA5RU SP$U
?VVVVUU45U'9P>U9-5TVVVVV" <U.$$*%SE/VVVVVV
:U'(#(S%%$S9/ TVVVVT5/<S.(U��P.#USG
5UVVVVUF#SSURRU<HVVVVVVM5/
=ULUUUD;IVVVVVVT41'UP
CVVVVVUUVV82U0 /@QVOVVVVTVUU:!
8!:UTVVVVVVVVV�TVKB":"INUVUVVVVVVVVVVRUVRUSVUUUVUQVVVVVVVVVVUVVUVUVVVUVVVVQQ�;PK늋[��v8��images/replies.pngnu�[����PNG
IHDR�asBIT|d� pHYs��|4k�tEXtSoftwarewww.inkscape.org��<�IDAT8�m��oTe��{�t�3s;��3uJm�@��ɠ�*$"qa��Q�+ݙ5lԥlL��6�F��DхD�X�T�-�:)�X�3w�~�.ZL��s���99��f�{���
;�2� f��V�c����Os�ڭ8sS6�"ƅ�{F��l�J6X]�̟'��m288�5>6��m�Z�>�KO}t���-�v��fK�����www5nb��.�hn�l<t���b�d"�F3}�#V����"�m���k���H$�<�����R�>�DD?4~�-�bDp
2���`L��,�I�V��f��G;Lg��(�X���8�Ÿ�i�__X'�{9���S,,��<7���P�P� ÀĖ8:���/r6��=��m;���j���}�R(�D�ZoA�!:H&�A���yx�(�01q���v�=�����0D|�%b(���ǟ���
�͂Ȇ�l8
h���G��
�����^�K%*��S�mR���ׅ�g h�
��\�F�I���2X[)�q�C��?�<}��ZD��q{x���8ض��7����4�`��\/��W>a�8�$IL�@�`�����.v*���L�)t6
��*4�Q��rG~�t��z�N,CDa�~P���w�ӝi�ELB��ry��Lo7�
p��kM����+�5s�(Cͦ���ڲ�\��̌577�(�J�V�x�8�g�Gy���Gӵ����l5���j�B����|�l�<7��P_|ذ"�X����'��:}�|���?N��-�IEND�B`�PK늋[`R��images/search-button.pngnu�[����PNG
IHDR�$ pHYs��
OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR
RB���&*! J�!��Q�EEȠ�����Q,�
��!��������{�kּ�����>�����H3Q5��B������.@�
$p�d!s�#�~<<+"��x��M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!��
e�Dh;��V�EX0fK�9�-0IWfH�����0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4�������x����6��_-��"bb��ϫp@�t~�,/��;�m��%�h^�u��f�@����W�p�~<<E���������J�B[a�W}�g�_�W�l�~<�����$�2]�G�����L�ϒ �b��G�����"�Ib�X*�Qq�D���2�"�B�)�%�d��,�>�5�j>{�-�]c�K'Xt���o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A�,����`6�B$��BB
d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$
ɈQ"K�5H1R�T
UH�=r9�\F��;�2����G1���Q=��C��7�F��dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"����V����cϱw�E� 6wB
aAHXLXN�H�
$4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�,
+ȅ����3��!�[
�b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w
��Ljg(�gw��L�Ӌ�T071���oUX*�*|��
�J�&�*/T����ުU�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_��
c�x,!k
��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6����E�Y��A�J'\'Gg����S�Sݧ
�M=:��.�k���Dw�n��^��Lo��y��}/�T�m���GX�$��<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��=
���Z~s�r:V:ޚΜ�?}���/gX���3��)�i�S��Ggg�s�K��.�>.���Ƚ�Jt�q]�z�������ۯ�6�i�ܟ�4�)�Y3s���C�Q��?��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�����!h�쐭!��Α�i�P~���a�a��~'���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl�������{�/�]py�����.,:�@L�N8��A*��%�w%�
y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L
Lݛ:��v
m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y-
�B��TZ(�*�geWf�͉�9���+��̳�ې7����ᒶ��KW-X潬j9�<qy�
�+�V�<���*m�O��W��~�&zMk�^�ʂ��k�U
�}����]OX/Yߵa���>������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n
�ڴ
�V��E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa�n��{��4���[���>ɾ�UUM�f�e�I���?�����m]�Nmq����#����=TR��+�G�����w-
6
U����#pDy�� �
:�v�{���vg/jB��F�S��[b[�O�>����z�G��4<YyJ�T�i��ӓg�ό���}~.��`ۢ�{�c��jo�t��E���;�;�\�t���W�W��:_m�t�<���Oǻ�����\k��z��{f���7���y���՞9=ݽ�zo�����~r'��˻�w'O�_�@�A�C݇�?[�����j�w����G�������C���ˆ
��8>99�?r��C�d�&����ˮ/~�����јѡ�m|�����������x31^�V��w�w��O�|
(�h���S�������c3-�
cHRMz%������u0�`:�o�_�FIDATxڌ��fCQ��$�B!�J"��m��>@)�E�]u�m�
��U�6�UH��U)ɦTK ��u3�q�=�v�����̙9@)�J��Ԑ�*i�2�w�Y{�.����vi<`->-#�p�
'`#����y���નo��*��6
I:���
�����˽����зv^�Z��[�&��t�z�)�
���9^0���@?��T�-��|�
p�I�M�����3E��b�<��j��m`�Hv�@%��Uq���k-Iߒ�
�|���b�IEND�B`�PK늋[p�l���images/search-icon.gifnu�[���GIF89a����000///...DDD���������AAA���������222<<<��Ϭ�������š��������������KKK������������QQQjjj���GGGOOOUUU666777EEE������sss���444������NNN������xxx���������������lllLLL���kkk���}}}]]]���SSS���������uuu���---((()))***+++''',,,111���!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:6842CC2D345511E09D7691755906BE53"
xmpMM:InstanceID="xmp.iid:6842CC2C345511E09D7691755906BE53"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:7D6B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,��HH>?5���$4K.KK ���#DD,K��D-K*E��"9K��7
F��8K
��BG��G
K%�GI��IK1�IK
�IK0�AK)C�C@K&�3K';K�=J��2:V��A@��!��A�-y���ŋ)TX��Əm$�$;PK늋[*����images/search-icon.pngnu�[����PNG
IHDR�asRGB���gAMA���a pHYs���o�dtEXtSoftwarePaint.NET
v3.5.100�r��IDAT8Oc���K%���%�w\����]�շ]��w�-��
1�Tv��Xc��������=��q�G b��@r
5P��LV�I;n�����~��{{�}�u�>�� b;�@r 5
�Pm���������Տ�?�ܽ��7ɁԀ�B�!�p��i���W��7g��7�+b
�
9��Z�6)��L�o���ޖ��W�:O�I�4(N���@j@j��@
��M�u����B��̦n��]���Al�H���
�cʌEK��)���/�#Z�x�2���DK'���jC
��-|!R4�PA�[�����Fo�Ab 9
{
T�4����
���/[�_0��P~���0��b��5��Q��
�vvvg�������737���P�_y�/�����1��@��Pm��gbbr6
�DD�##������Pi�d��������ڟ%%%��RRR
���%$$�B�����ʘIEND�B`�PK늋[*����images/search.pngnu�[����PNG
IHDR�asRGB���gAMA���a pHYs���o�dtEXtSoftwarePaint.NET
v3.5.100�r��IDAT8Oc���K%���%�w\����]�շ]��w�-��
1�Tv��Xc��������=��q�G b��@r
5P��LV�I;n�����~��{{�}�u�>�� b;�@r 5
�Pm���������Տ�?�ܽ��7ɁԀ�B�!�p��i���W��7g��7�+b
�
9��Z�6)��L�o���ޖ��W�:O�I�4(N���@j@j��@
��M�u����B��̦n��]���Al�H���
�cʌEK��)���/�#Z�x�2���DK'���jC
��-|!R4�PA�[�����Fo�Ab 9
{
T�4����
���/[�_0��P~���0��b��5��Q��
�vvvg�������737���P�_y�/�����1��@��Pm��gbbr6
�DD�##������Pi�d��������ڟ%%%��RRR
���%$$�B�����ʘIEND�B`�PK늋['�z��images/searchbg.gifnu�[���GIF89a]���������������������������������������������������������������������������������������������������!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:67FC0460345511E09D7691755906BE53"
xmpMM:InstanceID="xmp.iid:67FC045F345511E09D7691755906BE53"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:7D6B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,]H@��D$y��df j>��h*0
�r8`��Db0�P��|0�L.��X,>� �!���%�%A;PK늋[���:""images/searches.pngnu�[����PNG
IHDRa~ePLTE3�f�����霨������𱱱��������د����������Ѳ������������ڬ��X\^nqs������000V[]```���@@@)))YYYHHHPPP~~~#$%hhh888���������������������tRNS@��f pHYs��~��IDATx�m���
�gL��B��2+��J{��p���Ŝ��Y��!���e�s��u��� � @�c�:��D�$��)'!$S4%8�s�X�$X��¢�F���2���A�㗜LQ�5e��]��ȋl'2�<YS��ƞ�Ʌ%��)�+E�xfE�z<���nʬ^l��j$���S3������q�xIEND�B`�PK늋[�Yu��images/smallicon1.gifnu�[���GIF89a
������������ұݼ����������մ����ܺ���|���������Ɯ������[�پ�Ȣ��������������������������̯�����������ҫ�� l������ͣ���ڷ�������ܽ����������έy�������̬y��������������ڡ�Ȁ�Τ����ٙ��}�ފ���������̬z����ʭ������ʢ�L����ԏ���ְ������ܽ����Ϯ}��g�������������!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:6882931A345511E09D7691755906BE53"
xmpMM:InstanceID="xmp.iid:68829319345511E09D7691755906BE53"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:7D6B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,
��ff�fD4>N@5!+f1#6a�aLT]-e���[Z
/�K2
)
.<b��I&'Gc��cVC_BJd��dX7fO3AWMR,FH;�`Y`�("Q��%0��:@��Ȕ?�
�H$P� ��;PK늋[�E-���images/smallicon2.gifnu�[���GIF89a��ܘ�э�梩�A�ӊع|ۼصo�ѝ�x;ݾ��۔үh�����ۗ�ؔ�
�x�֎�ᛷ�M�͂ϫd�ږu��۸r�Ԑ˨a�ԋƢ[�ć���|غ}������ܽ��Ί�ϋ��g��ޗ�Ї�zղkڼ�ӏ���ڒ�ߘ�ؐ�֒��쾛Tl��fӰg���ϝ<A��ږ��n�Ӏ�`���ٕ�Ԑ��.���˂�����+�Ј��믂(����������΅�磌~&�_�ӏ�Ї��?�����2�ű�ݙ��>�ߛ٩H��m��ǯ���-�܈ѡB��0�ѐ�ήŔ5�}&���Ց��ۗ���ד��Βf��~���!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:68679A83345511E09D7691755906BE53"
xmpMM:InstanceID="xmp.iid:68679A82345511E09D7691755906BE53"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:7D6B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,րxw���x�"gCVBP�d"�x.bm<A`�a.�RThj@=�!22!>
G�$&&$l_�+44+[
66]D�/i
rO/�,55,f''11Eq�33K00tMu�Т�'#F�H�G�DX�@�J�(P\A�ύ
LJ���ƀ�~F*pQ�@E�I��I�`�M�$Z��/s�Xj�N�1Q�&
;PK늋[��k��images/smallicon3.gifnu�[���GIF89a�����㏡L������¬t���ұ��ݼ������������մ������������uB�Ɯ�������|��[�پ���ܺ��Ȣ�̧�����������������ͣ�ʭ��������������̯�����������ܽ�̬z̬y�ڡ������������̢�L���Ϯ}��������髏R���}�ԏ�ފ���ְ��������ݻ����P�ҫ�Τܽ��Ȁ������έy���������� l�ڷ����ٞ��k8��g�����������!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:68829316345511E09D7691755906BE53"
xmpMM:InstanceID="xmp.iid:68829315345511E09D7691755906BE53"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:7D6B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,��h����h
�
R_D9[#M&
h 3@:e�eNUS
^Ld��d1I)!HZ/<aCfPf�GQ-%bb�"T?6Vg��gFXh40`J( 7 E5�'.]c�Kc�cE��"X���,<�A�W�P���� A|L`
;PK늋[�Gk{{images/smallicon4.gifnu�[���GIF89a��L�������uA��������������Մ�؈���������������ؤ���������������̀�k��֒�ρ��ҙ�ʀ�Y�����h���~�ʀ�̢����ؔ�P�߹n�����������Ҁ�����ߌ^��������������ę�����䒎��ј�Ӏ�N��������������椅��ۘ�����ׇ����ô���˴ֵ����ѭ����z�̀�����������ڷ�Ϯ�������ڳ���ی�Շ�ݐ�͂ܩ�����Ճ�؉�������ݒ�w��˰��������ٻ����ː�������ȶ�ي����r�Ď�f�����բ���ױ�������������Յ����ף����ޑ��ֆ�Ӂ�ј�̂��~��ӌ������́�X��ڋ�j��ޕ���������������ס���y�����������щ���{�a���������������[��Ԃ�ϑ����ˀ�������!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:6897235F345511E09D7691755906BE53"
xmpMM:InstanceID="xmp.iid:6897235E345511E09D7691755906BE53"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:7D6B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,�_ |UKDj
\�ɓ�08iD�%T�`C�
O�S䕠.���Y��[���
�!�
�1f�"P�,%y� ��\��1�
��5s����
� �L�O�(4x0�ǥF*d����W 8@
�]8�0�U��Lx��8^��ɀ�ǐ
�����%wHa��DH��bxAqfF9jd��ԢJ$�yDÏ8J�X���-�x��0�0�D���1oL�P*��o"e�t
;PK늋[�SoS��images/staff-icon.pngnu�[����PNG
IHDR�atEXtSoftwareAdobe
ImageReadyq�e<�IDATxڄS[Ha�fv�qw�jG�Դi+���҃/��=D�
�b$d�PX���I$=*ty�
D"���U)EQ�ܢ2w�23;��Dv��9���w��J&�H����Z�����h�8nuZ�4H��%����t^
T�@U]�ב�ΘI�5
��CUU��G"�W��ZH����aH���.��;�D�FK���e��
M/�yz�u!�,�a)(a��{��/g�Le{g�]<�K��PUY����q�Nb���W`�m5P]�B���e)��
���^�W�`���[�I�%�X��I+�M�t|`�U^�Y�n�����:>|n@��w�`s흗�o'��1c����F�t��x::�8�`�X�Ƌ)`bbe��#��/�2���
��p:��n7�(=66��}�����7���{p:��@@�$� �?���N��^��i�Sy�Q;��ɱ�����p<��#�07�L^ev;A�`�g�4�f[a����2�P��
��EK���<z>�f�I�F%.�p��PH�1��h"E�(F2G��^\��:l������A�dS����(!�Hd>�Blm���4H��<�-�I�A~]J
�|g<�66��_��ܓ73���`
XK�/\�IEND�B`�PK늋[�EXXimages/staff.pngnu�[����PNG
IHDR@@�iq�IDATx^�Z p]Wy�ι�[=I�nY�8&ر������ e�V:K�-KC2%���%�Δ�--K
0��v
)I��@�NjlK�l-�����w9���=��%[Sr��ߜs�}z��/�?��)���L��K/kaZ)�K�}�w���
�/d���k�Bs��q`����ÔO���]%Ճ$ȯ�;��=��UD�"�mG��5�H�F$�@禍h�����8q�*��,����������:�G�x��s/mu>͚�H��Dd[�)�dyn��q\�w�&���C�|v�m!ux$��N0vߗ�k�1�?���խ�@�Ie�W[DF)
�(�D��
�X�J>@�2�`��`P��p�,�>/���Z��T?��m�w�TD^"͡���#�Rb��C_���Mpn�0�'\�9��y!���6�)�!q�=/�"H���R ��S�*�h:
n0"�4i�2
���00p��B�?��ږ�W���q%�LY�煬@#c�B(A�"�[)ïV�nmC���4IC�A�B)�b���T�o���W��ĕR)��]�E��C��#ݰ,0ƈ|�[�|��;бa3��=0-l.�8c��k���^lK�����ͫR��U��)�aދ���}(MF��ØB�0߫
�\�Ê�H�-�fN�۞@s[3�M�n�1$c��J�LI�T�pP'�P)QK�IM�R,azl��iTKeT
%̎�`|��d���K.�m�on�
�+3�Y��`�X�T
B ,f���+�|�
�@ppC�@J���p����hu
��46^�M��D1�#�J�j^��d'S���C����YA|W�u=���+�U}�K!\�`��4�L�t.��?���گ����l����U^1(pQ+��)""�3K1�aSp����4ўO�"��1X���24<��T0�[0��;��o����&�
�fҴ�
Z*
Hh�X�ڲ �-�*U�ov2�>�0UV�?����k��&���'cH�d�d�h
9������(z%�_��sGF?����mmb�FF��^Q�U�0�*��R����qt��"��kϹ��J�E�
���D�f��V���8��$��,�b��I��J@1���1�L��@W&�l6�
;CS[
��9���:�ř��9ҭk`;��
�i"�M�rچX�r��S�J��_���s�q�y�hl#��a�BO�5i'�B���t�i��-��+!s8�DRo��Kת�M0f�IDu��Sه��P�gbk�w�~��X�O6{Ր�Yϡ��r�ړ��!1�p�iM^�n;�m6
[ä�4��h�zs4ֹW�+��-y��?�Ъx"��7m�Aog���D��⻱=x>�5�~��b��]j|*��[�r�U�
H��+���̀�5kE�B�ۯi�_އ;^�|�
/Ƈ�xy����q盯��Ƶ7��o�_�ᄊ
�]����I�V�%�Ց���Jad�E��%/�ڜ@wW��̊X�N!@Xd��\|^5���פ�ޖ�"��V�*�J��Oy-�#?9��k?n̴�
[���lE�������U��zLly)��$��Rxz��{1��;a_C
�j�
�ت�n������L�ή�t�ҵq��;��]������z�7��6�9lW_\7ڔ�E)�{W]
��;���ޚMD�fm\��"0��Q�Mp0p�v,�Mp ���t�/}�6z�W!|W����
�n��GV�{�{^��z�6�mcoK�Id`F�0�8�H��
A��a�\�d�!��pKA��<�J�'��~
^B�oUn�C���DZ�|2�P�Hi�<�@�դ��u�kZ����lUJ�VM~5?R}4_t�
����%<C�5bPgz>$O���C�xs��d�����ڪ,N
��BI�ӼZ��*�W�O\=j�\'9)t$Lϕ\)�ϛ��B�O�]���г�� L;�)&�zATPR6�� u��.8���/���7��(
�Apt.WD��=�+z«��� ��Q�j�NN�]���w��
���Z�o�_�A���`<л���%J�z��5���`�@*u�\,>p� ���-���u+܉�I�yH-��msy#%:�+F����ذ4-����q���Ç
���l�!_�������"؉xʀ�\�T=_�FKz�����{.�x���B/7HK���$�d:�I`xh��|��̞^#&F�#��C�*8��Ӹ`�f�2��a`����B�t���&��B���ℝ��6��Ϋ?��ׯ�Ů�;
�g�>pFO��E=,bh���>M;@�U�JL����֜�Nư��C)�9����?��رcGwOW��o}��oJ�Ӹ�xꋷB�Obb&�?��X�F�s=v��3xnp�&&�G^�/�?�o�>��R��_�D"w4e����Z�朣\.#���~��'�ќ��\�D0�s��H�D��F"�����X��_�*O�{��g�?MB��^
�-��?眽-�Hų-���t�d
�I)11>��7���p��v�XvQ�zXy�hɘ�2����7bjjD��ʎ��Kйw��fn{�3A��#����6\c��;��+�E:�z�05!�4Ѷ��\}e͛��v��/�q*����Oz���!���4����/y%���fؿ��SZ�o>�(��L��L�\)���$ijϋD��0�w)��T�̦��LH���#�u
��]�n-��bO��ċv�ԛ�'�}L?K]b��H+��7A?B?p���"����gf�P(
�F�����$���(��Ib��u
�D�C��k��-�LS֦9L*���5HT�Uض���K%9ҏ�{^�������0
��<t4����W}�l3Br:�FFF����,-���'��jҕJy�������ҧv��.��$D�7����o��_4��%��4U'�q����q�\�h�bD
��alt}[w�4�6�}�0��6<��z���.���3Z�X,��X��)Z�N.�^�Ntu�K��������|�����$�c+��wr�^"��mim�3�Cr��Z���!eC�h<��ۦ�o~bb�d[���#����X�2����MW��{nd�JE��D
�4���s�E�<���̲l��w�әl���o�ڵ������Ԁy�<�t�e�&���E��T����ו���y�-���DH(���<�b����r�c�F"J5䔄o����vZ!qr
k�U%AN�j�O�ۈ����LJ��Ճ�X�JJJ����V��O|v�
U�����bqCJ����RT6������Riz�##��vF�s�a�3��ɤ��cǰ�3-p�
���I)�@)�����^;:{R'�?F��Cn9nO���Rȳ:��-��}g����<?�8k�3�{�:��K������݃��#�q:�{���5hoo�a�}�
�l��^a4��KaH�RQ� ��ٳ
@�rn���KI/�x�S�z)�BC�c�����𣘟�c���%WbM{�⡚�o��
/�C���֎۷��x������gD��uG�$4"��S,n�,�Z��Pcs��|
(Вt� AЈ�3��a����q�q��c�}��`��r�<��Gq���?��O�[�לs�|>�?�ǧ�_&Z�06r|�Dk�4PK"�s~�m9�z��(���аmM<�%E�����(�^t�>6ۺ���a|F!j3�ڲ��}�n�&'�x��`��܌&��g>�
�A
78�D��&�F��(�B��Xn�=�QY.ǎ`��ܙ��B�4�`�8D�6qjr�JI���0t*�1+JhL�����k��F�����Ԍ�[m���x�Pcc���q!���
��-���ٖ6}�V)�"E��V�`S��~�U@�&��J#��Ֆ����_V�B�H}�8���H͍
��@��i��{�i�}W!�qZ���Nוz�5Gc�
ض���ܰt�kt!�|l�I0�Nq94���<��CN����Cb�D�G��V+��8�#�\еB4r}���
.'����J������I!�(���ǩ��65
0���0ҏJ�W���E�Zx�Ճ��J"
8g
H��l%�V\���*šiZ��� �S�+�
�y��h�б6ò�z�5֏|��33��@w��R�m��9�X�&Bz�ν1��Z��6j;��,�ڄ`Yz)\N�?ޱ۟�:z7���=�h���i<wh��u8q����zApv8�z_A��d+��^�U�~�ӏ�'A�L���3���}����|�m�ݜ��7�2�",V���|}C���G�P���k}�^�Ɔ�u���g�i�s���B"0L��Zx�FF�qu^+eH)s�����0����jF[SS�vZf�E"��$J�k��H2CA��I"Y�
7����X/rG��L�#�E��>��j<2p�t�-��bI!�N
�R��3�栌Z}����m�J����A�9`���o�H��D� IB��ȤR�>�ײ��yy$eF¨���#X`D�^�/6J�%m)�ty��0��b�T9��BCC��Ve!D�P�4��8�y�h�Z=Q(N�q@��9����H�H}� �`�@fշ�@�@��]"��`�
����`~��IEND�B`�PK늋[!룛�images/star.gifnu�[���GIF89a`��77�??�FF�BB�DD�LL�L2�JJ�Q3�O3�S9�N=�Q;�RR�[?�UJ�ZZ�``�WK�\P�``�dK�YQ�aS�_S�\X�^S�gW�ff�jS�d[�bZ�hd�ll�eQ�ji�mc�pd�i]�mb�ss̀
�r\�wr�{{�xs�wp�wx�||�vb�yt�xb�zoы�~|�~|���Ԅ�ӏ"�|����|�o��k،�֙+�v��uג��yٝ%�۔��~풍�����}ݨ)������ݪE���ۥ�߯1�8��%������ک���
ટ����4��+�8�C������䯯��"�J갬����B����9벮�D�f�H��0�������Z��)��A��K躺��A�������L��r��O��n��F��9��/�Ĺ�Ɂ��I�����S�½��E��Z�����y�·�͙�����L�ǹ��@�����X�����U����ҫ��Z�����W����]������ۢ�ܚ����b���ޜ����߰��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!��,`�� ��,�:"����D�J5DHH��7�JԩSH a�rԇc�B�ހQ3��.G�>���(O:���S�ʿE�NY2d�f�4]�X��K
�D���9�e�'M��Ts*.q��BX���i��#'!$B����#˘( �Z$�͘8;�$$#h��@���R#a�H%�H�p�DN��LБ'�zr���ϙ7vB� Uȑ%;5:M��]0e��C��g�B�*�财^N�
n|��]�{R�`ٳi��vW���y����hp�è��G���+E~*Oܜq}��A�:M�soή�ƚkт
k����m�����t�M��?�V!u�'��W!�M�j%B8]B�^B�'�{�8_f�d�@(p��#pph�����0PDB�$��G6�Ag�b%
L�B
@4p�?g�i�y��y�@A���y��a���9�,m�圄��BB@��jBAB(�`$�ABP@Bf60@E@@$4gm!� �1�;�
Z.����nx�KC����*��� ���آ
s�2��@��j|~d�'_0�+�~��Ƹ�z��z�z�Ǯ���L�ųn�b�P|��[�����P$��b��+�'8ԘK��J<1<�2�*LL���2���̃����(t-<��Ƕ�<Q-u�0�-�QKC���#�lr� $\�(#���ZLQF%4\0�@��+O(aDM���T��Lф?��l,�@7�a�{��wH�Ё@#�ф�+� R(
fĝx/|и@+ф
t�=�P�@k<�"|.�Y$@�@��p}��2�%xFd��
pB�l��K,��P,^t�P��@;PK늋[��^�kkimages/tabbg.gifnu�[���GIF89a.�����������������������������������������������������������������������������������������������!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:BF4FB605352211E0B0A8F71350810230"
xmpMM:InstanceID="xmp.iid:BF4FB604352211E0B0A8F71350810230"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:84E04B214C34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,.*����4�Q��0$
��È`(�@R*U��X�@��C"e�;PK슋[�#o,,images/ticket/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK슋[���
images/ticket/ip.pngnu�[����PNG
IHDR�a�IDATx�cd�0��
6@���Ҕ��X4#2�7���@�����v@ą
���·J�L]���!�����DF��~��D��Pq{�P�
PW·�;¼��h�$�
��B
�A���H��v�և�
�MAl��g?4�.#�/!�l\eB]����Pv#�O���G,^"hQ`�
L�)�X�FIEND�B`�PK슋[qZ?9!!images/ticket/url.pngnu�[����PNG
IHDR�abKGD��������IDAT8���1JA��VB*E!7�
x!�����6Mb%XI!��r{��$邱�̮�Y6��y��̼���x�;>1�}�1°�|�%6k�|����>��S\��R�g���}&�(s���r�I�<.f�T$�e�8�����)����B��n���|����@���= B�e;r�t�:��m��Q��v�-�?�ʶ��8�E��1�ADL�p�
�IEND�B`�PK슋[���images/ticket/user.pngnu�[����PNG
IHDR�abKGD��������IDAT8���=j�A��_�
���!'Rz�
�x�����#��)Bڀ�M4����K����̰�3���� m|���ֿ��'��nbN���4\��"�����4ptU
�{q���r��xN��x(h%��H�ɹ��ܗ�������ed�``��>�6gx,��B��/�sb^B�cc:0:e�IEND�B`�PK슋[�E�C��images/ticket/useragent.pngnu�[����PNG
IHDR�abKGD�������FIDAT8���;/�a���=��P��
.k]��FD�u�CT$>���|�( KT��5����mv]
�L23�~s{��O=VO�r����3��`4Ǧ��vde�F�����35����6Ԛz�iE0�V�P��c5`��<)��` �:�E�^���v��y������!0,d�K`@=�2YD�/u'_��1��?s�iD�N�����T��x{�Z�̩�y����{��w9�P�������n`�����0��h�}-Z
��P��J��B�̻z��uQ��U��.y�+7K����ς�,��c{*w�3IEND�B`�PK슋[��t���images/title-bg-2.gifnu�[���GIF89a1�VVVWWW^^^eeeLLLGGGTTTRRRHHH[[[XXXQQQNNNSSS```PPP]]]MMMZZZaaaDDDAAAKKK___YYYIIICCCbbbEEE!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmp:CreatorTool="Adobe Photoshop CS5 Windows"
xmpMM:InstanceID="xmp.iid:55953E5F3B3F11E0A9F5FEAC25FEB1D6"
xmpMM:DocumentID="xmp.did:55953E603B3F11E0A9F5FEAC25FEB1D6">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:55953E5D3B3F11E0A9F5FEAC25FEB1D6"
stRef:documentID="xmp.did:55953E5E3B3F11E0A9F5FEAC25FEB1D6"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,1&`Ui$Eqh�d�eQ�<�r4���aI\.�d�iB;PK슋[c_�dimages/title-bg.gifnu�[���GIF89a)�)))+++"""***222000...---(((///%%%555<<<666&&&###
777'''444$$$111!!!888,,,999333!�XMP
DataXMP<?xpacket begin=""
id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta
xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060
61.134777, 2010/02/12-17:32:00 "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:OriginalDocumentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"
xmpMM:DocumentID="xmp.did:67FC0464345511E09D7691755906BE53"
xmpMM:InstanceID="xmp.iid:67FC0463345511E09D7691755906BE53"
xmp:CreatorTool="Adobe Photoshop CS5 Windows">
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:7D6B953C2D34E01188FBBB19AF6A7FA8"
stRef:documentID="xmp.did:4708CD2B5D33E0119DB99C23203B5644"/>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�������������������������������������������������������������������������������������������������������������������������������~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
!�,)"�ueY��P��H��FRT�M�E#�`6F;PK슋[UQ�,,images/uparrow.pngnu�[����PNG
IHDR(-SsBIT��O�?PLTEx�T�Œ���B��W�ܑ��ۀ�U��X����̭А���a��[��Ը蒯֑~�V��W���r\�tRNS��������������������+�}� pHYs
�
�B�4�tEXtSoftwareMacromedia Fireworks
8�h�x8IDAT�cAt`�B���cC�aaff�A�`!��030�8XY��tfJO,SIEND�B`�PK슋[����images/user-icon.pngnu�[����PNG
IHDR�asBIT|d� pHYs��:���tEXtSoftwarewww.inkscape.org��<IDAT8����jSQƿs���I��FR+mJ@A�ւ���B���BWn7ݸp��V,�o
D�QZAhԠ��@���ۜ�{f\T�������7#��b���%�0���~9J#��?85�7���
R�T���3�o����8*�F�iCZ62^%c�8��L�����E�T�������z5Y*�z�J�Lہm%����8�?#l�R�ɸ- !��L��L4�����."��H�!��X�/\[k~nD:肇6ޯ�t��v�6�D���n~�(�FzҋmdQD���\m�n��l5�(V{$���r��w��o��f��y�
5��J���P{�9��v�w]J�I�5�!
)�%bh���e.ٶ��0P����?U�ZN8�_l���&�'�Kئ��չ�Ϻ
��}�"����������v�
IӔ0d�_`f(5�(��s���������L�~aa�F�qNk�4b�q_
7߾k>������~X������IEND�B`�PK슋[�;X�ddimages/user.pngnu�[����PNG
IHDR@@�iq�+IDATx^�z �$Gu��2�gvf�+�e�
$,! ,����l�8 L�X��6�8��
.#�!�P@�1r`�m+H˲WH��F3�cv��髪2�9;��c/6Ɯ����/^VvUw���z�����~E����aY�L-�_�ͣ�DZ�駑���d۹�DB���M�Fߗg�]l�kV��b�_��W���A�8,��'�(@T*b��65�5�NO㑝��]�N+k�-f~�����/�z�x��k&>o@_��B�P��
l��J�|3�w���>�8Q!,C�
���7~��pV p�o���,�w}�3�4�o�6�:�B���l`�A�����4�Y$�/BpV��2�߆h��EhCi�4�a��G��1+��p@��R�!,/B|�@���-
y�wܸ�k͖�������Ⱥ]ǸR��)ْ�Fxhj�y%��Bh��쵍�ִ�\وRC/�oC���� ���h���A��2���8��
�t�
�З`f�ë�/N���?��5+@n����6.�y(B�إ�f��}�u��,�A���)Lm�����!�a�6�a��ۣ^�����_�&��W�0�6Pz
��v�h�1�g7�����<�Be)���'�a
R=�x�d�j�
�1��.��Mk�RO��3,�0���|#�Mx0��n����F�ZC�f��=;?�A�Ņ玡1Q�%P�B�4�k֦LS�Z�Mf�02����J ��*#�4w�ABbρ~Fh4|��c�͐R�h�RhckT���ahu�#0Y�C�5DJ0&��ik�hhL���C/F��Z����ڀ���]�����:kJ�2�3A�!4l-1Tn����3��=-�!���� X[�UPL"(�}���
ϗ��%I���7�|3~���m�{mQrY�hz ���0��Ȏ0p"��Ų��I`r}Y�����a����Jf7�5��W��BJ J�:P����(����s�V&�N�L1r��)�ו� ֝�I)���<F73`�^�s3|@d$�q��r��"��9���4�V�
�,��",�Zq���X_G�j�;}�,�Q����
��z�@A��������vs�K���B�2>�
A&����T/��0R&fB����˷�+�/���!�$�H��a���
�*uH�wEO�n9�u���Q���Mڂ�)@x
���ؕɬ:�z$Ĭ�L��/��kBO��ԫ��,5��z.�J�F�
D�
�R�9��BG?�F�F$A�Z���@+����ɩ�^����kc$\P*�bj]ś+#�B��
�%kW����SǑ#��-��|&�8o�W�"���!`���͞39^��0�f�����D�S�S�Q`�Q���0tuA���I��1�����v�J���
u�9�?�0����0�>��G<Q�:Qqr��5a�_k��v���ߓ�N�!Ġ�c0�� �*0i��k�(��tO���v�]3�/���#ǖ{�(MԆ�1���o�`�DQ)6�88�lm���6^lv[Y��G`�ր֮�*�83�sw�s�8!��jw3��:�_��5&�˂�1�f�[Z)�Q.����>�r<�hw� ��Bfȕ����J�?Z�Kb��(�?0{��<5j�q�Y`4N����!�"Z�<��g�y���5�*�
��l�����F�`�Y�g�>.�ʽƖN(�l_@'�B�g���g���;������_����E��)��dC�*u�Q����Xj�`4�.�S�ͻΚ�Q�͇�9���E��~d)��0@�Az�8b�1�,e�N
!�>yᄈdk�e��Ծ��ְ�F6�Yv��ހ��&?9+R�<t�ǎ4S��κ��\�����r㢋�wa���
Dr�f3L�|
�N]̷�?��/�uh��1i�aR�",��Tx��ѐ�jx��\�O0;;m<?��,�w
A���cAi
S����m�pH8�bKh�n��=3g�q�&�2�ݳy�"(��'䢼ⴱkxaau
��<A蜵?���/ՏMOGK�;�j���G���? ���b���>.�
�Z�p�p��_+��7m��?��W���}r�������w~��g=��s��U���?��RC�8N0�~�[��@�=��˘;8�^�fF����~�Xܻwߕ�>�ݫ�^�����'�Ʋ��%S�E��b듷A��P�3�93����G��'������&T��x��`����Sw�5�N��8.}�?�9���b �N��J����q�ޯ�Q-b��C�kH)����-W�X,baa
��5�I��?��6�Z��'�o!���iS��r�R�<A�0����8���?09VF����R� �=�^+�!�Op�3�����y�>2Y�����MB�^A�=�m�23@Z^#�npYAE��$�6)��AB<�K/{�?�����f�(@�+(m
�`EC�I���_��
��s���GsiI�H�/A�����^7�Ci�1��������_�I8���'�(��A��4Z!O3D�Mv���nc���S�y�y�n�;�U^B��W8��k_�v��v��6F��PY?��C��
1�$�^�ϭ�b�1��� @�<��6"�� z
���U��z�R.Q4r�WȌT}q
�"��ػw��'p��g�ܽ~�Kމj}�FLj���C�W>�0�YzI�
�Z�T*m|�v-�t��v~�p��GD+��!����8
�}�.l�40FC)�$H���������۞�l��8r�G�0���`�1?D@�$n1�o*�hy�
t�0
�~A�`��[���[���_�/��*3�9��N��k��r1�c:%����0J��w���Ba�\�`||���rO��/����
<�j�r�u�v��t����2F����
�{f����'d�x�TKQ}�:п���e��s>�;_(�[����s�YK��ڣ���&��]���x3��KPJA˲:<������}���=b���l�~�_RT�N���FI��ҽ7�г��o��̢\_?�1LG �8�=ʊQ���8<7�Q���C���cg�|���9Q���NGc���蟴��S_���B��Su7����?�a�#�<?�=N5�x�o�.S
�GgdU�����.<���<m�r0�N����B���@`2
�-�F�/N)��%��G�{��}�K}�/�A�9)�c�f��s|�G8!�H8����x�ti���=��[��(�(�B?��ư�����x��y\�mW>e
ғ�`�9>�1��#!F���^q��V�e>~�!`g�q0h�����"� ����<6b������y�n�3���B'��� �i�V�k���+�O�[��CylN"Р1< ٷ��;=9���W�V�7�z�K�|�R���G꼪ݝ^kiw+�CT���y�A���&��q Q��3å�Nj
�8�b��ϼ�
>e0�z��Wn5�l��C1`
�2¨�"ČU��i����t��A�
�yt����9�5��H����S�Zo%�S}tc��3��E�q$�h��A����%��lV�"[�x� l�Jn��z���!p����6I!�0�Y"E
�_����U�{�3o?5���"ϫ����1����I)��:m�+ݹ�4[�g Ȓ�':��h�2����!�h���s�ϓB�;L�ZB�9A"����On�7���9��ҭ�<���A�+,��!�b3�%�[���7|���yc��Rc��Dz���V�ҧ�$�1����(�
3C���<�ỿ�ޯ�Ny$5��
*�۴���&���>y��K���~X����� �$�6�
�� �����)6�>��)`c��ujc������:������c�57��w����Vs�0��~���q��[��X�,�V��s/9��8� qql����&�Z%�K?L��b!�P���ͨdw����W�a���\T0:5:멼��z�崳��Z<��v�G�Ks3�s?��>bK�E�C.0s�3m�����DC���(�+��0R_��<�q��6p�rH�B?�}c4��4�>͈�cd��ɴ��) ��.���c7T?��Kp&�/˨���IEND�B`�PK슋[�#o,,
index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK슋[R�ݽ``js/anonymise.jsnu�[���jQuery(function($){
$('#rst_anonymise_button').click(function(){
if
(!confirm(Joomla.JText._('COM_RSTICKETSPRO_ARE_YOU_SURE_YOU_WANT_TO_ANONYMISE')))
{
return false;
}
var $button = $(this);
$button.prop('disabled',
true).addClass('disabled');
var url = Joomla.getOptions('system.paths').base +
'/index.php';
var token = Joomla.getOptions('csrf.token');
var data = {
'option': 'com_rsticketspro',
'task': 'removedata.process',
'id': $('#jform_id').val()
};
data[token] = 1;
$.post(url, data, function(response){
var messages = JSON.parse(response);
Joomla.renderMessages(messages);
$button.prop('disabled',
false).removeClass('disabled');
});
});
});PK슋[!];;js/awesomplete.min.jsnu�[���// Awesomplete
- Lea Verou - MIT license
!function(){function t(t){var
e=Array.isArray(t)?{label:t[0],value:t[1]}:"object"==typeof
t&&"label"in t&&"value"in
t?t:{label:t,value:t};this.label=e.label||e.value,this.value=e.value}function
e(t,e,i){for(var n in e){var
s=e[n],r=t.input.getAttribute("data-"+n.toLowerCase());"number"==typeof
s?t[n]=parseInt(r):!1===s?t[n]=null!==r:s instanceof
Function?t[n]=null:t[n]=r,t[n]||0===t[n]||(t[n]=n in i?i[n]:s)}}function
i(t,e){return"string"==typeof
t?(e||document).querySelector(t):t||null}function n(t,e){return
o.call((e||document).querySelectorAll(t))}function
s(){n("input.awesomplete").forEach(function(t){new r(t)})}var
r=function(t,n){var
s=this;r.count=(r.count||0)+1,this.count=r.count,this.isOpened=!1,this.input=i(t),this.input.setAttribute("autocomplete","off"),this.input.setAttribute("aria-expanded","false"),this.input.setAttribute("aria-owns","awesomplete_list_"+this.count),this.input.setAttribute("role","combobox"),this.options=n=n||{},e(this,{minChars:2,maxItems:10,autoFirst:!1,data:r.DATA,filter:r.FILTER_CONTAINS,sort:!1!==n.sort&&r.SORT_BYLENGTH,container:r.CONTAINER,item:r.ITEM,replace:r.REPLACE,tabSelect:!1},n),this.index=-1,this.container=this.container(t),this.ul=i.create("ul",{hidden:"hidden",role:"listbox",id:"awesomplete_list_"+this.count,inside:this.container}),this.status=i.create("span",{className:"visually-hidden",role:"status","aria-live":"assertive","aria-atomic":!0,inside:this.container,textContent:0!=this.minChars?"Type
"+this.minChars+" or more characters for
results.":"Begin typing for
results."}),this._events={input:{input:this.evaluate.bind(this),blur:this.close.bind(this,{reason:"blur"}),keydown:function(t){var
e=t.keyCode;s.opened&&(13===e&&s.selected?(t.preventDefault(),s.select()):9===e&&s.selected&&s.tabSelect?s.select():27===e?s.close({reason:"esc"}):38!==e&&40!==e||(t.preventDefault(),s[38===e?"previous":"next"]()))}},form:{submit:this.close.bind(this,{reason:"submit"})},ul:{mousedown:function(t){t.preventDefault()},click:function(t){var
e=t.target;if(e!==this){for(;e&&!/li/i.test(e.nodeName);)e=e.parentNode;e&&0===t.button&&(t.preventDefault(),s.select(e,t.target))}}}},i.bind(this.input,this._events.input),i.bind(this.input.form,this._events.form),i.bind(this.ul,this._events.ul),this.input.hasAttribute("list")?(this.list="#"+this.input.getAttribute("list"),this.input.removeAttribute("list")):this.list=this.input.getAttribute("data-list")||n.list||[],r.all.push(this)};r.prototype={set
list(t){if(Array.isArray(t))this._list=t;else if("string"==typeof
t&&t.indexOf(",")>-1)this._list=t.split(/\s*,\s*/);else
if((t=i(t))&&t.children){var
e=[];o.apply(t.children).forEach(function(t){if(!t.disabled){var
i=t.textContent.trim(),n=t.value||i,s=t.label||i;""!==n&&e.push({label:s,value:n})}}),this._list=e}document.activeElement===this.input&&this.evaluate()},get
selected(){return this.index>-1},get opened(){return
this.isOpened},close:function(t){this.opened&&(this.input.setAttribute("aria-expanded","false"),this.ul.setAttribute("hidden",""),this.isOpened=!1,this.index=-1,this.status.setAttribute("hidden",""),i.fire(this.input,"awesomplete-close",t||{}))},open:function(){this.input.setAttribute("aria-expanded","true"),this.ul.removeAttribute("hidden"),this.isOpened=!0,this.status.removeAttribute("hidden"),this.autoFirst&&-1===this.index&&this.goto(0),i.fire(this.input,"awesomplete-open")},destroy:function(){if(i.unbind(this.input,this._events.input),i.unbind(this.input.form,this._events.form),!this.options.container){var
t=this.container.parentNode;t.insertBefore(this.input,this.container),t.removeChild(this.container)}this.input.removeAttribute("autocomplete"),this.input.removeAttribute("aria-autocomplete");var
e=r.all.indexOf(this);-1!==e&&r.all.splice(e,1)},next:function(){var
t=this.ul.children.length;this.goto(this.index<t-1?this.index+1:t?0:-1)},previous:function(){var
t=this.ul.children.length,e=this.index-1;this.goto(this.selected&&-1!==e?e:t-1)},goto:function(t){var
e=this.ul.children;this.selected&&e[this.index].setAttribute("aria-selected","false"),this.index=t,t>-1&&e.length>0&&(e[t].setAttribute("aria-selected","true"),this.status.textContent=e[t].textContent+",
list item "+(t+1)+" of
"+e.length,this.input.setAttribute("aria-activedescendant",this.ul.id+"_item_"+this.index),this.ul.scrollTop=e[t].offsetTop-this.ul.clientHeight+e[t].clientHeight,i.fire(this.input,"awesomplete-highlight",{text:this.suggestions[this.index]}))},select:function(t,e){if(t?this.index=i.siblingIndex(t):t=this.ul.children[this.index],t){var
n=this.suggestions[this.index];i.fire(this.input,"awesomplete-select",{text:n,origin:e||t})&&(this.replace(n),this.close({reason:"select"}),i.fire(this.input,"awesomplete-selectcomplete",{text:n}))}},evaluate:function(){var
e=this,i=this.input.value;i.length>=this.minChars&&this._list&&this._list.length>0?(this.index=-1,this.ul.innerHTML="",this.suggestions=this._list.map(function(n){return
new t(e.data(n,i))}).filter(function(t){return
e.filter(t,i)}),!1!==this.sort&&(this.suggestions=this.suggestions.sort(this.sort)),this.suggestions=this.suggestions.slice(0,this.maxItems),this.suggestions.forEach(function(t,n){e.ul.appendChild(e.item(t,i,n))}),0===this.ul.children.length?(this.status.textContent="No
results
found",this.close({reason:"nomatches"})):(this.open(),this.status.textContent=this.ul.children.length+"
results
found")):(this.close({reason:"nomatches"}),this.status.textContent="No
results found")}},r.all=[],r.FILTER_CONTAINS=function(t,e){return
RegExp(i.regExpEscape(e.trim()),"i").test(t)},r.FILTER_STARTSWITH=function(t,e){return
RegExp("^"+i.regExpEscape(e.trim()),"i").test(t)},r.SORT_BYLENGTH=function(t,e){return
t.length!==e.length?t.length-e.length:t<e?-1:1},r.CONTAINER=function(t){return
i.create("div",{className:"awesomplete",around:t})},r.ITEM=function(t,e,n){return
i.create("li",{innerHTML:""===e.trim()?t:t.replace(RegExp(i.regExpEscape(e.trim()),"gi"),"<mark>$&</mark>"),role:"option","aria-selected":"false",id:"awesomplete_list_"+this.count+"_item_"+n})},r.REPLACE=function(t){this.input.value=t.value},r.DATA=function(t){return
t},Object.defineProperty(t.prototype=Object.create(String.prototype),"length",{get:function(){return
this.label.length}}),t.prototype.toString=t.prototype.valueOf=function(){return""+this.label};var
o=Array.prototype.slice;i.create=function(t,e){var
n=document.createElement(t);for(var s in e){var
r=e[s];if("inside"===s)i(r).appendChild(n);else
if("around"===s){var
o=i(r);o.parentNode.insertBefore(n,o),n.appendChild(o),null!=o.getAttribute("autofocus")&&o.focus()}else
s in n?n[s]=r:n.setAttribute(s,r)}return
n},i.bind=function(t,e){if(t)for(var i in e){var
n=e[i];i.split(/\s+/).forEach(function(e){t.addEventListener(e,n)})}},i.unbind=function(t,e){if(t)for(var
i in e){var
n=e[i];i.split(/\s+/).forEach(function(e){t.removeEventListener(e,n)})}},i.fire=function(t,e,i){var
n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0);for(var
s in i)n[s]=i[s];return
t.dispatchEvent(n)},i.regExpEscape=function(t){return
t.replace(/[-\\^$*+?.()|[\]{}]/g,"\\$&")},i.siblingIndex=function(t){for(var
e=0;t=t.previousElementSibling;e++);return e},"undefined"!=typeof
self&&(self.Awesomplete=r),"undefined"!=typeof
Document&&("loading"!==document.readyState?s():document.addEventListener("DOMContentLoaded",s)),r.$=i,r.$$=n,"object"==typeof
module&&module.exports&&(module.exports=r)}();
//# sourceMappingURL=awesomplete.min.js.map
PK슋[�~ҥ�
�
js/awesomplete.script.jsnu�[���var initAwesomplete =
function(id, allowEditor) {
window.addEventListener('DOMContentLoaded', function() {
var timeoutticket_search;
var queryInput = document.querySelector('#' + id);
var awesomplete = new Awesomplete(queryInput, {
filter: function() {
return true;
},
sort: false,
list: []
});
queryInput.addEventListener('input', function (evt) {
var inputText = evt.target.value;
if (timeoutticket_search) {
clearTimeout(timeoutticket_search);
}
timeoutticket_search = window.setTimeout(function() {
var xmlHttp = new XMLHttpRequest();
var params = [
'option=com_rsticketspro',
'view=kbresults',
'format=json',
'filter_search=' +
encodeURIComponent(inputText)
];
xmlHttp.open('POST',
Joomla.getOptions('system.paths').base +
'/index.php?option=com_rsticketspro', true);
xmlHttp.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
xmlHttp.send(params.join('&'));
xmlHttp.onreadystatechange = function() {
if (this.readyState === 4) {
var data = JSON.parse(this.responseText);
awesomplete.list = data.list;
awesomplete.evaluate();
}
}
}, 500);
});
queryInput.addEventListener('awesomplete-selectcomplete',
function(evt) {
this.value = '';
var cid = evt.text.value;
var xmlHttp = new XMLHttpRequest();
var params = [
'option=com_rsticketspro',
'view=article',
'format=json',
'cid=' + encodeURIComponent(cid)
];
xmlHttp.open('POST',
Joomla.getOptions('system.paths').base +
'/index.php?option=com_rsticketspro', true);
xmlHttp.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
xmlHttp.send(params.join('&'));
xmlHttp.onreadystatechange = function() {
if (this.readyState === 4) {
var data = JSON.parse(this.responseText);
if (allowEditor) {
Joomla.editors.instances['ticket_message'].setValue(data.text);
} else {
document.getElementById('ticket_message').value = data.text;
}
}
}
});
});
}PK슋[)�� js/dashboard.jsnu�[���window.addEventListener('DOMContentLoaded',
function() {
var timeoutticket_search;
var itemskb_urls;
var queryInput =
document.querySelector("#rsticketspro_searchinp");
var awesomplete = new Awesomplete(queryInput, {
filter: function() {
return true;
},
sort: false,
list: []
});
queryInput.addEventListener("input", function (evt) {
var inputText = evt.target.value;
if (timeoutticket_search) {
clearTimeout(timeoutticket_search);
}
timeoutticket_search = window.setTimeout(function() {
var searchIcon =
document.getElementById('rstickets_search_icon');
var loadingIcon =
document.getElementById('rsticketspro_loading');
searchIcon.style.display = 'none';
loadingIcon.style.display = '';
var xmlHttp = new XMLHttpRequest();
var params = [
'option=com_rsticketspro',
'view=kbresults',
'format=json',
'kb_itemid=' +
document.getElementsByName('kb_itemid')[0].value,
'Itemid=' +
document.getElementsByName('curr_itemid')[0].value,
'filter_search=' + encodeURIComponent(inputText)
];
xmlHttp.open('POST',
Joomla.getOptions('system.paths').base +
'/index.php?option=com_rsticketspro', true);
xmlHttp.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
xmlHttp.send(params.join('&'));
xmlHttp.onreadystatechange = function() {
if (this.readyState === 4) {
var data = JSON.parse(this.responseText);
itemskb_urls = data.urls;
awesomplete.list = data.list;
awesomplete.evaluate();
loadingIcon.style.display = 'none';
searchIcon.style.display = '';
}
}
}, 500);
});
queryInput.addEventListener('awesomplete-selectcomplete',
function(evt) {
this.value = '';
if (typeof itemskb_urls[evt.text.value] !== 'undefined')
{
document.location.href = itemskb_urls[evt.text.value];
}
});
});PK슋[8D�YF
F
js/export.jsnu�[���jQuery.noConflict();
if (typeof RSTicketsPro === 'undefined') {
var RSTicketsPro = {};
}
RSTicketsPro.exportCSV = {
totalItems : 0,
baseUrl : '',
ordering : '',
direction : '',
getProgressBarObject: function() {
return
document.getElementById('com-rsticketspro-export-progress')
},
setProgress: function (current) {
var bar =
document.querySelector('.com-rsticketspro-bar');
if (bar) {
var currentProgress = (current * 100) / this.totalItems;
bar.style.width = currentProgress + '%';
bar.innerText = parseInt(currentProgress) + '%';
}
},
setCSV : function(from, fileHash) {
var progressBar = this.getProgressBarObject();
if (this.totalItems > 0 && from >= this.totalItems)
{
progressBar.style.display = 'none';
window.location.assign(Joomla.getOptions('system.paths').base +
'/index.php?option=com_rsticketspro&task=tickets.exportcsv&filehash='
+ fileHash);
} else {
var xmlHttp = new XMLHttpRequest();
var params = [
'option=com_rsticketspro',
'task=' + 'tickets.writecsv',
'start=' + from,
'ordering=' + this.ordering,
'direction=' + this.direction,
'filehash=' + fileHash
];
xmlHttp.open('POST',
Joomla.getOptions('system.paths').base + '/index.php',
true);
xmlHttp.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
xmlHttp.send(params.join('&'));
xmlHttp.onreadystatechange = function() {
if (this.readyState === 4) {
try {
var data = JSON.parse(this.responseText);
} catch (err) {
data = {'success': false,
'response': err};
}
if (data.success === true) {
RSTicketsPro.exportCSV.setProgress(data.response.newFrom);
setTimeout(function(){
RSTicketsPro.exportCSV.setCSV(data.response.newFrom,
data.response.fileHash);
},700);
} else {
progressBar.style.display = 'none';
Joomla.renderMessages({'error':
[data.response]});
}
}
};
Joomla.removeMessages();
progressBar.style.display = 'block';
}
}
}
PK슋[�#o,,
js/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK슋[,�Lt�R�Rjs/jquery.magnific-popup.min.jsnu�[���/*!
Magnific Popup - v1.0.0 - 2014-12-12
* http://dimsemenov.com/plugins/magnific-popup/
* Copyright (c) 2014 Dmitry Semenov; */
(function(e){"function"==typeof
define&&define.amd?define(["jquery"],e):"object"==typeof
exports?e(require("jquery")):e(window.jQuery||window.Zepto)})(function(e){var
t,n,i,o,r,a,s,l="Close",c="BeforeClose",d="AfterClose",u="BeforeAppend",p="MarkupParse",f="Open",m="Change",g="mfp",h="."+g,v="mfp-ready",C="mfp-removing",y="mfp-prevent-close",w=function(){},b=!!window.jQuery,I=e(window),x=function(e,n){t.ev.on(g+e+h,n)},k=function(t,n,i,o){var
r=document.createElement("div");return
r.className="mfp-"+t,i&&(r.innerHTML=i),o?n&&n.appendChild(r):(r=e(r),n&&r.appendTo(n)),r},T=function(n,i){t.ev.triggerHandler(g+n,i),t.st.callbacks&&(n=n.charAt(0).toLowerCase()+n.slice(1),t.st.callbacks[n]&&t.st.callbacks[n].apply(t,e.isArray(i)?i:[i]))},E=function(n){return
n===s&&t.currTemplate.closeBtn||(t.currTemplate.closeBtn=e(t.st.closeMarkup.replace("%title%",t.st.tClose)),s=n),t.currTemplate.closeBtn},_=function(){e.magnificPopup.instance||(t=new
w,t.init(),e.magnificPopup.instance=t)},S=function(){var
e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void
0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in
e)return!0;return!1};w.prototype={constructor:w,init:function(){var
n=navigator.appVersion;t.isIE7=-1!==n.indexOf("MSIE
7."),t.isIE8=-1!==n.indexOf("MSIE
8."),t.isLowIE=t.isIE7||t.isIE8,t.isAndroid=/android/gi.test(n),t.isIOS=/iphone|ipad|ipod/gi.test(n),t.supportsTransition=S(),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera
Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows
Phone)|IEMobile/i.test(navigator.userAgent),o=e(document),t.popupsCache={}},open:function(n){i||(i=e(document.body));var
r;if(n.isObj===!1){t.items=n.items.toArray(),t.index=0;var
s,l=n.items;for(r=0;l.length>r;r++)if(s=l[r],s.parsed&&(s=s.el[0]),s===n.el[0]){t.index=r;break}}else
t.items=e.isArray(n.items)?n.items:[n.items],t.index=n.index||0;if(t.isOpen)return
t.updateItemHTML(),void
0;t.types=[],a="",t.ev=n.mainEl&&n.mainEl.length?n.mainEl.eq(0):o,n.key?(t.popupsCache[n.key]||(t.popupsCache[n.key]={}),t.currTemplate=t.popupsCache[n.key]):t.currTemplate={},t.st=e.extend(!0,{},e.magnificPopup.defaults,n),t.fixedContentPos="auto"===t.st.fixedContentPos?!t.probablyMobile:t.st.fixedContentPos,t.st.modal&&(t.st.closeOnContentClick=!1,t.st.closeOnBgClick=!1,t.st.showCloseBtn=!1,t.st.enableEscapeKey=!1),t.bgOverlay||(t.bgOverlay=k("bg").on("click"+h,function(){t.close()}),t.wrap=k("wrap").attr("tabindex",-1).on("click"+h,function(e){t._checkIfClose(e.target)&&t.close()}),t.container=k("container",t.wrap)),t.contentContainer=k("content"),t.st.preloader&&(t.preloader=k("preloader",t.container,t.st.tLoading));var
c=e.magnificPopup.modules;for(r=0;c.length>r;r++){var
d=c[r];d=d.charAt(0).toUpperCase()+d.slice(1),t["init"+d].call(t)}T("BeforeOpen"),t.st.showCloseBtn&&(t.st.closeBtnInside?(x(p,function(e,t,n,i){n.close_replaceWith=E(i.type)}),a+="
mfp-close-btn-in"):t.wrap.append(E())),t.st.alignTop&&(a+="
mfp-align-top"),t.fixedContentPos?t.wrap.css({overflow:t.st.overflowY,overflowX:"hidden",overflowY:t.st.overflowY}):t.wrap.css({top:I.scrollTop(),position:"absolute"}),(t.st.fixedBgPos===!1||"auto"===t.st.fixedBgPos&&!t.fixedContentPos)&&t.bgOverlay.css({height:o.height(),position:"absolute"}),t.st.enableEscapeKey&&o.on("keyup"+h,function(e){27===e.keyCode&&t.close()}),I.on("resize"+h,function(){t.updateSize()}),t.st.closeOnContentClick||(a+="
mfp-auto-cursor"),a&&t.wrap.addClass(a);var
u=t.wH=I.height(),m={};if(t.fixedContentPos&&t._hasScrollBar(u)){var
g=t._getScrollbarSize();g&&(m.marginRight=g)}t.fixedContentPos&&(t.isIE7?e("body,
html").css("overflow","hidden"):m.overflow="hidden");var
C=t.st.mainClass;return t.isIE7&&(C+="
mfp-ie7"),C&&t._addClassToMFP(C),t.updateItemHTML(),T("BuildControls"),e("html").css(m),t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo||i),t._lastFocusedEl=document.activeElement,setTimeout(function(){t.content?(t._addClassToMFP(v),t._setFocus()):t.bgOverlay.addClass(v),o.on("focusin"+h,t._onFocusIn)},16),t.isOpen=!0,t.updateSize(u),T(f),n},close:function(){t.isOpen&&(T(c),t.isOpen=!1,t.st.removalDelay&&!t.isLowIE&&t.supportsTransition?(t._addClassToMFP(C),setTimeout(function(){t._close()},t.st.removalDelay)):t._close())},_close:function(){T(l);var
n=C+" "+v+"
";if(t.bgOverlay.detach(),t.wrap.detach(),t.container.empty(),t.st.mainClass&&(n+=t.st.mainClass+"
"),t._removeClassFromMFP(n),t.fixedContentPos){var
i={marginRight:""};t.isIE7?e("body,
html").css("overflow",""):i.overflow="",e("html").css(i)}o.off("keyup"+h+"
focusin"+h),t.ev.off(h),t.wrap.attr("class","mfp-wrap").removeAttr("style"),t.bgOverlay.attr("class","mfp-bg"),t.container.attr("class","mfp-container"),!t.st.showCloseBtn||t.st.closeBtnInside&&t.currTemplate[t.currItem.type]!==!0||t.currTemplate.closeBtn&&t.currTemplate.closeBtn.detach(),t._lastFocusedEl&&e(t._lastFocusedEl).focus(),t.currItem=null,t.content=null,t.currTemplate=null,t.prevHeight=0,T(d)},updateSize:function(e){if(t.isIOS){var
n=document.documentElement.clientWidth/window.innerWidth,i=window.innerHeight*n;t.wrap.css("height",i),t.wH=i}else
t.wH=e||I.height();t.fixedContentPos||t.wrap.css("height",t.wH),T("Resize")},updateItemHTML:function(){var
n=t.items[t.index];t.contentContainer.detach(),t.content&&t.content.detach(),n.parsed||(n=t.parseEl(t.index));var
i=n.type;if(T("BeforeChange",[t.currItem?t.currItem.type:"",i]),t.currItem=n,!t.currTemplate[i]){var
o=t.st[i]?t.st[i].markup:!1;T("FirstMarkupParse",o),t.currTemplate[i]=o?e(o):!0}r&&r!==n.type&&t.container.removeClass("mfp-"+r+"-holder");var
a=t["get"+i.charAt(0).toUpperCase()+i.slice(1)](n,t.currTemplate[i]);t.appendContent(a,i),n.preloaded=!0,T(m,n),r=n.type,t.container.prepend(t.contentContainer),T("AfterChange")},appendContent:function(e,n){t.content=e,e?t.st.showCloseBtn&&t.st.closeBtnInside&&t.currTemplate[n]===!0?t.content.find(".mfp-close").length||t.content.append(E()):t.content=e:t.content="",T(u),t.container.addClass("mfp-"+n+"-holder"),t.contentContainer.append(t.content)},parseEl:function(n){var
i,o=t.items[n];if(o.tagName?o={el:e(o)}:(i=o.type,o={data:o,src:o.src}),o.el){for(var
r=t.types,a=0;r.length>a;a++)if(o.el.hasClass("mfp-"+r[a])){i=r[a];break}o.src=o.el.attr("data-mfp-src"),o.src||(o.src=o.el.attr("href"))}return
o.type=i||t.st.type||"inline",o.index=n,o.parsed=!0,t.items[n]=o,T("ElementParse",o),t.items[n]},addGroup:function(e,n){var
i=function(i){i.mfpEl=this,t._openClick(i,e,n)};n||(n={});var
o="click.magnificPopup";n.mainEl=e,n.items?(n.isObj=!0,e.off(o).on(o,i)):(n.isObj=!1,n.delegate?e.off(o).on(o,n.delegate,i):(n.items=e,e.off(o).on(o,i)))},_openClick:function(n,i,o){var
r=void
0!==o.midClick?o.midClick:e.magnificPopup.defaults.midClick;if(r||2!==n.which&&!n.ctrlKey&&!n.metaKey){var
a=void
0!==o.disableOn?o.disableOn:e.magnificPopup.defaults.disableOn;if(a)if(e.isFunction(a)){if(!a.call(t))return!0}else
if(a>I.width())return!0;n.type&&(n.preventDefault(),t.isOpen&&n.stopPropagation()),o.el=e(n.mfpEl),o.delegate&&(o.items=i.find(o.delegate)),t.open(o)}},updateStatus:function(e,i){if(t.preloader){n!==e&&t.container.removeClass("mfp-s-"+n),i||"loading"!==e||(i=t.st.tLoading);var
o={status:e,text:i};T("UpdateStatus",o),e=o.status,i=o.text,t.preloader.html(i),t.preloader.find("a").on("click",function(e){e.stopImmediatePropagation()}),t.container.addClass("mfp-s-"+e),n=e}},_checkIfClose:function(n){if(!e(n).hasClass(y)){var
i=t.st.closeOnContentClick,o=t.st.closeOnBgClick;if(i&&o)return!0;if(!t.content||e(n).hasClass("mfp-close")||t.preloader&&n===t.preloader[0])return!0;if(n===t.content[0]||e.contains(t.content[0],n)){if(i)return!0}else
if(o&&e.contains(document,n))return!0;return!1}},_addClassToMFP:function(e){t.bgOverlay.addClass(e),t.wrap.addClass(e)},_removeClassFromMFP:function(e){this.bgOverlay.removeClass(e),t.wrap.removeClass(e)},_hasScrollBar:function(e){return(t.isIE7?o.height():document.body.scrollHeight)>(e||I.height())},_setFocus:function(){(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},_onFocusIn:function(n){return
n.target===t.wrap[0]||e.contains(t.wrap[0],n.target)?void
0:(t._setFocus(),!1)},_parseMarkup:function(t,n,i){var
o;i.data&&(n=e.extend(i.data,n)),T(p,[t,n,i]),e.each(n,function(e,n){if(void
0===n||n===!1)return!0;if(o=e.split("_"),o.length>1){var
i=t.find(h+"-"+o[0]);if(i.length>0){var
r=o[1];"replaceWith"===r?i[0]!==n[0]&&i.replaceWith(n):"img"===r?i.is("img")?i.attr("src",n):i.replaceWith('<img
src="'+n+'"
class="'+i.attr("class")+'"
/>'):i.attr(o[1],n)}}else
t.find(h+"-"+e).html(n)})},_getScrollbarSize:function(){if(void
0===t.scrollbarSize){var
e=document.createElement("div");e.style.cssText="width:
99px; height: 99px; overflow: scroll; position: absolute; top:
-9999px;",document.body.appendChild(e),t.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return
t.scrollbarSize}},e.magnificPopup={instance:null,proto:w.prototype,modules:[],open:function(t,n){return
_(),t=t?e.extend(!0,{},t):{},t.isObj=!0,t.index=n||0,this.instance.open(t)},close:function(){return
e.magnificPopup.instance&&e.magnificPopup.instance.close()},registerModule:function(t,n){n.options&&(e.magnificPopup.defaults[t]=n.options),e.extend(this.proto,n.proto),this.modules.push(t)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button
title="%title%" type="button"
class="mfp-close">×</button>',tClose:"Close
(Esc)",tLoading:"Loading..."}},e.fn.magnificPopup=function(n){_();var
i=e(this);if("string"==typeof n)if("open"===n){var
o,r=b?i.data("magnificPopup"):i[0].magnificPopup,a=parseInt(arguments[1],10)||0;r.items?o=r.items[a]:(o=i,r.delegate&&(o=o.find(r.delegate)),o=o.eq(a)),t._openClick({mfpEl:o},i,r)}else
t.isOpen&&t[n].apply(t,Array.prototype.slice.call(arguments,1));else
n=e.extend(!0,{},n),b?i.data("magnificPopup",n):i[0].magnificPopup=n,t.addGroup(i,n);return
i};var
P,O,z,M="inline",B=function(){z&&(O.after(z.addClass(P)).detach(),z=null)};e.magnificPopup.registerModule(M,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content
not
found"},proto:{initInline:function(){t.types.push(M),x(l+"."+M,function(){B()})},getInline:function(n,i){if(B(),n.src){var
o=t.st.inline,r=e(n.src);if(r.length){var
a=r[0].parentNode;a&&a.tagName&&(O||(P=o.hiddenClass,O=k(P),P="mfp-"+P),z=r.after(O).detach().removeClass(P)),t.updateStatus("ready")}else
t.updateStatus("error",o.tNotFound),r=e("<div>");return
n.inlineElement=r,r}return
t.updateStatus("ready"),t._parseMarkup(i,{},n),i}}});var
F,H="ajax",L=function(){F&&i.removeClass(F)},A=function(){L(),t.req&&t.req.abort()};e.magnificPopup.registerModule(H,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a
href="%url%">The content</a> could not be
loaded.'},proto:{initAjax:function(){t.types.push(H),F=t.st.ajax.cursor,x(l+"."+H,A),x("BeforeChange."+H,A)},getAjax:function(n){F&&i.addClass(F),t.updateStatus("loading");var
o=e.extend({url:n.src,success:function(i,o,r){var
a={data:i,xhr:r};T("ParseAjax",a),t.appendContent(e(a.data),H),n.finished=!0,L(),t._setFocus(),setTimeout(function(){t.wrap.addClass(v)},16),t.updateStatus("ready"),T("AjaxContentAdded")},error:function(){L(),n.finished=n.loadError=!0,t.updateStatus("error",t.st.ajax.tError.replace("%url%",n.src))}},t.st.ajax.settings);return
t.req=e.ajax(o),""}}});var
j,N=function(n){if(n.data&&void 0!==n.data.title)return
n.data.title;var i=t.st.image.titleSrc;if(i){if(e.isFunction(i))return
i.call(t,n);if(n.el)return
n.el.attr(i)||""}return""};e.magnificPopup.registerModule("image",{options:{markup:'<div
class="mfp-figure"><div
class="mfp-close"></div><figure><div
class="mfp-img"></div><figcaption><div
class="mfp-bottom-bar"><div
class="mfp-title"></div><div
class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a
href="%url%">The image</a> could not be
loaded.'},proto:{initImage:function(){var
e=t.st.image,n=".image";t.types.push("image"),x(f+n,function(){"image"===t.currItem.type&&e.cursor&&i.addClass(e.cursor)}),x(l+n,function(){e.cursor&&i.removeClass(e.cursor),I.off("resize"+h)}),x("Resize"+n,t.resizeImage),t.isLowIE&&x("AfterChange",t.resizeImage)},resizeImage:function(){var
e=t.currItem;if(e&&e.img&&t.st.image.verticalFit){var
n=0;t.isLowIE&&(n=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",t.wH-n)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,j&&clearInterval(j),e.isCheckingImgSize=!1,T("ImageHasSize",e),e.imgHidden&&(t.content&&t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var
n=0,i=e.img[0],o=function(r){j&&clearInterval(j),j=setInterval(function(){return
i.naturalWidth>0?(t._onImageHasSize(e),void
0):(n>200&&clearInterval(j),n++,3===n?o(10):40===n?o(50):100===n&&o(500),void
0)},r)};o(1)},getImage:function(n,i){var
o=0,r=function(){n&&(n.img[0].complete?(n.img.off(".mfploader"),n===t.currItem&&(t._onImageHasSize(n),t.updateStatus("ready")),n.hasSize=!0,n.loaded=!0,T("ImageLoadComplete")):(o++,200>o?setTimeout(r,100):a()))},a=function(){n&&(n.img.off(".mfploader"),n===t.currItem&&(t._onImageHasSize(n),t.updateStatus("error",s.tError.replace("%url%",n.src))),n.hasSize=!0,n.loaded=!0,n.loadError=!0)},s=t.st.image,l=i.find(".mfp-img");if(l.length){var
c=document.createElement("img");c.className="mfp-img",n.el&&n.el.find("img").length&&(c.alt=n.el.find("img").attr("alt")),n.img=e(c).on("load.mfploader",r).on("error.mfploader",a),c.src=n.src,l.is("img")&&(n.img=n.img.clone()),c=n.img[0],c.naturalWidth>0?n.hasSize=!0:c.width||(n.hasSize=!1)}return
t._parseMarkup(i,{title:N(n),img_replaceWith:n.img},n),t.resizeImage(),n.hasSize?(j&&clearInterval(j),n.loadError?(i.addClass("mfp-loading"),t.updateStatus("error",s.tError.replace("%url%",n.src))):(i.removeClass("mfp-loading"),t.updateStatus("ready")),i):(t.updateStatus("loading"),n.loading=!0,n.hasSize||(n.imgHidden=!0,i.addClass("mfp-loading"),t.findImageSize(n)),i)}}});var
W,R=function(){return void 0===W&&(W=void
0!==document.createElement("p").style.MozTransform),W};e.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(e){return
e.is("img")?e:e.find("img")}},proto:{initZoom:function(){var
e,n=t.st.zoom,i=".zoom";if(n.enabled&&t.supportsTransition){var
o,r,a=n.duration,s=function(e){var
t=e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),i="all
"+n.duration/1e3+"s
"+n.easing,o={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},r="transition";return
o["-webkit-"+r]=o["-moz-"+r]=o["-o-"+r]=o[r]=i,t.css(o),t},d=function(){t.content.css("visibility","visible")};x("BuildControls"+i,function(){if(t._allowZoom()){if(clearTimeout(o),t.content.css("visibility","hidden"),e=t._getItemToZoom(),!e)return
d(),void
0;r=s(e),r.css(t._getOffset()),t.wrap.append(r),o=setTimeout(function(){r.css(t._getOffset(!0)),o=setTimeout(function(){d(),setTimeout(function(){r.remove(),e=r=null,T("ZoomAnimationEnded")},16)},a)},16)}}),x(c+i,function(){if(t._allowZoom()){if(clearTimeout(o),t.st.removalDelay=a,!e){if(e=t._getItemToZoom(),!e)return;r=s(e)}r.css(t._getOffset(!0)),t.wrap.append(r),t.content.css("visibility","hidden"),setTimeout(function(){r.css(t._getOffset())},16)}}),x(l+i,function(){t._allowZoom()&&(d(),r&&r.remove(),e=null)})}},_allowZoom:function(){return"image"===t.currItem.type},_getItemToZoom:function(){return
t.currItem.hasSize?t.currItem.img:!1},_getOffset:function(n){var
i;i=n?t.currItem.img:t.st.zoom.opener(t.currItem.el||t.currItem);var
o=i.offset(),r=parseInt(i.css("padding-top"),10),a=parseInt(i.css("padding-bottom"),10);o.top-=e(window).scrollTop()-r;var
s={width:i.width(),height:(b?i.innerHeight():i[0].offsetHeight)-a-r};return
R()?s["-moz-transform"]=s.transform="translate("+o.left+"px,"+o.top+"px)":(s.left=o.left,s.top=o.top),s}}});var
Z="iframe",q="//about:blank",D=function(e){if(t.currTemplate[Z]){var
n=t.currTemplate[Z].find("iframe");n.length&&(e||(n[0].src=q),t.isIE8&&n.css("display",e?"block":"none"))}};e.magnificPopup.registerModule(Z,{options:{markup:'<div
class="mfp-iframe-scaler"><div
class="mfp-close"></div><iframe
class="mfp-iframe" src="//about:blank"
frameborder="0"
allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){t.types.push(Z),x("BeforeChange",function(e,t,n){t!==n&&(t===Z?D():n===Z&&D(!0))}),x(l+"."+Z,function(){D()})},getIframe:function(n,i){var
o=n.src,r=t.st.iframe;e.each(r.patterns,function(){return
o.indexOf(this.index)>-1?(this.id&&(o="string"==typeof
this.id?o.substr(o.lastIndexOf(this.id)+this.id.length,o.length):this.id.call(this,o)),o=this.src.replace("%id%",o),!1):void
0});var a={};return
r.srcAction&&(a[r.srcAction]=o),t._parseMarkup(i,a,n),t.updateStatus("ready"),i}}});var
K=function(e){var n=t.items.length;return
e>n-1?e-n:0>e?n+e:e},Y=function(e,t,n){return
e.replace(/%curr%/gi,t+1).replace(/%total%/gi,n)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button
title="%title%" type="button" class="mfp-arrow
mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous
(Left arrow key)",tNext:"Next (Right arrow
key)",tCounter:"%curr% of
%total%"},proto:{initGallery:function(){var
n=t.st.gallery,i=".mfp-gallery",r=Boolean(e.fn.mfpFastClick);return
t.direction=!0,n&&n.enabled?(a+="
mfp-gallery",x(f+i,function(){n.navigateByImgClick&&t.wrap.on("click"+i,".mfp-img",function(){return
t.items.length>1?(t.next(),!1):void
0}),o.on("keydown"+i,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),x("UpdateStatus"+i,function(e,n){n.text&&(n.text=Y(n.text,t.currItem.index,t.items.length))}),x(p+i,function(e,i,o,r){var
a=t.items.length;o.counter=a>1?Y(n.tCounter,r.index,a):""}),x("BuildControls"+i,function(){if(t.items.length>1&&n.arrows&&!t.arrowLeft){var
i=n.arrowMarkup,o=t.arrowLeft=e(i.replace(/%title%/gi,n.tPrev).replace(/%dir%/gi,"left")).addClass(y),a=t.arrowRight=e(i.replace(/%title%/gi,n.tNext).replace(/%dir%/gi,"right")).addClass(y),s=r?"mfpFastClick":"click";o[s](function(){t.prev()}),a[s](function(){t.next()}),t.isIE7&&(k("b",o[0],!1,!0),k("a",o[0],!1,!0),k("b",a[0],!1,!0),k("a",a[0],!1,!0)),t.container.append(o.add(a))}}),x(m+i,function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16)}),x(l+i,function(){o.off(i),t.wrap.off("click"+i),t.arrowLeft&&r&&t.arrowLeft.add(t.arrowRight).destroyMfpFastClick(),t.arrowRight=t.arrowLeft=null}),void
0):!1},next:function(){t.direction=!0,t.index=K(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=K(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var
e,n=t.st.gallery.preload,i=Math.min(n[0],t.items.length),o=Math.min(n[1],t.items.length);for(e=1;(t.direction?o:i)>=e;e++)t._preloadItem(t.index+e);for(e=1;(t.direction?i:o)>=e;e++)t._preloadItem(t.index-e)},_preloadItem:function(n){if(n=K(n),!t.items[n].preloaded){var
i=t.items[n];i.parsed||(i=t.parseEl(n)),T("LazyLoad",i),"image"===i.type&&(i.img=e('<img
class="mfp-img"
/>').on("load.mfploader",function(){i.hasSize=!0}).on("error.mfploader",function(){i.hasSize=!0,i.loadError=!0,T("LazyLoadError",i)}).attr("src",i.src)),i.preloaded=!0}}}});var
U="retina";e.magnificPopup.registerModule(U,{options:{replaceSrc:function(e){return
e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var
e=t.st.retina,n=e.ratio;n=isNaN(n)?n():n,n>1&&(x("ImageHasSize."+U,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/n,width:"100%"})}),x("ElementParse."+U,function(t,i){i.src=e.replaceSrc(i,n)}))}}}}),function(){var
t=1e3,n="ontouchstart"in
window,i=function(){I.off("touchmove"+r+"
touchend"+r)},o="mfpFastClick",r="."+o;e.fn.mfpFastClick=function(o){return
e(this).each(function(){var a,s=e(this);if(n){var
l,c,d,u,p,f;s.on("touchstart"+r,function(e){u=!1,f=1,p=e.originalEvent?e.originalEvent.touches[0]:e.touches[0],c=p.clientX,d=p.clientY,I.on("touchmove"+r,function(e){p=e.originalEvent?e.originalEvent.touches:e.touches,f=p.length,p=p[0],(Math.abs(p.clientX-c)>10||Math.abs(p.clientY-d)>10)&&(u=!0,i())}).on("touchend"+r,function(e){i(),u||f>1||(a=!0,e.preventDefault(),clearTimeout(l),l=setTimeout(function(){a=!1},t),o())})})}s.on("click"+r,function(){a||o()})})},e.fn.destroyMfpFastClick=function(){e(this).off("touchstart"+r+"
click"+r),n&&I.off("touchmove"+r+"
touchend"+r)}}(),_()});PK슋[��u�9�9js/jquery.raty.jsnu�[���/*!
* jQuery Raty - A Star Rating Plugin
* ------------------------------------------------------------------
*
* jQuery Raty is a plugin that generates a customizable star rating.
*
* Licensed under The MIT License
*
* @version 2.5.2
* @since 2010.06.11
* @author Washington Botelho
* @documentation wbotelhos.com/raty
*
* ------------------------------------------------------------------
*
* <div id="star"></div>
*
* $('#star').raty();
*
*/
;(function($) {
var methods = {
init: function(settings) {
return this.each(function() {
methods.destroy.call(this);
this.opt = $.extend(true, {}, $.fn.raty.defaults, settings);
var that = $(this),
inits = ['number', 'readOnly',
'score', 'scoreName'];
methods._callback.call(this, inits);
if (this.opt.precision) {
methods._adjustPrecision.call(this);
}
this.opt.number = methods._between(this.opt.number, 0,
this.opt.numberMax)
this.opt.path = this.opt.path || '';
if (this.opt.path &&
this.opt.path.slice(this.opt.path.length - 1, this.opt.path.length) !==
'/') {
this.opt.path += '/';
}
this.stars = methods._createStars.call(this);
this.score = methods._createScore.call(this);
methods._apply.call(this, this.opt.score);
var space = this.opt.space ? 4 : 0,
width = this.opt.width || (this.opt.number * this.opt.size +
this.opt.number * space);
if (this.opt.cancel) {
this.cancel = methods._createCancel.call(this);
width += (this.opt.size + space);
}
if (this.opt.readOnly) {
methods._lock.call(this);
} else {
that.css('cursor', 'pointer');
methods._binds.call(this);
}
if (this.opt.width !== false) {
that.css('width', width);
}
methods._target.call(this, this.opt.score);
that.data({ 'settings': this.opt, 'raty': true
});
});
}, _adjustPrecision: function() {
this.opt.targetType = 'score';
this.opt.half = true;
}, _apply: function(score) {
if (score && score > 0) {
score = methods._between(score, 0, this.opt.number);
this.score.val(score);
}
methods._fill.call(this, score);
if (score) {
methods._roundStars.call(this, score);
}
}, _between: function(value, min, max) {
return Math.min(Math.max(parseFloat(value), min), max);
}, _binds: function() {
if (this.cancel) {
methods._bindCancel.call(this);
}
methods._bindClick.call(this);
methods._bindOut.call(this);
methods._bindOver.call(this);
}, _bindCancel: function() {
methods._bindClickCancel.call(this);
methods._bindOutCancel.call(this);
methods._bindOverCancel.call(this);
}, _bindClick: function() {
var self = this,
that = $(self);
self.stars.on('click.raty', function(evt) {
self.score.val((self.opt.half || self.opt.precision) ?
that.data('score') : this.alt);
if (self.opt.click) {
self.opt.click.call(self, parseFloat(self.score.val()), evt);
}
});
}, _bindClickCancel: function() {
var self = this;
self.cancel.on('click.raty', function(evt) {
self.score.removeAttr('value');
if (self.opt.click) {
self.opt.click.call(self, null, evt);
}
});
}, _bindOut: function() {
var self = this;
$(this).on('mouseleave.raty', function(evt) {
var score = parseFloat(self.score.val()) || undefined;
methods._apply.call(self, score);
methods._target.call(self, score, evt);
if (self.opt.mouseout) {
self.opt.mouseout.call(self, score, evt);
}
});
}, _bindOutCancel: function() {
var self = this;
self.cancel.on('mouseleave.raty', function(evt) {
$(this).attr('src', self.opt.path + self.opt.cancelOff);
if (self.opt.mouseout) {
self.opt.mouseout.call(self, self.score.val() || null, evt);
}
});
}, _bindOverCancel: function() {
var self = this;
self.cancel.on('mouseover.raty', function(evt) {
$(this).attr('src', self.opt.path + self.opt.cancelOn);
self.stars.attr('src', self.opt.path +
self.opt.starOff);
methods._target.call(self, null, evt);
if (self.opt.mouseover) {
self.opt.mouseover.call(self, null);
}
});
}, _bindOver: function() {
var self = this,
that = $(self),
action = self.opt.half ? 'mousemove.raty' :
'mouseover.raty';
self.stars.on(action, function(evt) {
var score = parseInt(this.alt, 10);
if (self.opt.half) {
var position = parseFloat((evt.pageX - $(this).offset().left) /
self.opt.size),
plus = (position > .5) ? 1 : .5;
score = score - 1 + plus;
methods._fill.call(self, score);
if (self.opt.precision) {
score = score - plus + position;
}
methods._roundStars.call(self, score);
that.data('score', score);
} else {
methods._fill.call(self, score);
}
methods._target.call(self, score, evt);
if (self.opt.mouseover) {
self.opt.mouseover.call(self, score, evt);
}
});
}, _callback: function(options) {
for (i in options) {
if (typeof this.opt[options[i]] === 'function') {
this.opt[options[i]] = this.opt[options[i]].call(this);
}
}
}, _createCancel: function() {
var that = $(this),
icon = this.opt.path + this.opt.cancelOff,
cancel = $('<img />', { src: icon, alt:
'x', title: this.opt.cancelHint, 'class':
'raty-cancel' });
if (this.opt.cancelPlace == 'left') {
that.prepend(' ').prepend(cancel);
} else {
that.append(' ').append(cancel);
}
return cancel;
}, _createScore: function() {
return $('<input />', { type: 'hidden',
name: this.opt.scoreName }).appendTo(this);
}, _createStars: function() {
var that = $(this);
for (var i = 1; i <= this.opt.number; i++) {
var title = methods._getHint.call(this, i),
icon = (this.opt.score && this.opt.score >= i) ?
'starOn' : 'starOff';
icon = this.opt.path + this.opt[icon];
$('<img />', { src : icon, alt: i, title: title
}).appendTo(this);
if (this.opt.space) {
that.append((i < this.opt.number) ? ' ' :
'');
}
}
return that.children('img');
}, _error: function(message) {
$(this).html(message);
$.error(message);
}, _fill: function(score) {
var self = this,
hash = 0;
for (var i = 1; i <= self.stars.length; i++) {
var star = self.stars.eq(i - 1),
select = self.opt.single ? (i == score) : (i <= score);
if (self.opt.iconRange && self.opt.iconRange.length >
hash) {
var irange = self.opt.iconRange[hash],
on = irange.on || self.opt.starOn,
off = irange.off || self.opt.starOff,
icon = select ? on : off;
if (i <= irange.range) {
star.attr('src', self.opt.path + icon);
}
if (i == irange.range) {
hash++;
}
} else {
var icon = select ? 'starOn' : 'starOff';
star.attr('src', this.opt.path + this.opt[icon]);
}
}
}, _getHint: function(score) {
var hint = this.opt.hints[score - 1];
return (hint === '') ? '' : (hint || score);
}, _lock: function() {
var score = parseInt(this.score.val(), 10), // TODO: 3.1 >>
[['1'], ['2'], ['3', '.1',
'.2']]
hint = score ? methods._getHint.call(this, score) :
this.opt.noRatedMsg;
$(this).data('readonly', true).css('cursor',
'').attr('title', hint);
this.score.attr('readonly', 'readonly');
this.stars.attr('title', hint);
if (this.cancel) {
this.cancel.hide();
}
}, _roundStars: function(score) {
var rest = (score - Math.floor(score)).toFixed(2);
if (rest > this.opt.round.down) {
var icon = 'starOn'; //
Up: [x.76 .. x.99]
if (this.opt.halfShow && rest < this.opt.round.up) { //
Half: [x.26 .. x.75]
icon = 'starHalf';
} else if (rest < this.opt.round.full) { // Down:
[x.00 .. x.5]
icon = 'starOff';
}
this.stars.eq(Math.ceil(score) - 1).attr('src',
this.opt.path + this.opt[icon]);
} // Full down: [x.00 .. x.25]
}, _target: function(score, evt) {
if (this.opt.target) {
var target = $(this.opt.target);
if (target.length === 0) {
methods._error.call(this, 'Target selector invalid or
missing!');
}
if (this.opt.targetFormat.indexOf('{score}') < 0) {
methods._error.call(this, 'Template "{score}"
missing!');
}
var mouseover = evt && evt.type == 'mouseover';
if (score === undefined) {
score = this.opt.targetText;
} else if (score === null) {
score = mouseover ? this.opt.cancelHint : this.opt.targetText;
} else {
if (this.opt.targetType == 'hint') {
score = methods._getHint.call(this, Math.ceil(score));
} else if (this.opt.precision) {
score = parseFloat(score).toFixed(1);
}
if (!mouseover && !this.opt.targetKeep) {
score = this.opt.targetText;
}
}
if (score) {
score =
this.opt.targetFormat.toString().replace('{score}', score);
}
if (target.is(':input')) {
target.val(score);
} else {
target.html(score);
}
}
}, _unlock: function() {
$(this).data('readonly', false).css('cursor',
'pointer').removeAttr('title');
this.score.removeAttr('readonly', 'readonly');
for (var i = 0; i < this.opt.number; i++) {
this.stars.eq(i).attr('title',
methods._getHint.call(this, i + 1));
}
if (this.cancel) {
this.cancel.css('display', '');
}
}, cancel: function(click) {
return this.each(function() {
if ($(this).data('readonly') !== true) {
methods[click ? 'click' : 'score'].call(this,
null);
this.score.removeAttr('value');
}
});
}, click: function(score) {
return $(this).each(function() {
if ($(this).data('readonly') !== true) {
methods._apply.call(this, score);
if (!this.opt.click) {
methods._error.call(this, 'You must add the "click:
function(score, evt) { }" callback.');
}
this.opt.click.call(this, score, { type: 'click' });
methods._target.call(this, score);
}
});
}, destroy: function() {
return $(this).each(function() {
var that = $(this),
raw = that.data('raw');
if (raw) {
that.off('.raty').empty().css({ cursor:
raw.style.cursor, width: raw.style.width
}).removeData('readonly');
} else {
that.data('raw', that.clone()[0]);
}
});
}, getScore: function() {
var score = [],
value ;
$(this).each(function() {
value = this.score.val();
score.push(value ? parseFloat(value) : undefined);
});
return (score.length > 1) ? score : score[0];
}, readOnly: function(readonly) {
return this.each(function() {
var that = $(this);
if (that.data('readonly') !== readonly) {
if (readonly) {
that.off('.raty').children('img').off('.raty');
methods._lock.call(this);
} else {
methods._binds.call(this);
methods._unlock.call(this);
}
that.data('readonly', readonly);
}
});
}, reload: function() {
return methods.set.call(this, {});
}, score: function() {
return arguments.length ? methods.setScore.apply(this, arguments) :
methods.getScore.call(this);
}, set: function(settings) {
return this.each(function() {
var that = $(this),
actual = that.data('settings'),
news = $.extend({}, actual, settings);
that.raty(news);
});
}, setScore: function(score) {
return $(this).each(function() {
if ($(this).data('readonly') !== true) {
methods._apply.call(this, score);
methods._target.call(this, score);
}
});
}
};
$.fn.raty = function(method) {
if (methods[method]) {
return methods[method].apply(this,
Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method) {
return methods.init.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not
exist!');
}
};
$.fn.raty.defaults = {
cancel : false,
cancelHint : 'Cancel this rating!',
cancelOff : 'cancel-off.png',
cancelOn : 'cancel-on.png',
cancelPlace : 'left',
click : undefined,
half : false,
halfShow : true,
hints : ['bad', 'poor',
'regular', 'good', 'gorgeous'],
iconRange : undefined,
mouseout : undefined,
mouseover : undefined,
noRatedMsg : 'Not rated yet!',
number : 5,
numberMax : 20,
path : '',
precision : false,
readOnly : false,
round : { down: .25, full: .6, up: .76 },
score : undefined,
scoreName : 'score',
single : false,
size : 16,
space : true,
starHalf : 'star-half.png',
starOff : 'star-off.png',
starOn : 'star-on.png',
target : undefined,
targetFormat : '{score}',
targetKeep : false,
targetText : '',
targetType : 'hint',
width : undefined
};
})(jQuery);
PK슋[�7�C1C1
js/kbrules.jsnu�[���var
RSTicketsProConditions = {
typeOptions: [
{value: '', text:
Joomla.JText._('RST_PLEASE_SELECT')},
{value: 'department', text:
Joomla.JText._('RST_DEPARTMENT')},
{value: 'subject', text:
Joomla.JText._('RST_TICKET_SUBJECT')},
{value: 'message', text:
Joomla.JText._('RST_TICKET_MESSAGE')},
{value: 'priority', text:
Joomla.JText._('RST_PRIORITY')},
{value: 'status', text:
Joomla.JText._('RST_TICKET_STATUS')},
{value: 'custom_field', text:
Joomla.JText._('RST_CUSTOM_FIELD')}
],
conditionOptions: [
{value: '', text:
Joomla.JText._('RST_PLEASE_SELECT')},
{value: 'eq', text: Joomla.JText._('RST_IS_EQUAL')},
{value: 'neq', text:
Joomla.JText._('RST_IS_NOT_EQUAL')},
{value: 'like', text:
Joomla.JText._('RST_IS_LIKE')},
{value: 'notlike', text:
Joomla.JText._('RST_IS_NOT_LIKE')}
],
connectorOptions: [
{value: 'AND', text: Joomla.JText._('RST_AND')},
{value: 'OR', text: Joomla.JText._('RST_OR')}
],
addSpacing: function(childContainer, text) {
if (!text) {
text = ' ';
}
childContainer.append(jQuery('<span>').html(text));
},
getFormControlName: function(name) {
return 'jform[' + name + '][]';
},
changeSelectCustomField: function() {
var td = this.parentNode.parentNode;
var children = td.childNodes;
var responseSpan = false;
var selectCondition;
for (var i=0; i<children.length; i++)
{
if (children[i].className === 'responseSpan')
{
responseSpan = children[i];
continue;
}
if (children[i].name ==
RSTicketsProConditions.getFormControlName('select_condition'))
{
selectCondition = children[i];
continue;
}
}
responseSpan.innerHTML = '';
selectCondition.options.selectedIndex = 0;
selectCondition.disabled = true;
selectCondition.style.display = 'none';
if (this.value != '')
{
selectCondition.disabled = false;
selectCondition.style.display = '';
var xmlHttp = new XMLHttpRequest();
var url =
'index.php?option=com_rsticketspro&task=kbrules.showCustomFieldValues&cfid='
+ this.value;
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState === 4)
{
var has_options = false;
var select = document.createElement('select');
select.name =
RSTicketsProConditions.getFormControlName('select_value');
select.disabled = true;
select.style.display = 'none';
try {
var options = JSON.parse(xmlHttp.responseText);
if (options)
for (var i=0; i<options.length; i++)
{
has_options = true;
var option = document.createElement('option');
option.value = options[i].id;
option.text = options[i].name;
select.options.add(option);
}
}
catch (e)
{
alert(e);
}
if (has_options)
responseSpan.appendChild(select);
var textbox = document.createElement('input');
textbox.type = 'text';
textbox.name =
RSTicketsProConditions.getFormControlName('select_value');
textbox.disabled = true;
textbox.style.display = 'none';
textbox.value = '';
responseSpan.appendChild(textbox);
}
};
xmlHttp.open('GET', url, true);
xmlHttp.send(null);
}
},
changeSelectType: function() {
var td = this.parentNode;
var children = td.childNodes;
var task, selectCondition, responseSpan, responseSpan2, url;
var xmlHttp = new XMLHttpRequest();
for (var i=0; i<children.length; i++)
{
if (children[i].name ==
RSTicketsProConditions.getFormControlName('select_condition'))
{
selectCondition = children[i];
continue;
}
if (children[i].className == 'responseSpan')
{
responseSpan = children[i];
continue;
}
if (children[i].className == 'responseSpan2')
{
responseSpan2 = children[i];
continue;
}
}
responseSpan.innerHTML = '';
responseSpan2.innerHTML = '';
selectCondition.options.selectedIndex = 0;
selectCondition.disabled = true;
selectCondition.style.display = 'none';
switch (this.value)
{
case 'department':
case 'priority':
case 'status':
selectCondition.disabled = false;
selectCondition.style.display = '';
if (this.value == 'department')
task = 'showDepartments';
else if (this.value == 'priority')
task = 'showPriorities';
else if (this.value == 'status')
task = 'showStatuses';
url = 'index.php?option=com_rsticketspro&task=kbrules.' +
task;
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState === 4)
{
var select = document.createElement('select');
select.name =
RSTicketsProConditions.getFormControlName('select_value');
select.disabled = true;
select.style.display = 'none';
try {
var options = JSON.parse(xmlHttp.responseText);
if (options)
for (var i=0; i<options.length; i++)
{
var option = document.createElement('option');
option.value = options[i].id;
option.text = options[i].name;
select.options.add(option);
}
}
catch (e)
{
alert(e);
}
responseSpan.appendChild(select);
var textbox = document.createElement('input');
textbox.type = 'text';
textbox.name =
RSTicketsProConditions.getFormControlName('select_value');
textbox.disabled = true;
textbox.style.display = 'none';
textbox.value = '';
responseSpan.appendChild(textbox);
}
};
xmlHttp.open('GET', url, true);
xmlHttp.send(null);
break;
case 'subject':
selectCondition.disabled = false;
selectCondition.style.display = '';
var textbox = document.createElement('input');
textbox.type = 'text';
textbox.name =
RSTicketsProConditions.getFormControlName('select_value');
textbox.disabled = true;
textbox.style.display = 'none';
textbox.value = '';
responseSpan.appendChild(textbox);
break
case 'message':
selectCondition.disabled = false;
selectCondition.style.display = '';
var textarea = document.createElement('textarea');
textarea.name =
RSTicketsProConditions.getFormControlName('select_value');
textarea.disabled = true;
textarea.style.display = 'none';
textarea.value = '';
responseSpan.appendChild(textarea);
break;
case 'custom_field':
url =
'index.php?option=com_rsticketspro&task=kbrules.showCustomFields';
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState === 4)
{
var select = document.createElement('select');
var option = document.createElement('option');
option.value = '';
option.text = Joomla.JText._('RST_PLEASE_SELECT');
select.options.add(option);
select.name =
RSTicketsProConditions.getFormControlName('select_custom_field_value');
try {
var response = JSON.parse(xmlHttp.responseText);
var departments = response.departments;
var options = response.options;
for (var i=0; i<departments.length; i++)
{
var group = document.createElement('optgroup');
group.label = departments[i].name;
for (var j=0; j<options.length; j++)
{
if (options[j].department_id != departments[i].id)
{
continue;
}
var option = document.createElement('option');
option.value = options[j].id;
if (typeof(option.innerText) != 'undefined')
option.innerText = options[j].name;
else
option.text = options[j].name;
group.appendChild(option);
}
select.appendChild(group);
}
}
catch (e)
{
alert(e);
}
jQuery(select).change(RSTicketsProConditions.changeSelectCustomField);
responseSpan2.appendChild(select);
var textbox = document.createElement('input');
textbox.type = 'text';
textbox.name =
RSTicketsProConditions.getFormControlName('select_value');
textbox.disabled = true;
textbox.style.display = 'none';
textbox.value = '';
responseSpan.appendChild(textbox);
}
};
xmlHttp.open('GET', url, true);
xmlHttp.send(null);
break;
}
},
changeSelectCondition: function() {
var td = this.parentNode;
var children = td.childNodes;
var responseSpan = false;
for (var i=0; i<children.length; i++)
if (children[i].className == 'responseSpan')
{
responseSpan = children[i];
break;
}
var children = responseSpan.childNodes;
for (var i=0; i<children.length; i++)
{
children[i].disabled = true;
if (typeof children[i].style != 'undefined')
children[i].style.display = 'none';
}
if (!children.length)
return;
switch (this.value)
{
case 'neq':
case 'eq':
children[0].disabled = false;
children[0].style.display = '';
break;
case 'like':
case 'notlike':
if (children.length == 2)
{
children[1].disabled = false;
children[1].style.display = '';
}
else
{
children[0].disabled = false;
children[0].style.display = '';
}
break
}
},
add: function() {
var childContainer = jQuery('<p>').html('<span
class="rst_condition_if">' +
Joomla.JText._('RST_IF') + '</span> ');
var selectType = jQuery('<select>', {
'name':
RSTicketsProConditions.getFormControlName('select_type')
});
selectType.change(this.changeSelectType);
for (var i=0; i<this.typeOptions.length; i++) {
var typeOption = this.typeOptions[i];
selectType.append(jQuery('<option>', {
value: typeOption.value,
text: typeOption.text
}));
}
childContainer.append(selectType);
this.addSpacing(childContainer);
childContainer.append(jQuery('<span>', {
'class': 'responseSpan2'
}));
this.addSpacing(childContainer);
var selectCondition = jQuery('<select>', {
'name':
RSTicketsProConditions.getFormControlName('select_condition'),
'disabled': true
}).hide();
selectCondition.change(this.changeSelectCondition);
for (var i=0; i<this.conditionOptions.length; i++) {
var typeOption = this.conditionOptions[i];
selectCondition.append(jQuery('<option>', {
value: typeOption.value,
text: typeOption.text
}));
}
childContainer.append(selectCondition);
this.addSpacing(childContainer);
childContainer.append(jQuery('<span>', {
'class': 'responseSpan'
}));
this.addSpacing(childContainer);
var selectConnector = jQuery('<select>', {
'name':
RSTicketsProConditions.getFormControlName('select_connector')
});
for (var i=0; i<this.connectorOptions.length; i++) {
var typeOption = this.connectorOptions[i];
selectConnector.append(jQuery('<option>', {
value: typeOption.value,
text: typeOption.text
}));
}
childContainer.append(selectConnector);
this.addSpacing(childContainer);
var removeButton = jQuery('<button type="button"
class="btn btn-danger deleteConditionLink"><span
class="icon icon-minus"></span></button>');
removeButton.click(function(){
RSTicketsProConditions.remove(this);
});
childContainer.append(removeButton);
jQuery('#rst_conditions').append(childContainer);
},
remove: function(btn) {
jQuery(btn).parent().remove();
}
}
jQuery(document).ready(function($) {
$('.deleteConditionLink').click(function(){
RSTicketsProConditions.remove(this);
});
$('#addConditionLink').click(function(){
RSTicketsProConditions.add();
});
var selectType =
RSTicketsProConditions.getFormControlName('select_type');
var i;
for (i = 0; i < document.getElementsByName(selectType).length; i++) {
$(document.getElementsByName(selectType)[i]).change(RSTicketsProConditions.changeSelectType);
}
var selectCondition =
RSTicketsProConditions.getFormControlName('select_condition');
for (i = 0; i < document.getElementsByName(selectCondition).length;
i++) {
$(document.getElementsByName(selectCondition)[i]).change(RSTicketsProConditions.changeSelectCondition);
}
var selectCustomField =
RSTicketsProConditions.getFormControlName('select_custom_field_value');
for (i = 0; i < document.getElementsByName(selectCustomField).length;
i++) {
$(document.getElementsByName(selectCustomField)[i]).change(RSTicketsProConditions.changeSelectCustomField);
}
});PK슋[��9yppjs/ordertable.jsnu�[���Joomla.orderTable
= function(listOrder) {
table = document.getElementById("sortTable");
direction = document.getElementById("directionTable");
order = table.options[table.selectedIndex].value;
if (order != listOrder) {
dirn = 'asc';
} else {
dirn = direction.options[direction.selectedIndex].value;
}
Joomla.tableOrdering(order, dirn, '');
}PK슋[�=���js/predefinedsearches.jsnu�[���window.addEventListener('DOMContentLoaded',
function() {
var toggleDelete = function() {
var btn = document.getElementById('rst_delete_btn');
if (document.getElementsByName('boxchecked')[0].value ===
'0') {
btn.setAttribute('disabled', 'disabled');
} else {
btn.removeAttribute('disabled');
}
}
document.getElementsByName('checkall-toggle')[0].addEventListener('click',
toggleDelete);
var elements = document.getElementsByName('cid[]');
for (var i = 0; i < elements.length; i++) {
elements[i].addEventListener('click', toggleDelete);
}
});PK슋[%�u�#E#Ejs/rsticketspro.jsnu�[���var
RSTicketsPro = {
getHttp : function () {
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
} catch (e) {
// Internet Explorer
try {
xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
}
return xmlHttp;
},
sendHttp : function (httpUrl, httpParams, httpType) {
xmlHttp = this.getHttp();
if (typeof httpParams == 'array') {
httpParams = httpParams.join('&');
} else if (typeof httpParams == 'object') {
var tmpParams = [];
for (var k in httpParams) {
tmpParams.push(k + '=' + httpParams[k]);
}
httpParams = tmpParams.join('&');
}
httpType = httpType.toUpperCase();
xmlHttp.open(httpType, httpUrl, true);
if (httpType == 'POST') {
xmlHttp.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
}
xmlHttp.send(httpParams);
},
flagTicket : function (url, button, ticket_id) {
var flagged;
// no flag
if (button.classList.contains('rst_not_flagged')) {
button.classList.remove('rst_not_flagged');
button.classList.add('rst_flagged');
flagged = 1;
} else {
button.classList.remove('rst_flagged');
button.classList.add('rst_not_flagged');
flagged = 0;
}
this.sendHttp(
url, {
'option' : 'com_rsticketspro',
'task' : 'ticket.flag',
'cid' : ticket_id,
'flagged': flagged
},
'POST'
);
},
disableBulk : function (value) {
value = value == 0 ? false : true;
if (document.getElementById('bulk_staff_id')) {
document.getElementById('bulk_staff_id').disabled = value;
}
if (document.getElementById('bulk_priority_id')) {
document.getElementById('bulk_priority_id').disabled = value;
}
if (document.getElementById('bulk_status_id')) {
document.getElementById('bulk_status_id').disabled = value;
}
if (document.getElementById('bulk_notify')) {
document.getElementById('bulk_notify').disabled = value;
}
if (document.getElementById('bulk_department_id')) {
document.getElementById('bulk_department_id').disabled =
value;
}
if (typeof jQuery != 'undefined') {
jQuery('#bulk_staff_id').trigger('liszt:updated');
jQuery('#bulk_priority_id').trigger('liszt:updated');
jQuery('#bulk_status_id').trigger('liszt:updated');
jQuery('#bulk_notify').trigger('liszt:updated');
}
},
departments : {},
getDepartment : function () {
if (typeof
this.departments[document.getElementsByName('jform[department_id]')[0].value]
!== 'undefined')
{
return
this.departments[document.getElementsByName('jform[department_id]')[0].value];
}
return {
id: 0,
priority: '',
uploads: {
required: false,
allowed: false,
message: '',
message_max_files: '',
message_max_size: '',
max: 0
}
};
},
changeDepartment : function () {
var department = this.getDepartment();
this.changePriority(department);
this.showFiles(department);
this.showPredefinedSubjects(department);
},
changePriority : function (department) {
document.getElementsByName('jform[priority_id]')[0].value =
department.priority;
},
showFiles : function (department) {
var containers = {
message:
document.getElementById('rst_files_message_container'),
files : document.querySelector('.rst_files_container'),
label : document.getElementById('jform_files-lbl')
};
// hide the containers
containers.message.style.display = 'none';
containers.files.classList.add('hidden');
containers.label.innerText =
Joomla.JText._('RST_TICKET_ATTACHMENTS');
if (department.uploads.allowed) {
// set the message
containers.message.innerHTML = '<p>' +
department.uploads.message + ' ' +
department.uploads.message_max_files + ' ' +
department.uploads.message_max_size + '</p>';
var currentFiles =
document.getElementsByName('jform[files][]');
// adjust the number of upload fields
if (department.uploads.max > 0 && currentFiles.length >=
department.uploads.max) {
for (var i = currentFiles.length - 1; i > department.uploads.max -
1; i--) {
currentFiles[i].parentNode.removeChild(currentFiles[i]);
}
}
if (department.uploads.required)
{
containers.label.innerText =
Joomla.JText._('RST_TICKET_ATTACHMENTS_REQUIRED');
}
// display the containers
containers.message.style.display = 'block';
containers.files.classList.remove('hidden');
}
},
addReplyFile : function () {
var department = this.getDepartment();
var currentFiles =
document.getElementsByName('ticket[files][]');
if (department.uploads.max > 0 && currentFiles.length >=
department.uploads.max) {
alert(Joomla.JText._('RST_MAX_UPLOAD_FILES_REACHED'));
} else {
var file = currentFiles[0];
var newUpload = document.createElement('input');
newUpload.setAttribute('name', 'ticket[files][]');
newUpload.setAttribute('type', 'file');
newUpload.setAttribute('id', 'jform_files' +
currentFiles.length);
newUpload.setAttribute('class', 'rst_file_block');
newUpload.className = 'rst_file_block';
var newLabel = document.createElement('label');
file.parentNode.appendChild(newLabel);
file.parentNode.appendChild(newUpload);
}
},
addSubmitFile : function () {
var department = this.getDepartment();
var currentFiles =
document.getElementsByName('jform[files][]');
if (department.uploads.max > 0 && currentFiles.length >=
department.uploads.max) {
alert(Joomla.JText._('RST_MAX_UPLOAD_FILES_REACHED'));
} else {
var file = currentFiles[0];
var newUpload = document.createElement('input');
newUpload.setAttribute('name', 'jform[files][]');
newUpload.setAttribute('type', 'file');
newUpload.setAttribute('id', 'jform_files' +
currentFiles.length);
newUpload.setAttribute('class', 'rst_file_block');
newUpload.className = 'rst_file_block';
var newLabel = document.createElement('label');
file.parentNode.appendChild(newLabel);
file.parentNode.appendChild(newUpload);
}
},
showPredefinedSubjects: function (department) {
},
populateSelect : function (select, values) {
select.options.length = 0;
for (k in values) {
var option = document.createElement('option');
option.text = values[k];
option.value = k;
// check if it findsthe [c] tag
if (option.value.indexOf('[c]') > -1) {
option.defaultSelected = true;
// we will remove the tag after we set the select true
option.text = option.text.replace('[c]', '');
option.value = option.value.replace('[c]', '');
}
try {
select.add(option, null); // standards compliant; doesn't work in
IE
}
catch (ex) {
select.add(option); // IE only
}
}
},
disableStaff : function (departmentDropdown, staffDropdown) {
var departmentText;
var departmentValue;
if (!departmentDropdown) {
if (document.getElementsByName('ticket[department_id]').length
> 0) {
departmentDropdown =
document.getElementsByName('ticket[department_id]')[0];
departmentText =
departmentDropdown.options[departmentDropdown.selectedIndex].text;
departmentValue =
departmentDropdown.options[departmentDropdown.selectedIndex].value;
} else if
(document.getElementsByName('hidden_department_id').length >
0) {
departmentText =
document.getElementsByName('hidden_department_id')[0].value;
}
} else {
departmentText =
departmentDropdown.options[departmentDropdown.selectedIndex].text;
departmentValue =
departmentDropdown.options[departmentDropdown.selectedIndex].value;
}
if (!staffDropdown) {
if (document.getElementsByName('ticket[staff_id]').length >
0) {
staffDropdown =
document.getElementsByName('ticket[staff_id]')[0];
}
}
if (!staffDropdown) {
return false;
}
if (typeof departmentText === 'undefined') {
return false;
}
var optgroups =
staffDropdown.getElementsByTagName('optgroup');
var optgroup, options;
var i;
for (i = 0; i < optgroups.length; i++) {
optgroup = optgroups[i];
options = optgroup.getElementsByTagName('option');
for (j = 0; j < options.length; j++) {
options[j].disabled = true;
if (optgroups[i].getAttribute('label') == departmentText ||
departmentValue === '0') {
options[j].disabled = false;
}
}
}
if (staffDropdown.options[staffDropdown.selectedIndex].disabled) {
var found = false;
// search if the selected staff is in this department
for (i = 0; i < optgroups.length; i++) {
optgroup = optgroups[i];
if (optgroups[i].getAttribute('label') == departmentText) {
options = optgroup.getElementsByTagName('option');
for (var j = 0; j < options.length; j++) {
if (!options[j].disabled && options[j].value ==
staffDropdown.options[staffDropdown.selectedIndex].value) {
found = true;
options[j].selected = true;
}
}
}
}
if (!found) {
staffDropdown.selectedIndex = 0;
}
}
if (typeof jQuery !== 'undefined') {
jQuery(staffDropdown).trigger('liszt:updated');
}
},
showReply : function (button) {
button.className = 'hidden';
document.getElementById('com-rsticketspro-reply-box').className
= '';
},
sendRating : function (url, rating, id) {
this.sendHttp(
url, {
'option': 'com_rsticketspro',
'task' : 'ticket.rate',
'cid' : id,
'rating': rating
},
'POST'
);
},
refreshCaptcha : function (route) {
document.getElementById('submit_captcha_image').src = route +
(route.indexOf('?') > -1 ? '&' : '?')
+ 'sid=' + Math.floor((Math.random() * 1000) + 1);
},
openMagnificModal : function(evt,modal_id) {
evt.preventDefault();
if (typeof jQuery == 'undefined') {
alert(Joomla.JText._('RST_JQUERY_NOT_FOUND'));
} else {
jQuery.magnificPopup.open({
type: 'inline',
preloader: true,
overflowY: 'scroll',
items: {
src: modal_id,
callbacks: {
beforeOpen: function () {
jQuery(modal_id).show();
},
close: function () {
jQuery(modal_id).hide();
}
}
}
});
}
},
addEvent: function(obj, evType, fn) {
if (obj.addEventListener)
{
obj.addEventListener(evType, fn, false);
return true;
}
else if (obj.attachEvent)
{
var r = obj.attachEvent("on"+evType, fn);
return r;
}
else
{
return false;
}
},
timeCounter: function(startTime) {
var start = new Date(startTime);
var end;
var timediff = start.getTimezoneOffset();
start = start.getTime();
self.chrono = function (){
end = new Date();
end = end.getTime();
if (timediff != 0) {
end = end + timediff * 60000;
}
var duration = end - start;
var seconds = Math.floor((duration / 1000) % 60),
minutes = Math.floor((duration / (1000 * 60)) % 60),
hours = Math.floor(duration / (1000 * 60 * 60));
hours = (hours < 10) ? "0" + hours : hours;
minutes = (minutes < 10) ? "0" + minutes : minutes;
seconds = (seconds < 10) ? "0" + seconds : seconds;
jQuery('.hours').html(hours);
jQuery('.minutes').html(minutes);
jQuery('.seconds').html(seconds);
setTimeout("self.chrono()", 1000);
};
self.chrono();
}
};
/*
Developed by Robert Nyman, http://www.robertnyman.com
Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
RSTicketsPro.getElementsByClassName = function (className, tag, elm) {
if (document.getElementsByClassName) {
getElementsByClassName = function (className, tag, elm) {
elm = elm || document;
var elements = elm.getElementsByClassName(className),
nodeName = (tag) ? new RegExp("\\b" + tag + "\\b",
"i") : null,
returnElements = [],
current;
for (var i = 0, il = elements.length; i < il; i += 1) {
current = elements[i];
if (!nodeName || nodeName.test(current.nodeName)) {
returnElements.push(current);
}
}
return returnElements;
};
}
else if (document.evaluate) {
getElementsByClassName = function (className, tag, elm) {
tag = tag || "*";
elm = elm || document;
var classes = className.split(" "),
classesToCheck = "",
xhtmlNamespace = "http://www.w3.org/1999/xhtml",
namespaceResolver = (document.documentElement.namespaceURI ===
xhtmlNamespace) ? xhtmlNamespace : null,
returnElements = [],
elements,
node;
for (var j = 0, jl = classes.length; j < jl; j += 1) {
classesToCheck += "[contains(concat(' ', @class, '
'), ' " + classes[j] + " ')]";
}
try {
elements = document.evaluate(".//" + tag + classesToCheck,
elm, namespaceResolver, 0, null);
}
catch (e) {
elements = document.evaluate(".//" + tag + classesToCheck,
elm, null, 0, null);
}
while ((node = elements.iterateNext())) {
returnElements.push(node);
}
return returnElements;
};
}
else {
getElementsByClassName = function (className, tag, elm) {
tag = tag || "*";
elm = elm || document;
var classes = className.split(" "),
classesToCheck = [],
elements = (tag === "*" && elm.all) ? elm.all :
elm.getElementsByTagName(tag),
current,
returnElements = [],
match;
for (var k = 0, kl = classes.length; k < kl; k += 1) {
classesToCheck.push(new RegExp("(^|\\s)" + classes[k] +
"(\\s|$)"));
}
for (var l = 0, ll = elements.length; l < ll; l += 1) {
current = elements[l];
match = false;
for (var m = 0, ml = classesToCheck.length; m < ml; m += 1) {
match = classesToCheck[m].test(current.className);
if (!match) {
break;
}
}
if (match) {
returnElements.push(current);
}
}
return returnElements;
};
}
return getElementsByClassName(className, tag, elm);
};
// Legacy functions
function rst_get_xml_http_object() {
return RSTicketsPro.getHttp();
}
function rst_flag_ticket(url, button, ticket_id) {
RSTicketsPro.flagTicket(url, button, ticket_id);
}
function rst_feedback(url, value, ticket_id) {
if (window.rsticketspro_rating.options.disabled)
return false;
rst_feedback_message();
var xmlHttp = new XMLHttpRequest();
var params = 'option=com_rsticketspro';
params += '&controller=ticket';
params += '&task=feedback';
params += '&cid=' + ticket_id;
params += '&feedback=' + value;
xmlHttp.open("POST", url, true);
//Send the proper header information along with the request
xmlHttp.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
xmlHttp.send(params);
window.rsticketspro_rating.options.disabled = true;
}
var rst_buffer;
function rst_search(value) {
if (value.length == 0) {
rst_close_search();
return;
}
if (rst_buffer)
clearTimeout(rst_buffer);
rst_buffer = setTimeout(function () {
rst_search_ajax(value);
}, 300);
}
function rst_search_ajax(value) {
var xmlHttp = new XMLHttpRequest();
var url =
'index.php?option=com_rsticketspro&task=kbsearch';
url += '&filter=' + value;
url += '&sid=' + Math.random();
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
document.getElementById('rst_livesearch').innerHTML =
xmlHttp.responseText;
document.getElementById('rst_livesearch').style.border =
'1px solid #A5ACB2';
document.getElementById('rst_livesearch').style.display =
'';
}
}
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
function rst_close_search() {
document.getElementById('rst_search_value').value =
'';
document.getElementById('rst_livesearch').style.display =
'none';
document.getElementById('rst_livesearch').innerHTML =
'';
document.getElementById('rst_livesearch').style.border =
'0px';
return false;
}
function rst_disable_staff() {
}
RSTicketsPro.removeData = function(button) {
jQuery(button).fadeOut({
complete: function() {
jQuery('#rsticketspro_remove_data_and_close_account').fadeIn();
}
});
};
RSTicketsPro.requestRemoveData = function(button) {
jQuery(button).prop('disabled',
true).addClass('disabled');
var container =
jQuery('#rsticketspro_remove_data_and_close_account');
var url = Joomla.getOptions('system.paths').root +
'/index.php';
var token = Joomla.getOptions('csrf.token');
var data = {
'option': 'com_rsticketspro',
'task': 'removedata.request'
};
data[token] = 1;
jQuery.post(url, data, function(response){
container.fadeOut({
complete: function() {
container.find('.alert-warning').removeClass('alert-warning').addClass('alert-info');
container.find('.alert').text(response);
container.fadeIn();
}
})
});
};
RSTicketsPro.initRaty = function(params) {
jQuery(document).ready(function($) {
params.click = function(score, evt) {
var url = Joomla.getOptions('system.paths').base;
var ticketId = document.getElementsByName('id')[0].value;
$(this).raty('readOnly', true);
$('#com-rsticketspro-rated-message').hide().html(Joomla.JText._('RST_TICKET_FEEDBACK_SENT')).fadeIn();
RSTicketsPro.sendRating(url +
'/index.php?option=com_rsticketspro', score, ticketId);
};
$('#star').raty(params);
});
};PK슋[��^�
js/tickets.jsnu�[���window.addEventListener('DOMContentLoaded',
function() {
var toggleBulk = function() {
document.getElementById('bulk_actions').style.display =
document.getElementsByName('boxchecked')[0].value ===
'0' ? 'none' : 'block';
}
document.getElementsByName('checkall-toggle')[0].addEventListener('click',
toggleBulk);
var elements = document.getElementsByName('cid[]');
for (var i = 0; i < elements.length; i++) {
elements[i].addEventListener('click', toggleBulk);
}
});PK슋[Q�f7"7"js/typeahead.jsnu�[���/*
=============================================================
* bootstrap-typeahead.js v2.3.2
* http://getbootstrap.com/2.3.2/javascript.html#typeahead
* =============================================================
* Copyright 2013 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the
"License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS"
BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================ */
!function($){
"use strict"; // jshint ;_;
/* TYPEAHEAD PUBLIC CLASS DEFINITION
* ================================= */
var Typeahead = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, $.fn.typeahead.defaults, options)
this.matcher = this.options.matcher || this.matcher
this.sorter = this.options.sorter || this.sorter
this.highlighter = this.options.highlighter || this.highlighter
this.updater = this.options.updater || this.updater
this.source = this.options.source
this.$menu = $(this.options.menu)
this.shown = false
this.listen()
}
Typeahead.prototype = {
constructor: Typeahead
, select: function () {
var val =
this.$menu.find('.typeahead-active').attr('data-value')
this.$element
.val(this.updater(val))
.change()
return this.hide()
}
, updater: function (item) {
return item
}
, show: function () {
var pos = $.extend({}, this.$element.position(), {
height: this.$element[0].offsetHeight
})
this.$menu
.insertAfter(this.$element)
.css({
top: pos.top + pos.height
, left: pos.left
})
.show()
this.shown = true
return this
}
, hide: function () {
this.$menu.hide()
this.shown = false
return this
}
, lookup: function (event) {
var items
this.query = this.$element.val()
if (!this.query || this.query.length < this.options.minLength) {
return this.shown ? this.hide() : this
}
items = $.isFunction(this.source) ? this.source(this.query,
$.proxy(this.process, this)) : this.source
return items ? this.process(items) : this
}
, process: function (items) {
var that = this
items = $.grep(items, function (item) {
return that.matcher(item)
})
items = this.sorter(items)
if (!items.length) {
return this.shown ? this.hide() : this
}
return this.render(items.slice(0, this.options.items)).show()
}
, matcher: function (item) {
return ~item.toLowerCase().indexOf(this.query.toLowerCase())
}
, sorter: function (items) {
var beginswith = []
, caseSensitive = []
, caseInsensitive = []
, item
while (item = items.shift()) {
if (!item.toLowerCase().indexOf(this.query.toLowerCase()))
beginswith.push(item)
else if (~item.indexOf(this.query)) caseSensitive.push(item)
else caseInsensitive.push(item)
}
return beginswith.concat(caseSensitive, caseInsensitive)
}
, highlighter: function (item) {
var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,
'\\$&')
return item.replace(new RegExp('(' + query + ')',
'ig'), function ($1, match) {
return '<strong>' + match +
'</strong>'
})
}
, render: function (items) {
var that = this
items = $(items).map(function (i, item) {
i = $(that.options.item).attr('data-value', item)
i.find('a').html(that.highlighter(item))
return i[0]
})
items.first().addClass('typeahead-active')
this.$menu.html(items)
return this
}
, next: function (event) {
var active =
this.$menu.find('.typeahead-active').removeClass('typeahead-active')
, next = active.next()
if (!next.length) {
next = $(this.$menu.find('li')[0])
}
next.addClass('typeahead-active')
}
, prev: function (event) {
var active =
this.$menu.find('.typeahead-active').removeClass('typeahead-active')
, prev = active.prev()
if (!prev.length) {
prev = this.$menu.find('li').last()
}
prev.addClass('typeahead-active')
}
, listen: function () {
this.$element
.on('focus', $.proxy(this.focus, this))
.on('blur', $.proxy(this.blur, this))
.on('keypress', $.proxy(this.keypress, this))
.on('keyup', $.proxy(this.keyup, this))
if (this.eventSupported('keydown')) {
this.$element.on('keydown', $.proxy(this.keydown, this))
}
this.$menu
.on('click', $.proxy(this.click, this))
.on('mouseenter', 'li',
$.proxy(this.mouseenter, this))
.on('mouseleave', 'li',
$.proxy(this.mouseleave, this))
}
, eventSupported: function(eventName) {
var isSupported = eventName in this.$element
if (!isSupported) {
this.$element.setAttribute(eventName, 'return;')
isSupported = typeof this.$element[eventName] ===
'function'
}
return isSupported
}
, move: function (e) {
if (!this.shown) return
switch(e.keyCode) {
case 9: // tab
case 13: // enter
case 27: // escape
e.preventDefault()
break
case 38: // up arrow
e.preventDefault()
this.prev()
break
case 40: // down arrow
e.preventDefault()
this.next()
break
}
e.stopPropagation()
}
, keydown: function (e) {
this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27])
this.move(e)
}
, keypress: function (e) {
if (this.suppressKeyPressRepeat) return
this.move(e)
}
, keyup: function (e) {
switch(e.keyCode) {
case 40: // down arrow
case 38: // up arrow
case 16: // shift
case 17: // ctrl
case 18: // alt
break
case 9: // tab
case 13: // enter
if (!this.shown) return
this.select()
break
case 27: // escape
if (!this.shown) return
this.hide()
break
default:
this.lookup()
}
e.stopPropagation()
e.preventDefault()
}
, focus: function (e) {
this.focused = true
}
, blur: function (e) {
this.focused = false
if (!this.mousedover && this.shown) this.hide()
}
, click: function (e) {
e.stopPropagation()
e.preventDefault()
this.select()
this.$element.focus()
}
, mouseenter: function (e) {
this.mousedover = true
this.$menu.find('.typeahead-active').removeClass('typeahead-active')
$(e.currentTarget).addClass('typeahead-active')
}
, mouseleave: function (e) {
this.mousedover = false
if (!this.focused && this.shown) this.hide()
}
}
/* TYPEAHEAD PLUGIN DEFINITION
* =========================== */
var old = $.fn.typeahead
$.fn.typeahead = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('typeahead')
, options = typeof option == 'object' && option
if (!data) $this.data('typeahead', (data = new
Typeahead(this, options)))
if (typeof option == 'string') data[option]()
})
}
$.fn.typeahead.defaults = {
source: []
, items: 8
, menu: '<ul class="typeahead
dropdown-menu"></ul>'
, item: '<li><a
href="#"></a></li>'
, minLength: 1
}
$.fn.typeahead.Constructor = Typeahead
/* TYPEAHEAD NO CONFLICT
* =================== */
$.fn.typeahead.noConflict = function () {
$.fn.typeahead = old
return this
}
/* TYPEAHEAD DATA-API
* ================== */
$(document).on('focus.typeahead.data-api',
'[data-provide="typeahead"]', function (e) {
var $this = $(this)
if ($this.data('typeahead')) return
$this.typeahead($this.data())
})
}(window.jQuery);
PK슋[��"Ð�js/users.jsnu�[���function
RSTicketsProSelectUser(self) {
if (window.parent) {
var func = 'jSelectUser_' +
document.getElementsByName('field')[0].value;
var alt_email;
if (typeof window.parent[func] == 'function') {
var id = self.getAttribute('data-user-value');
var name = self.getAttribute('data-user-name');
alt_email = self.getAttribute('data-alt-email');
window.parent[func](id, name);
}
if (typeof window.parent.jSelectUser == 'function') {
alt_email = self.getAttribute('data-alt-email');
window.parent.jSelectUser(self);
}
if (typeof alt_email !== 'undefined') {
var alt_email_field =
window.parent.document.getElementById('jform_alternative_email');
if (alt_email_field != null) {
alt_email_field.value = alt_email;
}
var alt_email_field_ticket =
window.parent.document.getElementById('ticket_alternative_email');
if (alt_email_field_ticket != null) {
alt_email_field_ticket.value = alt_email;
}
}
}
}PK�(�[~��
access.xmlnu�[���<?xml version="1.0"
encoding="utf-8" ?>
<access component="com_rsticketspro">
<section name="component">
<action name="core.admin" title="JACTION_ADMIN"
description="JACTION_ADMIN_COMPONENT_DESC" />
<action name="core.manage" title="JACTION_MANAGE"
description="JACTION_MANAGE_COMPONENT_DESC" />
<action name="department.create"
title="COM_RSTICKETSPRO_ACTION_DEPARTMENT_CREATE"
description="COM_RSTICKETSPRO_ACTION_DEPARTMENT_CREATE_DESC"
/>
<action name="department.delete"
title="COM_RSTICKETSPRO_ACTION_DEPARTMENT_DELETE"
description="COM_RSTICKETSPRO_ACTION_DEPARTMENT_DELETE_DESC"
/>
<action name="department.edit"
title="COM_RSTICKETSPRO_ACTION_DEPARTMENT_EDIT"
description="COM_RSTICKETSPRO_ACTION_DEPARTMENT_EDIT_DESC" />
<action name="department.edit.state"
title="COM_RSTICKETSPRO_ACTION_DEPARTMENT_EDIT_STATE"
description="COM_RSTICKETSPRO_ACTION_DEPARTMENT_EDIT_STATE_DESC"
/>
<action name="customfield.create"
title="COM_RSTICKETSPRO_ACTION_CUSTOMFIELD_CREATE"
description="COM_RSTICKETSPRO_ACTION_CUSTOMFIELD_CREATE_DESC"
/>
<action name="customfield.delete"
title="COM_RSTICKETSPRO_ACTION_CUSTOMFIELD_DELETE"
description="COM_RSTICKETSPRO_ACTION_CUSTOMFIELD_DELETE_DESC"
/>
<action name="customfield.edit"
title="COM_RSTICKETSPRO_ACTION_CUSTOMFIELD_EDIT"
description="COM_RSTICKETSPRO_ACTION_CUSTOMFIELD_EDIT_DESC"
/>
<action name="customfield.edit.state"
title="COM_RSTICKETSPRO_ACTION_CUSTOMFIELD_EDIT_STATE"
description="COM_RSTICKETSPRO_ACTION_CUSTOMFIELD_EDIT_STATE_DESC"
/>
<action name="group.create"
title="COM_RSTICKETSPRO_ACTION_GROUP_CREATE"
description="COM_RSTICKETSPRO_ACTION_GROUP_CREATE_DESC" />
<action name="group.delete"
title="COM_RSTICKETSPRO_ACTION_GROUP_DELETE"
description="COM_RSTICKETSPRO_ACTION_GROUP_DELETE_DESC" />
<action name="group.edit"
title="COM_RSTICKETSPRO_ACTION_GROUP_EDIT"
description="COM_RSTICKETSPRO_ACTION_GROUP_EDIT_DESC" />
<action name="staff.create"
title="COM_RSTICKETSPRO_ACTION_STAFF_CREATE"
description="COM_RSTICKETSPRO_ACTION_STAFF_CREATE_DESC" />
<action name="staff.delete"
title="COM_RSTICKETSPRO_ACTION_STAFF_DELETE"
description="COM_RSTICKETSPRO_ACTION_STAFF_DELETE_DESC" />
<action name="staff.edit"
title="COM_RSTICKETSPRO_ACTION_STAFF_EDIT"
description="COM_RSTICKETSPRO_ACTION_STAFF_EDIT_DESC" />
<action name="priority.create"
title="COM_RSTICKETSPRO_ACTION_PRIORITY_CREATE"
description="COM_RSTICKETSPRO_ACTION_PRIORITY_CREATE_DESC" />
<action name="priority.delete"
title="COM_RSTICKETSPRO_ACTION_PRIORITY_DELETE"
description="COM_RSTICKETSPRO_ACTION_PRIORITY_DELETE_DESC" />
<action name="priority.edit"
title="COM_RSTICKETSPRO_ACTION_PRIORITY_EDIT"
description="COM_RSTICKETSPRO_ACTION_PRIORITY_EDIT_DESC" />
<action name="priority.edit.state"
title="COM_RSTICKETSPRO_ACTION_PRIORITY_EDIT_STATE"
description="COM_RSTICKETSPRO_ACTION_PRIORITY_EDIT_STATE_DESC"
/>
<action name="status.create"
title="COM_RSTICKETSPRO_ACTION_STATUS_CREATE"
description="COM_RSTICKETSPRO_ACTION_STATUS_CREATE_DESC" />
<action name="status.delete"
title="COM_RSTICKETSPRO_ACTION_STATUS_DELETE"
description="COM_RSTICKETSPRO_ACTION_STATUS_DELETE_DESC" />
<action name="status.edit"
title="COM_RSTICKETSPRO_ACTION_STATUS_EDIT"
description="COM_RSTICKETSPRO_ACTION_STATUS_EDIT_DESC" />
<action name="status.edit.state"
title="COM_RSTICKETSPRO_ACTION_STATUS_EDIT_STATE"
description="COM_RSTICKETSPRO_ACTION_STATUS_EDIT_STATE_DESC"
/>
<action name="email.edit"
title="COM_RSTICKETSPRO_ACTION_EMAIL_EDIT"
description="COM_RSTICKETSPRO_ACTION_EMAIL_EDIT_DESC" />
<action name="email.edit.state"
title="COM_RSTICKETSPRO_ACTION_EMAIL_EDIT_STATE"
description="COM_RSTICKETSPRO_ACTION_EMAIL_EDIT_STATE_DESC"
/>
<action name="kbcategory.create"
title="COM_RSTICKETSPRO_ACTION_KBCATEGORY_CREATE"
description="COM_RSTICKETSPRO_ACTION_KBCATEGORY_CREATE_DESC"
/>
<action name="kbcategory.delete"
title="COM_RSTICKETSPRO_ACTION_KBCATEGORY_DELETE"
description="COM_RSTICKETSPRO_ACTION_KBCATEGORY_DELETE_DESC"
/>
<action name="kbcategory.edit"
title="COM_RSTICKETSPRO_ACTION_KBCATEGORY_EDIT"
description="COM_RSTICKETSPRO_ACTION_KBCATEGORY_EDIT_DESC" />
<action name="kbcategory.edit.state"
title="COM_RSTICKETSPRO_ACTION_KBCATEGORY_EDIT_STATE"
description="COM_RSTICKETSPRO_ACTION_KBCATEGORY_EDIT_STATE_DESC"
/>
<action name="kbarticle.create"
title="COM_RSTICKETSPRO_ACTION_KBARTICLE_CREATE"
description="COM_RSTICKETSPRO_ACTION_KBARTICLE_CREATE_DESC"
/>
<action name="kbarticle.delete"
title="COM_RSTICKETSPRO_ACTION_KBARTICLE_DELETE"
description="COM_RSTICKETSPRO_ACTION_KBARTICLE_DELETE_DESC"
/>
<action name="kbarticle.edit"
title="COM_RSTICKETSPRO_ACTION_KBARTICLE_EDIT"
description="COM_RSTICKETSPRO_ACTION_KBARTICLE_EDIT_DESC" />
<action name="kbarticle.edit.state"
title="COM_RSTICKETSPRO_ACTION_KBARTICLE_EDIT_STATE"
description="COM_RSTICKETSPRO_ACTION_KBARTICLE_EDIT_STATE_DESC"
/>
<action name="kbrule.create"
title="COM_RSTICKETSPRO_ACTION_KBRULE_CREATE"
description="COM_RSTICKETSPRO_ACTION_KBRULE_CREATE_DESC" />
<action name="kbrule.delete"
title="COM_RSTICKETSPRO_ACTION_KBRULE_DELETE"
description="COM_RSTICKETSPRO_ACTION_KBRULE_DELETE_DESC" />
<action name="kbrule.edit"
title="COM_RSTICKETSPRO_ACTION_KBRULE_EDIT"
description="COM_RSTICKETSPRO_ACTION_KBRULE_EDIT_DESC" />
<action name="kbrule.edit.state"
title="COM_RSTICKETSPRO_ACTION_KBRULE_EDIT_STATE"
description="COM_RSTICKETSPRO_ACTION_KBRULE_EDIT_STATE_DESC"
/>
</section>
</access>PK�(�[q��FF
config.xmlnu�[���<?xml version="1.0"
encoding="utf-8"?>
<config>
<fieldset name="permissions"
label="JCONFIG_PERMISSIONS_LABEL"
description="JCONFIG_PERMISSIONS_DESC">
<field name="rules" type="rules"
label="JCONFIG_PERMISSIONS_LABEL" filter="rules"
component="com_rsticketspro" section="component">
</field>
</fieldset>
</config>PK�(�[M�|Fzzcontroller.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JLoader::register('RsticketsproController', JPATH_SITE .
'/components/com_rsticketspro/controller.php');PK�(�[w��i� � controllers/configuration.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerConfiguration extends JControllerLegacy
{
public function __construct($config = array())
{
parent::__construct($config);
$user = JFactory::getUser();
if (!$user->authorise('core.admin',
'com_rsticketspro'))
{
$app = JFactory::getApplication();
$app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'),
'error');
$app->redirect(JRoute::_('index.php?option=com_rsticketspro',
false));
}
$this->registerTask('apply', 'save');
}
public function cancel()
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro',
false));
}
public function save()
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$app = JFactory::getApplication();
$input = $app->input;
$data = $input->get('jform', array(), 'array');
$model = $this->getModel('configuration');
$form = $model->getForm();
// Validate the posted data.
$return = $model->validate($form, $data);
// Check for validation errors.
if ($return === false)
{
// Get the validation messages.
$errors = $model->getErrors();
// Push up to three validation messages out to the user.
for ($i = 0, $n = count($errors); $i < $n && $i < 3;
$i++)
{
if ($errors[$i] instanceof Exception)
{
$app->enqueueMessage($errors[$i]->getMessage(),
'warning');
}
else
{
$app->enqueueMessage($errors[$i], 'warning');
}
}
// Redirect back to the edit screen.
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=configuration',
false));
return false;
}
$data = $return;
if (!$model->save($data))
{
$this->setMessage($model->getError(), 'error');
}
else
{
$this->setMessage(JText::_('RST_CONFIGURATION_OK',
'info'));
}
$task = $this->getTask();
if ($task == 'save')
{
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro',
false));
}
elseif ($task == 'apply')
{
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=configuration',
false));
}
}
}PK�(�[�#�controllers/cron.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerCron extends JControllerForm
{
public function preview()
{
JFactory::getApplication()->triggerEvent('onCronTestConnection');
}
}PK�(�[��{r��controllers/cronlog.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerCronlog extends JControllerAdmin
{
/**
* Delete all Cron Logs
*/
public function deleteAll()
{
$this->checkToken();
// Get databse connector
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->delete()
->from($db->qn('#__rsticketspro_accounts_log'));
$db->setQuery($query);
$db->execute();
$this->setRedirect('index.php?option=com_rsticketspro&view=cronlog',
JText::_('RST_CRON_LOG_DELETED_ALL'));
}
}PK�(�[@����controllers/crons.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerCrons extends JControllerAdmin
{
public function getModel($name = 'Cron', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
}PK�(�[��uuucontrollers/customfield.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerCustomfield extends JControllerForm
{
public function allowAdd($data = array())
{
return JFactory::getUser()->authorise('customfield.create',
'com_rsticketspro');
}
public function allowEdit($data = array(), $key = 'id')
{
return JFactory::getUser()->authorise('customfield.edit',
'com_rsticketspro');
}
}PK�(�[Ty�controllers/customfields.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerCustomfields extends JControllerAdmin
{
public function getModel($name = 'Customfield', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
}PK�(�[zs�4rrcontrollers/department.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerDepartment extends JControllerForm
{
public function allowAdd($data = array())
{
return JFactory::getUser()->authorise('department.create',
'com_rsticketspro');
}
public function allowEdit($data = array(), $key = 'id')
{
return JFactory::getUser()->authorise('department.edit',
'com_rsticketspro');
}
}PK�(�[��
"controllers/departments.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerDepartments extends JControllerAdmin
{
public function getModel($name = 'Department', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
}PK�(�[l�����controllers/email.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerEmail extends JControllerForm
{
public function allowEdit($data = array(), $key = 'id')
{
return JFactory::getUser()->authorise('email.edit',
'com_rsticketspro');
}
}PK�(�[R/��controllers/emails.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerEmails extends JControllerAdmin
{
public function getModel($name = 'Email', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
}PK�(�[�H�6cccontrollers/group.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerGroup extends JControllerForm
{
public function allowAdd($data = array())
{
return JFactory::getUser()->authorise('group.create',
'com_rsticketspro');
}
public function allowEdit($data = array(), $key = 'id')
{
return JFactory::getUser()->authorise('group.edit',
'com_rsticketspro');
}
}PK�(�[�Q��controllers/groups.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerGroups extends JControllerAdmin
{
public function getModel($name = 'Group', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
}PK�(�[�#o,,controllers/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[D�oocontrollers/kbarticle.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerKbarticle extends JControllerForm
{
public function allowAdd($data = array())
{
return JFactory::getUser()->authorise('kbarticle.create',
'com_rsticketspro');
}
public function allowEdit($data = array(), $key = 'id')
{
return JFactory::getUser()->authorise('kbarticle.edit',
'com_rsticketspro');
}
}PK�(�[5^#Ncontrollers/kbarticles.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerKbarticles extends JControllerAdmin
{
public function getModel($name = 'Kbarticle', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
}PK�(�[�Qcontrollers/kbcategories.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerKbcategories extends JControllerAdmin
{
public function getModel($name = 'Kbcategory', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
}PK�(�[�:6rrcontrollers/kbcategory.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerKbcategory extends JControllerForm
{
public function allowAdd($data = array())
{
return JFactory::getUser()->authorise('kbcategory.create',
'com_rsticketspro');
}
public function allowEdit($data = array(), $key = 'id')
{
return JFactory::getUser()->authorise('kbcategory.edit',
'com_rsticketspro');
}
}PK�(�[o;Ԟ�)�)controllers/kbconvert.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerKbconvert extends JControllerLegacy
{
public function cancel()
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$input = JFactory::getApplication()->input;
$data = $input->get('jform', array(),
'array');
$ticketId = $data['ticket_id'];
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. $ticketId, false));
}
public function save()
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$input = JFactory::getApplication()->input;
$data = $input->get('jform', array(),
'array');
$ticketId = $data['ticket_id'];
$model = $this->getModel('kbconvert');
if (!$model->save($data))
{
$this->setMessage($model->getError(), 'error');
}
else
{
$this->setMessage(JText::_('RST_KB_ARTICLE_SAVED_OK',
'info'));
}
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. $ticketId, false));
}
public function manual()
{
// Check for request forgeries
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$ticketId =
JFactory::getApplication()->input->getInt('id');
$model = $this->getModel('ticket');
// small check to determine if it's already been converted
if ($article = $model->isConvertedToKB($ticketId))
{
$url =
JRoute::_('index.php?option=com_rsticketspro&task=kbarticle.edit&id='.$article->id);
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='.$ticketId,
false), JText::sprintf('RST_KB_ALREADY_CONVERTED', $url,
$article->name), 'notice');
}
else
{
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=kbconvert&ticket_id='
. $ticketId, false));
}
}
public function automatic()
{
// Check for request forgeries
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$db = JFactory::getDbo();
$ticketId =
JFactory::getApplication()->input->getInt('id');
$model = $this->getModel('ticket');
$this->setMessage(JText::_('RST_KB_NO_RULE'),
'notice');
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. $ticketId, false));
// small check to determine if it's already been converted
if ($article = $model->isConvertedToKB($ticketId))
{
$url =
JRoute::_('index.php?option=com_rsticketspro&task=kbarticle.edit&id='
. $article->id);
$this->setMessage(JText::sprintf('RST_KB_ALREADY_CONVERTED',
$url, $article->name), 'notice');
return false;
}
// get ticket
$ticket = $model->getItem();
$ticketMessages = $model->getTicketMessages($ticketId, true);
// get rules
$query = $db->getQuery(true);
$query->select('*')
->from($db->qn('#__rsticketspro_kb_rules'))
->where($db->qn('published').'='.$db->q(1));
$db->setQuery($query);
$rules = $db->loadObjectList();
foreach ($rules as $rule)
{
$result = array();
$rule->conditions = unserialize($rule->conditions);
if (!empty($rule->conditions))
{
$conditionCount = count($rule->conditions);
$hasOr = false;
foreach ($rule->conditions as $conditionCounter => $condition)
{
if ($condition->connector == 'OR' &&
$conditionCounter < $conditionCount - 1)
{
$hasOr = true;
}
switch ($condition->type)
{
case 'department':
if ($condition->condition == 'eq')
{
$result[] = $ticket->department_id == $condition->value;
}
elseif ($condition->condition == 'neq')
{
$result[] = $ticket->department_id != $condition->value;
}
elseif ($condition->condition == 'like')
{
$result[] = strpos($ticket->department, $condition->value)
!== false;
}
elseif ($condition->condition == 'notlike')
{
$result[] = strpos($ticket->department, $condition->value)
=== false;
}
break;
case 'subject':
if ($condition->condition == 'eq')
{
$result[] = $ticket->subject == $condition->value;
}
elseif ($condition->condition == 'neq')
{
$result[] = $ticket->subject != $condition->value;
}
elseif ($condition->condition == 'like')
{
$result[] = strpos($ticket->subject, $condition->value) !==
false;
}
elseif ($condition->condition == 'notlike')
{
$result[] = strpos($ticket->subject, $condition->value) ===
false;
}
break;
case 'priority':
if ($condition->condition == 'eq')
{
$result[] = $ticket->priority_id == $condition->value;
}
elseif ($condition->condition == 'neq')
{
$result[] = $ticket->priority_id != $condition->value;
}
elseif ($condition->condition == 'like')
{
$result[] = strpos($ticket->priority->name,
$condition->value) !== false;
}
elseif ($condition->condition == 'notlike')
{
$result[] = strpos($ticket->priority->name,
$condition->value) === false;
}
break;
case 'status':
if ($condition->condition == 'eq')
{
$result[] = $ticket->status_id == $condition->value;
}
elseif ($condition->condition == 'neq')
{
$result[] = $ticket->status_id != $condition->value;
}
elseif ($condition->condition == 'like')
{
$result[] = strpos($ticket->status->name,
$condition->value) !== false;
}
elseif ($condition->condition == 'notlike')
{
$result[] = strpos($ticket->status->name,
$condition->value) === false;
}
break;
case 'message':
if ($condition->condition == 'eq')
{
$tmp = false;
foreach ($ticketMessages as $message)
{
if ($message->message == $condition->value)
{
$tmp = true;
break;
}
}
$result[] = $tmp;
}
elseif ($condition->condition == 'neq')
{
$tmp = true;
foreach ($ticketMessages as $message)
{
if ($message->message == $condition->value)
{
$tmp = false;
break;
}
}
$result[] = $tmp;
}
elseif ($condition->condition == 'like')
{
$tmp = false;
foreach ($ticketMessages as $message)
{
if (strpos($message->message, $condition->value) !== false)
{
$tmp = true;
break;
}
}
$result[] = $tmp;
}
elseif ($condition->condition == 'notlike')
{
$tmp = true;
foreach ($ticketMessages as $message)
{
if (strpos($message->message, $condition->value) !== false)
{
$tmp = false;
break;
}
}
$result[] = $tmp;
}
break;
case 'custom_field':
$query = $db->getQuery(true);
$query->select($db->qn('cfv.value'))
->select($db->qn('cf.type'))
->from($db->qn('#__rsticketspro_custom_fields_values',
'cfv'))
->join('left',
$db->qn('#__rsticketspro_custom_fields',
'cf').' ON
('.$db->qn('cf.id').'='.$db->qn('cfv.custom_field_id').')')
->where($db->qn('cfv.custom_field_id').'='.$db->q($condition->custom_field))
->where($db->qn('cfv.ticket_id').'='.$db->q($ticketId))
->where($db->qn('cf.published').'='.$db->q(1));
$db->setQuery($query);
if ($field = $db->loadObject())
{
$value = $field->value;
$types = array('select', 'multipleselect',
'checkbox', 'radio');
if ($condition->condition == 'eq')
{
if (in_array($field->type, $types))
{
$value = explode("\n", $value);
}
if (is_array($value))
{
$tmp = false;
foreach ($value as $val)
{
if ($val == $condition->value)
{
$tmp = true;
break;
}
}
$result[] = $tmp;
}
else
{
$result[] = $value == $condition->value;
}
}
elseif ($condition->condition == 'neq')
{
if (in_array($field->type, $types))
{
$value = explode("\n", $value);
}
if (is_array($value))
{
$tmp = true;
foreach ($value as $val)
{
if ($val == $condition->value)
{
$tmp = false;
break;
}
}
$result[] = $tmp;
}
else
{
$result[] = $value != $condition->value;
}
}
elseif ($condition->condition == 'like')
{
$result[] = strpos($value, $condition->value) !== false;
}
elseif ($condition->condition == 'notlike')
{
$result[] = strpos($value, $condition->value) === false;
}
}
else
{
$result[] = false;
}
break;
}
}
// No 'OR' clause means all results should be true because
we're using 'AND'
if (!$hasOr)
{
$result = !in_array(false, $result);
}
else
{
// Search for a single true value in the array
$result = in_array(true, $result);
}
// Found rule
if ($result)
{
$params = (object) array(
'name' => $ticket->subject,
'category_id' => $rule->category_id,
'publish_article' => $rule->publish_article,
'private' => $rule->private
);
require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/ticket.php';
$success = RSTicketsProTicketHelper::convert($ticket, $ticketMessages,
$params);
if ($success)
{
$this->setMessage(JText::sprintf('RST_KB_ARTICLE_SAVED_OK_AUTOMATIC',
$rule->name));
return true;
}
}
}
}
return false;
}
}PK�(�[{ffcontrollers/kbrule.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerKbrule extends JControllerForm
{
public function allowAdd($data = array())
{
return JFactory::getUser()->authorise('kbrule.create',
'com_rsticketspro');
}
public function allowEdit($data = array(), $key = 'id')
{
return JFactory::getUser()->authorise('kbrule.edit',
'com_rsticketspro');
}
}PK�(�[g}\�$$controllers/kbrules.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerKbrules extends JControllerAdmin
{
public function getModel($name = 'Kbrule', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
public function showDepartments()
{
header('Content-Type: text/javascript; charset=utf-8');
$model = $this->getModel('kbrules');
$departments = $model->getDepartments();
echo json_encode($departments);
die();
}
public function showPriorities()
{
header('Content-Type: text/javascript; charset=utf-8');
$model = $this->getModel('kbrules');
$priorities = $model->getPriorities();
echo json_encode($priorities);
die();
}
public function showStatuses()
{
header('Content-Type: text/javascript; charset=utf-8');
$model = $this->getModel('kbrules');
$statuses = $model->getStatuses();
echo json_encode($statuses);
die();
}
public function showCustomFields()
{
header('Content-Type: text/javascript; charset=utf-8');
$model = $this->getModel('kbrules');
$departments = $model->getDepartments();
$custom_fields = $model->getCustomFields();
echo json_encode(array('departments' => $departments,
'options' => $custom_fields));
die();
}
public function showCustomFieldValues()
{
header('Content-Type: text/javascript; charset=utf-8');
$model = $this->getModel('kbrules');
$values = $model->getCustomFieldValues();
echo json_encode($values);
die();
}
}PK�(�[+%��wwcontrollers/note.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerNote extends JControllerForm
{
protected function getRedirectToListAppend()
{
$append = parent::getRedirectToListAppend();
$append .= '&ticket_id=' .
JFactory::getApplication()->input->getInt('ticket_id');
return $append;
}
protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
{
$append = parent::getRedirectToItemAppend($recordId, $urlVar);
$append .= '&ticket_id=' .
JFactory::getApplication()->input->getInt('ticket_id');
return $append;
}
protected function allowAdd($data = array())
{
$permissions = RSTicketsProHelper::getCurrentPermissions();
return $permissions->add_note;
}
protected function allowEdit($data = array(), $key = 'id')
{
$permissions = RSTicketsProHelper::getCurrentPermissions();
$model = $this->getModel();
$table = $model->getTable();
$userId = JFactory::getUser()->id;
// load data
$table->load($data[$key]);
return ($permissions->update_note && $table->user_id ==
$userId) || ($permissions->update_note_staff &&
$table->user_id != $userId);
}
}PK�(�[LaJ controllers/notes.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerNotes extends JControllerAdmin
{
public function getModel($name = 'Note', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
public function delete()
{
parent::delete();
$this->setRedirect(JRoute::_('index.php?option=' .
$this->option . '&view=' . $this->view_list .
'&ticket_id=' .
JFactory::getApplication()->input->getInt('ticket_id') .
'&tmpl=component', false));
}
}PK�(�[�]���
controllers/predefinedsearch.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerPredefinedsearch extends JControllerForm
{
protected function allowAdd($data = array())
{
// only staff members can add predefined searches
return RSTicketsProHelper::isStaff();
}
protected function allowEdit($data = array(), $key = 'id')
{
// only staff members can edit predefined searches
if (!RSTicketsProHelper::isStaff())
{
return false;
}
// check if we're editing our own search
if (!empty($data[$key]))
{
return $this->isSameUser($data[$key]);
}
return true;
}
protected function allowSave($data, $key = 'id')
{
// only staff members can save
if (!RSTicketsProHelper::isStaff())
{
return false;
}
// check if we're saving our own search
if (!empty($data[$key]))
{
return $this->isSameUser($data[$key]);
}
return true;
}
protected function isSameUser($id)
{
$model = $this->getModel();
$table = $model->getTable();
// not found
if (!$table->load($id))
{
return false;
}
return $table->user_id == JFactory::getUser()->id;
}
public function perform()
{
$app = JFactory::getApplication();
$id = $app->input->getInt('id');
if (!RSTicketsProHelper::isStaff() || !$this->isSameUser($id))
{
return
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=tickets',
false));
}
// load the predefined search
$model = $this->getModel();
$table = $model->getTable();
$table->load($id);
// perform it
$tickets = $this->getModel('Tickets');
$tickets->performSearch($table);
return
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=tickets',
false));
}
}PK�(�[��wJ��"controllers/predefinedsearches.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerPredefinedsearches extends JControllerAdmin
{
public function getModel($name = 'Predefinedsearch', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
public function cancel()
{
$this->setRedirect('index.php?option=com_rsticketspro&view=tickets');
}
}PK�(�[��N=
controllers/priorities.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerPriorities extends JControllerAdmin
{
public function getModel($name = 'Priority', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
}PK�(�[�L��llcontrollers/priority.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerPriority extends JControllerForm
{
public function allowAdd($data = array())
{
return JFactory::getUser()->authorise('priority.create',
'com_rsticketspro');
}
public function allowEdit($data = array(), $key = 'id')
{
return JFactory::getUser()->authorise('priority.edit',
'com_rsticketspro');
}
}PK�(�[L�"UUcontrollers/removedata.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2018 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerRemovedata extends JControllerLegacy
{
public function process()
{
JSession::checkToken() or
jexit(JText::_('JINVALID_TOKEN'));
$id =
JFactory::getApplication()->input->getInt('id');
$me = JFactory::getUser();
$user = JFactory::getUser($id);
try
{
if ($me->id == $user->id)
{
throw new
Exception(JText::_('COM_RSTICKETSPRO_CANNOT_ANONYMISE_LOGGED_IN_USER'));
}
if ($user->authorise('core.admin'))
{
throw new
Exception(JText::_('COM_RSTICKETSPRO_CANNOT_ANONYMISE_SUPER_USER'));
}
RSTicketsProHelper::anonymise($id);
jexit(json_encode(array(
'message' =>
array(JText::_('COM_RSTICKETSPRO_DATA_HAS_BEEN_SUCCESSFULLY_ANONYMISED'))
)));
}
catch (Exception $e)
{
jexit(json_encode(array(
'error' => array($e->getMessage())
)));
}
}
}PK�(�[�=��]]controllers/search.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerSearch extends JControllerLegacy
{
public function cancel()
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=tickets',
false));
}
public function reset()
{
$model = $this->getModel('tickets');
$model->resetSearch();
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=tickets',
false));
}
public function advanced()
{
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=search',
false));
}
}PK�(�[�&�ffcontrollers/searches.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
require_once
JPATH_SITE.'/components/com_rsticketspro/controllers/searches.php';PK�(�[�G)<66controllers/signature.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerSignature extends JControllerForm
{
protected $view_item = 'signature';
protected $view_list = 'tickets';
public function cancel($key = null)
{
$this->checkToken();
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=tickets',
false));
}
public function save($key = null, $urlVar = null)
{
$this->checkToken();
$input = JFactory::getApplication()->input;
$data = $input->get('jform', array(), 'array');
$model = $this->getModel('signature');
if (!$model->save($data))
{
$this->setMessage($model->getError(), 'error');
}
else
{
$this->setMessage(JText::_('RST_CONFIGURATION_OK'));
}
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=signature',
false));
}
}PK�(�['>F҈�controllers/staff.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerStaff extends JControllerForm
{
protected $view_list = 'staffs';
public function allowAdd($data = array())
{
return JFactory::getUser()->authorise('staff.create',
'com_rsticketspro');
}
public function allowEdit($data = array(), $key = 'id')
{
return JFactory::getUser()->authorise('staff.edit',
'com_rsticketspro');
}
}PK�(�[W�-controllers/staffs.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerStaffs extends JControllerAdmin
{
public function getModel($name = 'Staff', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
}PK�(�[f�S���controllers/status.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerStatus extends JControllerForm
{
protected $view_list = 'statuses';
public function allowAdd($data = array())
{
return JFactory::getUser()->authorise('status.create',
'com_rsticketspro');
}
public function allowEdit($data = array(), $key = 'id')
{
return JFactory::getUser()->authorise('status.edit',
'com_rsticketspro');
}
}PK�(�[z�j� controllers/statuses.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerStatuses extends JControllerAdmin
{
public function getModel($name = 'Status', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
}PK�(�[���controllers/submit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerSubmit extends JControllerLegacy
{
protected $option = 'com_rsticketspro';
protected $context = 'submit';
public function showForm()
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=submit',
false));
}
public function cancel()
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=tickets',
false));
}
public function save()
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$app = JFactory::getApplication();
$input = $app->input;
$data = $input->get('jform', array(),
'array');
$fields = $input->get('rst_custom_fields', array(),
'array');
$files = $input->files->get('jform', null,
'raw');
$model = $this->getModel('submit');
$context = "$this->option.edit.$this->context";
$redirect = RSTicketsProHelper::getConfig('submit_redirect');
if (!$model->save($data, $fields, is_array($files) &&
isset($files['files']) ? $files['files'] : array()))
{
// Save the data in the session.
$app->setUserState($context . '.data', $data);
$app->setUserState($context . '.fields', $fields);
$this->setMessage($model->getError(), 'error');
}
else
{
// Clear the data in the session
$app->setUserState($context . '.data', null);
$app->setUserState($context . '.fields', null);
$this->setMessage(JText::_('RST_TICKET_SUBMIT_OK',
'info'));
if ($app->isClient('site') && !empty($redirect))
{
return $this->setRedirect($redirect);
}
}
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=submit',
false));
}
}PK�(�[KTl��[�[controllers/ticket.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerTicket extends JControllerLegacy
{
protected $option = 'com_rsticketspro';
protected $context = 'ticket';
public function __construct($config = array())
{
parent::__construct($config);
$this->registerTask('reopen',
'changeTicketStatus');
$this->registerTask('close',
'changeTicketStatus');
}
protected function getLoginLink()
{
$link = base64_encode((string) JUri::getInstance());
return
RSTicketsProHelper::route('index.php?option=com_users&view=login&return='
. $link, false);
}
protected function getListingLink()
{
return
RSTicketsProHelper::route('index.php?option=com_rsticketspro&view=tickets',
false);
}
public function flag()
{
$app = JFactory::getApplication();
$cid = $app->input->getInt('cid');
$flagged = $app->input->getInt('flagged');
$model = $this->getModel('ticket');
// logged in?
if ($model->isGuest())
{
return $this->setRedirect($this->getLoginLink());
}
// only staff members can call this
if (!$model->isStaff())
{
$app->close();
}
// check permissions for the ticket
if (!$model->hasPermission($cid))
{
$app->enqueueMessage($model->getError(),
'warning');
return $this->setRedirect($this->getListingLink());
}
@ob_end_clean();
$model->setFlag($cid, $flagged);
echo '1';
$app->close();
}
public function rate()
{
$app = JFactory::getApplication();
$cid = $app->input->getInt('cid');
$rating = $app->input->getInt('rating');
$access_code = $app->input->get('access_code');
$model = $this->getModel('ticket');
if (strlen($access_code))
{
$ticket = $model->getTicket($cid);
$customer = JFactory::getUser($ticket->customer_id);
if ((int) $ticket->feedback != 0)
{
$app->redirect(JUri::root(),
JText::_('RST_EMAIL_ALREADY_RATED'));
}
if ($access_code !== md5($ticket->id . ' | ' .
$customer->email))
{
throw new
Exception(JText::_('RST_EMAIL_ACCESS_CODE_INCORRECT'), 403);
}
$model->setRating($cid, $rating);
$app->redirect(JUri::root(),
JText::_('RST_FEEDBACK_RECEIVED_FROM_EMAIL'));
}
else
{
// logged in?JText::_('RST_YOU_HAVE_TO_BE_LOGGED_IN')
if ($model->isGuest())
{
throw new Exception(JText::_('RST_YOU_HAVE_TO_BE_LOGGED_IN'),
403);
}
// no point in trying to rate when config doesn't allow it
if (!RSTicketsProHelper::getConfig('show_ticket_voting'))
{
$app->close();
}
// only customers can call this
if ($model->isStaff())
{
$app->close();
}
// check permissions for the ticket
if (!$model->hasPermission($cid))
{
throw new Exception($model->getError(), 403);
}
@ob_end_clean();
$model->setRating($cid, $rating);
echo '1';
$app->close();
}
}
public function delete()
{
$app = JFactory::getApplication();
$cid = $app->input->getInt('cid');
$model = $this->getModel('ticket');
// logged in?
if ($model->isGuest())
{
return $this->setRedirect($this->getLoginLink());
}
// only staff members can call this
if (!$model->isStaff())
{
throw new Exception(JText::_('RST_CANNOT_DELETE_TICKETS'),
403);
}
if (!$model->hasPermission($cid))
{
$app->enqueueMessage($model->getError(),
'warning');
return $this->setRedirect($this->getListingLink());
}
$permissions = $model->getStaffPermissions();
if ($permissions->delete_ticket)
{
$model->delete($cid);
$this->setMessage(JText::_('RST_TICKET_DELETED_OK'));
}
else
{
$this->setMessage(JText::sprintf('RST_TICKET_NOT_DELETED',
$cid), 'error');
}
$this->setRedirect($this->getListingLink());
}
public function notify()
{
// this is called only when autoclose is enabled
if (!RSTicketsProHelper::getConfig('autoclose_enabled'))
{
return $this->setRedirect($this->getListingLink());
}
$app = JFactory::getApplication();
$cid = $app->input->getInt('cid');
$model = $this->getModel('ticket');
// logged in?
if ($model->isGuest())
{
return $this->setRedirect($this->getLoginLink());
}
// only staff members can call this
if (!$model->isStaff())
{
throw new Exception(JText::_('RST_CANNOT_NOTIFY_TICKETS'),
403);
}
if (!$model->hasPermission($cid))
{
$app->enqueueMessage($model->getError(),
'warning');
return $this->setRedirect($this->getListingLink());
}
$model->notify($cid);
$this->setMessage(JText::_('RST_TICKET_NOTIFIED_OK'));
$this->setRedirect($this->getListingLink());
}
public function bulkUpdate()
{
$app = JFactory::getApplication();
$cids = $app->input->get('cid', array(),
'array');
$model = $this->getModel('ticket');
// logged in?
if ($model->isGuest())
{
return $this->setRedirect($this->getLoginLink());
}
// only staff members can call this
if (!$model->isStaff())
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TICKETS'),
403);
}
$department_id =
$app->input->getInt('bulk_department_id', 0);
$staff_id = $app->input->getInt('bulk_staff_id', -1);
$priority_id = $app->input->getInt('bulk_priority_id');
$status_id = $app->input->getInt('bulk_status_id');
$notify = $app->input->getInt('bulk_notify');
$delete = $app->input->getInt('bulk_delete');
// no point notifying if autoclose is disabled
if (!RSTicketsProHelper::getConfig('autoclose_enabled'))
{
$notify = 0;
}
// get staff member permissions
$permissions = $model->getStaffPermissions();
foreach ($cids as $cid)
{
// first, let's make sure this ticket can be opened by the current
user
if ($model->hasPermission($cid))
{
// if we are deleting tickets then it doesn't make any sense to
check the other options
if ($delete)
{
// check for delete permission & if ticket has been deleted
if (!$permissions->delete_ticket || !$model->delete($cid))
{
$app->enqueueMessage(JText::sprintf('RST_TICKET_NOT_DELETED',
$cid), 'error');
}
}
else
{
$data = array();
// can assign?
if ($permissions->assign_tickets && $staff_id > -1)
{
$data['staff_id'] = $staff_id;
}
// can update ticket information?
if ($permissions->update_ticket)
{
if ($priority_id)
{
$data['priority_id'] = $priority_id;
}
if ($status_id)
{
$data['status_id'] = $status_id;
}
}
if ($permissions->move_ticket)
{
$data['department_id'] = $department_id;
}
if ($data)
{
$model->updateInfo($cid, $data);
}
// let's see if we need to notify as well
if ($notify)
{
$model->notify($cid);
}
}
}
}
if ($delete)
{
$this->setMessage(JText::_('RST_TICKETS_DELETED_OK'));
}
else
{
$this->setMessage(JText::_('RST_TICKETS_UPDATED_OK'));
if ($notify)
{
$this->setMessage(JText::_('RST_TICKET_NOTIFIED_OK'));
}
}
$this->setRedirect($this->getListingLink());
}
// used to update custom fields
public function updateFields()
{
$app = JFactory::getApplication();
$cid = $app->input->getInt('cid');
$data = $app->input->get('rst_custom_fields', array(),
'array');
$model = $this->getModel('ticket');
$url =
JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. RSTicketsProHelper::sef($cid), false);
// logged in?
if ($model->isGuest())
{
return $this->setRedirect($this->getLoginLink());
}
// only staff members can call this
if (!$model->isStaff())
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TICKET'),
403);
}
if (!$model->hasPermission($cid))
{
$app->enqueueMessage($model->getError(),
'warning');
return $this->setRedirect($this->getListingLink());
}
$permissions = $model->getStaffPermissions();
if (!$permissions->update_ticket_custom_fields)
{
$app->enqueueMessage(JText::_('RST_CANNOT_UPDATE_TICKET'),
'warning');
return $this->setRedirect($url);
}
$model->updateFields($cid, $data);
$this->setMessage(JText::_('RST_TICKET_UPDATED_OK'));
$this->setRedirect($url);
}
// used to update ticket information
public function updateInfo()
{
$app = JFactory::getApplication();
$cid = $app->input->getInt('cid');
$data = $app->input->get('ticket', array(),
'array');
$model = $this->getModel('ticket');
$url =
JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. RSTicketsProHelper::sef($cid), false);
// logged in?
if ($model->isGuest())
{
return $this->setRedirect($this->getLoginLink());
}
// only staff members can call this
if (!$model->isStaff())
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TICKET'),
403);
}
if (!$model->hasPermission($cid))
{
$app->enqueueMessage($model->getError(),
'warning');
return $this->setRedirect($this->getListingLink());
}
// get permissions
$permissions = $model->getStaffPermissions();
// check permissions to update the ticket information
if (!$permissions->update_ticket)
{
unset($data['subject']);
unset($data['priority_id']);
}
// check permissions to move to another department
if (!$permissions->move_ticket)
{
unset($data['department_id']);
}
// check permissions to change ticket status
if (!$permissions->change_ticket_status)
{
unset($data['status_id']);
}
// check permissions to assign tickets
if (!$permissions->assign_tickets)
{
unset($data['staff_id']);
}
if (!RSTicketsProHelper::getConfig('show_alternative_email'))
{
unset($data['alternative_email']);
}
// check permissions to change customer
// no permissions at all
if (!$permissions->add_ticket_customers &&
!$permissions->add_ticket_staff &&
!$permissions->add_ticket)
{
unset($data['customer_id']);
unset($data['alternative_email']);
}
else
{
$user = JFactory::getUser();
$customer = JFactory::getUser($data['customer_id']);
$is_staff =
RSTicketsProHelper::isStaff($customer->get('id'));
// cannot change to himself...
if ($customer->id == $user->id &&
!$permissions->add_ticket)
{
unset($data['customer_id']);
}
// cannot change to another staff member
if ($customer->id != $user->id && $is_staff &&
!$permissions->add_ticket_staff)
{
unset($data['customer_id']);
}
// cannot change to another customer
if ($customer->id != $user->id && !$is_staff &&
!$permissions->add_ticket_customers)
{
unset($data['customer_id']);
}
}
$model->updateInfo($cid, $data);
$this->setMessage(JText::_('RST_TICKET_UPDATED_OK'));
$this->setRedirect($url);
}
public function toggleTime()
{
$app = JFactory::getApplication();
$ticket_id = $app->input->getInt('id');
$state = $app->input->getInt('tstate', 1);
$model = $this->getModel('ticket');
$ticket_data = $model->getTicket($ticket_id);
try
{
// logged in?
if ($model->isGuest())
{
return $this->setRedirect($this->getLoginLink());
}
// not enabled
if (!RSTicketsProHelper::getConfig('enable_time_spent'))
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
if (RSTicketsProHelper::getConfig('time_spent_type') !==
'tracking')
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
// only staff members can call this
if (!$model->isStaff())
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
if (!$model->hasPermission($ticket_id))
{
$app->enqueueMessage($model->getError(), 'warning');
return $this->setRedirect($this->getListingLink());
}
if (!empty($ticket_data) && $ticket_data->status_id !=
RST_STATUS_CLOSED)
{
if ($model->toggleTime($ticket_id, $state))
{
$app->enqueueMessage(JText::_('COM_RSTICKETSPRO_TIME_TOGGLE'.($state
? '_STARTED' : '_STOPPED')));
}
else
{
$app->enqueueMessage($model->getError(), 'warning');
}
}
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. RSTicketsProHelper::sef($ticket_id), false));
}
catch (Exception $e)
{
$app->enqueueMessage($e->getMessage(), 'error');
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. RSTicketsProHelper::sef($ticket_id), false));
}
}
public function clearTimeTrackingEntry()
{
$app = JFactory::getApplication();
$ticket_id = $app->input->getInt('ticket_id');
$entry_id = $app->input->getInt('entry');
$model = $this->getModel('ticket');
try
{
// logged in?
if ($model->isGuest())
{
return $this->setRedirect($this->getLoginLink());
}
// not enabled
if (!RSTicketsProHelper::getConfig('enable_time_spent'))
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
if (RSTicketsProHelper::getConfig('time_spent_type') !==
'tracking')
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
// only staff members can call this
if (!$model->isStaff())
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
// check to see if this ticket has this time spent entry
if (!$model->checkIfExistsTimeSpentEntry($ticket_id, $entry_id))
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
// only allowed staff members can delete the time tracking history
if (!$model->canDeleteTimeTracking() &&
!$model->canDeleteOwnTimeTracking($ticket_id, $entry_id)) {
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
if (!$model->hasPermission($ticket_id))
{
$app->enqueueMessage($model->getError(), 'warning');
return $this->setRedirect($this->getListingLink());
}
// clear the own history entry
$model->clearTimeTracking($ticket_id, $entry_id);
$app->enqueueMessage(JText::_('COM_RSTICKETSPRO_TIME_TRACKING_HISTORY_CLEAR_OWN_SUCCESS'));
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. RSTicketsProHelper::sef($ticket_id), false));
}
catch (Exception $e)
{
$app->enqueueMessage($e->getMessage(), 'error');
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. RSTicketsProHelper::sef($ticket_id), false));
}
}
public function clearTimeTracking()
{
$app = JFactory::getApplication();
$ticket_id = $app->input->getInt('id');
$model = $this->getModel('ticket');
try
{
// logged in?
if ($model->isGuest())
{
return $this->setRedirect($this->getLoginLink());
}
// not enabled
if (!RSTicketsProHelper::getConfig('enable_time_spent'))
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
if (RSTicketsProHelper::getConfig('time_spent_type') !==
'tracking')
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
// only staff members can call this
if (!$model->isStaff())
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
// only allowed staff members can delete the time tracking history
if (!$model->canDeleteTimeTracking()) {
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
if (!$model->hasPermission($ticket_id))
{
$app->enqueueMessage($model->getError(), 'warning');
return $this->setRedirect($this->getListingLink());
}
// clear the history
$model->clearTimeTracking($ticket_id);
$app->enqueueMessage(JText::_('COM_RSTICKETSPRO_TIME_TRACKING_HISTORY_CLEAR_SUCCESS'));
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. RSTicketsProHelper::sef($ticket_id), false));
}
catch (Exception $e)
{
$app->enqueueMessage($e->getMessage(), 'error');
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. RSTicketsProHelper::sef($ticket_id), false));
}
}
public function saveTimeSpent()
{
$app = JFactory::getApplication();
$cid = $app->input->getInt('cid');
$data = $app->input->get('ticket', array(),
'array');
$time_spent = $data['time_spent'];
$model = $this->getModel('ticket');
try
{
// logged in?
if ($model->isGuest())
{
return $this->setRedirect($this->getLoginLink());
}
// not enabled
if (!RSTicketsProHelper::getConfig('enable_time_spent'))
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
if (RSTicketsProHelper::getConfig('time_spent_type') !==
'input')
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
// only staff members can call this
if (!$model->isStaff())
{
throw new Exception(JText::_('RST_CANNOT_UPDATE_TIME_SPENT'),
403);
}
if (!$model->hasPermission($cid))
{
$app->enqueueMessage($model->getError(), 'warning');
return $this->setRedirect($this->getListingLink());
}
$table = $model->getTable();
$table->save(array(
'id' => $cid,
'time_spent' => $time_spent
));
$this->setMessage(JText::_('RST_TIME_SPENT_UPDATED_OK'));
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. RSTicketsProHelper::sef($cid), false));
}
catch (Exception $e)
{
$app->enqueueMessage($e->getMessage(), 'error');
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. RSTicketsProHelper::sef($cid), false));
}
}
public function cancel()
{
$this->setRedirect($this->getListingLink());
}
public function changeTicketStatus()
{
$app = JFactory::getApplication();
$model = $this->getModel('ticket');
$id = $app->input->getInt('id');
$task = $app->input->get('task');
$permissions = $model->getStaffPermissions();
if ($task == 'reopen')
{
$canChangeStatus = ($model->isStaff() &&
$permissions->change_ticket_status) || (!$model->isStaff() &&
RSTicketsProHelper::getConfig('allow_ticket_reopening'));
$status_id = RST_STATUS_OPEN;
$successMsg = JText::_('RST_TICKET_REOPENED_OK');
$errorMsg = JText::_('RST_CANNOT_REOPEN_TICKET');
}
elseif ($task == 'close')
{
$canChangeStatus = ($model->isStaff() &&
$permissions->change_ticket_status) || (!$model->isStaff() &&
RSTicketsProHelper::getConfig('allow_ticket_closing'));
$status_id = RST_STATUS_CLOSED;
$successMsg = JText::_('RST_TICKET_CLOSED_OK');
$errorMsg = JText::_('RST_CANNOT_CLOSE_TICKET');
}
if ($model->hasPermission($id) && $canChangeStatus)
{
$model->updateInfo($id, array(
'status_id' => $status_id
));
// if the ticket is closed and by any chan
if ($status_id == RST_STATUS_CLOSED) {
$model->toggleTime($id, 0);
}
$this->setMessage($successMsg);
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. RSTicketsProHelper::sef($id), false));
}
else
{
throw new Exception($errorMsg, 403);
}
}
public function reply()
{
// Check for request forgeries.
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$app = JFactory::getApplication();
$input = $app->input;
$data = $input->get('ticket', array(),
'array');
$id = $input->getInt('id');
$files = $input->files->get('ticket', null,
'raw');
$model = $this->getModel('ticket');
$ticket = $model->getTicket($id);
$context = "$this->option.edit.$this->context";
if ($ticket->status_id == RST_STATUS_CLOSED)
{
$app->enqueueMessage(JText::_('RST_TICKET_REPLIES_CLOSED_ERROR'),
'warning');
return $this->setRedirect($this->getListingLink());
}
if (!$model->hasPermission($id))
{
$app->enqueueMessage($model->getError(),
'warning');
return $this->setRedirect($this->getListingLink());
}
// overwrite some options
$data['id'] = null;
$data['user_id'] = JFactory::getUser()->id;
$data['date'] = JFactory::getDate()->toSql();
$data['ticket_id'] = $id;
if ($app->isClient('administrator'))
{
$data['consent'] = array(1);
}
if (!$model->reply($id, $data, is_array($files) &&
isset($files['files']) ? $files['files'] : array()))
{
// Save the data in the session.
$app->setUserState($context . '.data', $data);
$this->setMessage($model->getError(), 'error');
}
else
{
// Clear the data in the session
$app->setUserState($context . '.data', null);
$this->setMessage(JText::_('RST_TICKET_SUBMIT_REPLY_OK',
'info'));
}
$this->setRedirect(JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. RSTicketsProHelper::sef($id), false));
}
public function downloadFile()
{
$app = JFactory::getApplication();
$input = $app->input;
$id = $input->getInt('id');
$model = $this->getModel('ticket');
$file = JTable::getInstance('Ticketfiles',
'RsticketsproTable');
// check if file exists
if (!$file->load($id) || !$file->id)
{
throw new
Exception(JText::_('RST_CANNOT_DOWNLOAD_FILE_NOT_EXIST'), 500);
}
// check if ticket can be opened by the user
$ticket = $model->getTicket($file->ticket_id);
if (!$ticket || !$ticket->id)
{
throw new Exception(JText::_('RST_CANNOT_DOWNLOAD_FILE'),
403);
}
if ($access_code =
JFactory::getApplication()->input->get('access_code',
''))
{
if (!$model->hasDownloadPermission($access_code, $file->id,
$ticket->id))
{
throw new Exception(JText::_('RST_CANNOT_DOWNLOAD_FILE'),
403);
}
}
else
{
if (!$model->hasPermission($file->ticket_id))
{
throw new Exception(JText::_('RST_CANNOT_DOWNLOAD_FILE'),
403);
}
}
$path = $file->getRealPath();
if (!file_exists($path))
{
throw new
Exception(JText::_('RST_CANNOT_DOWNLOAD_FILE_NOT_EXIST'), 500);
}
// increment downloads
$file->hit();
@ob_end_clean();
header("Cache-Control: public, must-revalidate");
header('Cache-Control: pre-check=0, post-check=0, max-age=0');
header("Expires: 0");
header("Content-Description: File Transfer");
header("Expires: Sat, 01 Jan 2000 01:00:00 GMT");
header("Content-Type: application/octet-stream;
charset=utf-8");
header("Content-Length: " . (string) filesize($path));
header('Content-Disposition: attachment; filename="' .
$file->filename . '"');
header("Content-Transfer-Encoding: binary\n");
@readfile($path);
$app->close();
}
}PK�(�[h1C]��controllers/ticketmessage.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerTicketmessage extends JControllerForm
{
// this is for the redirect...
protected $view_list = 'tickets';
protected function allowAdd($data = array())
{
// false because adding a message to a ticket is done through another
controller
return false;
}
protected function allowEdit($data = array(), $key = 'id')
{
// Get item to remove from the request.
$messageId = $data[$key];
// Get the models
$modelMessage = $this->getModel();
$modelTicket = $this->getModel('ticket');
// check if the message exists in the database
$tableMessage = $modelMessage->getTable();
if ($tableMessage->load($messageId))
{
$id = $tableMessage->ticket_id;
// only staff members can call this
// & must be able to see the ticket in order to edit this message
if (!$modelTicket->isStaff() ||
!$modelTicket->hasPermission($id))
{
throw new Exception($modelTicket->getError(), 403);
}
$messageUserId = $tableMessage->user_id;
$meId = JFactory::getUser()->id;
$isStaff = RSTicketsProHelper::isStaff($meId);
$permissions = RSTicketsProHelper::getCurrentPermissions();
$canUpdateReplies = $permissions->update_ticket_replies;
$canUpdateCustomerReplies =
$permissions->update_ticket_replies_customers;
$canUpdateStaffReplies =
$permissions->update_ticket_replies_staff;
return $isStaff && (
($canUpdateReplies && $messageUserId == $meId) ||
($canUpdateCustomerReplies && $messageUserId != $meId
&& !RSTicketsProHelper::isStaff($messageUserId)) ||
($canUpdateStaffReplies && $messageUserId != $meId &&
RSTicketsProHelper::isStaff($messageUserId))
);
}
return false;
}
}PK�(�[b��~~controllers/ticketmessages.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
use Joomla\Utilities\ArrayHelper;
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerTicketmessages extends JControllerAdmin
{
protected $view_list = 'ticket';
public function getModel($name = 'Ticketmessage', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
public function delete()
{
// Check for request forgeries
$this->checkToken('get');
// Get items to remove from the request.
$cid = $this->input->get('cid', array(),
'array');
if (!is_array($cid) || count($cid) < 1)
{
\JLog::add(\JText::_($this->text_prefix .
'_NO_ITEM_SELECTED'), \JLog::WARNING, 'jerror');
}
else
{
// Get the model.
$model = $this->getModel();
// Make sure the item ids are integers
$cid = ArrayHelper::toInteger($cid);
// Remove the items.
if ($model->delete($cid))
{
$this->setMessage(\JText::plural($this->text_prefix .
'_N_ITEMS_DELETED', count($cid)));
}
else
{
$this->setMessage($model->getError(), 'error');
}
// Invoke the postDelete method to allow for the child class to access
the model.
$this->postDeleteHook($model, $cid);
}
$append = '&id=' .
$this->input->getInt('ticket_id');
$this->setRedirect(\JRoute::_('index.php?option=' .
$this->option . '&view=' . $this->view_list . $append,
false));
}
}PK�(�[��(d��controllers/tickets.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproControllerTickets extends JControllerAdmin
{
public function getModel($name = 'Tickets', $prefix =
'RsticketsproModel', $config = array('ignore_request'
=> true))
{
return parent::getModel($name, $prefix, $config);
}
public function writeCsv()
{
$model = $this->getModel();
$input = JFactory::getApplication()->input;
try
{
$response =
$model->writeCSV($input->getInt('start'),
$input->get('filehash'));
$this->showResponse(true, $response);
}
catch (Exception $e)
{
$this->showResponse(false, $e->getMessage());
}
}
protected function showResponse($success, $data=null)
{
$app = JFactory::getApplication();
$document = JFactory::getDocument();
// set JSON encoding
$document->setMimeEncoding('application/json');
// compute the response
$response = new stdClass();
$response->success = $success;
if ($data)
{
$response->response = $data;
}
// show the response
echo json_encode($response);
// close
$app->close();
}
public function exportCsv()
{
require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/export.php';
$app = JFactory::getApplication();
$filename = JText::_('COM_RSTICKETSPRO_TICKETS');
$fileHash = $app->input->get('filehash');
RsticketsExport::buildCSVHeaders($filename);
echo RsticketsExport::getCSV($fileHash);
$app->close();
}
}PK�(�[~����helpers/adapter.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
/* Autoloader function and registration */
function RsticketsproAutoload($class)
{
$class = strtolower($class);
$prefix = 'rsticketsproadapter';
if (strpos($class, $prefix) === 0)
{
// Grab name and filter it
$name = preg_replace('/[^a-z]/i', '', substr($class,
strlen($prefix)));
// Supported Joomla! versions
$versions = array('4.0', '3.0');
// Iterate through and find the first available class
foreach ($versions as $version)
{
$file = __DIR__ . '/adapters/' . $version . '/' .
$name . '.php';
if (version_compare(JVERSION, $version, '>=') &&
file_exists($file))
{
require_once $file;
break;
}
}
}
}
spl_autoload_register('RsticketsproAutoload');PK�(�[vN�:wwhelpers/adapters/3.0/grid.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
abstract class RsticketsproAdapterGrid
{
public static function row()
{
return 'row-fluid';
}
public static function column($size)
{
return 'span' . (int) $size;
}
public static function sidebar()
{
return '<div id="j-sidebar-container"
class="' . static::column(2) . '">' .
JHtmlSidebar::render() .
'</div>' .
'<div id="j-main-container" class="' .
static::column(10) . '">';
}
public static function inputAppend($input, $append)
{
return
'<div class="input-append">' .
$input .
'<span class="add-on">' . $append .
'</span>' .
'</div>';
}
}PK�(�[s�c�##helpers/adapters/3.0/plain.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproAdapterPlain
{
protected $id = null;
protected $titles = array();
protected $contents = array();
public function __construct($id)
{
$this->id = preg_replace('#[^A-Z0-9_\. -]#i', '',
$id);
}
public function addTitle($label, $id)
{
$this->titles[] = (object) array('label' => $label,
'id' => $id);
}
public function addContent($content)
{
$this->contents[] = $content;
}
public function render()
{
foreach ($this->titles as $i => $title)
{
?>
<div class="well" id="ticket-<?php echo
$this->escape($title->id); ?>">
<h3><?php echo $this->escape($title->label);
?></h3>
<?php echo $this->contents[$i]; ?>
</div>
<?php
}
}
protected function escape($string)
{
return htmlentities($string, ENT_COMPAT, 'utf-8');
}
public function remove($index)
{
if (isset($this->titles[$index]))
{
unset($this->titles[$index]);
}
if (isset($this->contents[$index]))
{
unset($this->contents[$index]);
}
}
}PK�(�[WW�[[helpers/adapters/3.0/tabs.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproAdapterTabs
{
protected $id;
protected $titles = array();
protected $contents = array();
public function __construct($id)
{
$this->id = preg_replace('/[^A-Z0-9_\. -]/i', '',
$id);
}
public function addTitle($label, $id)
{
$this->titles[] = (object) array('label' => $label,
'id' => $id);
}
public function addContent($content)
{
$this->contents[] = $content;
}
public function render()
{
$active = reset($this->titles);
echo JHtml::_('bootstrap.startTabSet', $this->id,
array('active' => $active->id));
foreach ($this->titles as $i => $title)
{
echo JHtml::_('bootstrap.addTab', $this->id, $title->id,
JText::_($title->label));
echo $this->contents[$i];
echo JHtml::_('bootstrap.endTab');
}
echo JHtml::_('bootstrap.endTabSet');
}
}PK�(�[Xg.�""helpers/adapters/4.0/grid.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
abstract class RsticketsproAdapterGrid
{
public static function row()
{
return 'row';
}
public static function column($size)
{
return 'col-md-' . (int) $size;
}
public static function sidebar()
{
return '<div id="j-main-container"
class="j-main-container">';
}
public static function inputAppend($input, $append)
{
return
'<div class="input-group">' .
$input .
'<div class="input-group-append"><span
class="input-group-text">' . $append .
'</span></div>' .
'</div>';
}
}PK�(�[H��yyhelpers/adapters/4.0/plain.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproAdapterPlain
{
protected $id = null;
protected $titles = array();
protected $contents = array();
public function __construct($id)
{
$this->id = preg_replace('#[^A-Z0-9_\. -]#i', '',
$id);
}
public function addTitle($label, $id)
{
$this->titles[] = (object) array('label' => $label,
'id' => $id);
}
public function addContent($content)
{
$this->contents[] = $content;
}
public function render()
{
foreach ($this->titles as $i => $title)
{
?>
<div class="card" id="ticket-<?php echo
$this->escape($title->id); ?>">
<div class="card-header">
<h3><?php echo $this->escape($title->label);
?></h3>
</div>
<div class="card-body">
<?php echo $this->contents[$i]; ?>
</div>
</div>
<?php
}
}
protected function escape($string)
{
return htmlentities($string, ENT_COMPAT, 'utf-8');
}
public function remove($index)
{
if (isset($this->titles[$index]))
{
unset($this->titles[$index]);
}
if (isset($this->contents[$index]))
{
unset($this->contents[$index]);
}
}
}PK�(�[OrKKhelpers/adapters/4.0/tabs.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproAdapterTabs
{
protected $id;
protected $titles = array();
protected $contents = array();
public function __construct($id)
{
$this->id = preg_replace('/[^A-Z0-9_\. -]/i', '',
$id);
}
public function addTitle($label, $id)
{
$this->titles[] = (object) array('label' => $label,
'id' => $id);
}
public function addContent($content)
{
$this->contents[] = $content;
}
public function render()
{
$active = reset($this->titles);
echo JHtml::_('uitab.startTabSet', $this->id,
array('active' => $active->id));
foreach ($this->titles as $i => $title)
{
echo JHtml::_('uitab.addTab', $this->id, $title->id,
JText::_($title->label));
echo $this->contents[$i];
echo JHtml::_('uitab.endTab');
}
echo JHtml::_('uitab.endTabSet');
}
}PK�(�[H�\\helpers/adapters/accordion.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RSAccordion
{
protected $id = null;
protected $titles = array();
protected $contents = array();
public function __construct($id)
{
$this->id = preg_replace('#[^A-Z0-9_\. -]#i', '',
$id);
}
public function addTitle($label, $id)
{
$this->titles[] = (object) array('label' => $label,
'id' => $id);
}
public function addContent($content)
{
$this->contents[] = $content;
}
public function render()
{
$active = reset($this->titles);
echo JHtml::_('bootstrap.startAccordion', $this->id,
array('active' => $active->id));
foreach ($this->titles as $i => $title)
{
echo JHtml::_('bootstrap.addSlide', $this->id,
JText::_($title->label), $title->id);
echo $this->contents[$i];
echo JHtml::_('bootstrap.endSlide');
}
echo JHtml::_('bootstrap.endAccordion');
}
}PK�(�[�#o,,helpers/adapters/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�<{FFhelpers/adapters/tabs.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RSTabs extends RsticketsproAdapterTabs
{
}PK�(�[5 ���helpers/captcha/captcha.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2020 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproCaptcha
{
protected $chars = 4;
protected $code = null;
protected function getFont()
{
return __DIR__ . '/monofont.ttf';
}
protected function generateCode()
{
$possible =
'aAbBcCdDeEfFgGhHjJkKLmMnNpPqQrRstTvVwWxXyYzZ2346789';
$count = strlen($possible) - 1;
$this->code = '';
for ($i = 0; $i < $this->chars; $i++)
{
$this->code .= substr($possible, mt_rand(0, $count), 1);
}
JFactory::getSession()->set('com_rsticketspro.captcha',
$this->code);
return $this->code;
}
public function check($code)
{
$validCode = (string)
JFactory::getSession()->get('com_rsticketspro.captcha');
if (!RSTicketsProHelper::getConfig('captcha_case_sensitive'))
{
$validCode = strtolower($validCode);
$code = strtolower($code);
}
JFactory::getSession()->clear('com_rsticketspro.captcha');
return $validCode === $code;
}
public function setLength($chars)
{
$this->chars = (int) $chars;
}
public function getImage()
{
try
{
if (!function_exists('imagecreate'))
{
throw new Exception('imagecreate() not available.');
}
if (!function_exists('imagettfbbox'))
{
throw new Exception('imagettfbbox() not available.');
}
$code = $this->generateCode();
$font = $this->getFont();
$font_size = 32;
$box = imagettfbbox($font_size, 0, $font, 'M');
$char_w = abs($box[4] - $box[0]);
$char_h = abs($box[5] - $box[1]);
$width = $char_w * $this->chars * 1.3;
$height = $char_h * 2;
// Create the image
$image = imagecreate($width, $height);
// Get a random text color
$r = mt_rand(0, 255);
$g = mt_rand(0, 255);
$b = mt_rand(0, 255);
// Fill the background with a complementary color
imagecolorallocate($image, ($r < 128) ? 255 : 0, ($g < 128) ? 255
: 0, ($b < 128) ? 255 : 0);
// Allocate text color
$color = imagecolorallocate($image, $r, $g, $b);
// Get a random angle
$angle = mt_rand( 0, 5 ) * (mt_rand(0, 1) == 1 ? -1 : 1);
// Get the box size
$text_box_size = imagettfbbox($font_size, $angle, $font, $code);
// Calculate position
$x = ($width - $text_box_size[4]) / 2;
$y = ($height - $text_box_size[5]) / 2;
// Set a shadow
$shadow_color = imagecolorallocate($image, floor($r / 2), floor($g / 2),
floor($b / 2));
imagettftext($image, $font_size, $angle, $x - 1, $y + 3, $shadow_color,
$font, $code);
// Write our text
imagettftext($image, $font_size, $angle, $x, $y, $color, $font, $code);
imagejpeg($image);
imagedestroy($image);
}
catch (Exception $e)
{
JFactory::getApplication()->enqueueMessage($e->getMessage(),
'warning');
}
}
}
PK�(�[�x�{L�L�helpers/captcha/monofont.ttfnu�[���0�OS/2`+z>�@VPCLT|r�u��6cmap�mq0
�cvt
pc�\6fpgm�3�OHglyf��^r�M4hdmx��{�#�head�<���6hhea���$hmtxr�"�Z�loca�z�Q0�maxp
�,
name�)��Ipost`.e�b�Kprep��9r�f&T*�����#* ~� � �� # T* � � � � � #(C)1999
Ray Larabie - rlarabie@hotmail.com(C)1999 Ray Larabie -
rlarabie@hotmail.comMonofontoMonofontoRegularRegularMonofontoMonofontoMonofontoMonofontoVersion
1.00Version 1.00MonofontoMonofonto@,vE
�%E#ah#h`D-�^���H]f\Sa8N?c�L�Z�Z�Z�Z�Z�Z�Z� @
����EhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhDEhD�F+�F+�EhD�EhD2^
V@
@ Fv/7?</<�<�</<�</<�<10Ih�Iha�@RX87���8Y3!'3#2,���
��2�����CL@@Fv/7?<?�/�/<�<..10Ih�Iha�@RX87���8Y7#3#"'&54632�\\�z��)zWO@@ Fv/7/</</<�</<�<10Ih�Iha�@RX87���8Y#53#5322k11W������R@�
@!
Fv/7?</<�<�</<�<�.����ć.��ć.����ć.����ć.�����ć.��������................10Ih�
Iha�@RX87�
��8Y#3##7##7#737#7373373#3�TVV,:,^,:+UT!YW,:+]-9+La
a�ApA����ApA����Aq)��g�(j@-))@*#
Fv/7/</<��/<�</�/���...10Ih�)Iha�@RX87�)��8Y%#5&'32654'&'&546753#.#"g�.~
[%&:b:E@.vX"#:a:��UT�$&,0-TAY
TS�)()0 .�����M
!+�@:,,@-
(' #" *%
Fv/7?<<?<<�/�/��/<�</<�</<�</<�<�.���..10Ih�,Iha�@RX87�,��8Y%#"=432##"=43254#"3254#"32�jiij��0�iiii+**+��+**+p{{Izz���X�zzIzz��IEEIE_IEEIE���N!)�@A**@+#
"%(Fv/7?<?/��/�/�</��.��ć.���..........10Ih�*Iha�@RX87�*��8Y!#'#"'&547&5463274#"6'32�p&DL@(&p/E75BVPL9Tu.#6R=
&>I1.BwBB;8JD5PCsUI[X5&2+�ـ*<.�W�>@@Fv/7/</</<�<10Ih�Iha�@RX87���8Y#53�22W�u�`J <@
@ Fv/7??/�..10Ih�
Iha�@RX87�
��8Y&547WW>hh����;����u�`J <@
@Fv/7??/�..10Ih�
Iha�@RX87�
��8Y%'654'7h>XX>hռ�:����:�I(GOS@@
Fv/7/</<...............10Ih�Iha�@RX87���8Y''7'7'37G}],33,]}m8m�g'��'g>K��Kz�f@,@
Fv/7?</</<�</<�<�<�<10Ih�Iha�@RX87���8Y%##5#53533z�7��7����@�����z5@
@Fv/7//..10Ih�Iha�@RX87���8Y%'7.De����>@@Fv/7/</</<�<10Ih�Iha�@RX87���8Y%#53���]����r7@@
Fv/7?//�10Ih�Iha�@RX87���8Y7#"&54632�2%%&'m��#OI@@ Fv/7/</<�.���..10Ih�Iha�@RX87���8Y##�/�O�g�.��bM O@@
Fv/7??��/<�</<�<10Ih�Iha�@RX87���8Y%#"=43254#"32b����a9999�����ii�hk%E_@&@Fv/7?<?/<�<�<�.���..10Ih�Iha�@RX87���8Y!#57%]]��6hh,dM[@$@
Fv/7?<??���</��....10Ih�Iha�@RX87���8Y3!654'&#"#632d#t��й<]�HT�?:�lU5V�](��hP-h@+..@/,$**$#'
!''Fv/7?/���<�</�</�<��...10Ih�.Iha�@RX87�.��8Y%#"'&5473327654'&'567654'&#"#>32h(*NL+)[#
7
TOACR<G�O0430N $" N"@BU_DK11+eC
@:@
Fv/7?<?</<�</<�<�</<�<�.���..10Ih�Iha�@RX87���8Y%##5#533#e*[��*�x~~~e`��"��-��cCg@*@
Fv/7??</��<�/�/<�<�<......10Ih�Iha�@RX87���8Y%#"'7327654'&#"#!#632c(-Lo&R/
R�)D&"�O7?x,;# $We�81+��eC
c@(!!@"
Fv/7??<�/<�/�/��.���..10Ih�!Iha�@RX87�!��8Y%#"'&54?36324'&#"3276e',JJ,'6sl��_�L59;4MNi���!!!1_C^@%@Fv/7?<?<�<�.���.....10Ih�Iha�@RX87���8Y##5_�g��C���e)��gO"2]@%33@4
+#'/Fv/7?/�/��/�</�<��..10Ih�3Iha�@RX87�3��8Y%#"'&547&54632'4&#"32764'&#"3276g'+MM+'G=QDCR=G\#
#%" " �O0441OW01JF\^DK10�!22!
2�#"#*fO"b@'##@$Fv/7?</�/<�/�/��.���..10Ih�#Iha�@RX87�#��8Y#7#"'&5476324'&#"3276f7sk�K%#(,JK+(_�Og��0,ML4::5K!"!�����
F@@Fv/7??��/<�<10Ih�Iha�@RX87���8Y#"'&54632#"&54632�
V((��&'(����B@@
Fv/7?/�/<�..10Ih�Iha�@RX87���8Y#"&54632'7
.DV''(���� v�j@,@ Fv/7//�.��ć.���.......10Ih�Iha�@RX87���8Y-5%
v��\�� �I�G��jzSS@@ Fv/7/</<�<�<........10Ih�Iha�@RX87���8Y!5!!5!z��d��d?�? v�j@,@ Fv/7//�.��ć.���.......10Ih�Iha�@RX87���8Y%5-5v����\��G��G�9��WQ$_@&%%@& "Fv/7?/���</<�</�/��..10Ih�%Iha�@RX87�%��8Y#54654&#"#>32#"&54632W5\l+ZMA?Pi
�8)7
4r$"<AVW�<(((t^=Ky@5LL@M-.F'4>H
!:+0B:04Fv/7?///���/<���</�/�/���.....10Ih�4LIha�@RX87�L��8Y#"'#"54763273327654'&#"327#"'&547676324'&#"3276t$
$
9-
%#A7)!%MA28C*$`(1BN*!�
((y91@
CBg93E2'�E21G5A0';7BV=P9E@�H<H/:P?mnCr!vC
y@6@
Fv/7?<?</<�<�.��ć.���.....10Ih�Iha�@RX87���8Y!#'##3'vo_gzg
^^C�x��*fCg@+@
Fv/7?<?<�</<�<�</<�</�/�.10Ih�Iha�@RX87���8Y%+32'4&+3264&+3276f���BFMXm+/0, -&'1!��CSCP4(�/%�%�&2�'��iMX@"
@!
Fv/7??���<�</<�<..10Ih�
Iha�@RX87�
��8Y%#"'&=47632#&#"32767i&*PQ*&&*Q�d-
!
�S0571U�T16�<"$�%&!#'iCW@!@
Fv/7?<?<�<�</<�</<�<10Ih�Iha�@RX87���8Y%+3254'&+32i����`
!DD>��@���$!�t5[Cm@/@
Fv/7?<?</<�<�<�</<�<�<�<10Ih�Iha�@RX87���8Y)!#3#3[��&����C\�]�5[C b@(
@ Fv/7?<?</<�<�</<�<�<�<10Ih�
Iha�@RX87�
��8Y#3##![���h&�]�C0��`M"{@6##@$!
"
!"!Fv/7?<??���<�<�</<<�</<�<�<�<.10Ih�#Iha�@RX87�#��8Y%#5#"=47632#&#"3276=#53`L 3�"'O�_*
/�2(��R18�<##�$&&$>S)gCb@*@
Fv/7?<?</<�</<�</<�<10Ih�Iha�@RX87���8Y!#5##3353ggpggpg��C��AOCl@0@
Fv/7?<?<�<�</<�<�<�<10Ih�Iha�@RX87���8Y)53#5!#3O��WWUU]�\\�v;��UCW@!
@
Fv/7?<?<�<�/<�<�<..10Ih�
Iha�@RX87�
��8Y%+52765#53U�ok.7���j^ \0`C
l@/@
Fv/7?<?</<�<�.���.....10Ih�Iha�@RX87���8Y!##33`j^hhVkf��C����:VCN@@Fv/7?<?<�</<�<�<10Ih�Iha�@RX87���8Y)33V��g�C�qCo@0@
Fv/7?<?</<�</<�<�.���....10Ih�Iha�@RX87���8Y!#'#373q]LL]hAGbS��C��-cC k@.
@
Fv/7?<?</<�</<�<�.���..10Ih�
Iha�@RX87�
��8Y!##33cjffqadQ��C��R!��oM"O@##@$ Fv/7??��/<�</<�<10Ih�#Iha�@RX87�#��8Y%#"'&=463254'&#"3276o),RR,)URR,)b!!!!�U2662U�Tg52T��$&&$�$%%(hC
U@!@Fv/7?<?</<�</�/<�<.10Ih�Iha�@RX87���8Y+#324'ೌh�4g�O*&i:8���C93O8�)��gM&k@+''@(
#Fv/7?<?/<��/<�</<�<�.���..10Ih�'Iha�@RX87�'��8Y%#'#"'&=4763254'&#"3276gC)U
Q)%%)QQ)%a
�l7t[81T�T1661T��%&&%�%&&"nC^@&@
Fv/7?<?<�</�/<�<.....10Ih�Iha�@RX87���8Y!#'#3274+32n}gh�P.+s VS��C31Q��^�"��nG"Y@###@$Fv/7??���<�</�/�..10Ih�#Iha�@RX87�#��8Y%#"'332654'&'&54632#&#"n[Q�_ ='<e <RJ�];B%/E$�Qa�="-2.XJY�@>
(&jCY@#@ Fv/7?<?<�</<�<�<�<10Ih�Iha�@RX87���8Y###5!jnhnD��b'��iCP@@
Fv/7??<�/<�</<�<10Ih�Iha�@RX87���8Y%#"'&53327653i&)RR)&b
!!
b�U1771U��t%&&%�vCl@/@Fv/7?<?<�.��ć.���...10Ih�Iha�@RX87���8Y#3vzg{hIJC��C��j�CK@@
Fv/7?<?<......10Ih�Iha�@RX87���8Y#'#37�DC11CDi<<C����C����>vC�@C@
Fv/7?<?<�.��ć.�������........10Ih�Iha�@RX87���8Y!#'#373vx66xrrv88vr��
#����}CJ@ @
Fv/7?<?</<�<...10Ih� Iha�@RX87� ��8Y#537}�h�z;;C����\��tCk@,@ Fv/7?<?<�<�<�.���........10Ih�Iha�@RX87���8Y3!#5t������C�b�]|�aCY@#@ Fv/7?<?<�<�</<�<�<10Ih�Iha�@RX87���8Y#3#3��JJ��@��m��#OI@@ Fv/7/</<�.���..10Ih�Iha�@RX87���8Y#3#/�/J�|�aCY@#@ Fv/7?<?<�<�</<�<�<10Ih�Iha�@RX87���8Y#53#53�II��@b@_q?@@Fv/7/</<...10Ih�Iha�@RX87���8Y#'#73q9pp9�R_���2�C^��>@@Fv/7/</</<�<10Ih�Iha�@RX87���8Y!5!^��,�>F�9@@Fv/7/</<..10Ih�Iha�@RX87���8Y3#FmRS�n&��j�&b@)''@(
& ""
Fv/7?<??/���/<�</�....10Ih�'Iha�@RX87�'��8Y%&#"327#5#"&5476324#"'67632
&2\\W8K+):8"C1U0N38�
>�ENF79$!
u,1'+L!��oC"b@(##@$
Fv/7??<?<?��/�/<�<<�<..10Ih�#Iha�@RX87�#��8Y%#"'#36324'&#"3276o%@C/Y\-A+#a&&&&�G<K^UC��^)"0)+,#..#-,$//$0��`�J@@
Fv/7??��/�....10Ih�Iha�@RX87���8Y%#"'&547632&#"327`5LR1,,1RG35#**)2=A;VU;A3H'!.-!')��rC
b@(!!@"Fv/7?<???<��/<�</��<<..10Ih�!Iha�@RX87�!��8Y!#5#"'&54763234'&#"3276r[-DA'
&BD2X[('('U]K>GJ<JX��-$..#--$..#��w�U@
@
Fv/7??��/<�</�<....10Ih�Iha�@RX87���8Y%327#"'&547632&'&#"w�%)Y1lR2/-2RT/'Z$$�)$+kA;UU>DL@3($$(>RIq@2@
Fv/7?<?<?<�<�</<�<<�</<�<10Ih�
Iha�@RX87���8Y#"3###535476;RS! <=]44&!FS�
'V��:V<E!�[o�)g@+**@+ " &Fv/7????<���/<�<�</<�...10Ih�*Iha�@RX87�*��8Y%#"'7325#"'&'&547632534'&#"3276o�[E'19d%E-%OD%X[&&&&�;A4�g+#1(,�8WP�-#//#,-#0/$5[C[@%@
Fv/7?<?<?�/<�</<�<.10Ih�Iha�@RX87���8Y!#54#"#3632[]48]]4A+�O[�C��Z*"0IGIl@/@
Fv/7??<?<�<�<�/<�</�/<�<10Ih�
Iha�@RX87���8Y#"&54632#535#533�H�VV�L
&&&&��]�]��_�[1I
i@,@Fv/7??<?<�<�<�/<�</��<�<10Ih�Iha�@RX87���8Y#"'&54632#*#5325#531
w<
M%R�
&&�љa8?]-cC
�@<@
Fv/7?<?<?</<�<�.��ć.���.....10Ih�Iha�@RX87���8Y!#'#373cnk]]chl��C����qCN@@Fv/7?<?<�</<�<�<10Ih�Iha�@RX87���8Y!##53\R��\z�#o@0$$@%
#
Fv/7?<?<?<�</<�<�</<�</<�<..10Ih�$Iha�@RX87�$��8Y!#54'&#"#54#"#367632>32z]
@
]X% .&
�#^��R)
��@D+0!..b�^@&@
Fv/7?<?<?�/<�<�</<�<.10Ih� Iha�@RX87���8Y!#54#"#3632b]5
%]X:E]�O9"��W^���s�G@
@!Fv/7??��/�/�10Ih� Iha�@RX87�
��8Y%#"'&5476324'&#"3276s+/QQ0**0QQ/+a&&&&�T;CC;TT;BB;T*!**!+*!**!�ar�
b@(!!@"
Fv/7??<?<?��/�/<�<<�<..10Ih�!Iha�@RX87�!��8Y%#"'#36324'&#"3276r
&AE0X\-CA'
`'(('�G=J^�-V^M>E-#..#--#//#�ar�
b@(!!@"Fv/7?<???<��/<�</��<<..10Ih�!Iha�@RX87�!��8Y#5#"'&547632534'&#"3276r[-DA'
&BC3X[('('��]K>GI<KWO�-$..#-.#//#0`�K@@
Fv/7/</............10Ih�Iha�@RX87���8Y"5#3546327&F9X]$!(
\�^W�r�"9//[B��N�"Y@###@$Fv/7??�<���</�/�..10Ih�#Iha�@RX87�#��8Y%#"'332654'&'&54632&#"NJ<{Y$,K+E83HU".J
.u;Eq.$ :8E72*""L��D�s@4@
Fv/7?<?</<�<�</<�</<�<�<10Ih�Iha�@RX87���8Y#"&=#53533#;Dj/,33\88*?#/�VllV�)6��Z�P@@
Fv/7??<�/<�</<�<10Ih�Iha�@RX87���8Y%#"&=332=3ZKGHJ]55]�IRRI��OO�
p�W@"@Fv/7?<?<�.���...10Ih�Iha�@RX87���8Y#3prlreDB��r���}�J@@
Fv/7?<?<.....10Ih�Iha�@RX87���8Y#'#377}KH""HKc
22 ��r�������*f�O@@
Fv/7?<?<........10Ih�Iha�@RX87���8Y!#'#7'373fe95iicc44ge�����!�ao�[@$@ Fv/7?<?<�.���.....10Ih�Iha�@RX87���8Y#73o�a&xfCC��Ӊ���;U�k@,@ Fv/7?<?<�<�<�.���........10Ih�Iha�@RX87���8Y3!#5U������V8V^�^2".h@-//@0. *)!
%
.
Fv/7?<//�<�/<�/<�<�<..10Ih�
/Iha�@RX87�/��8Y"#"&545654'&5354&547632#&72
D+
5MM #
33
)�.D@*Dq
- T#E)]22]-��C�C?@@Fv/7?</</<�<10Ih�Iha�@RX87���8Y#3�88�^�^2"*i@-++@,!
&%*
!"!
Fv/7?</<��</<�/<�<�<..10Ih�+Iha�@RX87�+��8Y%#&#"#5376=4767&'&=4'ᓲK
K
# 33
)96
1�q- S#E)]22],E&Ob3�~I@@Fv/7/</<��.....10Ih�Iha�@RX87���8Y%#"&#"5>3232767~#
x!'- y $�0 A
0��O��F@@Fv/7/<//�<......10Ih�Iha�@RX87���8Y7#34'&#"3276�\\��'?�Q�?@@ Fv/7/</</�/�10Ih�Iha�@RX87���8Y2#"&546#2#"&546
�
�i'�9@@Fv/7/</<..10Ih�Iha�@RX87���8Y#3'mQR�n}�V]@!@
Fv/7//<�</��.���.......10Ih� Iha�@RX87���8Y73#"'532654#"�=@)$)'9(0$9�OW�#^@%$$@% !Fv/7//���</<�</�/��..10Ih�$Iha�@RX87�$��8Y47676=33273#"&4632#"&95\l+ZMA?Pi8)7
4r$"<AVW�'(((��v�&$C��v�&$���v�&$k��v�&$r��v�&$���v&$phC�@F@
Fv/7?<?</<�<�<�</<�/<�<�<�.���....10Ih�Iha�@RX87���8Y35'#3#3#37�-gz�OOOO�]^C\�]�bZ���'�ViM&&���5[�&(C��5[�&(���5[�&(k��5[�&(���7E�&,�C��>L�&,�����7J�&,�k���,F�&,���rCn@.@
Fv/7?<?</<�<�<�</<�</<�<�<�<10Ih�Iha�@RX87���8Y%+3254'&+32'#53r����`
!DD>Y����@���$!�t�]��$Y�&1�r���!��o�&2C����n�&2�����"��q�&2k����l�&2�r���+��y�&2
�
��!��oO&2��'��i�&8C��'��i�&8���'��i�&8k��'��i�&8���}�&<�3��hP%^@%&&@'
%"Fv/7?<?/�/�<�/<�<�<...10Ih�&Iha�@RX87�&��8Y3#4632#727654'&'567654'&#"�TSBCR<G(*N
%�AV_DK11VO04]"
N"%��&��j%&DC�8��&��j%&D��8��&��j"&Dk�8��&��j%&Dr�8��&��j&D��8��&��jD&Dp�8
����#(3}@644@5
*)$
(.($,2&"Fv/7?<?<����/�/<�</��<............10Ih�4Iha�@RX87�4��8Y7#"&546324#"'632632327#"7&#"5&#"32�?)71(#%C"B/!!.;
�#EH!5n
##N!EOI54K!w.d35S@Ul,(@�jj[6��0�V`�&F������w%&HC�8����w%&H��8����w"&Hk�8����w&H��8��5J%&C��8��CI%&��!�8��4P"&
k���8��>Q&�����8��.b%&Qr�8����s%&RC�8����s%&R��8����s"&Rk�8����s%&Rr�8����s&R��8��s�#c@&$$@%"
"# ! !#
"!Fv/7??/</<��/�/��.���..10Ih�$Iha�@RX87�$��8Y%#"'&5476324'&#"3276#s+/QQ0**0QQ/+a&&&&�/��T;CC;TT;BB;T*!**!+*!**!@����6��Z%&XC�8��6��Z%&X��8��6��Z"&Xk�8��6��Z&X��8��!�ao%&\��8��!�ao&\��8IG� _@'
@ Fv/7?<?<�<�</<�</<�<10Ih�
Iha�@RX87�
��8Y!#535#533G�VV�L]�]����uM)�@<**@+"!&
Fv/7?<???<�/<�<�<��</<�</<�<�<10Ih�*Iha�@RX87�*��8Y3#"'&=476323#3#3'54'&#"3276�#O!!O"�FFFF�
6,[�Z,5
\�]�b��;&&;�: %%!���� (r@1))@*%
! '#
Fv/7?<?/����/<�<��/�</�....10Ih�)Iha�@RX87�)��8Y7#"'&547632632327#"7&#"4#"32�&+!!+'(+"�G(>'M
N
+4;cc:4,08?ql,k�jjvwv��q�&<���?�Q�?@@Fv/7/</<...10Ih�Iha�@RX87���8Y3#'#��HT65S�fAAj_&E@@ Fv/7//��/�/�10Ih� Iha�@RX87���8Y2#"&546"32654&�&88&&88&$###1%&11&%1
0�`�G@@
Fv/7/<</<<��..10Ih�Iha�@RX87���8Y#6323273#"&#"?W"f"."h
�c55@6���5@
@Fv/7//..10Ih�Iha�@RX87���8Y7'�.D�������X?�G�=@@ Fv/7/</<....10Ih�Iha�@RX87���8Y7'7'?.DC.D������5�Q�'��XPX����U A@
@Fv/7//........10Ih�
Iha�@RX87�
��8Y'7'7�>�t'��!w�U�
f�NR�b����zr&�&~||||
~4(~�J�h� p �
`
��l
��,����n�b&�p�p����P�
�!!�"\"�#�$$�%<%�&J&�'('�'�(4))�*r+8+�,�-�..�/�0:0�1x2
2�3z4@4�5�6,6�7,7�8(8�9@:,:�;h;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�<�<�<�<�<�<�<�=============b=b=b=b=�=�=�=�=�=�=�>�>�>�???4?J@@2@H@^@t@�@�@�@�@�A�A�A�A�A�BBBB0BFB\BrB�B�B�CjC�C�C�C�C�C�EE"E:EREjE�E�E�E�E�E�E�FF*FBFZFrFrGHG`GxG�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\IPJ:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:J:JPJPJPJPJPJPJPJPJPJPJPJPJPJPJPJPJ�J�J�J�J�K@K@K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�LL*L*L*L�L�L�L�L�L�MM4�2�����z����)���������u�u�I��������m�.�k�,�(�+�-�+�1�)�*��������9���*�'�'�5�5�0�)�A�;�0�:��-�!�(�)�"�"�&�'������|�m�|��2�F�&�!�0���>�!�5�I�_�-�q��.����0�B�L�6�
��*�!�;�^���^��������������������������������������������?������������i����}�������9��������'�5�5�5�5�7�>�7�,��$�!��"��+��!�'�'�'�'���3�&�&�&�&�&�&�
�0�����5�C�4�>��.��������6�6�6�6�!��!��������������������������������������������������I����������������������������������!�����������������������������������������������������?�����j��0����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?�5���������{6
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a�������������������������������bc�d�e�������f����g�����h���jikmln�oqprsutvw�xzy{}|��~�����
��
���
!"#$%&'()*+,-��./0123456789:;<��=>?@ABCDEFGHIJK��LMNOPQRSTU����VWXYZ[\]^_`abcdefghijk�lmno��p�qrstuv���������wxyz{|}~������������������������������������������������������������������������������������������������������������������������������������
��!"���#������� overscoremu1middotAmacronamacronAbreveabreveAogonekaogonekCcircumflexccircumflexCdotcdotDcarondcaronDslashEmacronemacronEbreveebreveEdotedotEogonekeogonekEcaronecaronGcircumflexgcircumflexGdotgdotGcedillagcedillaHcircumflexhcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJijJcircumflexjcircumflexKcedillakcedillakgreenlandicLacutelacuteLcedillalcedillaLcaronlcaronLdotldotNacutenacuteNcedillancedillaNcaronncaronnapostropheEngengOmacronomacronObreveobreve Odblacute odblacuteRacuteracuteRcedillarcedillaRcaronrcaronSacutesacuteScircumflexscircumflexTcedillatcedillaTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Udblacute udblacuteUogonekuogonekWcircumflexwcircumflexYcircumflexycircumflexZacutezacuteZdotzdotlongs
Aringacute
aringacuteAEacuteaeacuteOslashacuteoslashacutetonos
dieresistonos
Alphatonos anoteleiaEpsilontonosEtatonos IotatonosOmicrontonosUpsilontonos
OmegatonosiotadieresistonosAlphaBetaGammaEpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsiIotadieresisUpsilondieresis
alphatonosepsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdanuxiomicronrhosigma1sigmatauupsilonphichipsiomegaiotadieresisupsilondieresisomicrontonosupsilontonos
omegatonos afii10023 afii10051 afii10052 afii10053 afii10054 afii10055 afii10056 afii10057 afii10058 afii10059 afii10060 afii10061 afii10062 afii10145 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097 afii10071 afii10099 afii10100 afii10101 afii10102 afii10103 afii10104 afii10105 afii10106 afii10107 afii10108 afii10109 afii10110 afii10193 afii10050 afii10098WgravewgraveWacutewacute Wdieresis wdieresisYgraveygrave afii00208
underscoredbl
quotereversedhhL� +
!"#$%&'()*+,-./0123456789:;<=>?@AB*DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a����d��
.�&23�4,0/�5�C�krmno�p�sql'��$�5��%�6�bcdefghijklmnopqrstuvwxyz{|}~������������������������������������������������������������������������������������������������������������
!"#&'()*+,-./01234789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcefghijtuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������
!"#$%()-1:
~����������O\_s���
" &!&""��
�����������Q^p���
&!&""��:����������Lb���"&&&&��
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a���������������������������������������������������������������������������������������������������������������������������
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abdefghijklmnopqrsuvwxyz{|}~�������������������������������������������������������������������������������������������������������������������������������
����
!"#$&'()*+,-./02345���8
��������2 LARA@
&�C����`CuMonofonto
����7���MONR00�-._<����|���|����C�
�8������66L?@
�RPK�(�[Ham�
helpers/config.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RSTicketsProConfig
{
protected $config;
protected $db;
protected $multiple = array('captcha_enabled_for',
'admin_groups');
public function __construct() {
$this->db = JFactory::getDbo();
$this->load();
}
public function get($key, $default=false, $explode=false) {
if (isset($this->config->{$key})) {
return $explode ? $this->explode($this->config->{$key}) :
$this->config->{$key};
}
return $default;
}
public function getKeys() {
return array_keys((array) $this->config);
}
public function getData() {
return $this->config;
}
public function reload() {
$this->load();
}
protected function load() {
// reset the values
$this->config = new stdClass();
// prepare the query
$query = $this->db->getQuery(true);
$query->select('*')->from('#__rsticketspro_configuration');
$this->db->setQuery($query);
// run the query
if ($results = $this->db->loadObjectList())
{
foreach ($results as $result)
{
if (in_array($result->name, $this->multiple))
{
$result->value = explode(',', $result->value);
}
$this->config->{$result->name} = $result->value;
}
}
}
protected function explode($string) {
$string = str_replace(array("\r\n", "\r"),
"\n", $string);
return explode("\n", $string);
}
protected function implode($string) {
return implode("\n", $string);
}
protected function convert($key, &$value) {
if (is_array($value)) {
$value = implode(",", $value);
}
}
public function set($key, $value) {
if (isset($this->config->{$key})) {
// convert values to appropriate type
$this->convert($key, $value);
// refresh our value
$this->config->{$key} = $value;
// prepare the query
$query = $this->db->getQuery(true);
$query->update('#__rsticketspro_configuration')
->set($this->db->qn('value').'='.$this->db->q($value))
->where($this->db->qn('name').'='.$this->db->q($key));
$this->db->setQuery($query);
// run the query
return $this->db->execute();
}
return false;
}
public static function getInstance() {
static $inst;
if (!$inst) {
$inst = new RSTicketsProConfig();
}
return $inst;
}
}PK�(�[I/�˄7�7helpers/emails.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RSTicketsProEmailsHelper
{
protected static $from;
protected static $fromName;
protected static function prepareEmailAddress($department_id)
{
// get department
$department = RSTicketsProHelper::getDepartment($department_id);
// prepare from name and email address
if ($department->email_use_global)
{
if (RSTicketsProHelper::getConfig('email_use_global'))
{
// if we are using global settings, get them from the Joomla! config
$config = JFactory::getConfig();
self::$from = $config->get('mailfrom');
self::$fromName = $config->get('fromname');
}
else
{
// if we are using RSTickets! Pro settings, get them from the
RSTickets! Pro config
self::$from =
RSTicketsProHelper::getConfig('email_address');
self::$fromName =
RSTicketsProHelper::getConfig('email_address_fullname');
}
}
else
{
self::$from = $department->email_address;
self::$fromName = $department->email_address_fullname;
}
}
// cleaner proxy function for _getEmail()
public static function getEmail($type, $tag = null)
{
// get current language
if (is_null($tag))
{
$tag = JFactory::getLanguage()->get('tag');
}
return self::_getEmail($type, $tag);
}
// searches for emails defined under the $tag language
// and reverts to english if not found
protected static function _getEmail($type, $tag)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from($db->qn('#__rsticketspro_emails'))
->where($db->qn('lang') . '=' .
$db->q($tag))
->where($db->qn('type') . '=' .
$db->q($type));
$db->setQuery($query);
if ($email = $db->loadObject())
{
if ($email->published)
{
// found entry for the selected language, return it
return $email;
}
}
else
{
// default to english
return self::_getEmail($type, 'en-GB');
}
return false;
}
// actual email sending happens here
public static function send($from, $fromName, $recipient, $subject, $body,
$mode = false, $cc = null, $bcc = null, $attachment = null, $replyTo =
null, $replyToName = null)
{
try
{
$mailer = JFactory::getMailer();
$mailer->setSender(array($from, $fromName));
$mailer->setSubject($subject);
$mailer->setBody($body);
// Are we sending the email as HTML?
if ($mode)
{
$mailer->IsHTML(true);
}
$mailer->addRecipient($recipient);
$mailer->addCC($cc);
$mailer->addBCC($bcc);
$mailer->addAttachment($attachment);
// Take care of reply email addresses
$hasReplyTo = false;
if (is_array($replyTo))
{
$numReplyTo = count($replyTo);
for ($i = 0; $i < $numReplyTo; $i++)
{
if ($mailer->addReplyTo($replyTo[$i], $replyToName[$i]))
{
$hasReplyTo = true;
}
}
}
elseif ($replyTo)
{
if ($mailer->addReplyTo($replyTo, $replyToName))
{
$hasReplyTo = true;
}
}
// Add sender to replyTo only if no replyTo received
$mailer->setSender(array($from, $fromName, !$hasReplyTo));
return $mailer->Send();
}
catch (Exception $e)
{
JFactory::getApplication()->enqueueMessage($e->getMessage(),
'warning');
return false;
}
}
// send predefined email messages
public static function sendEmail($type, $data = array())
{
$lang = JFactory::getLanguage();
$lang->load('com_rsticketspro', JPATH_ADMINISTRATOR,
'en-GB', true);
$lang->load('com_rsticketspro', JPATH_ADMINISTRATOR,
$lang->getDefault(), true);
$lang->load('com_rsticketspro', JPATH_ADMINISTRATOR, null,
true);
$replacements = array(
'{live_site}' => JUri::root()
);
switch ($type)
{
// sent to the staff member when a ticket gets assigned to him
case 'add_ticket_staff':
self::prepareEmailAddress($data['department_id']);
// get email
$email = self::getEmail('add_ticket_staff');
if (!$email) {
return false;
}
// get ticket
$ticket = &$data['ticket'];
// get department
$department =
RSTicketsProHelper::getDepartment($data['department_id']);
$customer = JFactory::getUser($ticket->customer_id);
$staff = JFactory::getUser($ticket->staff_id);
// get latest message for ticket data
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('message'))
->from($db->qn('#__rsticketspro_ticket_messages'))
->where($db->qn('ticket_id') . '=' .
$db->q($data['ticket']->id))
->where($db->qn('user_id') . ' != ' .
$db->q('-1'))
->order($db->qn('date') . ' ' .
$db->escape('desc'));
$db->setQuery($query, 0, 1);
$message = $db->loadResult();
// ticket data
$replacements['{ticket}'] =
RSTicketsProHelper::route(JUri::root() .
'index.php?option=com_rsticketspro&view=ticket&cid=' .
$ticket->id . ':' .
JFilterOutput::stringURLSafe($ticket->subject));
$replacements['{message}'] = $message;
$replacements['{code}'] = $ticket->code;
$replacements['{subject}'] = $ticket->subject;
// department data
$replacements['{department_name}'] =
$replacements['{department-name}'] =
JText::_($department->name);
$replacements['{department_id}'] =
$replacements['{department-id}'] = $department->id;
// priority
$replacements['{priority}'] =
JText::_($ticket->priority->name);
// status
$replacements['{status}'] =
JText::_($ticket->status->name);
// customer data
$replacements['{customer_name}'] =
$replacements['{customer-name}'] = $customer->name;
$replacements['{customer_email}'] =
$replacements['{customer-email}'] = $customer->email;
$replacements['{customer_username}'] =
$replacements['{customer-username}'] = $customer->username;
// staff data
$replacements['{staff_name}'] =
$replacements['{staff-name}'] = $staff->name;
$replacements['{staff_email}'] =
$replacements['{staff-email}'] = $staff->email;
$replacements['{staff_username}'] =
$replacements['{staff-username}'] = $staff->username;
// custom fields
$fieldsText = '';
foreach ($ticket->fields as $field)
{
if (in_array($field->type, array('select',
'multipleselect', 'checkbox')))
{
$field->value = str_replace("\n", ', ',
$field->value);
}
$fieldsText .= '<p>' . JText::_($field->label) .
': ' . $field->value . '</p>';
$replacements['{field-' . $field->name . '}'] =
$field->value;
}
$replacements['{custom_fields}'] =
$replacements['{custom-fields}'] = $fieldsText;
$emailSubject = '[' . $ticket->code . '] ' .
$ticket->subject;
$emailMessage = str_replace(array_keys($replacements),
array_values($replacements), $email->message);
self::send(self::$from, self::$fromName, $staff->email,
$emailSubject, $emailMessage, true);
break;
case 'notification_department_change':
self::prepareEmailAddress($data['to']);
// get email
$email = self::getEmail('notification_department_change');
if (!$email) {
return false;
}
// get ticket
$ticket = &$data['ticket'];
// get department
$department =
RSTicketsProHelper::getDepartment($data['to']);
$customer = JFactory::getUser($ticket->customer_id);
$staff = JFactory::getUser($ticket->staff_id);
// get latest message for ticket data
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('message'))
->from($db->qn('#__rsticketspro_ticket_messages'))
->where($db->qn('ticket_id') . '=' .
$db->q($data['ticket']->id))
->where($db->qn('user_id') . ' != ' .
$db->q('-1'))
->order($db->qn('date') . ' ' .
$db->escape('desc'));
$db->setQuery($query, 0, 1);
$message = $db->loadResult();
// ticket data
$replacements['{ticket}'] =
RSTicketsProHelper::route(JUri::root() .
'index.php?option=com_rsticketspro&view=ticket&cid=' .
$ticket->id . ':' .
JFilterOutput::stringURLSafe($ticket->subject));
$replacements['{message}'] = $message;
$replacements['{code}'] = $ticket->code;
$replacements['{new_code}'] = $data['code'];
$replacements['{subject}'] = $ticket->subject;
// department data
$replacements['{department_name}'] =
$replacements['{department-name}'] =
JText::_($department->name);
$replacements['{department_id}'] =
$replacements['{department-id}'] = $department->id;
// priority
$replacements['{priority}'] =
JText::_($ticket->priority->name);
// status
$replacements['{status}'] =
JText::_($ticket->status->name);
// customer data
$replacements['{customer_name}'] =
$replacements['{customer-name}'] = $customer->name;
$replacements['{customer_email}'] =
$replacements['{customer-email}'] = $customer->email;
$replacements['{customer_username}'] =
$replacements['{customer-username}'] = $customer->username;
// staff data
$replacements['{staff_name}'] =
$replacements['{staff-name}'] = $staff->name;
$replacements['{staff_email}'] =
$replacements['{staff-email}'] = $staff->email;
$replacements['{staff_username}'] =
$replacements['{staff-username}'] = $staff->username;
$replacements['{department_from}'] =
JText::_($data['ticket']->department->name);
$replacements['{department_to}'] =
JText::_($department->name);
// custom fields
$fieldsText = '';
foreach ($ticket->fields as $field)
{
if (in_array($field->type, array('select',
'multipleselect', 'checkbox')))
{
$field->value = str_replace("\n", ', ',
$field->value);
}
$fieldsText .= '<p>' . JText::_($field->label) .
': ' . $field->value . '</p>';
$replacements['{field-' . $field->name . '}'] =
$field->value;
}
$replacements['{custom_fields}'] =
$replacements['{custom-fields}'] = $fieldsText;
$emailSubject = '[' . $data['code'] . ']
' . $ticket->subject;
$emailMessage = str_replace(array_keys($replacements),
array_values($replacements), $email->message);
self::send(self::$from, self::$fromName, $customer->email,
$emailSubject, $emailMessage, true);
break;
case 'feedback_followup_email':
self::prepareEmailAddress($data['department_id']);
$email = self::getEmail('feedback_followup_email');
if (!$email) {
return false;
}
// get ticket
$ticket = &$data['ticket'];
// get department
$department =
RSTicketsProHelper::getDepartment($data['department_id']);
$customer = JFactory::getUser($ticket->customer_id);
$staff = JFactory::getUser($ticket->staff_id);
// get latest message for ticket data
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('message'))
->from($db->qn('#__rsticketspro_ticket_messages'))
->where($db->qn('ticket_id') . '=' .
$db->q($data['ticket']->id))
->where($db->qn('user_id') . ' != ' .
$db->q('-1'))
->order($db->qn('date') . ' ' .
$db->escape('desc'));
$db->setQuery($query, 0, 1);
$message = $db->loadResult();
// ticket data
$replacements['{ticket}'] =
RSTicketsProHelper::route(JUri::root() .
'index.php?option=com_rsticketspro&view=ticket&cid=' .
$ticket->id . ':' .
JFilterOutput::stringURLSafe($ticket->subject));
$replacements['{message}'] = $message;
$replacements['{code}'] = $ticket->code;
$replacements['{subject}'] = $ticket->subject;
// department data
$replacements['{department_name}'] =
$replacements['{department-name}'] =
JText::_($department->name);
$replacements['{department_id}'] =
$replacements['{department-id}'] = $department->id;
// priority
$replacements['{priority}'] =
JText::_($ticket->priority->name);
// status
$replacements['{status}'] =
JText::_($ticket->status->name);
// customer data
$replacements['{customer_name}'] =
$replacements['{customer-name}'] = $customer->name;
$replacements['{customer_email}'] =
$replacements['{customer-email}'] = $customer->email;
$replacements['{customer_username}'] =
$replacements['{customer-username}'] = $customer->username;
// staff data
$replacements['{staff_name}'] =
$replacements['{staff-name}'] = $staff->name;
$replacements['{staff_email}'] =
$replacements['{staff-email}'] = $staff->email;
$replacements['{staff_username}'] =
$replacements['{staff-username}'] = $staff->username;
$access_code = md5($ticket->id . ' | ' .
$customer->email);
$no =
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&view=ticket&cid='
. $ticket->id .
'&task=ticket.rate&rating=1&access_code=' .
$access_code);
$yes =
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&view=ticket&cid='
. $ticket->id .
'&task=ticket.rate&rating=5&access_code=' .
$access_code);
$replacements['{no}'] = $no;
$replacements['{yes}'] = $yes;
$replacements['{feedback}'] =
JText::sprintf('RST_FEEDBACK_EMAIL', $no, $yes);
// custom fields
$fieldsText = '';
foreach ($ticket->fields as $field)
{
if (in_array($field->type, array('select',
'multipleselect', 'checkbox')))
{
$field->value = str_replace("\n", ', ',
$field->value);
}
$fieldsText .= '<p>' . JText::_($field->label) .
': ' . $field->value . '</p>';
$replacements['{field-' . $field->name . '}'] =
$field->value;
}
$replacements['{custom_fields}'] =
$replacements['{custom-fields}'] = $fieldsText;
$emailSubject = '[' . $ticket->code . '] ' .
$ticket->subject;
$emailMessage = str_replace(array_keys($replacements),
array_values($replacements), $email->message);
self::send(self::$from, self::$fromName, $customer->email,
$emailSubject, $emailMessage, true);
}
}
}PK�(�[%̿��helpers/export.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
abstract class RsticketsExport
{
public static function buildCSV($data, $fileHash = '')
{
// accepted headers and keys
$accepted_headers = array(
'date',
'last_reply',
'replies',
'code',
'subject',
'message',
'last_reply_message',
'customer',
'priority',
'status',
'staff'
);
$enable_time_spent =
RSTicketsProHelper::getConfig('enable_time_spent');
if ($enable_time_spent)
{
$accepted_headers[] = 'time_spent';
}
$rows = '';
if ($fileHash == '')
{
$headers = array();
foreach ($accepted_headers as $header)
{
if ($header == 'time_spent')
{
$headers[] = JText::_('RST_TIME_SPENT');
}
else
{
$headers[] =
JText::_('RST_TICKET_'.strtoupper($header));
}
}
// Add header to rows
$rows .= '"'.implode('","',
$headers).'"'."\n";
}
// load the dbo object
$db = JFactory::getDbo();
// Add the data to rows
foreach ($data as $i => $entry)
{
$row = array_flip($accepted_headers);
// get the ticket 1st message
$query = $db->getQuery(true)
->select($db->qn('message'))
->from($db->qn('#__rsticketspro_ticket_messages'))
->where($db->qn('ticket_id') .
'=' . $db->q($entry->id))
->where($db->qn('user_id') . '!='
. $db->q('-1'))
->order($db->qn('date') . ' ' .
$db->escape('asc'));
$row['message'] = $db->setQuery($query, 0,
1)->loadResult();
// get the last reply
$query = $db->getQuery(true)
->select($db->qn('message'))
->from($db->qn('#__rsticketspro_ticket_messages'))
->where($db->qn('ticket_id') .
'=' . $db->q($entry->id))
->where($db->qn('user_id') . '!='
. $db->q('-1'))
->order($db->qn('date') . ' ' .
$db->escape('desc'));
$row['last_reply_message'] = $db->setQuery($query,
0, 1)->loadResult();
// if they are the same, than the last reply does not exists
if ($row['message'] ===
$row['last_reply_message'])
{
$row['last_reply_message'] = '';
}
// remake the array with the fields that we need to output and
remodel for a human readable format
foreach ((array) $entry as $key => $value)
{
//skip if is not supposed to be added
if (!in_array($key, $accepted_headers))
{
continue;
}
if ($key == 'time_spent' &&
!$enable_time_spent)
{
unset($row[$key]);
continue;
}
switch ($key)
{
case 'date':
case 'last_reply':
$row[$key] = JHtml::_('date', $value,
RSTicketsProHelper::getConfig('date_format'));
break;
case 'staff';
$row[$key] = $entry->staff_id ? $value :
JText::_('RST_UNASSIGNED');
break;
case 'time_spent';
$row[$key] = RSTicketsProHelper::showTotal($value,
true);
break;
default:
$row[$key] = $value;
break;
}
}
array_walk($row, array('RsticketsExport',
'fixValue'));
$rows .=
'"'.implode('","',$row).'"';
$rows .="\n";
}
return $rows;
}
public static function fixValue(&$string, $key)
{
if (strlen($string) && in_array(substr($string, 0, 1),
array('=', '+', '-', '@')))
{
$string = ' ' . $string;
}
$string = str_replace(array('\\r', '\\n',
'\\t', '"'),
array("\015","\012","\011",
"'"), $string);
}
public static function writeCSV($query, $totalItems, $from, $fileHash,
$filename)
{
if
(!is_writable(JFactory::getConfig()->get('tmp_path'))) {
throw new
Exception(JText::sprintf('COM_RSTICKETSPRO_TMP_PATH_NOT_WRITABLE',
JFactory::getConfig()->get('tmp_path')));
}
$db = JFactory::getDbo();
$db->setQuery($query, $from,
RSTicketsProHelper::getConfig('export_limit'));
$data = $db->loadObjectList();
$fileContent = RsticketsExport::buildCSV($data, $fileHash);
// build the file hash if not already created
if (!$fileHash) {
$now = JHtml::date('now','D, d M Y
H:i:s');
$date =
JHtml::date('now','Y-m-d_H-i-s');
$filename = $filename.'-'.$date.'.csv';
$fileHash = md5($filename.$now);
}
// create or append the hashed file and put content
if ($fileContent) {
if (!file_put_contents(self::getTmpPath($fileHash),
$fileContent, FILE_APPEND)) {
throw new
Exception(JText::sprintf('COM_RSTICKETSPRO_COULD_NOT_EXPORT_CSV_PATH',
self::getTmpPath($fileHash)));
}
} else {
throw new
Exception(JText::_('COM_RSTICKETSPRO_EXPORT_NO_DATA'));
}
$newFrom = ($from +
RSTicketsProHelper::getConfig('export_limit'));
$checkRemaining = $totalItems - $newFrom;
return (object) array(
'newFrom' => ($checkRemaining > 0 ? $newFrom :
$totalItems),
'fileHash' => $fileHash
);
}
public static function getCSV($fileHash)
{
$file = self::getTmpPath($fileHash);
$content = is_file($file) ? file_get_contents($file) :
'';
return $content;
}
protected static function getTmpPath($fileHash)
{
return
JFactory::getConfig()->get('tmp_path').'/'.$fileHash;
}
public static function buildCSVHeaders($filename)
{
// disable caching
$now = JHtml::date('now','D, d M Y H:i:s');
$date = JHtml::date('now','Y-m-d_H-i-s');
$filename = $filename.'-'.$date.'.csv';
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Cache-Control: max-age=0, no-cache, must-revalidate,
proxy-revalidate");
header("Last-Modified: ".$now." GMT");
// force download
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
// disposition / encoding on response body
header("Content-Disposition:
attachment;filename=".$filename);
header("Content-Transfer-Encoding: binary");
}
}PK�(�[i��T�*�*helpers/fields.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RSTicketsProFieldHelper
{
protected static function isCode($value)
{
if (strpos(strtolower($value), '//<code>') !== false)
{
return eval($value);
}
return $value;
}
public static function showCustomField($field, $selected = array(),
$editable = true, $department_id = 0)
{
if (empty($field) || empty($field->type))
{
return false;
}
if (isset($field->value))
{
switch ($field->type)
{
case 'freetext':
case 'textbox':
case 'textarea':
case 'calendar':
case 'calendartime':
case 'radio':
$selected[$field->name] = $field->value;
break;
case 'select':
case 'multipleselect':
case 'checkbox':
$selected[$field->name] = self::explode($field->value);
break;
}
}
$template = '%s';
$name = $department_id ?
'rst_custom_fields[department_'.$department_id.']['.$field->name.']'
: 'rst_custom_fields['.$field->name.']';
// Create the XML
$xml = new SimpleXMLElement('<field></field>');
$xml->addAttribute('label', $field->label);
$xml->addAttribute('description', $field->description);
if ($field->required)
{
$xml->addAttribute('required', 'true');
}
if ($department_id)
{
$xml->addAttribute('showon',
'jform[department_id]:' . $department_id);
}
if (!$editable)
{
$template .= '<div
class="rst_custom_field_label">' . $field->label .
'</div><div
class="rst_custom_field_value">%s</div>';
}
switch ($field->type)
{
case 'freetext':
$jfield = JFormHelper::loadFieldType('rsticketsprohtml');
$jfield->setup($xml, self::isCode($field->values));
return $jfield->renderField(array('class' =>
'rst_custom_field'));
break;
case 'textbox':
$value = isset($selected[$field->name]) ? $selected[$field->name]
: self::isCode($field->values);
if ($editable)
{
$xml->addAttribute('name', $name);
$xml->addAttribute('class', 'rst_textbox');
$jfield = JFormHelper::loadFieldType('text');
$jfield->setup($xml, $value);
$html = $jfield->renderField(array('class' =>
'rst_custom_field'));
if ($field->additional)
{
$html = str_replace('<input', '<input ' .
$field->additional, $html);
}
return $html;
}
else
{
return sprintf($template, RSTicketsProHelper::htmlEscape($value));
}
break;
case 'textarea':
$value = isset($selected[$field->name]) ? $selected[$field->name]
: self::isCode($field->values);
if ($editable)
{
$xml->addAttribute('name', $name);
$xml->addAttribute('class', 'rst_textarea');
$jfield = JFormHelper::loadFieldType('textarea');
$jfield->setup($xml, $value);
$html = $jfield->renderField(array('class' =>
'rst_custom_field'));
if ($field->additional)
{
$html = str_replace('<textarea', '<textarea
' . $field->additional, $html);
}
return $html;
}
else
{
return sprintf($template,
nl2br(RSTicketsProHelper::htmlEscape($value)));
}
break;
case 'select':
self::getOptions($field, $xml, $selected, $values);
if ($editable)
{
$xml->addAttribute('name', $name . '[]');
$xml->addAttribute('class', 'rst_select');
$jfield = JFormHelper::loadFieldType('list');
$jfield->setup($xml, $values);
$html = $jfield->renderField(array('class' =>
'rst_custom_field'));
if ($field->additional)
{
$html = str_replace('<select', '<select ' .
$field->additional, $html);
}
return $html;
}
else
{
return sprintf($template,
nl2br(RSTicketsProHelper::htmlEscape(implode("\n", $values))));
}
break;
case 'multipleselect':
self::getOptions($field, $xml, $selected, $values);
if ($editable)
{
$xml->addAttribute('name', $name);
$xml->addAttribute('class', 'rst_select');
$xml->addAttribute('multiple', 'multiple');
$jfield = JFormHelper::loadFieldType('list');
$jfield->setup($xml, $values);
$html = $jfield->renderField(array('class' =>
'rst_custom_field'));
if ($field->additional)
{
$html = str_replace('<select', '<select ' .
$field->additional, $html);
}
return $html;
}
else
{
return sprintf($template,
nl2br(RSTicketsProHelper::htmlEscape(implode("\n", $values))));
}
break;
case 'checkbox':
self::getOptions($field, $xml, $selected, $values);
if ($editable)
{
$xml->addAttribute('name', $name);
$jfield = JFormHelper::loadFieldType('checkboxes');
$jfield->setup($xml, $values);
$html = $jfield->renderField(array('class' =>
'rst_custom_field'));
if ($field->additional)
{
$html = str_replace('<input', '<input ' .
$field->additional, $html);
}
return $html;
}
else
{
return sprintf($template,
nl2br(RSTicketsProHelper::htmlEscape(implode("\n", $values))));
}
break;
case 'radio':
self::getOptions($field, $xml, $selected, $values);
$value = isset($values[0]) ? $values[0] : null;
if ($editable)
{
$xml->addAttribute('name', $name);
if (version_compare(JVERSION, '4.0', '>='))
{
$jfield = JFormHelper::loadFieldType('radiobasic');
}
else
{
$jfield = JFormHelper::loadFieldType('radio');
}
$jfield->setup($xml, $value);
$html = $jfield->renderField(array('class' =>
'rst_custom_field'));
if ($field->additional)
{
$html = str_replace('<input', '<input ' .
$field->additional, $html);
}
return $html;
}
else
{
return sprintf($template, RSTicketsProHelper::htmlEscape($value));
}
break;
case 'calendar':
case 'calendartime':
$value = isset($selected[$field->name]) ? $selected[$field->name]
: self::isCode($field->values);
if ($editable)
{
$xml->addAttribute('name', $name);
if ($field->type === 'calendartime')
{
$format =
self::getCalendarFormat(RSTicketsProHelper::getConfig('date_format'));
$xml->addAttribute('showtime', 'true');
}
else
{
$format =
self::getCalendarFormat(RSTicketsProHelper::getConfig('date_format_notime'));
}
$xml->addAttribute('format', $format);
if ($field->additional)
{
$attributes = self::parseAttributes($field->additional);
foreach ($attributes as $attribute => $val)
{
$xml->addAttribute($attribute, $val);
}
}
$jfield = JFormHelper::loadFieldType('calendar');
// Sanity check for value
try
{
JFactory::getDate($value);
}
catch (Exception $e)
{
$value = null;
}
$jfield->setup($xml, $value);
return $jfield->renderField(array('class' =>
'rst_custom_field'));
}
else
{
return sprintf($template, RSTicketsProHelper::htmlEscape($value));
}
break;
}
return false;
}
protected static function parseAttributes($string)
{
$parsed = array();
// Let's grab all the key/value pairs using a regular expression
if
(preg_match_all('/([\w:-]+)[\s]?(=[\s]?"([^"]*)")?/i',
$string, $attr))
{
$numPairs = count($attr[1]);
for ($i = 0; $i < $numPairs; $i++)
{
$parsed[$attr[1][$i]] = $attr[3][$i];
}
}
return $parsed;
}
protected static function getOptions($field, $xml, $selected,
&$values)
{
$values = array();
$field->values = self::explode(self::isCode($field->values));
if ($field->values)
{
foreach ($field->values as $string)
{
$disabled = false;
if (strpos($string, '[d]') !== false)
{
$string = str_replace('[d]', '', $string);
$disabled = true;
}
// <optgroup>
if (strpos($string, '[g]') !== false)
{
$string = str_replace('[g]', '', $string);
$option = $xml->addChild('option', $string);
$option->addAttribute('value',
'<OPTGROUP>');
continue;
}
if (strpos($string, '[/g]') !== false)
{
$string = str_replace('[/g]', '', $string);
$option = $xml->addChild('option', $string);
$option->addAttribute('value',
'</OPTGROUP>');
continue;
}
$checked = false;
if (strpos($string, '[c]') !== false)
{
$string = str_replace('[c]', '', $string);
if (!isset($selected[$field->name]))
{
$checked = true;
}
}
if (strpos($string, '|') !== false)
{
list($value, $text) = explode('|', $string, 2);
}
else
{
$value = $text = $string;
}
if (isset($selected[$field->name]) && in_array($value,
(array) $selected[$field->name]))
{
$checked = true;
}
$option = $xml->addChild('option', $text);
$option->addAttribute('value', $value);
if ($disabled)
{
$option->addAttribute('disabled', 'disabled');
}
if ($checked)
{
$values[] = $value;
}
}
}
}
protected static function getCalendarFormat($format)
{
/*
%a abbreviated weekday name D
%A full weekday name l
%b abbreviated month name M
%B full month name F
%C century number
%d the day of the month ( 00 .. 31 ) d
%e the day of the month ( 0 .. 31 ) j
%H hour ( 00 .. 23 ) H
%I hour ( 01 .. 12 ) h
%j day of the year ( 000 .. 366 ) z
%k hour ( 0 .. 23 ) G
%l hour ( 1 .. 12 ) g
%m month ( 01 .. 12 ) m
%M minute ( 00 .. 59 ) i
%n a newline character \n
%p ``PM'' or ``AM'' A
%P ``pm'' or ``am'' a
%S second ( 00 .. 59 ) s
%s number of seconds since Epoch (since Jan 01 1970 00:00:00 UTC) U
%t a tab character \t
%U, %W, %V the week number W
%u the day of the week ( 1 .. 7, 1 = MON ) N
%w the day of the week ( 0 .. 6, 0 = SUN ) w
%y year without the century ( 00 .. 99 ) y
%Y year including the century ( ex. 1979 ) Y
%% a literal % character %
*/
$php = array('%', 'D', 'l', 'M',
'F', 'd', 'j', 'H', 'h',
'z', 'G', 'g', 'm', 'i',
"\n", 'A', 'a', 's', 'U',
"\t", 'W', 'N', 'w', 'y',
'Y');
$js = array('%%', '%a', '%A',
'%b', '%B', '%d', '%e',
'%H', '%I', '%j', '%k',
'%l', '%m', '%M', '%n',
'%p', '%P', '%S', '%s',
'%t', '%U', '%u', '%w',
'%y', '%Y');
return str_replace($php, $js, $format);
}
protected static function explode($string)
{
$string = str_replace(array("\r\n", "\r"),
"\n", $string);
return explode("\n", $string);
}
}PK�(�[�#o,,helpers/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[Ɉ�ȻȻhelpers/rsticketspro.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
require_once dirname(__FILE__) . '/config.php';
require_once dirname(__FILE__) . '/version.php';
if (!defined('RST_UPLOAD_FOLDER'))
{
define('RST_UPLOAD_FOLDER', JPATH_SITE .
'/components/com_rsticketspro/assets/files');
}
if (!defined('RST_CATEGORY_THUMB_FOLDER'))
{
define('RST_CATEGORY_THUMB_FOLDER', JPATH_SITE .
'/components/com_rsticketspro/assets/thumbs');
}
define('RST_STATUS_OPEN', 1);
define('RST_STATUS_CLOSED', 2);
define('RST_STATUS_ON_HOLD', 3);
define('RST_ASSIGNMENT_STATIC', 0);
define('RST_ASSIGNMENT_AUTO', 1);
define('RST_DEPARTMENT_RULE_RANDOM', 1);
define('RST_DEPARTMENT_RULE_SEQUENTIAL', 0);
JTable::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/tables');
JForm::addFormPath(JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/models/forms');
JForm::addFieldPath(JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/models/fields');
class RSTicketsProHelper
{
public static function readConfig($force = false)
{
$config = RSTicketsProConfig::getInstance();
if ($force)
{
$config->reload();
}
return $config->getData();
}
public static function cronPluginExists() {
static $result;
if (is_null($result)) {
$result = JPluginHelper::getPlugin('system',
'rsticketsprocron');
}
return !empty($result);
}
public static function getConfig($name = null)
{
$config = RSTicketsProConfig::getInstance();
if (is_null($name))
{
return $config->getData();
}
else
{
if ($name == 'show_alternative_email' &&
!self::cronPluginExists())
{
return false;
}
return $config->get($name);
}
}
public static function saveSystemMessage($ticket_id, $data, $includeUser =
true)
{
// get the current user
if ($includeUser)
{
$data['user_id'] = JFactory::getUser()->id;
}
JTable::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/tables');
$message = JTable::getInstance('Ticketmessages',
'RsticketsproTable');
$message->save(array(
'ticket_id' => $ticket_id,
'user_id' => '-1',
'message' => serialize($data),
'date' => JFactory::getDate()->toSql(),
'html' => 0
));
}
protected static function getSystemObject($type, $id, $escape = true)
{
static $cache;
// Cache our data so we don't query the db often
if (!is_array($cache))
{
$cache = array();
$db = JFactory::getDbo();
// Load departments
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('name'))
->from($db->qn('#__rsticketspro_departments'));
$cache['department'] =
$db->setQuery($query)->loadObjectList('id');
// Load statuses
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('name'))
->from($db->qn('#__rsticketspro_statuses'));
$cache['status'] =
$db->setQuery($query)->loadObjectList('id');
// Load priorities
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('name'))
->from($db->qn('#__rsticketspro_priorities'));
$cache['priority'] =
$db->setQuery($query)->loadObjectList('id');
$cache['user'] = array(
// Get the 'Unassigned' user.
0 => (object) array(
'name' => JText::_('RST_UNASSIGNED')
)
);
}
if ($type == 'user' && !isset($cache[$type][$id]))
{
$userField = RSTicketsProHelper::getConfig('show_user_info');
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('username'))
->select($db->qn('name'))
->select($db->qn('email'))
->from($db->qn('#__users'))
->where($db->qn('id') . '=' .
$db->q($id));
if ($user = $db->setQuery($query)->loadObject())
{
$cache[$type][$id] = (object) array('name' =>
$user->{$userField});
}
}
// Found a match
if (isset($cache[$type][$id]) &&
isset($cache[$type][$id]->name))
{
if ($escape)
{
return htmlentities($cache[$type][$id]->name, ENT_COMPAT,
'utf-8');
}
else
{
return $cache[$type][$id]->name;
}
}
// Failsafe
return JText::_('RST_SYSMESSAGE_MISSING');
}
public static function checkIfEmailExists($email)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('id')
->from($db->qn('#__users'))
->where($db->qn('email') . ' = ' .
$db->q($email));
$db->setQuery($query);
return $db->loadResult();
}
protected static function parseSystemMessage($data)
{
$message = '';
$data = unserialize($data);
switch ($data['type'])
{
case 'department':
$from = self::getSystemObject($data['type'],
$data['from']);
$to = self::getSystemObject($data['type'],
$data['to']);
$user = self::getSystemObject('user',
$data['user_id']);
$message =
JText::sprintf('RST_SYSMESSAGE_TICKET_DEPARTMENT_CHANGE',
JText::_($from), JText::_($to), $user);
break;
case 'priority':
$from = self::getSystemObject($data['type'],
$data['from']);
$to = self::getSystemObject($data['type'],
$data['to']);
$user = self::getSystemObject('user',
$data['user_id']);
$message =
JText::sprintf('RST_SYSMESSAGE_TICKET_PRIORITY_CHANGE',
JText::_($from), JText::_($to), $user);
break;
case 'status':
$from = self::getSystemObject($data['type'],
$data['from']);
$to = self::getSystemObject($data['type'],
$data['to']);
$user = self::getSystemObject('user',
$data['user_id']);
$message =
JText::sprintf('RST_SYSMESSAGE_TICKET_STATUS_CHANGE',
JText::_($from), JText::_($to), $user);
break;
case 'staff':
$from = self::getSystemObject('user',
$data['from']);
$to = self::getSystemObject('user',
$data['to']);
$user = self::getSystemObject('user',
$data['user_id']);
$message =
JText::sprintf('RST_SYSMESSAGE_TICKET_STAFF_CHANGE', $from, $to,
$user);
break;
case 'autoclose':
$message = JText::sprintf('RST_SYSMESSAGE_TICKET_AUTO_CLOSE',
$data['days']);
break;
}
return $message;
}
public static function addHistory($ticket_id, $type = 'view',
$user_id = null, $ip = null)
{
if (is_null($user_id))
{
$user_id = JFactory::getUser()->id;
}
if (is_null($ip))
{
$ip =
JFactory::getApplication()->input->server->get('REMOTE_ADDR',
'', 'string');
}
if (!RSTicketsProHelper::getConfig('store_ip'))
{
$ip = '0.0.0.0';
}
$table = JTable::getInstance('Tickethistory',
'RsticketsproTable');
$table->save(array(
'ticket_id' => $ticket_id,
'user_id' => $user_id,
'ip' => $ip,
'date' => JFactory::getDate()->toSql(),
'type' => $type,
));
}
public static function getDepartment($department_id, $reload = false)
{
static $cache = array();
if (!isset($cache[$department_id]) || $reload)
{
JTable::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/tables');
$cache[$department_id] = JTable::getInstance('Departments',
'RsticketsproTable');
$cache[$department_id]->load($department_id);
}
return $cache[$department_id];
}
// deprecated
public static function getAdminGroups()
{
require_once dirname(__FILE__) . '/users.php';
return RSTicketsProUsersHelper::getAdminGroups();
}
// deprecated
public static function getAdminUsers()
{
require_once dirname(__FILE__) . '/users.php';
return RSTicketsProUsersHelper::getAdminUsers();
}
public static function mailRoute($url, $xhtml = true, $Itemid = 0)
{
$url .= $Itemid ? '&Itemid=' . $Itemid : '';
$path = JUri::root(false) . $url;
return self::route($path, $xhtml, $Itemid, false);
}
public static function route($url, $xhtml = true, $Itemid = '',
$absolute = false)
{
if (!$Itemid &&
RSTicketsProHelper::getConfig('calculate_itemids'))
{
$Itemid = RSTicketsProHelper::_findRoute($url);
}
if (strpos($url, 'Itemid=') === false)
{
if (!$Itemid)
{
$Itemid =
JFactory::getApplication()->input->getInt('Itemid', 0);
if ($Itemid)
{
$Itemid = 'Itemid=' . $Itemid;
}
}
elseif ($Itemid)
{
$Itemid = 'Itemid=' . (int) $Itemid;
}
if ($Itemid)
{
$url .= (strpos($url, '?') === false) ? '?' .
$Itemid : '&' . $Itemid;
}
}
$converted_url = JRoute::_($url, $xhtml);
if ($absolute)
{
$uri = JUri::getInstance();
$converted_url = $uri->toString(array('scheme',
'host', 'port')) . $converted_url;
}
return $converted_url;
}
public static function _findRoute($url)
{
$app = JFactory::getApplication();
if ($app->isClient('administrator'))
{
return '';
}
static $cache;
if (!is_array($cache))
{
$cache = array();
}
$hash = md5($url);
if (isset($cache[$hash]))
{
return $cache[$hash];
}
$query = array();
$url = str_replace('index.php?', '', $url);
$parts = explode('&', $url);
foreach ($parts as $part)
{
$part = explode('=', $part, 2);
$query[$part[0]] = @$part[1];
}
if (!isset($query['option']))
{
return '';
}
if (isset($query['view']) && $query['view']
== 'ticket')
{
$query = array();
$query['option'] = 'com_rsticketspro';
$query['view'] = 'tickets';
}
if ($app->input->getCmd('option') ==
'com_rsticketspro')
{
$count = 0;
foreach ($query as $var => $value)
{
if ($app->input->getCmd($var) &&
$app->input->getCmd($var) == $value)
{
$count++;
}
}
if ($count == count($query) &&
$app->input->getInt('Itemid'))
{
return $app->input->getInt('Itemid');
}
}
$menus = $app->getMenu('site');
$component = JComponentHelper::getComponent($query['option']);
$items = $menus->getItems('component_id',
$component->id);
if ($items)
{
foreach ($items as $item)
{
if (!isset($item->query))
{
continue;
}
$count = 0;
foreach ($item->query as $var => $value)
{
if (isset($query[$var]) && $value == $query[$var])
{
$count++;
}
}
if ($count == count($query))
{
$cache[$hash] = $item->id;
}
}
}
if (isset($cache[$hash]))
{
return $cache[$hash];
}
return '';
}
public static function getReplyAbove()
{
$use_editor =
RSTicketsProHelper::getConfig('allow_rich_editor');
$use_text =
RSTicketsProHelper::getConfig('use_reply_above');
$text = RSTicketsProHelper::getConfig('reply_above');
if ($use_text)
{
if ($use_editor)
{
return '<p>----------' . $text .
'----------</p>';
}
else
{
return '----------' . $text . '----------';
}
}
return '';
}
public static function getPriorities($show_please_select = false)
{
$return = array();
$db = JFactory::getDbo();
if ($show_please_select)
{
$return[] = JHtml::_('select.option', '',
JText::_('RST_PLEASE_SELECT_PRIORITY'));
}
$query = $db->getQuery(true)
->select('*')
->from($db->qn('#__rsticketspro_priorities'))
->where($db->qn('published') . ' = ' .
$db->q(1))
->order($db->qn('ordering') . ' asc');
if ($results = $db->setQuery($query)->loadObjectList())
{
foreach ($results as $result)
{
$return[] = JHtml::_('select.option', $result->id,
JText::_($result->name));
}
}
return $return;
}
public static function getJSSubjects($subjects)
{
if (strpos($subjects, '<code>') !== false)
{
$subjects = eval($subjects);
}
if (!is_array($subjects)) {
$values = str_replace(array("\r\n", "\r"),
"\n", $subjects);
$values = explode("\n", $values);
} else {
$values = $subjects;
}
$return = array();
$return[] = "'':'" .
JText::_('RST_PLEASE_SELECT_SUBJECT', true) .
"'";
foreach ($values as $value) {
if (!empty($value)) {
$return[] = json_encode($value) . ':' .
json_encode(JText::_($value));
}
}
return $return;
}
public static function getStatuses()
{
$return = array();
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('*')
->from($db->qn('#__rsticketspro_statuses'))
->where($db->qn('published') . ' = ' .
$db->q(1))
->order($db->qn('ordering') . ' asc');
if ($results = $db->setQuery($query)->loadObjectList())
{
foreach ($results as $result)
{
$return[] = JHtml::_('select.option', $result->id,
JText::_($result->name));
}
}
return $return;
}
public static function getDepartments($show_please_select = false)
{
$return = array();
$db = JFactory::getDbo();
if ($show_please_select)
{
$return[] = JHtml::_('select.option', '',
JText::_('RST_PLEASE_SELECT_DEPARTMENT'));
}
$query = $db->getQuery(true)
->select('*')
->from($db->qn('#__rsticketspro_departments'))
->where($db->qn('published') . ' = ' .
$db->q(1))
->order($db->qn('ordering') . ' asc');
if ($results = $db->setQuery($query)->loadObjectList())
{
$force_departments =
RSTicketsProHelper::getConfig('staff_force_departments');
$is_staff = RSTicketsProHelper::isStaff();
$departments = RSTicketsProHelper::getCurrentDepartments();
foreach ($results as $result)
{
if ($is_staff && $force_departments &&
!in_array($result->id, $departments))
{
continue;
}
$return[] = JHtml::_('select.option', $result->id,
JText::_($result->name));
}
}
return $return;
}
public static function getStaff($show_please_select = false,
$show_only_can_reply = false)
{
$db = JFactory::getDbo();
$what = RSTicketsProHelper::getConfig('show_user_info');
$return = array();
if ($show_please_select)
{
$return[] = JHtml::_('select.option', '',
JText::_('RST_PLEASE_SELECT_STAFF'));
}
if ($show_only_can_reply)
{
$query = $db->getQuery(true)
->select($db->qn('id'))
->from($db->qn('#__rsticketspro_groups'))
->where($db->qn('answer_ticket') . ' = ' .
$db->q(1));
$group_ids = $db->setQuery($query)->loadColumn();
}
$query = $db->getQuery(true)
->select('*')
->from($db->qn('#__rsticketspro_departments'))
->where($db->qn('published') . ' = ' .
$db->q(1))
->order($db->qn('ordering') . ' asc');
if ($departments = $db->setQuery($query)->loadObjectList())
{
foreach ($departments as $department)
{
$optgroup = new stdClass();
$optgroup->value = '<OPTGROUP>';
$optgroup->text = JText::_($department->name);
$return[] = $optgroup;
$query = $db->getQuery(true)
->select($db->qn('user_id'))
->from($db->qn('#__rsticketspro_staff_to_department'))
->where($db->qn('department_id') . ' = ' .
$db->q($department->id));
$users = $db->setQuery($query)->loadColumn();
if ($show_only_can_reply)
{
if (empty($group_ids))
{
$users = array();
}
elseif ($users)
{
$query = $db->getQuery(true)
->select($db->qn('user_id'))
->from($db->qn('#__rsticketspro_staff'))
->where($db->qn('group_id') . ' IN (' .
implode(',', $db->q($group_ids)) . ')')
->where($db->qn('user_id') . ' IN (' .
implode(',', $db->q($users)) . ')');
$users = $db->setQuery($query)->loadColumn();
}
}
if ($users)
{
foreach ($users as $user_id)
{
$user = JFactory::getUser($user_id);
$return[] = JHtml::_('select.option',
$user->get('id'), $user->get($what));
}
}
$optgroup = new stdClass();
$optgroup->value = '</OPTGROUP>';
$optgroup->text = '';
$return[] = $optgroup;
}
}
return $return;
}
public static function getAvatar($user_id)
{
static $avatar_cache = array();
if (!isset($avatar_cache[$user_id]))
{
$avatars = RSTicketsProHelper::getConfig('avatars');
$icon = RSTicketsProHelper::isStaff($user_id) ? 'staff' :
'user';
$src = JHtml::_('image', 'com_rsticketspro/' .
$icon . '-icon.png', '', array(), true, 1);
switch ($avatars)
{
// Gravatar
case 'gravatar':
$user = JFactory::getUser($user_id);
$email = md5(strtolower(trim($user->get('email'))));
$length = strlen(JUri::root(true).'/');
$site_url = substr(JUri::root(), 0 , -$length);
$src = 'https://www.gravatar.com/avatar/' . $email .
'?d=' . urlencode($site_url.JHtml::_('image',
'com_rsticketspro/' . $icon . '.png', '',
array(), true, 1));
break;
// Community Builder
case 'comprofiler':
require_once JPATH_ADMINISTRATOR .
'/components/com_comprofiler/plugin.foundation.php';
global $_CB_framework;
$cbUser = CBuser::getInstance($user_id);
$avatar = $cbUser->getField('avatar', null,
'php', 'none', 'list');
if (isset($avatar['avatar']))
{
$src = $avatar['avatar'];
}
else
{
$src = false;
}
break;
// JomSocial
case 'community':
$file = JPATH_SITE .
'/components/com_community/libraries/core.php';
if (file_exists($file))
{
require_once $file;
$user = CFactory::getUser($user_id);
$src = $user->getThumbAvatar();
}
break;
// Kunena
case 'kunena':
$file = JPATH_ADMINISTRATOR .
'/components/com_kunena/libraries/user/user.php';
if (file_exists($file))
{
require_once $file;
$user = KunenaUser::getInstance($user_id);
$src = $user->getAvatarURL();
}
elseif (file_exists(JPATH_LIBRARIES . '/kunena/factory.php')
|| class_exists('KunenaFactory'))
{
require_once JPATH_LIBRARIES . '/kunena/factory.php';
$profile = KunenaFactory::getUser($user_id);
$src = $profile->getAvatarURL('list');
}
break;
}
$avatar_cache[$user_id] = $src;
}
return $avatar_cache[$user_id];
}
public static function explode($string)
{
$string = str_replace(array("\r\n", "\r"),
"\n", $string);
return explode("\n", $string);
}
public static function showCustomField($field, $selected = array(),
$editable = true, $department_id = 0)
{
require_once dirname(__FILE__) . '/fields.php';
return RSTicketsProFieldHelper::showCustomField($field, $selected,
$editable, $department_id);
}
public static function canDeleteTimeTracking($user_id = null, $col =
'can_delete_time_history')
{
if (!$user_id)
{
$user = JFactory::getUser();
if ($user->get('guest'))
{
return false;
}
}
if (RSTicketsProHelper::isAdmin($user_id))
{
return true;
}
$user_id = (int) $user_id;
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->qn('id'))
->from($db->qn('#__rsticketspro_staff'))
->where($db->qn('user_id'). '= '.
$db->q($user_id))
->where($db->qn($col). '= '. $db->q(1));
$db->setQuery($query);
if ($db->loadResult())
{
return true;
}
return false;
}
public static function isStaff($user_id = null)
{
if (!$user_id)
{
if (JFactory::getUser()->get('guest'))
{
return false;
}
return JFactory::getSession()->get('rsticketspro.is_staff',
false);
}
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->qn('id'))
->from($db->qn('#__rsticketspro_staff'))
->where($db->qn('user_id') . ' = ' .
$db->q($user_id));
if ($db->setQuery($query)->loadResult())
{
return true;
}
if (RSTicketsProHelper::isAdmin($user_id))
{
return true;
}
return false;
}
public static function getCurrentPermissions()
{
if (JFactory::getUser()->get('guest'))
{
return array();
}
return
JFactory::getSession()->get('rsticketspro.permissions',
array());
}
public static function getCurrentDepartments()
{
if (JFactory::getUser()->get('guest'))
{
return array();
}
return
JFactory::getSession()->get('rsticketspro.departments',
array());
}
public static function getPermissions($user_id)
{
$return = array();
$user = JFactory::getUser($user_id);
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->qn('group_id'))
->from($db->qn('#__rsticketspro_staff'))
->where($db->qn('user_id') . ' = ' .
$db->q($user->id));
if ($group_id = $db->setQuery($query)->loadResult())
{
$query = $db->getQuery(true)
->select('*')
->from($db->qn('#__rsticketspro_groups'))
->where($db->qn('id') . ' = ' .
$db->q($group_id));
$return = $db->setQuery($query)->loadObject();
}
elseif (RSTicketsProHelper::isAdmin($user_id))
{
$return = JTable::getInstance('Groups',
'RsticketsproTable');
}
return $return;
}
// $user_id = if left null, the current logged in user's signature is
retrieved
// $raw = if set to true, it will grab the signature as it appears in the
database,
// otherwise it will strip the tags if no rich editor is set
public static function getSignature($user_id = null, $raw = false)
{
$user = $user_id ? JFactory::getUser($user_id) : JFactory::getUser();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('signature'))
->from($db->qn('#__rsticketspro_staff'))
->where($db->qn('user_id') . '=' .
$db->q($user->id));
$db->setQuery($query);
$signature = (string) $db->loadResult();
if (!$raw)
{
$allowEditor = self::getConfig('allow_rich_editor');
if (!$allowEditor)
{
$signature = strip_tags($signature);
}
}
return $signature;
}
public static function isAdmin($user_id = null)
{
$user = $user_id ? JFactory::getUser($user_id) : JFactory::getUser();
$admin_groups = RSTicketsProHelper::getAdminGroups();
$user_groups = $user->getAuthorisedGroups();
foreach ($user_groups as $user_group_id)
{
if (in_array($user_group_id, $admin_groups))
{
return true;
}
}
return false;
}
public static function getConsecutiveReplies($ticket_id)
{
$replies = 0;
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->qn('user_id'))
->from($db->qn('#__rsticketspro_ticket_messages'))
->where($db->qn('ticket_id') . '=' .
$db->q($ticket_id))
->where($db->qn('user_id') . '!=' .
$db->q('-1'))
->where($db->qn('submitted_by_staff') . '=' .
$db->q('0'))
->order($db->qn('date') . ' ' .
$db->escape('desc'));
if ($users = $db->setQuery($query)->loadColumn())
{
foreach ($users as $user_id)
{
if (RSTicketsProHelper::isStaff($user_id))
{
break;
}
$replies++;
}
}
return $replies;
}
public static function getExtension($filename)
{
return JFile::getExt($filename);
}
public static function isAllowedExtension($ext, $ext_array)
{
if (!is_array($ext_array))
{
return true;
}
if (count($ext_array) == 0)
{
return true;
}
if (count($ext_array) == 1 && trim($ext_array[0]) ==
'')
{
return true;
}
if (in_array('*', $ext_array))
{
return true;
}
// convert everything to lowercase
$ext = strtolower($ext);
array_walk($ext_array, array('RSTicketsProHelper',
'arraytolower'));
return in_array($ext, $ext_array);
}
public static function arraytolower(&$value, $key)
{
$value = strtolower($value);
}
// deprecated
public static function getEmail($type)
{
require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/emails.php';
return RSTicketsProEmailsHelper::getEmail($type);
}
public static function getFooter()
{
$footer = '<p style="text-align: center"><a
href="https://www.rsjoomla.com/joomla-components/joomla-help-desk.html"
title="Joomla! Help Desk Ticketing System"
target="_blank">Joomla! Help Desk Ticketing System</a>
by <a href="https://www.rsjoomla.com"
target="_blank" title="Joomla!
Extensions">RSJoomla!</a></p>';
return $footer;
}
public static function shorten($string, $max = 255, $more =
'...')
{
$string_tmp = '';
$exp = explode(' ', $string);
for ($i = 0; $i < count($exp); $i++)
{
if (strlen($string_tmp) + strlen($exp[$i]) < $max)
{
$string_tmp .= $exp[$i] . ' ';
}
else
{
break;
}
}
$string = substr($string_tmp, 0, -1) . (strlen($string) >
strlen($string_tmp) ? $more : '');
return RSTicketsProHelper::closeTags($string);
}
public static function closeTags($html)
{
preg_match_all('#<([a-z]+)(?: .*)?(?<![/|/ ])>#iU',
$html, $result);
$openedtags = $result[1];
preg_match_all('#</([a-z]+)>#iU', $html, $result);
$closedtags = $result[1];
$len_opened = count($openedtags);
if (count($closedtags) == $len_opened)
{
return $html;
}
$openedtags = array_reverse($openedtags);
for ($i = 0; $i < $len_opened; $i++)
{
if (!in_array($openedtags[$i], $closedtags))
{
$html .= '</' . $openedtags[$i] . '>';
}
else
{
unset($closedtags[array_search($openedtags[$i], $closedtags)]);
}
}
return $html;
}
public static function sendMail($from, $fromname, $recipient, $subject,
$body, $mode = 0, $attachments = null, $cc = null, $bcc = null)
{
try
{
if (!is_array($recipient))
{
$recipient = array($recipient);
}
foreach ($recipient as $i => $r)
{
$r = trim($r);
if (!JMailHelper::isEmailAddress($r))
{
unset($recipient[$i]);
}
}
if (empty($recipient) || !count($recipient))
{
return false;
}
// Get a JMail instance
$mail = JFactory::getMailer();
$mail->ClearReplyTos();
$mail->setSender(array($from, $fromname));
$mail->setSubject($subject);
$mail->setBody($body);
// Are we sending the email as HTML?
if ($mode)
{
$mail->IsHTML(true);
$mail->AltBody = strip_tags($body);
}
$mail->addRecipient($recipient);
$mail->ClearReplyTos();
$mail->addReplyTo($from, $fromname);
if (!empty($cc))
{
$cc = str_replace(array("\r\n", "\r"),
"\n", $cc);
$cc = explode("\n", $cc);
foreach ($cc as $i => $r)
{
$r = trim($r);
if (!JMailHelper::isEmailAddress($r))
{
continue;
}
$mail->addCC($r);
}
}
if (!empty($bcc))
{
$bcc = str_replace(array("\r\n", "\r"),
"\n", $bcc);
$bcc = explode("\n", $bcc);
foreach ($bcc as $i => $r)
{
$r = trim($r);
if (!JMailHelper::isEmailAddress($r))
{
continue;
}
$mail->addBCC($r);
}
}
if (is_array($attachments) && count($attachments))
{
foreach ($attachments as $attachment)
{
$mail->AddStringAttachment(file_get_contents($attachment->path),
$attachment->filename);
}
}
return $mail->Send();
}
catch (Exception $e)
{
JFactory::getApplication()->enqueueMessage($e->getMessage(),
'warning');
return false;
}
}
public static function htmlEscape($val)
{
return htmlentities($val, ENT_COMPAT, 'UTF-8');
}
public static function sef($id)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
if (JFactory::getApplication()->isClient('administrator'))
{
return $id;
}
else
{
$query->select($db->qn('subject'))
->from($db->qn('#__rsticketspro_tickets'))
->where($db->qn('id') . ' = ' . (int) $id);
$db->setQuery($query);
$name = $db->loadResult();
return $id . ':' . JFilterOutput::stringURLSafe($name);
}
}
public static function showMessage($message)
{
if ($message->html == 1)
{
// message was saved in HTML format
return RSTicketsProHelper::cleanHTML($message);
}
elseif ($message->html == 2)
{
// message was saved before the REV 9 update
return '<p>' . nl2br($message->message) .
'</p>';
}
else
{
// message was saved in TEXT format
// keep tabs and double spaces in proper format
if ($message->user_id == '-1')
{
$message->message =
RSTicketsProHelper::parseSystemMessage($message->message);
}
else
{
$message->message =
RSTicketsProHelper::htmlEscape($message->message);
$message->message = str_replace(' ',
' ', $message->message);
$message->message = str_replace("\t",
' ',
$message->message);
}
return '<p>' . nl2br($message->message) .
'</p>';
}
}
public static function filterText($text, $user = null)
{
// Punyencoding utf8 email addresses
$text = JFilterInput::getInstance()->emailToPunycode($text);
// Filter settings
$config = JComponentHelper::getParams('com_config');
if ($user && !empty($user->id))
{
$userGroups = JAccess::getGroupsByUser($user->get('id'));
}
else
{
static $filter;
if (!$filter)
{
$filter = JFilterInput::getInstance(
array('a', 'abbr', 'address',
'b', 'br', 'caption', 'center',
'dd', 'dl', 'dt', 'del',
'em', 'font', 'hr', 'i',
'img', 'ins', 'ul', 'li',
'mark', 'ol', 'p', 'span',
'small', 'strong', 'sub', 'sup',
'table', 'tbody', 'td', 'tr',
'th', 'thead', 'u', 'h1',
'h2', 'h3', 'h4', 'h5',
'h6'),
array('size', 'src', 'href',
'title', 'rel', 'color', 'face',
'colspan', 'rowspan', 'align',
'bgcolor', 'border', 'cellpadding',
'cellspacing', 'valign', 'alt')
);
}
return $filter->clean($text, 'html');
}
$filters = $config->get('filters');
$blackListTags = array();
$blackListAttributes = array();
$customListTags = array();
$customListAttributes = array();
$whiteListTags = array();
$whiteListAttributes = array();
$whiteList = false;
$blackList = false;
$customList = false;
$unfiltered = false;
// Cycle through each of the user groups the user is in.
// Remember they are included in the Public group as well.
foreach ($userGroups as $groupId)
{
// May have added a group by not saved the filters.
if (!isset($filters->$groupId))
{
continue;
}
// Each group the user is in could have different filtering properties.
$filterData = $filters->$groupId;
$filterType = strtoupper($filterData->filter_type);
if ($filterType == 'NH')
{
// Maximum HTML filtering.
}
elseif ($filterType == 'NONE')
{
// No HTML filtering.
$unfiltered = true;
}
else
{
// Blacklist or whitelist.
// Preprocess the tags and attributes.
$tags = explode(',', $filterData->filter_tags);
$attributes = explode(',',
$filterData->filter_attributes);
$tempTags = array();
$tempAttributes = array();
foreach ($tags as $tag)
{
$tag = trim($tag);
if ($tag)
{
$tempTags[] = $tag;
}
}
foreach ($attributes as $attribute)
{
$attribute = trim($attribute);
if ($attribute)
{
$tempAttributes[] = $attribute;
}
}
// Collect the blacklist or whitelist tags and attributes.
// Each list is cummulative.
if ($filterType == 'BL')
{
$blackList = true;
$blackListTags = array_merge($blackListTags, $tempTags);
$blackListAttributes = array_merge($blackListAttributes,
$tempAttributes);
}
elseif ($filterType == 'CBL')
{
// Only set to true if Tags or Attributes were added
if ($tempTags || $tempAttributes)
{
$customList = true;
$customListTags = array_merge($customListTags, $tempTags);
$customListAttributes = array_merge($customListAttributes,
$tempAttributes);
}
}
elseif ($filterType == 'WL')
{
$whiteList = true;
$whiteListTags = array_merge($whiteListTags, $tempTags);
$whiteListAttributes = array_merge($whiteListAttributes,
$tempAttributes);
}
}
}
// Remove duplicates before processing (because the blacklist uses both
sets of arrays).
$blackListTags = array_unique($blackListTags);
$blackListAttributes = array_unique($blackListAttributes);
$customListTags = array_unique($customListTags);
$customListAttributes = array_unique($customListAttributes);
$whiteListTags = array_unique($whiteListTags);
$whiteListAttributes = array_unique($whiteListAttributes);
// Unfiltered assumes first priority.
if ($unfiltered)
{
// Dont apply filtering.
}
else
{
// Custom blacklist precedes Default blacklist
if ($customList)
{
$filter = JFilterInput::getInstance(array(), array(), 1, 1);
// Override filter's default blacklist tags and attributes
if ($customListTags)
{
$filter->tagBlacklist = $customListTags;
}
if ($customListAttributes)
{
$filter->attrBlacklist = $customListAttributes;
}
}
// Blacklists take second precedence.
elseif ($blackList)
{
// Remove the whitelisted tags and attributes from the black-list.
$blackListTags = array_diff($blackListTags, $whiteListTags);
$blackListAttributes = array_diff($blackListAttributes,
$whiteListAttributes);
$filter = JFilterInput::getInstance($blackListTags,
$blackListAttributes, 1, 1);
// Remove whitelisted tags from filter's default blacklist
if ($whiteListTags)
{
$filter->tagBlacklist = array_diff($filter->tagBlacklist,
$whiteListTags);
}
// Remove whitelisted attributes from filter's default blacklist
if ($whiteListAttributes)
{
$filter->attrBlacklist = array_diff($filter->attrBlacklist,
$whiteListAttributes);
}
}
// Whitelists take third precedence.
elseif ($whiteList)
{
// Turn off XSS auto clean
$filter = JFilterInput::getInstance($whiteListTags,
$whiteListAttributes, 0, 0, 0);
}
// No HTML takes last place.
else
{
$filter = JFilterInput::getInstance();
}
$text = $filter->clean($text, 'html');
}
return $text;
}
public static function cleanHTML($message)
{
$html = $message->message;
if (function_exists('mb_convert_encoding'))
{
$html = mb_convert_encoding($html, 'HTML-ENTITIES',
'UTF-8');
}
if (class_exists('DOMDocument'))
{
$html = static::filterText($html,
JFactory::getUser($message->user_id));
$doc = new DOMDocument();
$errors = libxml_use_internal_errors(true);
$doc->loadHTML('<?xml version="1.0"
encoding="UTF-8"?><html_tags>' . $html .
'</html_tags>');
$doc->encoding = 'UTF-8';
libxml_clear_errors();
$html =
substr($doc->saveHTML($doc->getElementsByTagName('html_tags')->item(0)),
strlen('<html_tags>'),
-strlen('</html_tags>'));
libxml_use_internal_errors($errors);
}
return $html;
}
public static function trigger($event, $params)
{
static $app;
if (is_null($app))
{
$app = JFactory::getApplication();
JPluginHelper::importPlugin('rsticketspro');
}
// Prefix our events with 'onRsticketspro'
$event = substr_replace($event, 'onRsticketspro', 0, 2);
$app->triggerEvent($event, $params);
}
public static function tooltipClass()
{
static $loaded = false;
if (!$loaded)
{
$loaded = true;
static::tooltipLoad();
}
return 'hasPopover';
}
// Prepare the tooltip text
public static function tooltipText($title, $content = '')
{
if ($content === '')
{
if (strpos($title, '::') !== false)
{
list($title, $content) = explode('::', $title);
}
else
{
$content = $title;
}
}
// title="
$result = htmlspecialchars(trim($title, ':')) .
'"';
// "
if (version_compare(JVERSION, '4.0', '>='))
{
if (JFactory::getLanguage()->isRtl())
{
$result .= ' data-bs-placement="left" ';
}
$result .= ' data-bs-content="' .
htmlspecialchars($content);
}
else
{
if (JFactory::getLanguage()->isRtl())
{
$result .= ' data-placement="left" ';
}
$result .= ' data-content="' .
htmlspecialchars($content);
}
return $result;
}
// Load tooltip
public static function tooltipLoad()
{
JHtml::_('bootstrap.popover', '.hasPopover',
array('trigger' => 'hover focus'));
}
public static function renderModal($id, $args)
{
if (RSTicketsProHelper::getConfig('use_magnific_popup'))
{
return static::renderMagnificPopup($id, $args);
}
else
{
return JHtml::_('bootstrap.renderModal', $id, $args);
}
}
public static function openModal($id)
{
if (RSTicketsProHelper::getConfig('use_magnific_popup'))
{
return "RSTicketsPro.openMagnificModal(event,
'#{$id}');";
}
else
{
return "jQuery('#{$id}').modal('show');";
}
}
public static function renderMagnificPopup($id = null, $args = array())
{
if (is_null($id))
{
return '';
}
if (!isset($args['title']) || strlen($args['title'])
== 0)
{
return '';
}
if (!isset($args['url']) || strlen($args['url']) ==
0)
{
return '';
}
static $loadFiles;
if (is_null($loadFiles))
{
JHtml::_('jquery.framework');
JHtml::_('script',
'com_rsticketspro/jquery.magnific-popup.min.js',
array('relative' => true, 'version' =>
'auto'));
JHtml::_('stylesheet',
'com_rsticketspro/magnific-popup.css', array('relative'
=> true, 'version' => 'auto'));
JText::script('RST_JQUERY_NOT_FOUND');
$loadFiles = true;
}
if (!isset($args['height']))
{
$args['height'] = 400;
}
$modal_html = '<div id="' . htmlspecialchars($id,
ENT_COMPAT, 'utf-8') . '"
class="rst-magnific-popup mfp-hide">
<div class="magnific-header">
<h3 id="rsdir-owner-reply-header">' .
htmlspecialchars($args['title'], ENT_COMPAT, 'utf-8') .
'</h3>
</div>
<div class="magnific-popup-body">
<iframe style="height:
'.$args['height'].'px;" src="' .
htmlspecialchars($args['url'], ENT_COMPAT, 'utf-8') .
'"></iframe>
</div>
<button
title="'.JText::_('RST_CLOSE').'"
type="button"
class="mfp-close">×</button>
</div>';
return $modal_html;
}
public static function anonymise($id, $anonymiseJoomlaData = null)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$subquery = $db->getQuery(true);
$fake_text =
JText::_('COM_RSTICKETSPRO_DATA_HAS_BEEN_ANONYMISED');
$fake_ip = '0.0.0.0';
if ($anonymiseJoomlaData === null)
{
$anonymiseJoomlaData =
RSTicketsProHelper::getConfig('anonymise_joomla_data');
}
if ($anonymiseJoomlaData) {
// Let's create a fake email & fake username
$fake_email = JUserHelper::genRandomPassword(mt_rand(10,
16)) . '@' . JUserHelper::genRandomPassword(mt_rand(10, 16));
$fake_username = JUserHelper::genRandomPassword(mt_rand(10,
16));
// Make sure this email is free
$query->clear()
->select($db->qn('id'))
->from($db->qn('#__users'))
->where($db->qn('email') . ' = '
. $db->q($fake_email));
while ($db->setQuery($query)->loadResult())
{
$fake_email .= JUserHelper::genRandomPassword(mt_rand(1,
2));
$query->clear()
->select($db->qn('id'))
->from($db->qn('#__users'))
->where($db->qn('email') . ' =
' . $db->q($fake_email));
}
// Make sure this username is free
$query->clear()
->select($db->qn('id'))
->from($db->qn('#__users'))
->where($db->qn('username') . ' =
' . $db->q($fake_username));
while ($db->setQuery($query)->loadResult())
{
$fake_username .= JUserHelper::genRandomPassword(mt_rand(1,
2));
$query->clear()
->select($db->qn('id'))
->from($db->qn('#__users'))
->where($db->qn('username') . ' =
' . $db->q($fake_username));
}
// #__users data
$query->clear()
->update($db->qn('#__users'))
->set($db->qn('name') . ' = ' .
$db->q($fake_username))
->set($db->qn('username') . ' = '
. $db->q($fake_username))
->set($db->qn('email') . ' = ' .
$db->q($fake_email))
->set($db->qn('password') . ' = '
.
$db->q(JUserHelper::hashPassword(JUserHelper::genRandomPassword(20))))
->where($db->qn('id') . ' = ' .
$db->q($id));
$db->setQuery($query)->execute();
}
// Remove custom searches
$query->clear()
->delete($db->qn('#__rsticketspro_searches'))
->where($db->qn('user_id') . ' = ' .
$db->q($id));
$db->setQuery($query)->execute();
// Remove staff to department assignments
$query->clear()
->delete($db->qn('#__rsticketspro_staff_to_department'))
->where($db->qn('user_id') . ' = ' .
$db->q($id));
$db->setQuery($query)->execute();
// Anonymise tickets
$query->clear()
->update($db->qn('#__rsticketspro_tickets'))
->set($db->qn('subject') . ' = ' .
$db->q($fake_text))
->set($db->qn('agent') . ' = ' .
$db->q(''))
->set($db->qn('ip') . ' = ' .
$db->q($fake_ip))
->where('(' . $db->qn('customer_id')
. ' = ' . $db->q($id) . ') OR (' .
$db->qn('staff_id') . ' = ' . $db->q($id) .
')');
$db->setQuery($query)->execute();
// Anonymise ticket messages
$query->clear()
->update($db->qn('#__rsticketspro_ticket_messages'))
->set($db->qn('message') . ' = ' .
$db->q($fake_text))
->where($db->qn('user_id') . ' = ' .
$db->q($id));
$db->setQuery($query)->execute();
// Remove ticket files
$subquery->clear()
->select($db->qn('id'))
->from($db->qn('#__rsticketspro_ticket_messages'))
->where($db->qn('user_id') . ' = ' .
$db->q($id));
$query->clear()
->select($db->qn('id'))
->select($db->qn('ticket_message_id'))
->from($db->qn('#__rsticketspro_ticket_files'))
->where($db->qn('ticket_message_id') . '
IN (' . (string) $subquery . ')');
if ($files = $db->setQuery($query)->loadObjectList())
{
foreach ($files as $file)
{
$hash = md5($file->id . ' ' .
$file->ticket_message_id);
JFile::delete(RST_UPLOAD_FOLDER . '/' . $hash);
}
}
// Anonymise ticket custom fields
$subquery->clear()
->select($db->qn('id'))
->from($db->qn('#__rsticketspro_tickets'))
->where('(' . $db->qn('customer_id')
. ' = ' . $db->q($id) . ') OR (' .
$db->qn('staff_id') . ' = ' . $db->q($id) .
')');
$query->clear()
->update($db->qn('#__rsticketspro_custom_fields_values'))
->set($db->qn('value') . ' = ' .
$db->q($fake_text))
->where($db->qn('ticket_id') . ' IN
(' . (string) $subquery . ')');
$db->setQuery($query)->execute();
// Anonymise ticket history
$query->clear()
->update($db->qn('#__rsticketspro_ticket_history'))
->set($db->qn('ip') . ' = ' .
$db->q($fake_ip))
->where($db->qn('user_id') . ' = ' .
$db->q($id));
$db->setQuery($query)->execute();
// Anonymise ticket notes
$query->clear()
->update($db->qn('#__rsticketspro_ticket_notes'))
->set($db->qn('text') . ' = ' .
$db->q($fake_text))
->where($db->qn('user_id') . ' = ' .
$db->q($id));
$db->setQuery($query)->execute();
}
public static function getAlternativeEmail($user_id = null) {
if (empty($user_id)) {
return '';
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('alternative_email')
->from($db->qn('#__rsticketspro_tickets'))
->where($db->qn('customer_id') . '=' .
$db->q($user_id))
->order($db->qn('date') . ' ' .
$db->escape('desc'));
$db->setQuery($query, 0, 1);
return (string) $db->loadResult();
}
public static function showTotal($duration, $split = false)
{
$return = '';
$unit = RSTicketsProHelper::getConfig('time_spent_unit');
if (RSTicketsProHelper::getConfig('time_spent_type') ===
'tracking')
{
if ($split)
{
$split_data = explode('.', $duration);
$total_minutes = (int)$split_data[0] * 60;
$total_minutes += (int)$split_data[1];
$duration = $total_minutes * 60;
}
switch ($unit)
{
case 'm':
$minutes = floor($duration / 60);
$return = $minutes . ' ' .
JText::_('RST_TIME_UNIT_MINUTES');
$diff = $duration - ($minutes * 60);
if ($diff > 0)
{
$return .= ' ' . $diff . ' ' .
JText::_('RST_TIME_UNIT_SECONDS');
}
break;
case 'h':
$hours = round($duration / 3600);
$return = $hours . ' ' .
JText::_('RST_TIME_UNIT_HOURS');
$diff = $duration - ($hours * 3600);
if ($diff > 0)
{
$minutes = round($diff / 60);
$return .= ' ' . $minutes . ' ' .
JText::_('RST_TIME_UNIT_MINUTES');
if ($hours == 0 && $minutes == 0) {
$diff_sec = $duration - ($minutes * 60);
$return .= ' (' . $diff_sec . ' ' .
JText::_('RST_TIME_UNIT_SECONDS').')';
}
}
break;
case 'd':
$days = round($duration / 86400);
$return = $days . ' ' .
JText::_('RST_TIME_UNIT_DAYS');
$diff = $duration - ($days * 86400);
if ($diff > 0)
{
$hours = round($diff / 3600);
$return .= ' ' . $hours . ' ' .
JText::_('RST_TIME_UNIT_HOURS');
$diff = $diff - ($hours * 3600);
if ($diff > 0)
{
$minutes = round($diff / 60);
$return .= ' ' . $minutes . ' ' .
JText::_('RST_TIME_UNIT_MINUTES');
}
}
break;
}
}
else
{
$return = $duration . ' ' .
JText::_('RST_TIME_UNIT_' . $unit);
}
return $return;
}
public static function showNotifyIcon($ticket)
{
if (!RSTicketsProHelper::isStaff() ||
!RSTicketsProHelper::getConfig('autoclose_enabled') ||
$ticket->last_reply_customer || $ticket->autoclose_sent ||
$ticket->status_id == RST_STATUS_CLOSED)
{
return '';
}
$interval =
RSTicketsProHelper::getConfig('autoclose_email_interval') *
86400;
if ($interval < 86400)
{
$interval = 86400;
}
$now = JFactory::getDate()->toUnix();
$last_reply = JFactory::getDate($ticket->last_reply)->toUnix() +
$interval;
if ($last_reply > $now)
{
return '';
}
$overdue = floor(($now - $last_reply) / 86400);
if (!$overdue)
{
return '';
}
$url =
RSTicketsProHelper::route('index.php?option=com_rsticketspro&task=ticket.notify&cid='
. $ticket->id);
$img = '<i class="rsticketsproicon-attention
rst_notify_ticket"></i>';
return '<span
class="'.RSTicketsProHelper::tooltipClass().'"
title="'.RSTicketsProHelper::tooltipText(JText::sprintf('RST_TICKET_NOTIFY_DESC',
$overdue)).'"><a
href="'.$url.'">'.$img.'</a></span>';
}
}PK�(�[V�!����helpers/ticket.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RSTicketsProTicketHelper
{
protected $data = array();
protected $attachments = array();
protected $error;
public $message_id = 0;
public $ticket_id = 0;
public static function convert($ticket, $ticketMessages, $params)
{
$body =
RSTicketsProHelper::getConfig('kb_template_body');
$ticketBody =
RSTicketsProHelper::getConfig('kb_template_ticket_body');
$useEditor =
RSTicketsProHelper::getConfig('allow_rich_editor');
$dateFormat = RSTicketsProHelper::getConfig('date_format');
$showEmailLink =
RSTicketsProHelper::getConfig('show_email_link');
$userInfo =
RSTicketsProHelper::getConfig('show_user_info');
$table = JTable::getInstance('Kbcontent',
'RsticketsproTable');
$db = JFactory::getDbo();
// Parse ticket message template
$messages = array();
foreach ($ticketMessages as $message)
{
// get user
$user = JFactory::getUser($message->user_id);
// no editor - transform newlines into <br />
if (!$useEditor)
{
$message->message = nl2br($message->message);
}
// replacements
$replacements = array(
'{message_user}' => $showEmailLink ? '<a
href="mailto:' . htmlentities($user->email, ENT_COMPAT,
'utf-8') . '">' .
htmlentities($user->{$userInfo}, ENT_COMPAT, 'utf-8') .
'</a>' : htmlentities($user->{$userInfo}, ENT_COMPAT,
'utf-8'),
'{message_user_name}' => htmlentities($user->name,
ENT_COMPAT, 'utf-8'),
'{message_user_username}' =>
htmlentities($user->username, ENT_COMPAT, 'utf-8'),
'{message_user_email}' => htmlentities($user->email,
ENT_COMPAT, 'utf-8'),
'{message_date}' => JHtml::_('date',
$message->date, $dateFormat),
'{message_text}' => $message->message
);
$messages[] = str_replace(array_keys($replacements),
array_values($replacements), $ticketBody);
}
// Parse template body
$replacements = array(
'{ticket_subject}' => $ticket->subject,
'{ticket_department}' => $ticket->department->name,
'{ticket_date}' => JHtml::_('date',
$ticket->date, $dateFormat),
'{ticket_messages}' => implode("\n",
$messages)
);
return $table->save(array(
'name' => $params->name,
'text' => str_replace(array_keys($replacements),
array_values($replacements), $body),
'category_id' => $params->category_id,
'published' => $params->publish_article,
'private' => $params->private,
'from_ticket_id' => $ticket->id,
'ordering' =>
$table->getNextOrder($db->qn('category_id') . '='
. $db->q($params->category_id))
));
}
protected static function generateNumber($max = 10)
{
$key = '';
for ($i = 0; $i < $max; $i++)
{
$w1 = rand(0, 1);
$w2 = 1 - $w1;
$key .= chr($w1 * rand(65, 90) + $w2 * rand(48, 57));
}
return $key;
}
public static function generateCode($department_id)
{
$code = '';
$db = JFactory::getDbo();
$department = RSTicketsProHelper::getDepartment($department_id);
if ($department->generation_rule == RST_DEPARTMENT_RULE_RANDOM)
{
// trick to enter the loop below
$found = true;
while ($found)
{
// add the department prefix
$code = $department->prefix . '-' .
strtoupper(self::generateNumber(10));
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->from($db->qn('#__rsticketspro_tickets'))
->where($db->qn('code') . '=' .
$db->q($code));
$db->setQuery($query);
$found = $db->loadResult();
}
}
elseif ($department->generation_rule ==
RST_DEPARTMENT_RULE_SEQUENTIAL)
{
// add the department prefix
$code = $department->prefix . '-' .
str_pad($department->next_number, 10, 0, STR_PAD_LEFT);
$department->save(array(
'id' => $department->id,
'next_number' => $department->next_number + 1
));
}
return $code;
}
public function bind($data)
{
$this->data = $data;
}
public function setError($error)
{
$this->error = $error;
}
public function getError()
{
return $this->error;
}
public function saveTicket()
{
$db = JFactory::getDbo();
// trigger event before saving and adding user_error
RSTicketsProHelper::trigger('onBeforeStoreTicket',
array($this->data));
// create user
if (empty($this->data['customer_id']))
{
if (RSTicketsProHelper::getConfig('allow_password_change')
&& !empty($this->data['password']))
{
$password = $this->data['password'];
}
else
{
$password = JUserHelper::genRandomPassword(8);
}
if ($user_id = $this->createUser($password))
{
$this->data['customer_id'] = $user_id;
}
else
{
return false;
}
}
// assign staff member based on department settings
// unassigned
$this->data['staff_id'] = 0;
$department =
RSTicketsProHelper::getDepartment($this->data['department_id']);
// auto-assign to staff member with the least assigned tickets
if ($department->assignment_type == RST_ASSIGNMENT_AUTO)
{
// select staff members that belong to this department
$query = $db->getQuery(true);
$query->select($db->qn('user_id'))
->from($db->qn('#__rsticketspro_staff_to_department'))
->where($db->qn('department_id') . '=' .
$db->q($department->id));
$db->setQuery($query);
if ($staff_ids = $db->loadColumn())
{
// select groups that can answer tickets
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->from($db->qn('#__rsticketspro_groups'))
->where($db->qn('answer_ticket') . '=' .
$db->q(1));
$db->setQuery($query);
if ($group_ids = $db->loadColumn())
{
$priority_ids = array(0,
$this->data['priority_id']);
$group_ids = array_map('intval',
$group_ids);
$staff_ids = array_map('intval',
$staff_ids);
$priority_ids = array_map('intval',
$priority_ids);
$query = $db->getQuery(true);
$query->select($db->qn('user_id'))
->from($db->qn('#__rsticketspro_staff'))
->where($db->qn('group_id') . ' IN (' .
implode(',', $group_ids) . ')')
->where($db->qn('user_id') . ' IN (' .
implode(',', $staff_ids) . ')')
->where($db->qn('priority_id') . ' IN (' .
implode(',', $priority_ids) . ')')
->where($db->qn('exclude_auto_assign') . ' =
' . $db->q(0));
$db->setQuery($query);
if ($staff_ids = $db->loadColumn())
{
$staff_ids = array_map('intval',
$staff_ids);
$query = $db->getQuery(true);
$query->select($db->qn('staff_id'))
->select('COUNT(' . $db->qn('id') .
') AS tickets')
->from($db->qn('#__rsticketspro_tickets'))
->where($db->qn('status_id') . '!=' .
$db->q(RST_STATUS_CLOSED))
->where($db->qn('staff_id') . ' IN (' .
implode(',', $staff_ids) . ')')
->group($db->qn('staff_id'))
->order($db->qn('tickets') . ' ' .
$db->escape('asc'));
$db->setQuery($query);
$stats = $db->loadObjectList('staff_id');
// must make sure we cover all staff members, even those who
don't have tickets yet
foreach ($staff_ids as $staff)
{
if (!isset($stats[$staff]))
{
// found a staff member who has 0 tickets - assign
$staff_id = $staff;
break;
}
}
// no staff member assigned so far - must grab from query the first
result
if (empty($staff_id) && $stats)
{
if ($tmp = reset($stats))
{
$staff_id = $tmp->staff_id;
}
}
// get a random staff id from all the members
if (empty($staff_id))
{
$staff_id = $staff_ids[mt_rand(0, count($staff_ids) - 1)];
}
}
}
}
if (!empty($staff_id))
{
$this->data['staff_id'] = $staff_id;
}
}
// generate code based on department
$this->data['code'] =
RSTicketsProTicketHelper::generateCode($this->data['department_id']);
// add ticket
$ticket = JTable::getInstance('Tickets',
'RsticketsproTable');
if (!$ticket->save($this->data))
{
$this->setError($ticket->getError());
return false;
}
$this->ticket_id = $ticket->id;
// populate new data
$this->data['ticket_id'] = $ticket->id;
$this->data['user_id'] = $ticket->customer_id;
// trigger event after saving ticket
RSTicketsProHelper::trigger('onAfterStoreTicket',
array($this->data, $ticket));
// let's add custom fields
$custom_fields_email = '';
if (!empty($this->data['fields']))
{
foreach ($this->data['fields'] as $custom_field_id =>
$value)
{
$table = JTable::getInstance('Customfieldsvalues',
'RsticketsproTable');
$table->save(array(
'custom_field_id' => $custom_field_id,
'ticket_id' => $ticket->id,
'value' => $value
));
// append fields to email text
$field = JTable::getInstance('Customfields',
'RsticketsproTable');
$field->load($custom_field_id);
$label = JText::_($field->label);
$val = is_array($value) ? implode(', ', $value) : $value;
$custom_fields_email .= "<p>$label: $val</p>";
}
}
// let's save the message
if (!$this->saveMessage(false))
{
return false;
}
// get email sending settings
if ($department->email_use_global)
{
// are we using global ?
if (RSTicketsProHelper::getConfig('email_use_global'))
{
$config = JFactory::getConfig();
$from = $config->get('mailfrom');
$fromname = $config->get('fromname');
}
else
{
$from = RSTicketsProHelper::getConfig('email_address');
$fromname =
RSTicketsProHelper::getConfig('email_address_fullname');
}
}
else
{
$from = $department->email_address;
$fromname = $department->email_address_fullname;
}
$priority = JTable::getInstance('Priorities',
'RsticketsproTable');
$priority->load($ticket->priority_id);
$status = JTable::getInstance('Statuses',
'RsticketsproTable');
$status->load($ticket->status_id);
// start sending emails
// send email to the customer with a copy of his own ticket
if ($department->customer_send_copy_email)
{
if ($email =
RSTicketsProHelper::getEmail('add_ticket_customer'))
{
$customer = JFactory::getUser($ticket->customer_id);
$replacements = array(
'{live_site}' => JUri::root(),
'{ticket}' =>
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&view=ticket&id='
. $ticket->id . ':' .
JFilterOutput::stringURLSafe($ticket->subject), true,
RSTicketsProHelper::getConfig('customer_itemid')),
'{customer_name}' => $customer->name,
'{customer_username}' => $customer->username,
'{customer_email}' => $customer->email,
'{code}' => $ticket->code,
'{subject}' => $ticket->subject,
'{priority}' => JText::_($priority->name),
'{status}' => JText::_($status->name),
'{message}' =>
$this->data['message'],
'{custom_fields}' => $custom_fields_email,
'{department_id}' => $department->id,
'{department_name}' => JText::_($department->name)
);
$email_subject = '[' . $ticket->code . '] ' .
$ticket->subject;
$email_message = str_replace(array_keys($replacements),
array_values($replacements), $email->message);
$email_message = RSTicketsProHelper::getReplyAbove() . $email_message;
/**
* Grab ticket attachments
*/
$files = $this->getTicketAttachments($ticket->id);
/**
* Set this as default to null so we can overwrite
* only when it's necessary -> download_type ==
'attachment'
*/
$attachments = null;
/**
* Check if the setting is activated and if there are files
*
*/
if ($department->customer_attach_email && !empty($files))
{
/**
* In case the download type is set to link
* we add a list of files to the end of
* the email message
*/
if ($department->download_type == 'link')
{
if ($files) {
$email_message .= '<ul>';
foreach ($files as $file) {
$url =
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&task=ticket.downloadfile&id='
. $file->id . '&access_code=' . md5($ticket->id .
'|' . $file->id . '|' . $file->filename));
$email_message .= '<li><a href="' . $url .
'">' . $file->filename .
'</a></li>';
}
$email_message .= '</ul>';
}
}
/**
* if the download_type == 'attachment'
* we need to populate $attachments var
* with the files
*/
else
{
$attachments = $this->attachments;
}
}
RSTicketsProHelper::sendMail($from, $fromname, $customer->email,
$email_subject, $email_message, 1, $attachments, $department->cc,
$department->bcc);
}
}
// send email to the staff member that gets assigned this ticket
if ($department->staff_send_email &&
$this->data['staff_id'])
{
if ($email =
RSTicketsProHelper::getEmail('add_ticket_staff'))
{
$customer =
JFactory::getUser($this->data['customer_id']);
$staff = JFactory::getUser($this->data['staff_id']);
$replacements = array(
'{live_site}' => JUri::root(),
'{ticket}' =>
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&view=ticket&id='
. $ticket->id . ':' .
JFilterOutput::stringURLSafe($ticket->subject), true,
RSTicketsProHelper::getConfig('customer_itemid')),
'{customer_name}' => $customer->name,
'{customer_username}' => $customer->username,
'{customer_email}' => $customer->email,
'{staff_name}' => $staff->name,
'{staff_username}' => $staff->username,
'{staff_email}' => $staff->email,
'{code}' => $ticket->code,
'{subject}' => $ticket->subject,
'{priority}' => JText::_($priority->name),
'{status}' => JText::_($status->name),
'{message}' =>
$this->data['message'],
'{custom_fields}' => $custom_fields_email,
'{department_id}' => $department->id,
'{department_name}' => JText::_($department->name)
);
$email_subject = '[' . $ticket->code . '] ' .
$ticket->subject;
$email_message = str_replace(array_keys($replacements),
array_values($replacements), $email->message);
$email_message = RSTicketsProHelper::getReplyAbove() . $email_message;
/**
* Grab ticket attachments
*/
$files = $this->getTicketAttachments($ticket->id);
/**
* Set this as default to null so we can overwrite
* only when it's necessary -> download_type ==
'attachment'
*/
$attachments = null;
/**
* Check if the setting is activated and if there are files
*
*/
if ($department->staff_attach_email && !empty($files))
{
/**
* In case the download type is set to link
* we add a list of files to the end of
* the email message
*/
if ($department->download_type == 'link')
{
$email_message .= '<ul>';
foreach ($files as $file)
{
$url =
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&task=ticket.downloadfile&id='
. $file->id . '&access_code=' .
md5($ticket->id.'|'.$file->id.'|'.$file->filename));
$email_message .= '<li><a href="' . $url .
'">' . $file->filename .
'</a></li>';
}
$email_message .= '</ul>';
}
/**
* if the download_type == 'attachment'
* we need to populate $attachments var
* with the files
*/
else
{
$attachments = $this->attachments;
}
}
RSTicketsProHelper::sendMail($from, $fromname, $staff->email,
$email_subject, $email_message, 1, $attachments, $department->cc,
$department->bcc);
}
}
// notify the email addresses configured in the department
if ($department->notify_new_tickets_to)
{
if ($email =
RSTicketsProHelper::getEmail('add_ticket_notify'))
{
$customer =
JFactory::getUser($this->data['customer_id']);
$staff = JFactory::getUser($this->data['staff_id']);
$replacements = array(
'{live_site}' => JUri::root(),
'{ticket}' =>
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&view=ticket&id='
. $ticket->id . ':' .
JFilterOutput::stringURLSafe($ticket->subject), true,
RSTicketsProHelper::getConfig('customer_itemid')),
'{customer_name}' => $customer->name,
'{customer_username}' => $customer->username,
'{customer_email}' => $customer->email,
'{staff_name}' => $staff->name,
'{staff_username}' => $staff->username,
'{staff_email}' => $staff->email,
'{code}' => $ticket->code,
'{subject}' => $ticket->subject,
'{priority}' => JText::_($priority->name),
'{status}' => JText::_($status->name),
'{message}' =>
$this->data['message'],
'{custom_fields}' => $custom_fields_email,
'{department_id}' => $department->id,
'{department_name}' => JText::_($department->name)
);
$email_subject = '[' . $ticket->code . '] ' .
$ticket->subject;
$email_message = str_replace(array_keys($replacements),
array_values($replacements), $email->message);
$notify_new_tickets_to = str_replace(array("\r\n",
"\r"), "\n", $department->notify_new_tickets_to);
$notify_new_tickets_to = explode("\n",
$notify_new_tickets_to);
foreach ($notify_new_tickets_to as $notify_email)
{
$notify_email = trim($notify_email);
/**
* Grab ticket attachments
*/
$files = $this->getTicketAttachments($ticket->id);
/**
* Set this as default to null so we can overwrite
* only when it's necessary -> download_type ==
'attachment'
*/
$attachments = null;
/**
* Check if the setting is activated and if there are files
*
*/
if ($department->staff_attach_email && !empty($files))
{
/**
* In case the download type is set to link
* we add a list of files to the end of
* the email message
*/
if ($department->download_type == 'link')
{
$email_message .= '<ul>';
foreach ($files as $file)
{
$url =
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&task=ticket.downloadfile&id='
. $file->id . '&access_code=' .
md5($ticket->id.'|'.$file->id.'|'.$file->filename));
$email_message .= '<li><a href="' . $url .
'">' . $file->filename .
'</a></li>';
}
$email_message .= '</ul>';
}
/**
* if the download_type == 'attachment'
* we need to populate $attachments var
* with the files
*/
else
{
$attachments = $this->attachments;
}
}
RSTicketsProHelper::sendMail($from, $fromname, $notify_email,
$email_subject, $email_message, 1, $attachments, $department->cc,
$department->bcc);
}
}
}
return true;
}
protected function getUserByEmail($email)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from($db->qn('#__users'))
->where($db->qn('email') . ' LIKE ' .
$db->q($email));
$db->setQuery($query);
return $db->loadObject();
}
protected function createUser($password)
{
if ($customer =
$this->getUserByEmail($this->data['email']))
{
return $customer->id;
}
else
{
$db = JFactory::getDbo();
$lang = JFactory::getLanguage();
$lang->load('com_users', JPATH_ADMINISTRATOR, null, true);
if ((bool)
RSTicketsProHelper::getConfig('emails_as_usernames'))
{
$username = $this->data['email'];
}
else
{
@list($username, $domain) = explode('@',
$this->data['email']);
if (preg_match("#[<>\"'%;()&]#i",
$username) || strlen(utf8_decode($username)) < 2)
{
$username =
JFilterOutput::stringURLSafe($this->data['name']);
if (strlen($username) < 2)
{
$username = str_pad($username, 2, mt_rand(0, 9));
}
}
$found = true;
while ($found)
{
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->from($db->qn('#__users'))
->where($db->qn('username') . ' LIKE ' .
$db->q($username));
$db->setQuery($query);
$found = $db->loadResult();
if ($found)
{
$username .= mt_rand(0, 9);
}
}
}
// create user object
$user = new JUser();
// Bind the data array to the user object
$data = array(
'name' => trim($this->data['name']) ?
JComponentHelper::filterText($this->data['name']) :
$this->data['email'],
'email' => $this->data['email'],
'username' => $username,
'password' => $password
);
$data['password2'] = $data['password'];
if (!$user->bind($data))
{
$this->setError($user->getError());
return false;
}
$user->set('groups',
array(RSTicketsProHelper::getConfig('user_type')));
$date = JFactory::getDate();
$user->set('registerDate', $date->toSql());
$user->set('block', 0);
// If there was an error with registration, set the message
if (!$user->save())
{
$this->setError($user->getError());
return false;
}
$this->sendUserEmail($user, $password);
return $user->id;
}
}
protected function sendUserEmail($user, $password)
{
$email = RSTicketsProHelper::getEmail('new_user_email');
if (!$email)
{
return false;
}
// disallow control chars in the email
$password = preg_replace('/[\x00-\x1F\x7F]/', '',
$password);
$lang = JFactory::getLanguage();
$lang->load('com_rsticketspro', JPATH_SITE);
// get email sending settings
// are we using global ?
if (RSTicketsProHelper::getConfig('email_use_global'))
{
$config = JFactory::getConfig();
$from = $config->get('mailfrom');
$fromname = $config->get('fromname');
}
else
{
$from = RSTicketsProHelper::getConfig('email_address');
$fromname =
RSTicketsProHelper::getConfig('email_address_fullname');
}
$replacements = array(
'{live_site}' => JUri::root(),
'{username}' => $user->username,
'{password}' => $password,
'{email}' => $user->email
);
// assemble the email data
try
{
return JFactory::getMailer()->sendMail($from, $fromname,
$user->email, $email->subject, str_replace(array_keys($replacements),
array_values($replacements), $email->message), true);
}
catch (Exception $e)
{
JFactory::getApplication()->enqueueMessage($e->getMessage(),
'warning');
return false;
}
}
public function saveMessage($sendMessageEmails = true)
{
$isStaff =
RSTicketsProHelper::isStaff($this->data['user_id']);
// skip the email for the customer (as this is intended as his own
reply)
$skip_customer_email = false;
if ($isStaff &&
!empty($this->data['reply_as_customer'])) {
$this->data['submitted_by_staff'] =
$this->data['user_id'];
$this->data['user_id'] =
$this->data['customer_id'];
$skip_customer_email = true;
}
// let's see if we need to add a signature
if ($isStaff &&
RSTicketsProHelper::getConfig('show_signature') &&
!empty($this->data['use_signature']) &&
empty($this->data['reply_as_customer']))
{
$signature =
RSTicketsProHelper::getSignature($this->data['user_id']);
if (strlen($signature))
{
$this->data['message'] .= "\r\n" . $signature;
}
}
// let's set the message type
$this->data['html'] = (int)
RSTicketsProHelper::getConfig('allow_rich_editor');
if ($sendMessageEmails)
{ // This is true only for replies
RSTicketsProHelper::trigger('onBeforeStoreTicketReply',
array($this->data));
}
$message = JTable::getInstance('Ticketmessages',
'RsticketsproTable');
if (!$message->save($this->data))
{
$this->setError($message->getError());
return false;
}
if ($sendMessageEmails)
{ // This is true only for replies
RSTicketsProHelper::trigger('onAfterStoreTicketReply',
array($this->data, $message));
}
$this->message_id = $message->id;
// let's add the files
$hasFiles = null;
if (!empty($this->data['files']))
{
foreach ($this->data['files'] as $file)
{
if ($file['src'] == 'upload')
{
$filename = $file['name'];
}
elseif ($file['src'] == 'cron')
{
$filename = $file['filename'];
}
$new_file = JTable::getInstance('Ticketfiles',
'RsticketsproTable');
$new_file->save(array(
'ticket_id' =>
$this->data['ticket_id'],
'ticket_message_id' => $message->id,
'filename' => $filename
));
$hash = md5($new_file->id . ' ' . $message->id);
if ($file['src'] == 'upload')
{
$success = JFile::upload($file['tmp_name'],
RST_UPLOAD_FOLDER . '/' . $hash, false, true);
}
elseif ($file['src'] == 'cron')
{
$success = JFile::write(RST_UPLOAD_FOLDER . '/' . $hash,
$file['contents']);
}
// store attachment
if ($success)
{
$this->attachments[] = (object) array(
'path' => RST_UPLOAD_FOLDER . '/' .
$hash,
'filename' => $filename
);
}
}
$hasFiles = 1;
}
$original = JTable::getInstance('Tickets',
'RsticketsproTable');
$original->load($this->data['ticket_id']);
// $isStaff is defined at the start of this function.
$isCustomer = $original->customer_id ==
$this->data['user_id'] || !$isStaff;
// if a customer replied, we don't need to autoclose anymore
$autocloseSent = $isCustomer ? 0 : null;
// assign the ticket if the department's assignment type is static
and the ticket isn't already assigned
// if submitted on behalf of another user, don't assign it (this
only happens when $sendMessageEmails is set to false - this means it is the
first message of the ticket)
$staffId = $sendMessageEmails && $isStaff &&
$original->department->assignment_type == RST_ASSIGNMENT_STATIC
&& !$original->staff_id ? $this->data['user_id'] :
null;
// update the status
// if customer replied => open
// if staff replied => on-hold
// else don't modify the status
$statusId = $isCustomer ? RST_STATUS_OPEN : ($isStaff ?
RST_STATUS_ON_HOLD : null);
$object = (object) array(
'id' =>
$this->data['ticket_id'],
'last_reply' => $this->data['date'],
'last_reply_customer' => (int) !$isStaff,
'autoclose_sent' => $autocloseSent,
'staff_id' => $staffId,
'has_files' => $hasFiles,
'replies' => $original->replies + 1,
'status_id' => $statusId
);
JFactory::getDbo()->updateObject('#__rsticketspro_tickets',
$object, array('id'));
// Reload all ticket fields
$ticket = JTable::getInstance('Tickets',
'RsticketsproTable');
$ticket->load($ticket->id);
$department =& $original->department;
// get email sending settings
if ($department->email_use_global)
{
// are we using global ?
if (RSTicketsProHelper::getConfig('email_use_global'))
{
$config = JFactory::getConfig();
$from = $config->get('mailfrom');
$fromname = $config->get('fromname');
}
else
{
$from = RSTicketsProHelper::getConfig('email_address');
$fromname =
RSTicketsProHelper::getConfig('email_address_fullname');
}
}
else
{
$from = $department->email_address;
$fromname = $department->email_address_fullname;
}
$priority = JTable::getInstance('Priorities',
'RsticketsproTable');
$priority->load($original->priority_id);
$status = JTable::getInstance('Statuses',
'RsticketsproTable');
$status->load($original->status_id);
// send email to the staff member with the customer's reply
if ($sendMessageEmails)
{
if (!$isStaff && $department->staff_send_email &&
$original->staff_id)
{
if ($email =
RSTicketsProHelper::getEmail('add_ticket_reply_staff'))
{
$customer = &$original->customer;
$staff = &$original->staff;
$ticket_id = $original->id;
$replacements = array(
'{live_site}' => JUri::root(),
'{ticket}' =>
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&view=ticket&id='
. $ticket_id . ':' .
JFilterOutput::stringURLSafe($original->subject), true,
RSTicketsProHelper::getConfig('staff_itemid')),
'{customer_name}' => $customer->name,
'{customer_username}' => $customer->username,
'{customer_email}' => $customer->email,
'{staff_name}' => $staff->name,
'{staff_username}' => $staff->username,
'{staff_email}' => $staff->email,
'{code}' => $original->code,
'{subject}' => $original->subject,
'{priority}' => JText::_($priority->name),
'{status}' => JText::_($status->name),
'{message}' => $this->data['message'],
'{department_id}' => $original->department_id,
'{department_name}' => JText::_($department->name)
);
$email_subject = '[' . $original->code . '] ' .
$original->subject;
$email_message = str_replace(array_keys($replacements),
array_values($replacements), $email->message);
$email_message = RSTicketsProHelper::getReplyAbove() .
$email_message;
$attachments = null;
/**
* Check if the setting is activated and if there are files
*
*/
if ($department->staff_attach_email && $hasFiles) {
/**
* In case the download type is set to link
* we add a list of files to the end of
* the email message
*/
if ($department->download_type == 'link') {
$files =
$this->getTicketMessageAttachments($this->message_id);
$email_message .= '<ul>';
foreach ($files as $file) {
$url =
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&task=ticket.downloadfile&id='
. $file->id . '&access_code=' . md5($ticket->id .
'|' . $file->id . '|' . $file->filename));
$email_message .= '<li><a href="' . $url .
'">' . $file->filename .
'</a></li>';
}
$email_message .= '</ul>';
} /**
* if the download_type == 'attachment'
* we need to populate $attachments var
* with the files
*/
else {
$attachments = $this->attachments;
}
}
RSTicketsProHelper::sendMail($from, $fromname, $staff->email,
$email_subject, $email_message, 1, $attachments, $department->cc,
$department->bcc);
}
}
elseif ($isStaff && $department->customer_send_email
&& !$skip_customer_email)
{
if ($email =
RSTicketsProHelper::getEmail('add_ticket_reply_customer'))
{
$customer = &$original->customer;
$staff = $original->staff->id ? $original->staff :
$ticket->staff;
$ticket_id = $original->id;
$replacements = array(
'{live_site}' => JUri::root(),
'{ticket}' =>
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&view=ticket&id='
. $ticket_id . ':' .
JFilterOutput::stringURLSafe($original->subject), true,
RSTicketsProHelper::getConfig('customer_itemid')),
'{customer_name}' => $customer->name,
'{customer_username}' => $customer->username,
'{customer_email}' => $customer->email,
'{staff_name}' => $staff->name,
'{staff_username}' => $staff->username,
'{staff_email}' => $staff->email,
'{code}' => $original->code,
'{subject}' => $original->subject,
'{priority}' => JText::_($priority->name),
'{status}' => JText::_($status->name),
'{message}' => $this->data['message'],
'{department_id}' => $original->department_id,
'{department_name}' => JText::_($department->name)
);
$email_subject = '[' . $original->code . '] ' .
$original->subject;
$email_message = str_replace(array_keys($replacements),
array_values($replacements), $email->message);
$email_message = RSTicketsProHelper::getReplyAbove() .
$email_message;
$attachments = null;
/**
* Check if the setting is activated and if there are files
*
*/
if ($department->customer_attach_email && $hasFiles) {
/**
* In case the download type is set to link
* we add a list of files to the end of
* the email message
*/
if ($department->download_type == 'link') {
$files =
$this->getTicketMessageAttachments($this->message_id);
$email_message .= '<ul>';
foreach ($files as $file) {
$url =
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&task=ticket.downloadfile&id='
. $file->id . '&access_code=' . md5($ticket->id .
'|' . $file->id . '|' . $file->filename));
$email_message .= '<li><a href="' . $url .
'">' . $file->filename .
'</a></li>';
}
$email_message .= '</ul>';
} /**
* if the download_type == 'attachment'
* we need to populate $attachments var
* with the files
*/
else {
$attachments = $this->attachments;
}
}
RSTicketsProHelper::sendMail($from, $fromname, $customer->email,
$email_subject, $email_message, 1, $attachments, $department->cc,
$department->bcc);
}
}
}
// this works only for customers
// check if notification email address is not empty
if (!$isStaff && ($to =
RSTicketsProHelper::getConfig('notice_email_address')))
{
$to = explode(',', $to);
if ($original->staff_id)
{
$to[] = $original->staff->email;
}
// take care of duplicates
$to = array_unique($to);
// check if number of max replies is reached
$maxReplies = (int)
RSTicketsProHelper::getConfig('notice_max_replies_nr');
$currentReplies =
RSTicketsProHelper::getConsecutiveReplies($original->id);
if ($maxReplies && $currentReplies == $maxReplies &&
!$original->staff_id)
{
if ($email =
RSTicketsProHelper::getEmail('notification_max_replies_nr'))
{
$customer = JFactory::getUser($this->data['user_id']);
$ticket_id = $original->id;
$replacements = array(
'{live_site}' => JUri::root(),
'{ticket}' =>
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&view=ticket&id='
. $ticket_id . ':' .
JFilterOutput::stringURLSafe($original->subject), true,
RSTicketsProHelper::getConfig('staff_itemid')),
'{customer_name}' => $customer->name,
'{customer_username}' => $customer->username,
'{customer_email}' => $customer->email,
'{code}' => $original->code,
'{subject}' => $original->subject,
'{priority}' => JText::_($priority->name),
'{status}' => JText::_($status->name),
'{message}' => $this->data['message'],
'{replies}' => $currentReplies,
'{department_id}' => $original->department_id,
'{department_name}' => JText::_($department->name)
);
$email_subject = str_replace(array_keys($replacements),
array_values($replacements), $email->subject);
$email_message = str_replace(array_keys($replacements),
array_values($replacements), $email->message);
RSTicketsProHelper::sendMail($from, $fromname, $to, $email_subject,
$email_message, 1, null, $department->cc, $department->bcc);
}
}
// check if number of max replies with no staff response is reached
$maxReplies = (int)
RSTicketsProHelper::getConfig('notice_replies_with_no_response_nr');
if ($maxReplies && $currentReplies == $maxReplies &&
$original->staff_id)
{
if ($email =
RSTicketsProHelper::getEmail('notification_replies_with_no_response_nr'))
{
$customer = JFactory::getUser($this->data['user_id']);
$staff = &$original->staff;
$ticket_id = $original->id;
$replacements = array(
'{live_site}' => JUri::root(),
'{ticket}' =>
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&view=ticket&id='
. $ticket_id . ':' .
JFilterOutput::stringURLSafe($original->subject), true,
RSTicketsProHelper::getConfig('staff_itemid')),
'{customer_name}' => $customer->name,
'{customer_username}' => $customer->username,
'{customer_email}' => $customer->email,
'{staff_name}' => $staff->name,
'{staff_username}' => $staff->username,
'{staff_email}' => $staff->email,
'{code}' => $original->code,
'{subject}' => $original->subject,
'{priority}' => JText::_($priority->name),
'{status}' => JText::_($status->name),
'{message}' => $this->data['message'],
'{replies}' => $currentReplies,
'{department_id}' => $original->department_id,
'{department_name}' => JText::_($department->name)
);
$email_subject = str_replace(array_keys($replacements),
array_values($replacements), $email->subject);
$email_message = str_replace(array_keys($replacements),
array_values($replacements), $email->message);
RSTicketsProHelper::sendMail($from, $fromname, $to, $email_subject,
$email_message, 1, null, $department->cc, $department->bcc);
}
}
// check if it has restricted words
if ($keywords =
RSTicketsProHelper::getConfig('notice_not_allowed_keywords'))
{
$keywords = explode(',', $keywords);
$email =
RSTicketsProHelper::getEmail('notification_not_allowed_keywords');
if ($email)
{
$customer = JFactory::getUser($this->data['user_id']);
$staff = $original->staff->id ? $original->staff :
$ticket->staff;
$ticket_id = $original->id;
$quotedWords = array();
foreach ($keywords as $word) {
$word = trim($word);
if (strlen($word)) {
$quotedWords[] = preg_quote($word);
}
}
$pattern = '#\b(' . implode('|', $quotedWords) .
')\b#i';
if (preg_match($pattern, $this->data['message'])) {
$replacements = array(
'{live_site}' => JUri::root(),
'{ticket}' =>
RSTicketsProHelper::mailRoute('index.php?option=com_rsticketspro&view=ticket&id='
. $ticket_id . ':' .
JFilterOutput::stringURLSafe($original->subject), true,
RSTicketsProHelper::getConfig('staff_itemid')),
'{customer_name}' => $customer->name,
'{customer_username}' => $customer->username,
'{customer_email}' => $customer->email,
'{staff_name}' => $staff->name,
'{staff_username}' => $staff->username,
'{staff_email}' => $staff->email,
'{code}' => $original->code,
'{subject}' => $original->subject,
'{priority}' => JText::_($priority->name),
'{status}' => JText::_($status->name),
'{message}' => preg_replace($pattern, '<b
style="color: red">$1</b>',
$this->data['message']),
'{replies}' => $currentReplies,
'{department_id}' => $original->department_id,
'{department_name}' => JText::_($department->name)
);
$email_subject = str_replace(array_keys($replacements),
array_values($replacements), $email->subject);
$email_message = str_replace(array_keys($replacements),
array_values($replacements), $email->message);
RSTicketsProHelper::sendMail($from, $fromname, $to, $email_subject,
$email_message, 1, null, $department->cc, $department->bcc);
}
}
}
}
return true;
}
public function getMessageId()
{
return $this->message_id;
}
public function getTicketId()
{
return $this->ticket_id;
}
public function getTicketAttachments($ticketid){
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from($db->qn('#__rsticketspro_ticket_files'))
->where($db->qn('ticket_id') . ' = ' .
$db->q($ticketid));
$db->setQuery($query);
return $db->loadObjectList('id');
}
public function getTicketMessageAttachments($message_id){
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from($db->qn('#__rsticketspro_ticket_files'))
->where($db->qn('ticket_message_id') . ' = ' .
$db->q($message_id));
$db->setQuery($query);
return $db->loadObjectList('id');
}
public static function getTicketTimeState($ticketid) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('start'))
->select($db->qn('end'))
->from($db->qn('#__rsticketspro_timespent'))
->where($db->qn('ticket_id') . ' = ' .
$db->q($ticketid))
->order($db->qn('id') . ' DESC');
$db->setQuery($query, 0, 1);
$result = $db->loadObject();
if (empty($result)) {
return false;
}
$time_data = new stdClass();
$time_data->state = false;
// return true (started) only when the start is set and the end is not
if ($result->start != '0000-00-00 00:00:00' &&
$result->end == '0000-00-00 00:00:00') {
$time_data->state = true;
}
$time_data->start = $result->start;
$time_data->end = $result->end;
return $time_data;
}
}PK�(�[�x�
helpers/toolbar.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
abstract class RSTicketsProToolbarHelper
{
public static function addToolbar($view = '')
{
// load language file (.sys because the toolbar has the same options as
the components dropdown)
JFactory::getLanguage()->load('com_rsticketspro.sys',
JPATH_ADMINISTRATOR);
// add toolbar entries
// overview
self::addEntry('OVERVIEW',
'index.php?option=com_rsticketspro', $view == '' ||
$view == 'rsticketspro');
self::addEntry('MANAGE_TICKETS',
'index.php?option=com_rsticketspro&view=tickets', $view ==
'tickets');
self::addEntry('DEPARTMENTS',
'index.php?option=com_rsticketspro&view=departments', $view
== 'departments');
self::addEntry('CUSTOM_FIELDS',
'index.php?option=com_rsticketspro&view=customfields', $view
== 'customfields');
self::addEntry('GROUPS',
'index.php?option=com_rsticketspro&view=groups', $view ==
'groups');
self::addEntry('STAFF_MEMBERS',
'index.php?option=com_rsticketspro&view=staffs', $view ==
'staffs');
self::addEntry('PRIORITIES',
'index.php?option=com_rsticketspro&view=priorities', $view ==
'priorities');
self::addEntry('STATUSES',
'index.php?option=com_rsticketspro&view=statuses', $view ==
'statuses');
self::addEntry('EMAIL_MESSAGES',
'index.php?option=com_rsticketspro&view=emails', $view ==
'emails');
if (JFactory::getUser()->authorise('core.admin',
'com_rsticketspro'))
{
self::addEntry('CONFIGURATION',
'index.php?option=com_rsticketspro&view=configuration', $view
== 'configuration');
}
JFactory::getApplication()->triggerEvent('onAfterTicketsMenu');
self::addEntry('KB_CATEGORIES',
'index.php?option=com_rsticketspro&view=kbcategories', $view
== 'kbcategories');
self::addEntry('KB_ARTICLES',
'index.php?option=com_rsticketspro&view=kbarticles', $view ==
'kbarticles');
self::addEntry('KB_CONVERSION_RULES',
'index.php?option=com_rsticketspro&view=kbrules', $view ==
'kbrules');
}
public static function addEntry($lang_key, $url, $default = false)
{
JHtmlSidebar::addEntry(JText::_('COM_RSTICKETSPRO_' .
$lang_key), JRoute::_($url), $default);
}
public static function addFilter($text, $key, $options, $noDefault =
false)
{
JHtmlSidebar::addFilter($text, $key, $options, $noDefault);
}
public static function render()
{
return JHtmlSidebar::render();
}
}PK�(�[�3�]��helpers/users.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RSTicketsProUsersHelper
{
protected static $groups = null;
protected static $users = null;
public static function getAdminGroups()
{
if (!is_array(self::$groups))
{
self::$groups =
RSTicketsProConfig::getInstance()->get('admin_groups',
array());
}
return self::$groups;
}
public static function getAdminUsers() {
if (!is_array(self::$users))
{
self::$users = array();
if ($groups = self::getAdminGroups())
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('u.*')
->from('#__user_usergroup_map m')
->join('right', '#__users u ON
(u.id=m.user_id)')
->where('m.group_id IN ('.implode(',',
$groups).')')
->order('u.username ASC')
->group('u.id');
$db->setQuery($query);
self::$users = $db->loadObjectList();
}
}
return self::$users;
}
}PK�(�[Ed���helpers/version.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RSTicketsProVersion
{
public $version = '3.0.1';
public $key = '8TIK5J3PRO';
// Get version
public function __toString()
{
return $this->version;
}
}PK�(�[4%�`==models/article.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelArticle extends JModelLegacy
{
protected $article;
public function getArticle()
{
if ($this->article === null)
{
$this->article =
JTable::getInstance('Kbcontent','RsticketsproTable');
if
($this->article->load(JFactory::getApplication()->input->getInt('cid'))
&& $this->article->id)
{
$this->article->categories = array();
if ($this->article->category_id)
{
// Get the article categories (recursive)
$this->getArticleCategories($this->article->category_id);
if ($this->article->categories)
{
// Check if the categories are published or private (this article
will inherit these properties)
foreach ($this->article->categories as $category)
{
if ($category->private)
{
$this->article->private = 1;
}
if (!$category->published)
{
$this->article->published = 0;
}
}
// Sort them the natural way (reverse them)
krsort($this->article->categories);
}
}
// Increment article hits
$this->article->hit();
// Add the comments section
$this->article->text .= $this->getCommentsBlock();
}
}
return $this->article;
}
protected function getArticleCategories($id)
{
$category = JTable::getInstance('Kbcategories',
'RsticketsproTable');
if ($category->load($id))
{
$this->article->categories[] = $category;
if ($category->parent_id)
{
$this->getArticleCategories($category->parent_id);
}
}
}
protected function getCommentsBlock()
{
$article =& $this->article;
switch (RSTicketsProHelper::getConfig('kb_comments'))
{
// RSComments!
case 'com_rscomments':
if
(file_exists(JPATH_SITE.'/components/com_rscomments/helpers/rscomments.php'))
{
require_once
JPATH_SITE.'/components/com_rscomments/helpers/rscomments.php';
return '{rscomments option="com_rsticketspro"
id="'.$article->id.'"}';
}
break;
// JComments
case 'com_jcomments':
if
(file_exists(JPATH_SITE.'/components/com_jcomments/jcomments.php'))
{
require_once
JPATH_SITE.'/components/com_jcomments/jcomments.php';
return JComments::showComments($article->id,
'com_rsticketspro', $article->name);
}
break;
// JomComment
case 'com_jomcomment':
if
(file_exists(JPATH_SITE.'/plugins/content/jom_comment_bot.php'))
{
require_once
JPATH_SITE.'/plugins/content/jom_comment_bot.php';
return jomcomment($article->id, 'com_rsticketspro');
}
break;
// Facebook
case 'facebook':
return '<script
src="https://connect.facebook.net/en_US/all.js#xfbml=1"></script><div
id="fb-root"></div><fb:comments
href="'.RSTicketsProHelper::route('index.php?option=com_rsticketspro&view=article&cid='.$article->id.':'.JFilterOutput::stringURLSafe($article->name),
true, 0, true).'" num_posts="5"
width="700"></fb:comments>';
break;
}
return '';
}
public function getPath()
{
$path = array();
if ($this->article->categories)
{
foreach ($this->article->categories as $category)
{
$path[] = (object) array(
'name' => $category->name,
'link' =>
RSTicketsProHelper::route('index.php?option=com_rsticketspro&view=knowledgebase&cid='.$category->id.':'.JFilterOutput::stringURLSafe($category->name))
);
}
}
// Add the article as the last child
$path[] = (object) array(
'name' => $this->article->name,
'link' => ''
);
return $path;
}
}PK�(�[�4�w�
�
models/configuration.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelConfiguration extends JModelAdmin
{
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.configuration',
'configuration', array('control' =>
'jform', 'load_data' => $loadData));
if (empty($form))
{
return false;
}
return $form;
}
protected function loadFormData()
{
$data = (array) $this->getConfig()->getData();
return $data;
}
public function save($data)
{
// get configuration
$config = $this->getConfig();
// get configuration keys
$keys = $config->getKeys();
foreach ($keys as $key)
{
if (in_array($key, array('autoclose_cron_lastcheck',
'followup_cron_lastcheck', 'export_limit')))
{
continue;
}
if (isset($data[$key]))
{
$value = $data[$key];
if ($key == 'captcha_characters' && $value < 3)
{
JFactory::getApplication()->enqueueMessage(JText::_('RST_CAPTCHA_CHARACTERS_ERROR'),
'warning');
$value = 3;
}
elseif ($key == 'autoclose_cron_interval' && $value
< 10)
{
JFactory::getApplication()->enqueueMessage(JText::_('RST_AUTOCLOSE_CHECK_ERROR'),
'warning');
$value = 10;
}
elseif ($key == 'autoclose_email_interval' && $value
< 1)
{
JFactory::getApplication()->enqueueMessage(JText::_('RST_AUTOCLOSE_DAYS_STATUS_ERROR'),
'warning');
$value = 1;
}
elseif ($key == 'autoclose_interval' && $value <
1)
{
JFactory::getApplication()->enqueueMessage(JText::_('RST_AUTOCLOSE_DAYS_CLOSED_ERROR'),
'warning');
$value = 1;
}
elseif ($key == 'followup_cron_interval' && $value
< 10)
{
JFactory::getApplication()->enqueueMessage(JText::_('RST_FEEDBACK_FOLLOWUP_CHECK_ERROR'),
'warning');
$value = 10;
}
elseif ($key == 'followup_enabled_time')
{
if ($data['enable_followup'] == 1 && $value == 0)
{
$value = JFactory::getDate()->toSql();
}
elseif ($data['enable_followup'] == 0 && $value !=
0)
{
$value = 0;
}
}
$config->set($key, $value);
}
else
{
$config->set($key, '');
}
}
return true;
}
public function getConfig()
{
return RSTicketsProConfig::getInstance();
}
public function getRSTabs()
{
return new
RsticketsproAdapterTabs('com-rsticketspro-configuration');
}
}PK�(�[L�НSSmodels/cron.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelCron extends JModelAdmin
{
public function getTable($type = 'Crons', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.cron',
'cron', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$app = JFactory::getApplication();
$data =
$app->getUserState('com_rsticketspro.edit.cron.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
return $data;
}
public function getRSTabs()
{
return new RsticketsproAdapterTabs('com-rsticketspro-cron');
}
}PK�(�[��Y�qqmodels/cronlog.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelCronlog extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'a.name', 'al.date', 'al.subject'
);
}
parent::__construct($config);
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$search = $this->getState('filter.search');
$query->select($db->qn('al').'.*')
->select($db->qn('a.name'))
->from($db->qn('#__rsticketspro_accounts_log','al'))
->join('LEFT',$db->qn('#__rsticketspro_accounts','a').'
ON '.$db->qn('al.account_id').' =
'.$db->qn('a.id'));
// search
if ($search != '')
{
$search = $db->q('%'.str_replace(' ',
'%', $db->escape($search, true)).'%', false);
$query->where('('.$db->qn('al.description').'
LIKE '.$search.' OR
'.$db->qn('al.subject').' LIKE
'.$search.')');
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'al.date')).'
'.$db->escape($this->getState('list.direction',
'desc')));
return $query;
}
protected function populateState($ordering = 'al.date',
$direction = 'desc')
{
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
// List state information.
parent::populateState($ordering, $direction);
}
}PK�(�[Z?d>))models/crons.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelCrons extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'name', 'ordering', 'server',
'id', 'published', 'state'
);
}
parent::__construct($config);
}
protected function getListQuery() {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$search = $this->getState('filter.search');
$state = $this->getState('filter.state');
$query->select('*')->from('#__rsticketspro_accounts');
// search
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('id') . ' = ' . (int)
substr($search, 3));
}
else
{
// Escape the search token.
$token = $db->q('%' . str_replace(' ',
'%', $db->escape($search, true)) . '%', false);
// Compile the different search clauses.
$searches = array();
$searches[] = $db->qn('name').' LIKE ' .
$token;
$searches[] = $db->qn('server').' LIKE ' .
$token;
// Add the clauses to the query.
$query->where('(' . implode(' OR ', $searches) .
')');
}
}
// state
if ($state != '')
{
$query->where($db->qn('published').' = '.(int)
$state);
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'name')).'
'.$db->escape($this->getState('list.direction',
'asc')));
return $query;
}
protected function populateState($ordering = 'name', $direction
= 'asc')
{
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
$this->setState('filter.state',
$this->getUserStateFromRequest($this->context.'.filter.state',
'filter_state'));
// List state information.
parent::populateState($ordering, $direction);
}
}PK�(�[�Y���models/customfield.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelCustomfield extends JModelAdmin
{
public function getTable($type = 'Customfields', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.customfield',
'customfield', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
// Modify the form based on access controls.
if (!$this->canEditState((object) $data))
{
// Disable fields for display.
$form->setFieldAttribute('ordering', 'disabled',
'true');
$form->setFieldAttribute('published', 'disabled',
'true');
// Disable fields while saving.
// The controller has already verified this is a record you can edit.
$form->setFieldAttribute('ordering', 'filter',
'unset');
$form->setFieldAttribute('published', 'filter',
'unset');
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$app = JFactory::getApplication();
$data =
$app->getUserState('com_rsticketspro.edit.customfield.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
if (!empty($data) && is_object($data) && !$data->id
&& !$data->department_id)
{
$model = $this->getInstance('Customfields',
'RsticketsproModel');
$data->department_id =
$model->getState('filter.department_id');
}
return $data;
}
protected function getReorderConditions($table)
{
return array(
'department_id = '.(int) $table->department_id
);
}
protected function canDelete($record)
{
return JFactory::getUser()->authorise('customfield.delete',
'com_rsticketspro');
}
protected function canEditState($record)
{
return
JFactory::getUser()->authorise('customfield.edit.state',
'com_rsticketspro');
}
}PK�(�[�Yx� � models/customfields.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelCustomfields extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'f.name', 'department_name', 'label',
'type', 'required', 'f.published',
'f.ordering', 'f.id', 'state',
'department_id'
);
}
parent::__construct($config);
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$search = $this->getState('filter.search');
$state = $this->getState('filter.state');
$department_id = $this->getState('filter.department_id');
$query->select('f.*')
->select($db->qn('d.name',
'department_name'))
->from($db->qn('#__rsticketspro_custom_fields',
'f'))
->join('left',
$db->qn('#__rsticketspro_departments', 'd').'
ON ('.$db->qn('f.department_id').' =
'.$db->qn('d.id').')');
if ($department_id)
{
$query->where($db->qn('department_id').'='.$db->q($department_id));
}
// search
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('f.id') . ' = ' . (int)
substr($search, 3));
}
else
{
$query->where($db->qn('f.name') . ' LIKE ' .
$db->q('%'.str_replace(' ', '%',
$db->escape($search, true)).'%', false));
}
}
// published/unpublished
if ($state != '')
{
$query->where($db->qn('f.published').'='.$db->q($state));
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'f.ordering')).'
'.$db->escape($this->getState('list.direction',
'asc')));
return $query;
}
protected function populateState($ordering = 'f.ordering',
$direction = 'asc')
{
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
$this->setState('filter.state',
$this->getUserStateFromRequest($this->context.'.filter.state',
'filter_state'));
$this->setState('filter.department_id',
$this->getUserStateFromRequest($this->context.'.filter.department_id',
'filter_department_id'));
// List state information.
parent::populateState($ordering, $direction);
}
}PK�(�[y���models/department.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelDepartment extends JModelAdmin
{
public function getTable($type = 'Departments', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.department',
'department', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
// Modify the form based on access controls.
if (!$this->canEditState((object) $data))
{
// Disable fields for display.
$form->setFieldAttribute('ordering', 'disabled',
'true');
$form->setFieldAttribute('published', 'disabled',
'true');
// Disable fields while saving.
// The controller has already verified this is a record you can edit.
$form->setFieldAttribute('ordering', 'filter',
'unset');
$form->setFieldAttribute('published', 'filter',
'unset');
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$data =
JFactory::getApplication()->getUserState('com_rsticketspro.edit.department.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
if (!empty($data->jgroups))
{
$data->jgroups = json_decode($data->jgroups, true);
}
return $data;
}
public function getPHPValues()
{
return array(
'upload_max_filesize' =>
ini_get('upload_max_filesize'),
'max_file_uploads' =>
ini_get('max_file_uploads'),
'post_max_size' => ini_get('post_max_size')
);
}
public function getRSTabs()
{
return new
RsticketsproAdapterTabs('com-rsticketspro-department');
}
protected function canDelete($record)
{
return JFactory::getUser()->authorise('department.delete',
'com_rsticketspro');
}
protected function canEditState($record)
{
return
JFactory::getUser()->authorise('department.edit.state',
'com_rsticketspro');
}
}PK�(�[��8�kkmodels/departments.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelDepartments extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'name', 'prefix', 'published',
'ordering', 'id', 'state'
);
}
parent::__construct($config);
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$search = $this->getState('filter.search');
$state = $this->getState('filter.state');
$query->select('*')->from('#__rsticketspro_departments');
// search
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('id') . ' = ' . (int)
substr($search, 3));
}
else
{
$query->where($db->qn('name') . ' LIKE ' .
$db->q('%'.str_replace(' ', '%',
$db->escape($search, true)).'%', false));
}
}
// published/unpublished
if ($state != '')
{
$query->where($db->qn('published') . '=' .
$db->q($state));
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'ordering')) . ' ' .
$db->escape($this->getState('list.direction',
'asc')));
return $query;
}
protected function populateState($ordering = 'ordering',
$direction = 'asc')
{
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
$this->setState('filter.state',
$this->getUserStateFromRequest($this->context.'.filter.state',
'filter_state'));
// List state information.
parent::populateState($ordering, $direction);
}
}PK�(�[�n�ֿ�models/email.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelEmail extends JModelAdmin
{
public function getTable($type = 'Emails', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.email',
'email', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
// Modify the form based on access controls.
if (!$this->canEditState((object) $data))
{
// Disable fields for display.
$form->setFieldAttribute('ordering', 'disabled',
'true');
$form->setFieldAttribute('published', 'disabled',
'true');
// Disable fields while saving.
// The controller has already verified this is a record you can edit.
$form->setFieldAttribute('ordering', 'filter',
'unset');
$form->setFieldAttribute('published', 'filter',
'unset');
}
if (in_array($form->getValue('type'),
array('add_ticket_reply_customer',
'add_ticket_reply_staff', 'add_ticket_customer',
'add_ticket_staff', 'add_ticket_notify')))
{
$form->setFieldAttribute('subject', 'disabled',
'true');
$form->setFieldAttribute('subject', 'filter',
'unset');
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$data =
JFactory::getApplication()->getUserState('com_rsticketspro.edit.email.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
return $data;
}
protected function canEditState($record)
{
return JFactory::getUser()->authorise('email.edit.state',
'com_rsticketspro');
}
}PK�(�[
Yffmodels/emails.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelEmails extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'type', 'lang', 'subject',
'published', 'state', 'language'
);
}
parent::__construct($config);
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$language = $this->getState('filter.language');
$search = $this->getState('filter.search');
$state = $this->getState('filter.state');
$query->select('*')
->from('#__rsticketspro_emails')
->where($db->qn('lang') . '=' .
$db->q($language));
// search
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('id') . ' = ' . (int)
substr($search, 3));
}
else
{
$search = $db->q('%'.str_replace(' ',
'%', $db->escape($search, true)).'%', false);
$query->where('(' . $db->qn('subject') .
' LIKE ' . $search . ') OR (' .
$db->qn('message') . ' LIKE ' . $search .
')');
}
}
// published/unpublished
if ($state != '')
{
$query->where($db->qn('published') . '=' .
$db->q($state));
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'type')).'
'.$db->escape($this->getState('list.direction',
'asc')));
return $query;
}
protected function checkMissingEntries()
{
$lang = $this->getState('filter.language');
if ($lang)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$types = array(
'add_ticket_customer',
'add_ticket_notify',
'add_ticket_reply_customer',
'add_ticket_reply_staff',
'add_ticket_staff',
'notification_email',
'reject_email',
'new_user_email',
'notification_max_replies_nr',
'notification_replies_with_no_response_nr',
'notification_not_allowed_keywords',
'notification_department_change',
'feedback_followup_email'
);
$query->select($db->qn('type'))
->from('#__rsticketspro_emails')
->where($db->qn('type') . ' IN (' .
implode(',', $db->q($types)) . ')')
->where($db->qn('lang') . '=' .
$db->q($lang));
$db->setQuery($query);
$found = $db->loadColumn();
if ($diff = array_diff($types, $found))
{
foreach ($diff as $type)
{
$row = JTable::getInstance('Emails',
'RsticketsproTable');
$row->save(array(
'lang' => $lang,
'type' => $type
));
}
}
}
}
public function getItems()
{
// check if there are missing entries for the current language
$this->checkMissingEntries();
return parent::getItems();
}
protected function getDefaultLanguage()
{
return JFactory::getLanguage()->get('tag');
}
protected function populateState($ordering = 'type', $direction
= 'asc')
{
$this->setState('filter.language',
$this->getUserStateFromRequest($this->context.'.filter.language',
'filter_language', $this->getDefaultLanguage()));
$this->setState('filter.state',
$this->getUserStateFromRequest($this->context.'.filter.state',
'filter_state'));
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
// List state information.
parent::populateState($ordering, $direction);
}
}PK�(�[�1�Ag g models/fields/article.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class JFormFieldArticle extends JFormField
{
/**
* Element name
*
* @access protected
* @var string
*/
protected $type = 'Article';
protected function getInput() {
$html = array();
// Include our JTable
JTable::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_rsticketspro/tables');
$row = JTable::getInstance('Kbcontent',
'RsticketsproTable');
// Load the title
$title = JText::_('RST_KB_SELECT_ARTICLE');
if ($this->value && $row->load($this->value))
{
$title = $row->name;
}
// Include jQuery
JHtml::_('jquery.framework');
// URL to article list
$link =
'index.php?option=com_rsticketspro&view=kbarticles&layout=element&tmpl=component';
$js = "
function elSelectEvent(id, title) {
document.getElementById('".$this->id."').value =
title;
document.getElementsByName('".$this->name."')[0].value
= id;
jQuery('#rsticketsproKBArticleModal').modal('hide');
}";
JFactory::getDocument()->addScriptDeclaration($js);
$html[] = '<span class="input-append"><input
type="text" class="input-medium"
required="required" readonly="readonly" id="'
. $this->id
. '" value="' . htmlspecialchars($title, ENT_COMPAT,
'utf-8') . '" />';
$html[] = '<a href="#rsticketsproKBArticleModal"
role="button" class="btn" data-toggle="modal"
title="' . JText::_('JSELECT') .
'">'
. '<span class="icon-file"
aria-hidden="true"></span> '
. JText::_('JSELECT') . '</a></span>';
$html[] = JHtml::_(
'bootstrap.renderModal',
'rsticketsproKBArticleModal',
array(
'url' => $link,
'title' =>
JText::_('RST_KB_SELECT_ARTICLE'),
'width' => '800px',
'height' => '300px',
'modalWidth' => '80',
'bodyHeight' => '70',
'footer' => '<a type="button"
class="btn" data-dismiss="modal"
aria-hidden="true">'
. JText::_('JLIB_HTML_BEHAVIOR_CLOSE') .
'</a>'
)
);
$html[] = '<input class="input-small"
type="hidden" name="' . $this->name . '"
value="'
. htmlspecialchars($this->value, ENT_COMPAT, 'UTF-8') .
'" />';
return implode("\n", $html);
}
}PK�(�[v�̪OOmodels/fields/avatars.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
JFormHelper::loadFieldClass('list');
class JFormFieldAvatars extends JFormFieldList
{
protected $type = 'Avatars';
protected function getOptions()
{
// Initialize variables.
$options = array();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$components = array(
'com_comprofiler',
'com_community',
'com_kunena',
);
$query->select('element')
->from('#__extensions')
->where($db->qn('type').'='.$db->q('component'))
->where($db->qn('element').' IN (' .
implode(',', $db->q($components)) . ')');
$available = $db->setQuery($query)->loadColumn();
$options[] = JHtml::_('select.option', '',
JText::_('RST_NO_AVATARS_COMPONENT'));
$options[] = JHtml::_('select.option', 'gravatar',
JText::_('RST_GRAVATAR'));
foreach ($components as $component)
{
$disabled = !in_array($component, $available);
$options[] = JHtml::_('select.option', substr($component, 4),
JText::_('RST_' . substr($component, 4)), 'value',
'text', $disabled);
}
reset($options);
return $options;
}
}
PK�(�[�_5``models/fields/comments.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
JFormHelper::loadFieldClass('list');
class JFormFieldComments extends JFormFieldList
{
protected $type = 'Comments';
protected function getOptions()
{
// Initialize variables.
$options = array();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$components = array(
'RSComments!' => 'com_rscomments',
'JComments' => 'com_jcomments',
'JomComment' => 'com_jomcomment'
);
$query->select('element')
->from('#__extensions')
->where($db->qn('type').'='.$db->q('component'))
->where($db->qn('element').' IN (' .
implode(',', $db->q($components)) . ')');
$available = $db->setQuery($query)->loadColumn();
$options[] = JHtml::_('select.option', '0',
JText::_('RST_KB_COMMENTS_DISABLED'));
$options[] = JHtml::_('select.option', 'facebook',
JText::_('RST_FACEBOOK_COMMENTS'));
foreach ($components as $name => $component)
{
$disabled = !in_array($component, $available);
$options[] = JHtml::_('select.option', $component, $name,
'value', 'text', $disabled);
}
reset($options);
return $options;
}
}
PK�(�[IrJ� � models/fields/departments.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
require_once
JPATH_ADMINISTRATOR.'/components/com_rsticketspro/helpers/rsticketspro.php';
JFormHelper::loadFieldClass('list');
class JFormFieldDepartments extends JFormFieldList
{
protected $type = 'Departments';
protected function getOptions()
{
// Initialize variables.
$options = parent::getOptions();
$is_staff = RSTicketsProHelper::isStaff();
$force_departments =
RSTicketsProHelper::getConfig('staff_force_departments');
$departments = RSTicketsProHelper::getCurrentDepartments();
$view =
JFactory::getApplication()->input->get('view');
$db = JFactory::getDbo();
$user_groups = !$is_staff ?
JAccess::getGroupsByUser(JFactory::getUser()->id, false) : array();
if (isset($this->element['please']) &&
$this->element['please'] == 'true')
{
$options[] = JHtml::_('select.option', '',
JText::_('RST_PLEASE_SELECT_DEPARTMENT'));
}
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('name'))
->from('#__rsticketspro_departments');
if (!$is_staff)
{
$query->select($db->qn('jgroups'));
}
if (isset($this->element['published']) &&
$this->element['published'] == 'true')
{
$query->where($db->qn('published').'='.$db->q(1));
}
$query->order($db->qn('ordering').'
'.$db->escape('asc'));
$db->setQuery($query);
if ($results = $db->loadObjectList())
{
foreach ($results as $result)
{
if ($is_staff && $force_departments && $view !=
'staff' && !in_array($result->id, $departments))
{
continue;
}
// Search in the departments relations table to see if this department
is excluded from the current user group (only for non staff)
if (!$is_staff)
{
if (!empty($result->jgroups))
{
$json_groups = json_decode($result->jgroups, true);
if (is_array($json_groups) && array_intersect($json_groups,
$user_groups))
{
continue;
}
}
}
$tmp = JHtml::_('select.option', $result->id,
JText::_($result->name));
// Add the option object to the result set.
$options[] = $tmp;
}
}
reset($options);
return $options;
}
}PK�(�[@:~(��models/fields/dummy.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
JFormHelper::loadFieldClass('hidden');
class JFormFieldDummy extends JFormFieldHidden
{
protected $type = 'Dummy';
protected function getInput()
{
return '';
}
}PK�(�[�1r�models/fields/groups.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
JFormHelper::loadFieldClass('list');
class JFormFieldGroups extends JFormFieldList
{
protected $type = 'Groups';
protected function getOptions()
{
// Initialize variables.
$options = array();
if (isset($this->element['all']) &&
$this->element['all'] == 'true')
{
$options[] = JHtml::_('select.option', 0,
JText::_('RST_ALL_PRIORITIES'));
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('name'))
->from('#__rsticketspro_groups');
$db->setQuery($query);
$groups = $db->loadObjectList();
foreach ($groups as $group)
{
$options[] = JHtml::_('select.option', $group->id,
JText::_($group->name));
}
reset($options);
return $options;
}
}PK�(�[�#o,,models/fields/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[$��FV V models/fields/kbarticle.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class JFormFieldKbarticle extends JFormField
{
protected function getInput()
{
$html = array();
// Include our JTable
JTable::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_rsticketspro/tables');
$row = JTable::getInstance('Kbcontent',
'RsticketsproTable');
// Load the title
$title = JText::_('RST_KB_SELECT_ARTICLE');
if ($this->value && $row->load($this->value))
{
$title = $row->name;
}
// Include jQuery
JHtml::_('jquery.framework');
// URL to article list
$link =
'index.php?option=com_rsticketspro&view=kbarticles&layout=element&tmpl=component';
$js = "
function elSelectEvent(id, title) {
document.getElementById('".$this->id."').value =
title;
document.getElementsByName('".$this->name."')[0].value
= id;
jQuery('#rsticketsproKBArticleModal').modal('hide');
}";
JFactory::getDocument()->addScriptDeclaration($js);
$html[] = '<span class="input-group
input-append"><input type="text"
class="input-medium form-control" required="required"
readonly="readonly" id="' . $this->id
. '" value="' . htmlspecialchars($title, ENT_COMPAT,
'utf-8') . '" />';
$html[] = '<a href="#rsticketsproKBArticleModal"
role="button" class="btn btn-secondary"
data-bs-toggle="modal" data-toggle="modal"
title="' . JText::_('JSELECT') .
'">'
. '<span class="icon-file"
aria-hidden="true"></span> '
. JText::_('JSELECT') . '</a></span>';
$html[] = JHtml::_(
'bootstrap.renderModal',
'rsticketsproKBArticleModal',
array(
'url' => $link,
'title' =>
JText::_('RST_KB_SELECT_ARTICLE'),
'width' => '800px',
'height' => '300px',
'modalWidth' => '80',
'bodyHeight' => '70',
'footer' => '<a type="button"
class="btn" data-bs-dismiss="modal"
data-dismiss="modal" aria-hidden="true">'
. JText::_('JLIB_HTML_BEHAVIOR_CLOSE') .
'</a>'
)
);
$html[] = '<input class="input-small"
type="hidden" name="' . $this->name . '"
value="'
. htmlspecialchars($this->value, ENT_COMPAT, 'UTF-8') .
'" />';
return implode("\n", $html);
}
}PK�(�[�t��NNmodels/fields/kbcategories.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
JFormHelper::loadFieldClass('list');
class JFormFieldKBCategories extends JFormFieldList
{
protected $type = 'KBCategories';
protected function getOptions()
{
// Initialize variables.
$options = array();
if (isset($this->element['please']) &&
$this->element['please'] == 'true')
{
$options[] = JHtml::_('select.option', '',
JText::_('RST_KB_SELECT_CATEGORY'));
}
if (isset($this->element['show_noparent']) &&
$this->element['show_noparent'] == 'true')
{
$options[] = JHtml::_('select.option', 0,
JText::_('RST_KB_NO_PARENT'));
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// Load the list items.
$query->select('*')
->from($db->qn('#__rsticketspro_kb_categories'))
->order($db->qn('ordering').'
'.$db->escape('asc'));
$items = $db->setQuery($query)->loadObjectList();
$children = array();
// first pass - collect children
if ($items)
{
foreach ($items as $item)
{
$parent = $item->parent_id;
$item->parent = $parent;
$item->title = '';
$list = @$children[$parent] ? $children[$parent] : array();
array_push($list, $item);
$children[$parent] = $list;
}
}
unset($items);
// second pass - get an indent list of the items
$list = JHtml::_('menu.treerecurse', 0, '', array(),
$children, 9999, 0, 0);
foreach ($list as $item)
{
// Add the option object to the result set.
$options[] = JHtml::_('select.option', $item->id,
$item->treename.$item->name);
}
unset($list);
reset($options);
return $options;
}
}PK�(�[���-�%�%models/fields/kbconditions.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
class JFormFieldKBConditions extends JFormField
{
protected $type = 'KBConditions';
protected $options = array();
protected $departments = array();
protected $priorities = array();
protected $statuses = array();
protected $customFieldValues = array();
public function __construct($form = null)
{
parent::__construct($form);
// prepare lists
// condition types
$this->options['types'] = array(
JHtml::_('select.option', '',
JText::_('RST_PLEASE_SELECT')),
JHtml::_('select.option', 'department',
JText::_('RST_DEPARTMENT')),
JHtml::_('select.option', 'subject',
JText::_('RST_TICKET_SUBJECT')),
JHtml::_('select.option', 'message',
JText::_('RST_TICKET_MESSAGE')),
JHtml::_('select.option', 'priority',
JText::_('RST_PRIORITY')),
JHtml::_('select.option', 'status',
JText::_('RST_TICKET_STATUS')),
JHtml::_('select.option', 'custom_field',
JText::_('RST_CUSTOM_FIELD'))
);
// conditions
$this->options['conditions'] = array(
JHtml::_('select.option', '',
JText::_('RST_PLEASE_SELECT')),
JHtml::_('select.option', 'eq',
JText::_('RST_IS_EQUAL')),
JHtml::_('select.option', 'neq',
JText::_('RST_IS_NOT_EQUAL')),
JHtml::_('select.option', 'like',
JText::_('RST_IS_LIKE')),
JHtml::_('select.option', 'notlike',
JText::_('RST_IS_NOT_LIKE'))
);
// connectors
$this->options['connectors'] = array(
JHtml::_('select.option', 'AND',
JText::_('RST_AND')),
JHtml::_('select.option', 'OR',
JText::_('RST_OR'))
);
// departments
$this->departments = $this->getDepartments();
// priorities
$this->priorities = $this->getPriorities();
// statuses
$this->statuses = $this->getStatuses();
// custom fields
$this->customFields = $this->getCustomFields();
// custom field values
$this->customFieldValues = $this->getCustomFieldValues();
}
protected function getDepartments()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('name'))
->from($db->qn('#__rsticketspro_departments'))
->order($db->qn('ordering').'
'.$db->escape('ASC'));
$db->setQuery($query);
return $db->loadObjectList();
}
protected function getPriorities()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('name'))
->from($db->qn('#__rsticketspro_priorities'))
->order($db->qn('ordering').'
'.$db->escape('ASC'));
$db->setQuery($query);
return $db->loadObjectList();
}
protected function getStatuses()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('name'))
->from($db->qn('#__rsticketspro_statuses'))
->order($db->qn('ordering').'
'.$db->escape('ASC'));
$db->setQuery($query);
return $db->loadObjectList();
}
protected function getCustomFieldValues()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('values'))
->select($db->qn('id'))
->select($db->qn('type'))
->from($db->qn('#__rsticketspro_custom_fields'));
$db->setQuery($query);
$customFieldValues = $db->loadObjectList('id');
foreach ($customFieldValues as $id => $properties)
{
$list = array();
$values = str_replace(array("\r\n", "\r"),
"\n", $properties->values);
$values = explode("\n", $values);
foreach ($values as $value)
{
$list[] = JHtml::_('select.option', $value, $value);
}
$customFieldValues[$id] = $list;
}
return $customFieldValues;
}
protected function getCustomFields()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('department_id'))
->select($db->qn('name'))
->select($db->qn('type'))
->select($db->qn('values'))
->from($db->qn('#__rsticketspro_custom_fields'))
->order($db->qn('ordering').'
'.$db->escape('ASC'));
$db->setQuery($query);
$customFields = $db->loadObjectList();
$list = array();
foreach ($this->departments as $department)
{
$optgroup = new stdClass();
$optgroup->value = '<OPTGROUP>';
$optgroup->text = $department->name;
$list[] = $optgroup;
foreach ($customFields as $customField)
{
if ($customField->department_id != $department->id)
{
continue;
}
$list[] = JHtml::_('select.option', $customField->id,
$customField->name);
}
$optgroup = new stdClass();
$optgroup->value = '</OPTGROUP>';
$optgroup->text = '';
$list[] = $optgroup;
}
return $list;
}
protected function escape($string)
{
return htmlentities($string, ENT_COMPAT, 'utf-8');
}
protected function getFormControlName($name)
{
return $this->formControl.'['.$name.']';
}
protected function getInput()
{
$conditions = array();
if ($this->value)
{
$conditions = unserialize($this->value);
}
if (!$conditions)
{
$conditions = array();
}
$html = '<p><button type="button" class="btn
btn-success" id="addConditionLink"><span
class="icon
icon-plus"></span></button></p>';
$html .= '<div class="clr"></div>';
$html .= '<div id="rst_conditions">';
$hidden_attribs = 'disabled="disabled"
style="display: none;"';
foreach ($conditions as $i => $condition) {
$select_type = JHtml::_('select.genericlist',
$this->options['types'],
$this->getFormControlName('select_type').'[]', null,
'value', 'text', $condition->type,
'select_type'.$i);
$select_custom_field_value = '';
if ($condition->type == 'custom_field') {
$select_custom_field_value = JHtml::_('select.genericlist',
$this->customFields,
$this->getFormControlName('select_custom_field_value').'[]',
null, 'value', 'text', $condition->custom_field,
'select_custom_field_value'.$i);
}
$select_condition = JHtml::_('select.genericlist',
$this->options['conditions'],
$this->getFormControlName('select_condition').'[]',
null, 'value', 'text', $condition->condition,
'select_condition'.$i);
$select_connector = JHtml::_('select.genericlist',
$this->options['connectors'],
$this->getFormControlName('select_connector').'[]',
null, 'value', 'text', $condition->connector,
'select_connector'.$i);
$select_value = '';
$is_like = $condition->condition == 'like' ||
$condition->condition == 'notlike';
switch ($condition->type)
{
case 'department':
$select_value = trim(JHtml::_('select.genericlist',
$this->departments,
$this->getFormControlName('select_value').'[]',
($is_like ? $hidden_attribs : ''), 'id',
'name', $condition->value, 'select_value'.$i));
$select_value .= '<input type="text"
name="'.$this->getFormControlName('select_value').'[]"
value="'.$this->escape($condition->value).'"
'.(!$is_like ? $hidden_attribs : '').' />';
break;
case 'priority':
$select_value = trim(JHtml::_('select.genericlist',
$this->priorities,
$this->getFormControlName('select_value').'[]',
($is_like ? $hidden_attribs : ''), 'id',
'name', $condition->value, 'select_value'.$i));
$select_value .= '<input type="text"
name="'.$this->getFormControlName('select_value').'[]"
value="'.$this->escape($condition->value).'"
'.(!$is_like ? $hidden_attribs : '').' />';
break;
case 'status':
$select_value = trim(JHtml::_('select.genericlist',
$this->statuses,
$this->getFormControlName('select_value').'[]',
($is_like ? $hidden_attribs : ''), 'id',
'name', $condition->value, 'select_value'.$i));
$select_value .= '<input type="text"
name="'.$this->getFormControlName('select_value').'[]"
value="'.$this->escape($condition->value).'"
'.(!$is_like ? $hidden_attribs : '').' />';
break;
case 'subject':
$select_value = '<input type="text"
name="'.$this->getFormControlName('select_value').'[]"
value="'.$this->escape($condition->value).'"
/>';
break;
case 'message':
$select_value = '<textarea
name="'.$this->getFormControlName('select_value').'[]">'.$this->escape($condition->value).'</textarea>';
break;
case 'custom_field':
$values =
isset($this->customFieldValues[$condition->custom_field]) ?
$this->customFieldValues[$condition->custom_field] : array();
$select_value = trim(JHtml::_('select.genericlist',
$values,
$this->getFormControlName('select_value').'[]',
($is_like ? $hidden_attribs : ''), 'value',
'text', $condition->value, 'select_value'.$i));
$select_value .= '<input type="text"
name="'.$this->getFormControlName('select_value').'[]"
value="'.$this->escape($condition->value).'"
'.(!$is_like ? $hidden_attribs : '').' />';
break;
}
$html .= '<p><span
class="rst_condition_if">'.JText::_('RST_IF').'</span>
'.$select_type.'<span> </span><span
class="responseSpan2">'.$select_custom_field_value.'</span><span> </span>'.$select_condition.'<span> </span><span
class="responseSpan">'.$select_value.'</span><span> </span>'.$select_connector.'<span> </span><span> </span><a
href="javascript: void(0);" class="btn btn-danger
deleteConditionLink"><span class="icon
icon-minus"></span></a></p>';
}
$html .= '</div>';
return $html;
}
}PK�(�[�)�`models/fields/priorities.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
JFormHelper::loadFieldClass('list');
class JFormFieldPriorities extends JFormFieldList
{
protected $type = 'Priorities';
protected function getOptions()
{
// Initialize variables.
$options = parent::getOptions();
if (isset($this->element['please']) &&
$this->element['please'] == 'true')
{
$options[] = JHtml::_('select.option', '',
JText::_('RST_PLEASE_SELECT_PRIORITY'));
}
if (isset($this->element['all']) &&
$this->element['all'] == 'true')
{
$options[] = JHtml::_('select.option', 0,
JText::_('RST_ALL_PRIORITIES'));
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('name'))
->from('#__rsticketspro_priorities');
if (isset($this->element['published']) &&
$this->element['published'] == 'true')
{
$query->where($db->qn('published').'='.$db->q(1));
}
$query->order($db->qn('ordering').'
'.$db->escape('asc'));
$db->setQuery($query);
$priorities = $db->loadObjectList();
foreach ($priorities as $priority)
{
// Add the option object to the result set.
$options[] = JHtml::_('select.option', $priority->id,
JText::_($priority->name));
}
reset($options);
return $options;
}
}PK�(�[��M��models/fields/rscaptcha.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
require_once
JPATH_ADMINISTRATOR.'/components/com_rsticketspro/helpers/rsticketspro.php';
class JFormFieldRSCaptcha extends JFormField
{
protected $type = 'RSCaptcha';
protected function getInput()
{
$captcha = RSTicketsProHelper::getConfig('captcha_enabled');
if ($captcha == 1)
{
$route =
JRoute::_('index.php?option=com_rsticketspro&task=captcha');
$src =
JRoute::_('index.php?option=com_rsticketspro&task=captcha&sid='.mt_rand());
$img = '<img src="'.$src.'"
id="submit_captcha_image"
alt="'.JText::_('RST_ANTISPAM').'"
/>';
$refresh = '<span
class="'.RSTicketsProHelper::tooltipClass().'"
title="'.RSTicketsProHelper::tooltipText(JText::_('RST_REFRESH_CAPTCHA_DESC')).'"><a
onclick="return
RSTicketsPro.refreshCaptcha(\''.addslashes($route).'\');"
href="javascript:void(0);" class="btn
btn-small"><i class="icon-refresh
icon-rsrefresh"></i></a></span>';
$input = '<div class="rst_captcha"><input
type="text" id="'.$this->id.'"
name="'.$this->name.'" value=""
/></div>';
return $img . $refresh . $input;
}
elseif ($captcha > 1 && $captcha < 5)
{
// reCAPTCHA NoCAPTCHA
$doc = JFactory::getDocument();
if ($doc->getType() == 'html')
{
$doc->addScript('https://www.google.com/recaptcha/api.js?'.($captcha
== 4 ? 'render=explicit&' :
'').'hl='.urlencode(JFactory::getLanguage()->getTag()),array(),
array('async' => 'async', 'defer' =>
'defer'));
}
$sitekey =
RSTicketsProHelper::getConfig('recaptcha_new_site_key');
$secretkey =
RSTicketsProHelper::getConfig('recaptcha_new_secret_key');
if (empty($sitekey))
{
return JText::_('RST_CAPTCHA_MISSING_SITE_KEY');
}
if (empty($secretkey))
{
return JText::_('RST_CAPTCHA_MISSING_SECRET_KEY');
}
if ($captcha == 3) {
return '<div class="g-recaptcha"
data-sitekey="'.$this->escape($sitekey).'"
data-theme="'.$this->escape(RSTicketsProHelper::getConfig('recaptcha_new_theme')).'"
data-type="'.$this->escape(RSTicketsProHelper::getConfig('recaptcha_new_type')).'"
></div>';
} else if ($captcha == 4) {
$invisible_script = "
var RSTicketsProReCAPTCHAv2Callback = function() {
var form =document.getElementById('adminForm');
if (typeof form.submit != 'function') {
document.createElement('form').submit.call(form)
} else {
form.submit();
}
}
var RSTicketsProReCAPTCHAv2 = function(){
var rst_rendered_id = grecaptcha.render('g-recaptcha-rst',
{
'sitekey' :
'".$this->escape($sitekey)."',
'theme' :
'".$this->escape(RSTicketsProHelper::getConfig('recaptcha_new_theme'))."',
'type' :
'".$this->escape(RSTicketsProHelper::getConfig('recaptcha_new_type'))."',
'badge' : 'inline',
'size' : 'invisible',
'callback' : 'RSTicketsProReCAPTCHAv2Callback'
});
RSTicketsPro.addEvent(document.getElementById('adminForm'),
'submit', function(evt){ evt.preventDefault();
grecaptcha.execute(rst_rendered_id); });
}
window.addEventListener('DOMContentLoaded',
RSTicketsProReCAPTCHAv2);";
$doc->addScriptDeclaration($invisible_script);
return '<div
id="g-recaptcha-rst"></div>';
}
} else if ($captcha == 5) {
$jconfig = JFactory::getConfig();
$jcaptcha = $jconfig->get('captcha');
if (!empty($jcaptcha)) {
try {
$jcaptcha = JCaptcha::getInstance($jcaptcha,
array('namespace' => 'rscaptcha'));
if (!is_null($jcaptcha))
{
return $jcaptcha->display('rscaptcha',
'rscaptcha');
}
} catch (Exception $e) {
JFactory::getApplication()->enqueueMessage($e->getMessage(),
'error');
}
} else {
JFactory::getApplication()->enqueueMessage(JText::_('RST_CAPTCHA_BUILT_IN_NOT_SELECTED'),
'error');
}
}
return '';
}
protected function escape($string)
{
return htmlentities($string, ENT_COMPAT, 'utf-8');
}
}PK�(�[�/�-aamodels/fields/rscustomer.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
JFormHelper::loadFieldClass('user');
class JFormFieldRSCustomer extends JFormFieldUser
{
public $type = 'RSCustomer';
protected function getGroups()
{
return null;
}
protected function getInput()
{
$this->readonly = false;
return str_replace('?option=com_users',
'?option=com_rsticketspro', parent::getInput());
}
}PK�(�[2Jp��models/fields/rseditor.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
require_once
JPATH_ADMINISTRATOR.'/components/com_rsticketspro/helpers/rsticketspro.php';
if (RSTicketsProHelper::getConfig('allow_rich_editor'))
{
JFormHelper::loadFieldClass('editor');
class JFormFieldRSEditor extends JFormFieldEditor
{
public $type = 'RSEditor';
public function getInput()
{
$this->element['buttons'] =
RSTicketsProHelper::getConfig('allow_rich_editor_buttons') ?
'true' : 'false';
$this->buttons = (bool)
RSTicketsProHelper::getConfig('allow_rich_editor_buttons');
return parent::getInput();
}
}
}
else
{
JFormHelper::loadFieldClass('textarea');
class JFormFieldRSEditor extends JFormFieldTextarea
{
protected $type = 'RSEditor';
}
}PK�(�[�����-models/fields/rsticketsproanonymisebutton.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2018 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
class JFormFieldRSTicketsProAnonymiseButton extends JFormField
{
protected $type = 'RSTicketsProAnonymiseButton';
protected function getInput()
{
JHtml::_('jquery.framework');
JHtml::_('script',
'com_rsticketspro/anonymise.js', array('relative' =>
true, 'version' => 'auto'));
JText::script('COM_RSTICKETSPRO_ARE_YOU_SURE_YOU_WANT_TO_ANONYMISE');
JText::script('SUCCESS');
JText::script('ERROR');
return '<div class="alert alert-danger">' .
JText::_('PLG_SYSTEM_RSTICKETSPRO_ANONYMISE_INSTRUCTIONS') .
'</div>' . '<button type="button"
class="btn btn-danger btn-large"
id="rst_anonymise_button">' .
JText::_('PLG_SYSTEM_RSTICKETSPRO_ANONYMISE_BUTTON') .
'</button>';
}
}PK�(�[�)� "models/fields/rsticketsprohtml.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
class JFormFieldRsticketsprohtml extends JFormField
{
protected function getInput()
{
$value = $this->value;
if (!empty($this->element['escape']))
{
$value = htmlspecialchars($this->value, ENT_COMPAT,
'utf-8');
}
return $value;
}
}PK�(�[�;<R��"models/fields/rsticketsprolang.phpnu�[���<?php
/**
* @package RSForm! Pro
* @copyright (C) 2007-2019 www.rsjoomla.com
* @license GPL, http://www.gnu.org/copyleft/gpl.html
*/
defined('_JEXEC') or die('Restricted access');
JFormHelper::loadFieldClass('list');
use Joomla\CMS\Language\LanguageHelper;
class JFormFieldRsticketsprolang extends JFormFieldList
{
protected function getOptions()
{
// Initialize variables.
$options = array();
$languages = LanguageHelper::getKnownLanguages();
foreach ($languages as $language => $properties)
{
$options[] = JHtml::_('select.option', $language,
$properties['name']);
}
reset($options);
return $options;
}
}PK�(�[:�Mkvvmodels/fields/rsuploads.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
class JFormFieldRSUploads extends JFormField
{
protected $type = 'RSUploads';
protected function getInput()
{
// Initialize some field attributes.
$accept = $this->element['accept'] ? '
accept="' . (string) $this->element['accept'] .
'"' : '';
$size = $this->element['size'] ? ' size="' .
(int) $this->element['size'] . '"' :
'';
$class = $this->element['class'] ? ' class="'
. (string) $this->element['class'] . '"' :
'';
$disabled = ((string) $this->element['disabled'] ==
'true') ? ' disabled="disabled"' :
'';
// Initialize JavaScript field attributes.
$onchange = $this->element['onchange'] ? '
onchange="' . (string) $this->element['onchange'] .
'"' : '';
$onclick = $this->element['onclick'] ? '
onclick="' . (string) $this->element['onclick'] .
'"' : '';
// button for "more files"
$button = '<button type="button" class="btn
btn-secondary"
'.$onclick.'>'.JText::_('RST_ADD_MORE_ATTACHMENTS').'</button>';
return '<input type="file" name="' .
$this->name . '[]" id="' . $this->id .
'"' . ' value=""' . $accept . $disabled
. $class . $size
. $onchange . ' /> '.$button;
}
}PK�(�[��Vcxxmodels/fields/rsusergroup.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
// No direct access.
defined('_JEXEC') or die('Restricted access');
/**
* Supports a nested check box field listing user groups.
*
*/
class JFormFieldRSUsergroup extends JFormField
{
/**
* The form field type.
*
* @var string
*
* @access protected
*/
protected $type = 'rsusergroup';
/**
* Method to get the user group field input markup.
*
* @access protected
*
* @return string The field input markup.
*/
protected function getInput()
{
$options = array();
$attr = '';
// Initialize some field attributes.
$attr .= empty($this->class) ? '' : '
class="' . $this->class . '"';
$attr .= $this->disabled ? ' disabled' :
'';
$attr .= $this->size ? ' size="' . $this->size
. '"' : '';
$attr .= $this->multiple ? ' multiple' :
'';
$attr .= $this->required ? ' required
aria-required="true"' : '';
$attr .= $this->autofocus ? ' autofocus' :
'';
// Initialize JavaScript field attributes.
$attr .= empty($this->onchange) ? '' : '
onchange="' . $this->onchange . '"';
$attr .= empty($this->onclick) ? '' : '
onclick="' . $this->onclick . '"';
// Iterate through the children and build an array of options.
foreach ($this->element->children() as $option)
{
// Only add <option /> elements.
if ($option->getName() != 'option')
continue;
$disabled = (string)$option['disabled'];
$disabled = $disabled == 'true' || $disabled ==
'disabled' || $disabled == '1';
// Create a new option object based on the <option />
element.
$tmp = JHtml::_( 'select.option',
(string)$option['value'], trim( (string)$option ),
'value', 'text', $disabled );
// Set some option attributes.
$tmp->class = (string)$option['class'];
// Set some JavaScript option attributes.
$tmp->onclick = (string)$option['onclick'];
// Add the option object to the result set.
$options[] = $tmp;
}
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select( array( $db->qn('a.id',
'value'), $db->qn('a.title', 'text'),
'COUNT(DISTINCT ' . $db->qn('b.id') . ') AS
' . $db->qn('level') ) )
->from( $db->qn('#__usergroups', 'a')
)
->leftJoin( $db->qn('#__usergroups',
'b') . ' ON ' . $db->qn('a.lft') . '
> ' . $db->qn('b.lft') . ' AND ' .
$db->qn('a.rgt') . ' < ' .
$db->qn('b.rgt') )
->group( $db->qn( array('a.id',
'a.title', 'a.lft', 'a.rgt') ) )
->order( $db->qn('a.lft') . ' ASC'
);
$db->setQuery($query);
if ( $jgroups = $db->loadObjectList() )
{
$query = $db->getQuery(true)
->select( $db->qn('jgroup_id') )
->from(
$db->qn('#__rsticketspro_departments_relations') );
// Get the selected ones if the id is set
$id =
JFactory::getApplication()->input->getInt('id', 0);
$query->where( $db->qn('department_id') .
' = ' . $db->q($id) );
$db->setQuery($query);
$jgroups_ids = $db->loadColumn();
foreach ($jgroups as $jgroup)
{
$text = str_repeat('- ', $jgroup->level) .
$jgroup->text;
$options[] = JHtml::_('select.option',
$jgroup->value, $text);
}
}
return JHtml::_( 'select.genericlist', $options,
$this->name, array('list.attr' => $attr,
'list.select' => $jgroups_ids, 'id' =>
$this->id) );
}
}
PK�(�[���jq
q
models/fields/staff.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
require_once
JPATH_ADMINISTRATOR.'/components/com_rsticketspro/helpers/rsticketspro.php';
JFormHelper::loadFieldClass('list');
class JFormFieldStaff extends JFormFieldList
{
protected $type = 'Staff';
protected $userField;
protected function getDepartments() {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('name'))
->from('#__rsticketspro_departments')
->where($db->qn('published').'='.$db->q(1))
->order($db->qn('ordering').'
'.$db->escape('asc'));
$db->setQuery($query);
return $db->loadObjectList();
}
protected function getUsers() {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$users = array();
$query->select($db->qn('user_id'))
->select($db->qn('department_id'))
->from('#__rsticketspro_staff_to_department');
$db->setQuery($query);
if ($results = $db->loadObjectList()) {
foreach ($results as $result) {
if (!isset($users[$result->department_id])) {
$users[$result->department_id] = array();
}
$users[$result->department_id][] =
JFactory::getUser($result->user_id);
}
}
return $users;
}
protected function getOptions() {
// Initialize variables.
$options = parent::getOptions();
$departments = $this->getDepartments();
$users = $this->getUsers();
$this->userField =
RSTicketsProHelper::getConfig('show_user_info');
if (isset($this->element['unassigned']) &&
$this->element['unassigned'] == 'true') {
$options[] = JHtml::_('select.option', 0,
JText::_('RST_UNASSIGNED'));
}
foreach ($departments as $department) {
// opening <OPTGROUP> tag
$options[] = (object) array(
'value' => '<OPTGROUP>',
'text' => JText::_($department->name)
);
if (isset($users[$department->id])) {
usort($users[$department->id], array($this, 'sort'));
foreach ($users[$department->id] as $user) {
$options[] = JHtml::_('select.option', $user->id,
$user->get($this->userField));
}
}
// closing </OPTGROUP> tag
$options[] = (object) array(
'value' => '</OPTGROUP>',
'text' => ''
);
}
reset($options);
return $options;
}
protected function sort($a, $b)
{
return strcasecmp($a->get($this->userField),
$b->get($this->userField));
}
}PK�(�[�Mr��models/fields/statuses.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
JFormHelper::loadFieldClass('list');
class JFormFieldStatuses extends JFormFieldList
{
protected $type = 'Statuses';
protected function getOptions() {
// Initialize variables.
$options = parent::getOptions();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('name'))
->from('#__rsticketspro_statuses');
if (isset($this->element['published']) &&
$this->element['published'] == 'true') {
$query->where($db->qn('published').'='.$db->q(1));
}
$query->order($db->qn('ordering').'
'.$db->escape('asc'));
$db->setQuery($query);
$statuses = $db->loadObjectList();
foreach ($statuses as $status) {
$tmp = JHtml::_('select.option', $status->id,
JText::_($status->name));
// Add the option object to the result set.
$options[] = $tmp;
}
reset($options);
return $options;
}
}PK�(�[����models/fields/subject.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
require_once
JPATH_ADMINISTRATOR.'/components/com_rsticketspro/helpers/rsticketspro.php';
if (!RSTicketsProHelper::getConfig('allow_predefined_subjects'))
{
JFormHelper::loadFieldClass('text');
class JFormFieldSubject extends JFormFieldText
{
protected $type = 'Subject';
}
} else {
JFormHelper::loadFieldClass('list');
class JFormFieldSubject extends JFormFieldList
{
protected $type = 'Subject';
protected function getOptions() {
$options = array();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('predefined_subjects'))
->from($db->qn('#__rsticketspro_departments'))
->where($db->qn('published').'='.$db->q(1))
->order($db->qn('ordering').'
'.$db->escape('asc'));
$db->setQuery($query);
$departments = $db->loadObjectList();
$doc = JFactory::getDocument();
$script = "RSTicketsPro.showPredefinedSubjects =
function(department) {\n";
$script .= "var subjects = {};\n";
$script .= "subjects[0] =
{'':'".JText::_('RST_PLEASE_SELECT_SUBJECT',
true)."'};\n";
foreach ($departments as $department) {
$subjects =
RSTicketsProHelper::getJSSubjects($department->predefined_subjects);
$script .= "subjects[".$department->id."] =
{".implode(',', $subjects)."};\n";
}
$script .= "if (typeof subjects[department.id] !=
'undefined') {\n";
$script .=
"RSTicketsPro.populateSelect(document.getElementById('jform_subject'),
subjects[department.id]);\n";
if ($this->value) {
$script .= "if (typeof jQuery != 'undefined') {
jQuery(document.getElementById('jform_subject')).val(".json_encode($this->value).");
}\n";
}
$script .= "if (typeof jQuery != 'undefined') {
jQuery(document.getElementById('jform_subject')).trigger('liszt:updated');
}\n";
$script .= "}\n";
$script .= "}\n";
$doc->addScriptDeclaration($script);
return $options;
}
}
}PK�(�[/�Dl��models/fields/typeahead.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
JFormHelper::loadFieldClass('text');
class JFormFieldTypeahead extends JFormFieldText
{
protected function getInput()
{
JHtml::_('stylesheet',
'com_rsticketspro/awesomplete.css', array('relative'
=> true, 'version' => 'auto'));
JHtml::_('script',
'com_rsticketspro/awesomplete.min.js', array('relative'
=> true, 'version' => 'auto'));
JHtml::_('script',
'com_rsticketspro/awesomplete.script.js',
array('relative' => true, 'version' =>
'auto'));
$allowEditor =
RSTicketsProHelper::getConfig('allow_rich_editor');
JFactory::getDocument()->addScriptDeclaration("initAwesomplete('{$this->id}',
$allowEditor);");
return parent::getInput();
}
}PK�(�[x���S�Smodels/forms/configuration.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="general"
label="RST_GENERAL">
<field name="date_format"
label="RST_DATE_TIME"
description="RST_DATE_TIME_DESC"
type="text"
size="40"/>
<field name="date_format_notime"
label="RST_DATE_TIME_NOTIME"
description="RST_DATE_TIME_NOTIME_DESC"
type="text"
size="40"/>
<field name="bootstrap"
type="radio"
class="btn-group btn-group-yesno"
description="RST_RSTICKETSPRO_BOOTSTRAP_DESC"
label="RST_RSTICKETSPRO_BOOTSTRAP"
default="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="jquery"
type="radio"
class="btn-group btn-group-yesno"
description="RST_RSTICKETSPRO_LOAD_JQUERY_DESC"
label="RST_RSTICKETSPRO_LOAD_JQUERY"
default="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="emails_as_usernames"
type="radio"
class="btn-group btn-group-yesno"
default="0"
description="RST_RSTICKETSPRO_EMAILS_TO_USERS_DESC"
label="RST_RSTICKETSPRO_EMAILS_TO_USERS_LABEL">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="allow_password_change"
type="radio"
class="btn-group btn-group-yesno"
default="0"
description="RST_RSTICKETSPRO_ALLOW_PASSWORD_DESC"
label="RST_RSTICKETSPRO_ALLOW_PASSWORD_LABEL">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="user_type"
type="usergrouplist"
description="RST_NEW_USER_TYPE_DESC"
label="RST_NEW_USER_TYPE"
default="2"/>
<field name="admin_groups"
type="usergrouplist"
multiple="multiple"
description="COM_RSTICKETSPRO_ADMIN_GROUPS_DESC"
label="COM_RSTICKETSPRO_ADMIN_GROUPS_LABEL"
default="6,7,8"/>
<field name="rsticketspro_link"
type="radio"
class="btn-group btn-group-yesno"
description="RST_RSTICKETSPRO_LINK_DESC"
label="RST_RSTICKETSPRO_LINK">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="allow_rich_editor"
type="radio"
class="btn-group btn-group-yesno"
description="RST_ALLOW_RICH_EDITOR_DESC"
label="RST_ALLOW_RICH_EDITOR">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="allow_rich_editor_buttons"
type="radio"
showon="allow_rich_editor:1"
class="btn-group btn-group-yesno"
description="RST_ALLOW_RICH_EDITOR_BUTTONS_DESC"
label="RST_ALLOW_RICH_EDITOR_BUTTONS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="show_reply_as_customer"
type="radio"
class="btn-group btn-group-yesno"
description="RST_SHOW_REPLY_AS_CUSTOMER_DESC"
label="RST_SHOW_REPLY_AS_CUSTOMER">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="show_kb_search"
type="radio"
class="btn-group btn-group-yesno"
description="RST_SHOW_KB_SEARCH_DESC"
label="RST_SHOW_KB_SEARCH">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="show_signature"
type="radio"
class="btn-group btn-group-yesno"
description="RST_SHOW_SIGNATURE_DESC"
label="RST_SHOW_SIGNATURE">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="submit_redirect"
label="RST_REDIRECT_AFTER_SUBMIT"
description="RST_REDIRECT_AFTER_SUBMIT_DESC"
type="text"
size="40"/>
<field name="staff_force_departments"
type="radio"
class="btn-group btn-group-yesno"
description="RST_STAFF_MEMBERS_FORCE_DEPARTMENTS_DESC"
label="RST_STAFF_MEMBERS_FORCE_DEPARTMENTS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="calculate_itemids"
type="radio"
class="btn-group btn-group-yesno"
description="RST_CALCULATE_ITEMIDS_DESC"
label="RST_CALCULATE_ITEMIDS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="use_magnific_popup"
type="radio"
class="btn-group btn-group-yesno"
default="0"
label="RST_USE_MAGNIFIC_POPUP"
description="RST_USE_MAGNIFIC_POPUP_DESC">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
<fieldset name="data_protection"
label="COM_RSTICKETSPRO_DATA_PROTECTION">
<field name="forms_consent" type="radio"
default="1" class="btn-group btn-group-yesno"
label="COM_RSTICKETSPRO_FORMS_CONSENT"
description="COM_RSTICKETSPRO_FORMS_CONSENT_DESC"
labelclass="control-label">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="store_ip" type="radio"
default="1" class="btn-group btn-group-yesno"
label="COM_RSTICKETSPRO_STORE_IP"
description="COM_RSTICKETSPRO_STORE_IP_DESC"
labelclass="control-label">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="store_user_agent" type="radio"
default="1" class="btn-group btn-group-yesno"
label="COM_RSTICKETSPRO_STORE_USER_AGENT"
description="COM_RSTICKETSPRO_STORE_USER_AGENT_DESC"
labelclass="control-label">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="allow_self_anonymisation"
type="radio" default="0" class="btn-group
btn-group-yesno"
label="COM_RSTICKETSPRO_ALLOW_SELF_ANONYMISATION"
description="COM_RSTICKETSPRO_ALLOW_SELF_ANONYMISATION_DESC"
labelclass="control-label">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="anonymise_joomla_data" type="radio"
default="1" class="btn-group btn-group-yesno"
label="COM_RSTICKETSPRO_ANONYMISE_JOOMLA_DATA"
description="COM_RSTICKETSPRO_ANONYMISE_JOOMLA_DATA_DESC"
labelclass="control-label">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
<fieldset name="messages"
label="RST_MESSAGES">
<field name="global_message"
type="editor"
label="RST_GLOBAL_MESSAGE"
description="RST_GLOBAL_MESSAGE_DESC"
filter="raw"
buttons="true"/>
<field name="submit_message"
type="editor"
label="RST_SUBMIT_MESSAGE"
description="RST_SUBMIT_MESSAGE_DESC"
filter="raw"
buttons="true"/>
</fieldset>
<fieldset name="tickets"
label="RST_TICKETS">
<field name="spacer_appearance"
type="spacer"
label="RST_APPEARANCE"
class="com-rsticketspro-spacer"/>
<field name="ticket_view"
type="list"
description="RST_TICKET_VIEW_DESC"
label="RST_TICKET_VIEW">
<option
value="plain">RST_TICKET_VIEW_PLAIN</option>
<option
value="tabbed">RST_TICKET_VIEW_TABBED</option>
<option
value="accordion">RST_TICKET_VIEW_ACCORDION</option>
</field>
<field name="messages_direction"
type="list"
description="RST_MESSAGES_DIRECTION_DESC"
label="RST_MESSAGES_DIRECTION">
<option value="ASC">RST_MESSAGES_ASC</option>
<option value="DESC">RST_MESSAGES_DESC</option>
</field>
<field name="show_ticket_info"
type="radio"
class="btn-group btn-group-yesno"
description="RST_SHOW_TICKET_INFO_DESC"
label="RST_SHOW_TICKET_INFO">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="show_user_info"
type="list"
description="RST_SHOW_USER_INFO_DESC"
label="RST_SHOW_USER_INFO">
<option value="name">RST_NAME</option>
<option value="username">RST_USERNAME</option>
<option value="email">RST_EMAIL</option>
</field>
<field name="show_email_link"
type="radio"
class="btn-group btn-group-yesno"
description="RST_SHOW_EMAIL_LINK_DESC"
label="RST_SHOW_EMAIL_LINK">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="ticket_viewing_history"
type="list"
description="RST_TICKET_VIEWING_HISTORY_DESC"
label="RST_TICKET_VIEWING_HISTORY">
<option
value="0">RST_TICKET_VIEWING_HISTORY_DISABLE</option>
<option
value="1">RST_TICKET_VIEWING_HISTORY_STAFF</option>
<option
value="2">RST_TICKET_VIEWING_HISTORY_CUSTOMER</option>
</field>
<field name="color_whole_ticket"
type="radio"
class="btn-group btn-group-yesno"
description="RST_COLOR_WHOLE_TICKET_DESC"
label="RST_COLOR_WHOLE_TICKET">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="spacer_customer_input"
type="spacer"
label="RST_CUSTOMER_INPUT"
class="com-rsticketspro-spacer"/>
<field name="rsticketspro_add_tickets"
type="list"
description="RST_RECEIVE_TICKETS_FROM_DESC"
label="RST_RECEIVE_TICKETS_FROM">
<option value="1">RST_EVERYONE</option>
<option value="0">RST_REGISTERED</option>
</field>
<field name="blocklist" type="textarea"
label="RST_EMAIL_SUBMIT_BLOCKLIST"
description="RST_EMAIL_SUBMIT_BLOCKLIST_DESC" rows="5"
cols="50" />
<field name="show_alternative_email"
type="radio"
class="btn-group btn-group-yesno"
description="RST_SHOW_ALTERNATIVE_EMAIL_DESC"
label="RST_SHOW_ALTERNATIVE_EMAIL">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="show_ticket_voting"
type="radio"
class="btn-group btn-group-yesno"
description="RST_SHOW_TICKET_VOTING_DESC"
label="RST_SHOW_TICKET_VOTING">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="enable_followup"
type="radio"
class="btn-group btn-group-yesno"
description="RST_ENABLE_FOLLOWUP_DESC"
label="RST_ENABLE_FOLLOWUP_LABEL"
default="0">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="followup_cron_interval"
label="RST_FOLLOWUP_CHECK_DESC"
description="RST_FOLLOWUP_CHECK_DESC"
type="text"
size="40"/>
<field name="followup_interval"
type="text"
default="1"
label="RST_EMAIL_FOLLOWUP_INTERVAL_LABEL"
description="RST_EMAIL_FOLLOWUP_INTERVAL_DESC"/>
<field name="followup_enabled_time"
type="hidden"
default="0"/>
<field name="allow_ticket_closing"
type="radio"
class="btn-group btn-group-yesno"
description="RST_ALLOW_TICKET_CLOSING_DESC"
label="RST_ALLOW_TICKET_CLOSING">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="allow_ticket_reopening"
type="radio"
class="btn-group btn-group-yesno"
description="RST_ALLOW_TICKET_REOPENING_DESC"
label="RST_ALLOW_TICKET_REOPENING">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="spacer_predefined_subjects"
type="spacer"
label="RST_PREDEFINED_SUBJECTS"
class="com-rsticketspro-spacer"/>
<field name="allow_predefined_subjects"
type="radio"
class="btn-group btn-group-yesno"
description="RST_USE_PREDEFINED_SUBJECTS_DESC"
label="RST_USE_PREDEFINED_SUBJECTS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="spacer_time_spent"
type="spacer"
label="RST_TIME_SPENT"
class="com-rsticketspro-spacer"/>
<field name="enable_time_spent"
type="radio"
class="btn-group btn-group-yesno"
description="RST_ENABLE_TIME_SPENT_DESC"
label="RST_ENABLE_TIME_SPENT">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="time_spent_type"
type="list"
description="RST_TIME_SPENT_TYPE_DESC"
label="RST_TIME_SPENT_TYPE">
<option
value="input">RST_TIME_SPENT_INPUT</option>
<option
value="tracking">RST_TIME_SPENT_TRACKING</option>
</field>
<field name="time_spent_unit"
type="list"
description="RST_TIME_SPENT_UNIT_DESC"
label="RST_TIME_SPENT_UNIT">
<option value="m">RST_TIME_UNIT_MINUTES</option>
<option value="h">RST_TIME_UNIT_HOURS</option>
<option value="d">RST_TIME_UNIT_DAYS</option>
</field>
</fieldset>
<fieldset name="avatars"
label="RST_AVATARS">
<field name="avatars"
type="avatars"
description="RST_AVATARS_ENABLE_DESC"
label="RST_AVATARS_ENABLE"/>
</fieldset>
<fieldset name="captcha"
label="RST_CAPTCHA">
<field name="captcha_enabled"
type="list"
description="RST_CAPTCHA_ENABLE_DESC"
label="RST_CAPTCHA_ENABLE">
<option value="0">JNO</option>
<option
value="1">RST_USE_BUILTIN_CAPTCHA</option>
<option value="3">RST_USE_RECAPTCHA_NEW</option>
<option
value="4">RST_USE_RECAPTCHA_NEW_INVISIBLE</option>
<option
value="5">RST_USE_RECAPTCHA_BUILT_IN_JOOMLA</option>
</field>
<field name="captcha_enabled_for"
type="list"
class="advancedSelect"
multiple="multiple"
showon="captcha_enabled!:0"
description="RST_CAPTCHA_ENABLED_FOR_DESC"
label="RST_CAPTCHA_ENABLED_FOR">
<option
value="unregistered">RST_CAPTCHA_UNREGISTERED</option>
<option
value="customers">RST_CAPTCHA_CUSTOMERS</option>
<option value="staff">RST_CAPTCHA_STAFF</option>
</field>
<field name="spacer_captcha"
type="spacer"
showon="captcha_enabled:1"
label="RST_BUILT_IN_CAPTCHA"
class="com-rsticketspro-spacer"/>
<field name="captcha_characters"
showon="captcha_enabled:1"
label="RST_CAPTCHA_CHARACTERS"
description="RST_CAPTCHA_CHARACTERS_DESC"
type="text"
size="40"/>
<field name="captcha_case_sensitive"
showon="captcha_enabled:1"
type="radio"
class="btn-group btn-group-yesno"
description="RST_CAPTCHA_CASE_SENSITIVE_DESC"
label="RST_CAPTCHA_CASE_SENSITIVE">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="spacer_recaptcha_new"
showon="captcha_enabled:3,4"
type="spacer"
label="RST_RECAPTCHA_NEW_SETTINGS"
class="com-rsticketspro-spacer"/>
<field name="recaptcha_new_site_key"
showon="captcha_enabled:3,4"
type="text"
class="input-xlarge"
description="RST_RECAPTCHA_NEW_SITE_KEY_DESC"
label="RST_RECAPTCHA_NEW_SITE_KEY"
size="70"/>
<field name="recaptcha_new_secret_key"
showon="captcha_enabled:3,4"
type="text"
class="input-xlarge"
description="RST_RECAPTCHA_NEW_SECRET_KEY_DESC"
label="RST_RECAPTCHA_NEW_SECRET_KEY"
size="70"/>
<field name="recaptcha_new_theme"
showon="captcha_enabled:3,4"
type="list"
default="light"
label="RST_RECAPTCHA_NEW_THEME"
description="RST_RECAPTCHA_NEW_THEME_DESC">
<option
value="light">RST_RECAPTCHA_NEW_THEME_LIGHT</option>
<option
value="dark">RST_RECAPTCHA_NEW_THEME_DARK</option>
</field>
<field name="recaptcha_new_type"
showon="captcha_enabled:3,4"
type="list"
default="image"
label="RST_RECAPTCHA_NEW_TYPE"
description="RST_RECAPTCHA_NEW_TYPE_DESC">
<option
value="image">RST_RECAPTCHA_NEW_TYPE_IMAGE</option>
<option
value="audio">RST_RECAPTCHA_NEW_TYPE_AUDIO</option>
</field>
</fieldset>
<fieldset name="email"
label="RST_EMAIL">
<field name="email_use_global"
type="radio"
class="btn-group btn-group-yesno"
description="RST_EMAIL_USE_GLOBAL_DESC"
label="RST_EMAIL_USE_GLOBAL">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="email_address"
showon="email_use_global:0"
label="RST_EMAIL_FROM_EMAIL"
description="RST_EMAIL_FROM_EMAIL_DESC"
type="text"
size="40"/>
<field name="email_address_fullname"
showon="email_use_global:0"
label="RST_EMAIL_FROM_FULLNAME"
description="RST_EMAIL_FROM_FULLNAME_DESC"
type="text"
size="40"/>
<field name="use_reply_above"
type="radio"
class="btn-group btn-group-yesno"
default="1"
label="RST_USE_REPLY_ABOVE"
description="RST_USE_REPLY_ABOVE_DESC">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="reply_above"
showon="use_reply_above:1"
label="RST_REPLY_ABOVE"
description="RST_REPLY_ABOVE_DESC"
type="text"
filter="raw"
size="40"/>
<field name="customer_itemid"
label="RST_CONFIG_CUSTOMER_ITEMID"
description="RST_CONFIG_CUSTOMER_ITEMID_DESC"
type="text"
size="40"/>
<field name="staff_itemid"
label="RST_CONFIG_STAFF_ITEMID"
description="RST_CONFIG_STAFF_ITEMID_DESC"
type="text"
size="40"/>
</fieldset>
<fieldset name="autoclose"
label="RST_AUTOCLOSE">
<field name="autoclose_enabled"
type="radio"
class="btn-group btn-group-yesno"
description="RST_AUTOCLOSE_ENABLE_DESC"
label="RST_AUTOCLOSE_ENABLE">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="autoclose_automatically"
type="radio"
class="btn-group btn-group-yesno"
description="RST_AUTOCLOSE_AUTOMATICALLY_DESC"
label="RST_AUTOCLOSE_AUTOMATICALLY_LABEL">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="autoclose_cron_interval"
label="RST_AUTOCLOSE_CHECK_DESC"
description="RST_AUTOCLOSE_CHECK_DESC"
type="text"
size="40"/>
<field name="autoclose_email_interval"
label="RST_AUTOCLOSE_DAYS_STATUS"
description="RST_AUTOCLOSE_DAYS_STATUS_DESC"
type="text"
size="40"/>
<field name="autoclose_interval"
label="RST_AUTOCLOSE_DAYS_CLOSED"
description="RST_AUTOCLOSE_DAYS_CLOSED_DESC"
type="text"
size="40"/>
</fieldset>
<fieldset name="notices"
label="RST_NOTICES">
<field name="notice_email_address"
label="RST_NOTICES_EMAIL"
description="RST_NOTICES_EMAIL_DESC"
type="text"
size="40"/>
<field name="notice_max_replies_nr"
label="RST_NOTICES_NO_REPLIES"
description="RST_NOTICES_NO_REPLIES_DESC"
type="text"
size="40"/>
<field name="notice_replies_with_no_response_nr"
label="RST_NOTICES_NO_REPLIES_WITH_NO_RESPONSE"
description="RST_NOTICES_NO_REPLIES_WITH_NO_RESPONSE_DESC"
type="text"
size="40"/>
<field name="notice_not_allowed_keywords"
label="RST_NOTICES_TRIGGERED_KEYWORDS"
description="RST_NOTICES_TRIGGERED_KEYWORDS_DESC"
type="textarea"
rows="5"
cols="50"/>
</fieldset>
<fieldset name="knowledgebase"
label="RST_KNOWLEDGEBASE">
<field name="kb_hot_hits"
label="RST_KB_HOT_HITS"
description="RST_KB_HOT_HITS_DESC"
type="text"
size="40"/>
<field name="kb_load_plugin"
type="radio"
default="0"
class="btn-group btn-group-yesno"
description="RST_KB_LOAD_CONTENT_PLUGIN_DESC"
label="RST_KB_LOAD_CONTENT_PLUGIN">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="kb_comments"
type="comments"
description="RST_KB_COMMENTS_DESC"
label="RST_KB_COMMENTS"/>
</fieldset>
<fieldset name="kbtemplate"
label="RST_KB_TEMPLATE">
<field name="kb_template_body" type="editor"
label="RST_KB_TEMPLATE_BODY"
description="RST_KB_TEMPLATE_BODY_DESC" filter="raw"
buttons="true" />
<field name="kb_template_ticket_body"
type="editor" label="RST_KB_TEMPLATE_TICKET_BODY"
description="RST_KB_TEMPLATE_TICKET_BODY_DESC"
filter="raw" buttons="true" />
</fieldset>
<fieldset name="updates"
label="RST_UPDATES">
<field name="global_register_code"
type="text"
description="RST_LICENSE_CODE_DESC"
label="RST_LICENSE_CODE"
size="70"/>
</fieldset>
<fieldset name="permissions"
label="JCONFIG_PERMISSIONS_LABEL"
description="JCONFIG_PERMISSIONS_DESC">
</fieldset>
</form>PK�(�[�Is�qqmodels/forms/customfield.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="department_id" required="true"
please="true" type="departments" default="0"
label="RST_CUSTOM_FIELD_DEPARTMENT"
description="RST_CUSTOM_FIELD_DEPARTMENT_DESC" />
<field name="name" type="text"
description="RST_CUSTOM_FIELD_DESC"
label="RST_CUSTOM_FIELD" required="true"
size="64" />
<field name="label" type="text"
description="RST_LABEL_DESC" label="RST_LABEL"
size="64" />
<field name="type" type="list"
description="RST_TYPE_DESC" label="RST_TYPE">
<option value="freetext">RST_FREETEXT</option>
<option value="textbox">RST_TEXTBOX</option>
<option value="textarea">RST_TEXTAREA</option>
<option value="select">RST_SELECT</option>
<option
value="multipleselect">RST_MULTIPLESELECT</option>
<option value="checkbox">RST_CHECKBOX</option>
<option value="radio">RST_RADIO</option>
<option value="calendar">RST_CALENDAR</option>
<option
value="calendartime">RST_CALENDARTIME</option>
</field>
<field name="values" label="RST_VALUES"
description="RST_VALUES_DESC" type="textarea"
filter="raw" rows="5" cols="50" />
<field name="additional"
label="RST_ADDITIONAL_ATTR"
description="RST_ADDITIONAL_ATTR_DESC" type="textarea"
filter="raw" rows="5" cols="50"
showon="type!:freetext" />
<field name="required" type="radio"
class="btn-group btn-group-yesno" label="RST_REQUIRED"
description="RST_REQUIRED_DESC" size="1"
default="0" showon="type!:freetext">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="validation" label="RST_VALIDATION"
description="RST_VALIDATION_DESC" type="textarea"
filter="raw" rows="5" cols="50"
showon="type!:freetext" />
<field name="description"
label="RST_CUSTOM_FIELD_DESCRIPTION"
description="RST_CUSTOM_FIELD_DESCRIPTION_DESC"
type="textarea" filter="raw" rows="5"
cols="50" />
<field name="published" type="radio"
class="btn-group btn-group-yesno" label="JPUBLISHED"
size="1" default="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="id" type="hidden" />
</fieldset>
</form>PK�(�[�^��XXmodels/forms/department.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="general" label="RST_GENERAL">
<field name="name" type="text"
description="RST_DEPARTMENT_DESC"
label="RST_DEPARTMENT" required="true"
size="64" filter="trim" />
<field name="prefix" type="text"
description="RST_PREFIX_DESC" label="RST_PREFIX"
required="true" size="64" filter="trim"
/>
<field name="jgroups" type="usergrouplist"
multiple="multiple" class="advancedSelect"
label="COM_RSTICKETSPRO_EXCLUDE_DEPARTMENT_FROM_GROUP_LABEL"
description="COM_RSTICKETSPRO_EXCLUDE_DEPARTMENT_FROM_GROUP_DESCRIPTION"
/>
<field name="published" type="radio"
class="btn-group btn-group-yesno" label="JPUBLISHED"
size="1">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field name="id" type="hidden" />
</fieldset>
<fieldset name="tickets"
label="RST_DEPARTMENT_TICKETS">
<field name="assignment_type" type="list"
description="RST_ASSIGNMENT_TYPE_DESC"
label="RST_ASSIGNMENT_TYPE">
<option value="0">RST_STATIC</option>
<option value="1">RST_AUTOMATIC</option>
</field>
<field name="generation_rule" type="list"
description="RST_GENERATION_RULE_DESC"
label="RST_GENERATION_RULE">
<option value="0">RST_SEQUENTIAL</option>
<option value="1">RST_RANDOM</option>
</field>
<field name="priority_id" type="priorities"
label="RST_PRIORITY" description="RST_PRIORITY_DESC"
/>
<field name="predefined_subjects"
label="RST_PREDEFINED_SUBJECTS_ADD"
description="RST_PREDEFINED_SUBJECTS_ADD_DESC"
type="textarea" filter="raw" rows="5"
cols="50" />
</fieldset>
<fieldset name="emails"
label="RST_DEPARTMENT_EMAILS">
<field name="email_use_global" type="radio"
class="btn-group btn-group-yesno"
description="RST_EMAIL_USE_RSTICKETS_GLOBAL_DESC"
label="RST_EMAIL_USE_RSTICKETS_GLOBAL">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="email_address"
showon="email_use_global:0" type="text"
description="RST_EMAIL_FROM_EMAIL_DESC"
label="RST_EMAIL_FROM_EMAIL" size="64" />
<field name="email_address_fullname"
showon="email_use_global:0" type="text"
description="RST_EMAIL_FROM_FULLNAME_DESC"
label="RST_EMAIL_FROM_FULLNAME" size="64" />
<field name="customer_send_email" type="radio"
class="btn-group btn-group-yesno"
description="RST_CUSTOMER_SEND_EMAIL_DESC"
label="RST_CUSTOMER_SEND_EMAIL">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="customer_send_copy_email"
type="radio" class="btn-group btn-group-yesno"
description="RST_CUSTOMER_SEND_COPY_EMAIL_DESC"
label="RST_CUSTOMER_SEND_COPY_EMAIL">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="customer_attach_email" type="radio"
class="btn-group btn-group-yesno"
description="RST_CUSTOMER_ATTACH_EMAIL_DESC"
label="RST_CUSTOMER_ATTACH_EMAIL">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="staff_send_email" type="radio"
class="btn-group btn-group-yesno"
description="RST_STAFF_SEND_EMAIL_DESC"
label="RST_STAFF_SEND_EMAIL">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="staff_attach_email" type="radio"
class="btn-group btn-group-yesno"
description="RST_STAFF_ATTACH_EMAIL_DESC"
label="RST_STAFF_ATTACH_EMAIL">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="download_type" type="list"
default="attachment"
description="RST_DOWNLOAD_TYPE_DESC"
label="RST_DOWNLOAD_TYPE_LABEL">
<option
value="link">RST_LINK_FROM_SERVER</option>
<option
value="attachment">RST_EMAIL_ATTACHMENT</option>
</field>
<field name="notify_new_tickets_to"
label="RST_NOTIFY_NEW_TICKETS_TO"
description="RST_NOTIFY_NEW_TICKETS_TO_DESC"
type="textarea" filter="raw" rows="5"
cols="50" />
<field name="cc" label="RST_DEPARTMENT_CC"
description="RST_DEPARTMENT_CC_DESC" type="textarea"
filter="raw" rows="5" cols="50" />
<field name="bcc" label="RST_DEPARTMENT_BCC"
description="RST_DEPARTMENT_BCC_DESC" type="textarea"
filter="raw" rows="5" cols="50" />
<field name="notify_assign" type="radio"
class="btn-group btn-group-yesno"
description="RST_NOTIFY_ASSIGN_DESC"
label="RST_NOTIFY_ASSIGN">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
<fieldset name="uploads"
label="RST_DEPARTMENT_UPLOADS">
<field name="upload" type="list"
description="RST_UPLOAD_FOR_DESC"
label="RST_UPLOAD_FOR">
<option value="1">RST_EVERYONE</option>
<option value="2">RST_REGISTERED</option>
<option value="0">RST_NOBODY</option>
</field>
<field name="upload_ticket_required"
showon="upload:1,2" type="radio" class="btn-group
btn-group-yesno"
description="COM_RSTICKETSPRO_UPLOAD_TICKET_REQUIRED_DESC"
label="COM_RSTICKETSPRO_UPLOAD_TICKET_REQUIRED"
default="0">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field name="upload_extensions"
showon="upload:1,2" label="RST_UPLOAD_EXTENSIONS"
description="RST_UPLOAD_EXTENSIONS_DESC"
type="textarea" filter="raw" rows="5"
cols="50" />
<field name="upload_size" showon="upload:1,2"
type="text" description="RST_UPLOAD_SIZE_DESC"
label="RST_UPLOAD_SIZE" size="64" />
<field name="upload_files" showon="upload:1,2"
type="text" description="RST_UPLOAD_FILES_DESC"
label="RST_UPLOAD_FILES" size="64" />
</fieldset>
</form>PK�(�[��V��models/forms/email.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="subject" type="text"
description="RST_EMAIL_SUBJECT_DESC"
label="RST_EMAIL_SUBJECT" size="64" />
<field name="message" type="editor"
label="RST_EMAIL_MESSAGE"
description="RST_EMAIL_MESSAGE_DESC" required="true"
filter="raw" buttons="true" />
<field name="published" type="radio"
class="btn-group btn-group-yesno" label="JPUBLISHED"
size="1">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field name="type" type="hidden" />
<field name="lang" type="hidden" />
<field name="id" type="hidden" />
</fieldset>
</form>PK�(�[���L L $models/forms/filter_customfields.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
<field
name="state"
type="list"
onchange="this.form.submit();"
default=""
>
<option
value="">JOPTION_SELECT_PUBLISHED</option>
<option value="1">JPUBLISHED</option>
<option value="0">JUNPUBLISHED</option>
</field>
<field
name="department_id"
type="departments"
please="true"
onchange="this.form.submit();"
default=""
>
</field>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="FormId ASC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="f.ordering
ASC">COM_RSTICKETSPRO_ORDERING_ORDER_ASC</option>
<option value="f.ordering
DESC">COM_RSTICKETSPRO_ORDERING_ORDER_DESC</option>
<option value="department_name
ASC">COM_RSTICKETSPRO_DEPARTMENT_ORDER_ASC</option>
<option value="department_name
DESC">COM_RSTICKETSPRO_DEPARTMENT_ORDER_DESC</option>
<option value="f.name
ASC">COM_RSTICKETSPRO_CUSTOM_FIELD_ORDER_ASC</option>
<option value="f.name
DESC">COM_RSTICKETSPRO_CUSTOM_FIELD_ORDER_DESC</option>
<option value="f.published
ASC">COM_RSTICKETSPRO_STATE_ORDER_ASC</option>
<option value="f.published
DESC">COM_RSTICKETSPRO_STATE_ORDER_DESC</option>
<option value="required
ASC">COM_RSTICKETSPRO_REQUIRED_ORDER_ASC</option>
<option value="required
DESC">COM_RSTICKETSPRO_REQUIRED_ORDER_DESC</option>
<option value="f.id
ASC">COM_RSTICKETSPRO_ID_ORDER_ASC</option>
<option value="f.id
DESC">COM_RSTICKETSPRO_ID_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[�{�R��#models/forms/filter_departments.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
<field
name="state"
type="list"
onchange="this.form.submit();"
default=""
>
<option
value="">JOPTION_SELECT_PUBLISHED</option>
<option value="1">JPUBLISHED</option>
<option value="0">JUNPUBLISHED</option>
</field>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="FormId ASC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="ordering
ASC">COM_RSTICKETSPRO_ORDERING_ORDER_ASC</option>
<option value="ordering
DESC">COM_RSTICKETSPRO_ORDERING_ORDER_DESC</option>
<option value="name
ASC">COM_RSTICKETSPRO_DEPARTMENT_ORDER_ASC</option>
<option value="name
DESC">COM_RSTICKETSPRO_DEPARTMENT_ORDER_DESC</option>
<option value="prefix
ASC">COM_RSTICKETSPRO_PREFIX_ORDER_ASC</option>
<option value="prefix
DESC">COM_RSTICKETSPRO_PREFIX_ORDER_DESC</option>
<option value="published
ASC">COM_RSTICKETSPRO_STATE_ORDER_ASC</option>
<option value="published
DESC">COM_RSTICKETSPRO_STATE_ORDER_DESC</option>
<option value="id
ASC">COM_RSTICKETSPRO_ID_ORDER_ASC</option>
<option value="id
DESC">COM_RSTICKETSPRO_ID_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[0�k�EEmodels/forms/filter_emails.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
<field
name="state"
type="list"
onchange="this.form.submit();"
default=""
>
<option
value="">JOPTION_SELECT_PUBLISHED</option>
<option value="1">JPUBLISHED</option>
<option value="0">JUNPUBLISHED</option>
</field>
<field name="language" type="rsticketsprolang"
onchange="this.form.submit();">
</field>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="FormId ASC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="lang
ASC">COM_RSTICKETSPRO_LANGUAGE_ORDER_ASC</option>
<option value="lang
DESC">COM_RSTICKETSPRO_LANGUAGE_ORDER_DESC</option>
<option value="type
ASC">COM_RSTICKETSPRO_TYPE_ORDER_ASC</option>
<option value="type
DESC">COM_RSTICKETSPRO_TYPE_ORDER_DESC</option>
<option value="subject
ASC">COM_RSTICKETSPRO_SUBJECT_ORDER_ASC</option>
<option value="subject
DESC">COM_RSTICKETSPRO_SUBJECT_ORDER_DESC</option>
<option value="published
ASC">COM_RSTICKETSPRO_STATE_ORDER_ASC</option>
<option value="published
DESC">COM_RSTICKETSPRO_STATE_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[0*���models/forms/filter_groups.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="FormId ASC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="name
ASC">COM_RSTICKETSPRO_GROUP_ORDER_ASC</option>
<option value="name
DESC">COM_RSTICKETSPRO_GROUP_ORDER_DESC</option>>
<option value="id
ASC">COM_RSTICKETSPRO_ID_ORDER_ASC</option>
<option value="id
DESC">COM_RSTICKETSPRO_ID_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[��mR
R
"models/forms/filter_kbarticles.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
<field
name="state"
type="list"
onchange="this.form.submit();"
default=""
>
<option
value="">JOPTION_SELECT_PUBLISHED</option>
<option value="1">JPUBLISHED</option>
<option value="0">JUNPUBLISHED</option>
</field>
<field name="category_id"
onchange="this.form.submit();" type="kbcategories"
show_noparent="true" please="true" />
<field
name="private"
type="list"
onchange="this.form.submit();"
default=""
>
<option
value="">COM_RSTICKETSPRO_SELECT_PRIVATE</option>
<option
value="1">COM_RSTICKETSPRO_PRIVATE</option>
<option
value="0">COM_RSTICKETSPRO_PUBLIC</option>
</field>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="FormId ASC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering
ASC">COM_RSTICKETSPRO_ORDERING_ORDER_ASC</option>
<option value="a.ordering
DESC">COM_RSTICKETSPRO_ORDERING_ORDER_DESC</option>
<option value="a.name
ASC">COM_RSTICKETSPRO_ARTICLE_ORDER_ASC</option>
<option value="a.name
DESC">COM_RSTICKETSPRO_ARTICLE_ORDER_DESC</option>
<option value="c.name
ASC">COM_RSTICKETSPRO_CATEGORY_ORDER_ASC</option>
<option value="c.name
DESC">COM_RSTICKETSPRO_CATEGORY_ORDER_DESC</option>
<option value="a.hits
ASC">COM_RSTICKETSPRO_HITS_ORDER_ASC</option>
<option value="a.hits
DESC">COM_RSTICKETSPRO_HITS_ORDER_DESC</option>
<option value="a.private
ASC">COM_RSTICKETSPRO_PRIVATE_ORDER_ASC</option>
<option value="a.private
DESC">COM_RSTICKETSPRO_PRIVATE_ORDER_DESC</option>
<option value="a.published
ASC">COM_RSTICKETSPRO_STATE_ORDER_ASC</option>
<option value="a.published
DESC">COM_RSTICKETSPRO_STATE_ORDER_DESC</option>
<option value="a.id
ASC">COM_RSTICKETSPRO_ID_ORDER_ASC</option>
<option value="a.id
DESC">COM_RSTICKETSPRO_ID_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[�z|��$models/forms/filter_kbcategories.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
<field
name="state"
type="list"
onchange="this.form.submit();"
default=""
>
<option
value="">JOPTION_SELECT_PUBLISHED</option>
<option value="1">JPUBLISHED</option>
<option value="0">JUNPUBLISHED</option>
</field>
<field
name="private"
type="list"
onchange="this.form.submit();"
default=""
>
<option
value="">COM_RSTICKETSPRO_SELECT_PRIVATE</option>
<option
value="1">COM_RSTICKETSPRO_PRIVATE</option>
<option
value="0">COM_RSTICKETSPRO_PUBLIC</option>
</field>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="FormId ASC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="ordering
ASC">COM_RSTICKETSPRO_ORDERING_ORDER_ASC</option>
<option value="ordering
DESC">COM_RSTICKETSPRO_ORDERING_ORDER_DESC</option>
<option value="name
ASC">COM_RSTICKETSPRO_CATEGORY_ORDER_ASC</option>
<option value="name
DESC">COM_RSTICKETSPRO_CATEGORY_ORDER_DESC</option>
<option value="private
ASC">COM_RSTICKETSPRO_PRIVATE_ORDER_ASC</option>
<option value="private
DESC">COM_RSTICKETSPRO_PRIVATE_ORDER_DESC</option>
<option value="published
ASC">COM_RSTICKETSPRO_STATE_ORDER_ASC</option>
<option value="published
DESC">COM_RSTICKETSPRO_STATE_ORDER_DESC</option>
<option value="id
ASC">COM_RSTICKETSPRO_ID_ORDER_ASC</option>
<option value="id
DESC">COM_RSTICKETSPRO_ID_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[������models/forms/filter_kbrules.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
<field
name="state"
type="list"
onchange="this.form.submit();"
default=""
>
<option
value="">JOPTION_SELECT_PUBLISHED</option>
<option value="1">JPUBLISHED</option>
<option value="0">JUNPUBLISHED</option>
</field>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="FormId ASC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="r.name
ASC">COM_RSTICKETSPRO_RULE_ORDER_ASC</option>
<option value="r.name
DESC">COM_RSTICKETSPRO_RULE_ORDER_DESC</option>
<option value="c.name
ASC">COM_RSTICKETSPRO_CATEGORY_ORDER_ASC</option>
<option value="c.name
DESC">COM_RSTICKETSPRO_CATEGORY_ORDER_DESC</option>
<option value="r.published
ASC">COM_RSTICKETSPRO_STATE_ORDER_ASC</option>
<option value="r.published
DESC">COM_RSTICKETSPRO_STATE_ORDER_DESC</option>
<option value="r.id
ASC">COM_RSTICKETSPRO_ID_ORDER_ASC</option>
<option value="r.id
DESC">COM_RSTICKETSPRO_ID_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[�Y6��*models/forms/filter_predefinedsearches.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
<field
name="state"
type="list"
onchange="this.form.submit();"
default=""
>
<option
value="">JOPTION_SELECT_PUBLISHED</option>
<option value="1">JPUBLISHED</option>
<option value="0">JUNPUBLISHED</option>
</field>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="FormId ASC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="ordering
ASC">COM_RSTICKETSPRO_ORDERING_ORDER_ASC</option>
<option value="ordering
DESC">COM_RSTICKETSPRO_ORDERING_ORDER_DESC</option>
<option value="name
ASC">COM_RSTICKETSPRO_SEARCH_ORDER_ASC</option>
<option value="name
DESC">COM_RSTICKETSPRO_SEARCH_ORDER_DESC</option>
<option value="published
ASC">COM_RSTICKETSPRO_STATE_ORDER_ASC</option>
<option value="published
DESC">COM_RSTICKETSPRO_STATE_ORDER_DESC</option>
<option value="id
ASC">COM_RSTICKETSPRO_ID_ORDER_ASC</option>
<option value="id
DESC">COM_RSTICKETSPRO_ID_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[h���"models/forms/filter_priorities.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
<field
name="state"
type="list"
onchange="this.form.submit();"
default=""
>
<option
value="">JOPTION_SELECT_PUBLISHED</option>
<option value="1">JPUBLISHED</option>
<option value="0">JUNPUBLISHED</option>
</field>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="FormId ASC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="ordering
ASC">COM_RSTICKETSPRO_ORDERING_ORDER_ASC</option>
<option value="ordering
DESC">COM_RSTICKETSPRO_ORDERING_ORDER_DESC</option>
<option value="name
ASC">COM_RSTICKETSPRO_PRIORITY_ORDER_ASC</option>
<option value="name
DESC">COM_RSTICKETSPRO_PRIORITY_ORDER_DESC</option>
<option value="published
ASC">COM_RSTICKETSPRO_STATE_ORDER_ASC</option>
<option value="published
DESC">COM_RSTICKETSPRO_STATE_ORDER_DESC</option>
<option value="id
ASC">COM_RSTICKETSPRO_ID_ORDER_ASC</option>
<option value="id
DESC">COM_RSTICKETSPRO_ID_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[�-6(models/forms/filter_staffs.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="FormId ASC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="username
ASC">COM_RSTICKETSPRO_USERNAME_ORDER_ASC</option>
<option value="username
DESC">COM_RSTICKETSPRO_USERNAME_ORDER_DESC</option>
<option value="name
ASC">COM_RSTICKETSPRO_NAME_ORDER_ASC</option>
<option value="name
DESC">COM_RSTICKETSPRO_NAME_ORDER_DESC</option>
<option value="email
ASC">COM_RSTICKETSPRO_EMAIL_ORDER_ASC</option>
<option value="email
DESC">COM_RSTICKETSPRO_EMAIL_ORDER_DESC</option>
<option value="group_name
ASC">COM_RSTICKETSPRO_GROUP_ORDER_ASC</option>
<option value="group_name
DESC">COM_RSTICKETSPRO_GROUP_ORDER_DESC</option>
<option value="priority_name
ASC">COM_RSTICKETSPRO_PRIORITY_ORDER_ASC</option>
<option value="priority_name
DESC">COM_RSTICKETSPRO_PRIORITY_ORDER_DESC</option>
<option value="u.id
ASC">COM_RSTICKETSPRO_ID_ORDER_ASC</option>
<option value="u.id
DESC">COM_RSTICKETSPRO_ID_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[.����
models/forms/filter_statuses.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
<field
name="state"
type="list"
onchange="this.form.submit();"
default=""
>
<option
value="">JOPTION_SELECT_PUBLISHED</option>
<option value="1">JPUBLISHED</option>
<option value="0">JUNPUBLISHED</option>
</field>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="FormId ASC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="ordering
ASC">COM_RSTICKETSPRO_ORDERING_ORDER_ASC</option>
<option value="ordering
DESC">COM_RSTICKETSPRO_ORDERING_ORDER_DESC</option>
<option value="name
ASC">COM_RSTICKETSPRO_STATUS_ORDER_ASC</option>
<option value="name
DESC">COM_RSTICKETSPRO_STATUS_ORDER_DESC</option>
<option value="published
ASC">COM_RSTICKETSPRO_STATE_ORDER_ASC</option>
<option value="published
DESC">COM_RSTICKETSPRO_STATE_ORDER_DESC</option>
<option value="id
ASC">COM_RSTICKETSPRO_ID_ORDER_ASC</option>
<option value="id
DESC">COM_RSTICKETSPRO_ID_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[��`W�
�
models/forms/filter_tickets.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
<field
name="department_id"
type="departments"
onchange="this.form.submit();"
default=""
>
<option value="">RST_SELECT_DEPARTMENT</option>
</field>
<field
name="priority_id"
type="priorities"
onchange="this.form.submit();"
default=""
>
<option value="">RST_SELECT_PRIORITY</option>
</field>
<field
name="status_id"
type="statuses"
onchange="this.form.submit();"
default=""
>
<option value="">RST_SELECT_STATUS</option>
</field>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="date DESC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="date
ASC">COM_RSTICKETSPRO_DATE_ORDER_ASC</option>
<option value="date
DESC">COM_RSTICKETSPRO_DATE_ORDER_DESC</option>
<option value="last_reply
ASC">COM_RSTICKETSPRO_LASTREPLY_ORDER_ASC</option>
<option value="last_reply
DESC">COM_RSTICKETSPRO_LASTREPLY_ORDER_DESC</option>
<option value="flagged
ASC">COM_RSTICKETSPRO_FLAGGED_ORDER_ASC</option>
<option value="flagged
DESC">COM_RSTICKETSPRO_FLAGGED_ORDER_DESC</option>
<option value="code
ASC">COM_RSTICKETSPRO_CODE_ORDER_ASC</option>
<option value="code
DESC">COM_RSTICKETSPRO_CODE_ORDER_DESC</option>
<option value="subject
ASC">COM_RSTICKETSPRO_SUBJECT_ORDER_ASC</option>
<option value="subject
DESC">COM_RSTICKETSPRO_SUBJECT_ORDER_DESC</option>
<option value="customer
ASC">COM_RSTICKETSPRO_CUSTOMER_ORDER_ASC</option>
<option value="customer
DESC">COM_RSTICKETSPRO_CUSTOMER_ORDER_DESC</option>
<option value="priority
ASC">COM_RSTICKETSPRO_PRIORITY_ORDER_ASC</option>
<option value="priority
DESC">COM_RSTICKETSPRO_PRIORITY_ORDER_DESC</option>
<option value="status
ASC">COM_RSTICKETSPRO_STATUS_ORDER_ASC</option>
<option value="status
DESC">COM_RSTICKETSPRO_STATUS_ORDER_DESC</option>
<option value="staff
ASC">COM_RSTICKETSPRO_STAFF_ORDER_ASC</option>
<option value="staff
DESC">COM_RSTICKETSPRO_STAFF_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[�ĉ���models/forms/filter_users.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="search"
type="text"
label="COM_RSTICKETSPRO_FILTER_SEARCH_LABEL"
description="COM_RSTICKETSPRO_SEARCH_FILTER_PLACEHOLDER"
hint="JSEARCH_FILTER"
/>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="FormId ASC"
>
<option
value="">JGLOBAL_SORT_BY</option>
<option value="id
ASC">COM_RSTICKETSPRO_ID_ORDER_ASC</option>
<option value="id
DESC">COM_RSTICKETSPRO_ID_ORDER_DESC</option>
<option value="name
ASC">COM_RSTICKETSPRO_NAME_ORDER_ASC</option>
<option value="name
DESC">COM_RSTICKETSPRO_NAME_ORDER_DESC</option>
<option value="username
ASC">COM_RSTICKETSPRO_USERNAME_ORDER_ASC</option>
<option value="username
DESC">COM_RSTICKETSPRO_USERNAME_ORDER_DESC</option>
<option value="email
ASC">COM_RSTICKETSPRO_EMAIL_ORDER_ASC</option>
<option value="email
DESC">COM_RSTICKETSPRO_EMAIL_ORDER_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
onchange="this.form.submit();"
/>
</fields>
</form>PK�(�[��!E��models/forms/group.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="general" label="RST_GENERAL">
<field name="name" type="text"
description="RST_GROUP_DESC" label="RST_GROUP"
required="true" size="64" />
<field name="export_tickets" default="0"
type="radio" class="btn-group btn-group-yesno"
description="RST_CAN_EXPORT_TICKETS_DESC"
label="RST_CAN_EXPORT_TICKETS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="id" type="hidden" />
</fieldset>
<fieldset name="submitting"
label="RST_GROUP_SUBMITTING">
<field name="add_ticket" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_ADD_TICKET_DESC"
label="RST_CAN_ADD_TICKET">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="add_ticket_customers" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_ADD_TICKET_CUSTOMERS_DESC"
label="RST_CAN_ADD_TICKET_CUSTOMERS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="add_ticket_staff" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_ADD_TICKET_STAFF_DESC"
label="RST_CAN_ADD_TICKET_STAFF">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
<fieldset name="replying"
label="RST_GROUP_REPLYING">
<field name="answer_ticket" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_ANSWER_TICKET_DESC"
label="RST_CAN_ANSWER_TICKET">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="update_ticket_replies" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_UPDATE_TICKET_REPLIES_DESC"
label="RST_CAN_UPDATE_TICKET_REPLIES">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="update_ticket_replies_customers"
type="radio" class="btn-group btn-group-yesno"
description="RST_CAN_UPDATE_TICKET_REPLIES_CUSTOMERS_DESC"
label="RST_CAN_UPDATE_TICKET_REPLIES_CUSTOMERS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="update_ticket_replies_staff"
type="radio" class="btn-group btn-group-yesno"
description="RST_CAN_UPDATE_TICKET_REPLIES_STAFF_DESC"
label="RST_CAN_UPDATE_TICKET_REPLIES_STAFF">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="delete_ticket_replies" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_DELETE_TICKET_REPLIES_DESC"
label="RST_CAN_DELETE_TICKET_REPLIES">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="delete_ticket_replies_customers"
type="radio" class="btn-group btn-group-yesno"
description="RST_CAN_DELETE_TICKET_REPLIES_CUSTOMERS_DESC"
label="RST_CAN_DELETE_TICKET_REPLIES_CUSTOMERS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="delete_ticket_replies_staff"
type="radio" class="btn-group btn-group-yesno"
description="RST_CAN_DELETE_TICKET_REPLIES_STAFF_DESC"
label="RST_CAN_DELETE_TICKET_REPLIES_STAFF">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
<fieldset name="viewing"
label="RST_GROUP_VIEWING">
<field name="see_unassigned_tickets" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_SEE_UNASSIGNED_TICKETS_DESC"
label="RST_CAN_SEE_UNASSIGNED_TICKETS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="see_other_tickets" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_SEE_OTHER_TICKETS_DESC"
label="RST_CAN_SEE_OTHER_TICKETS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
<fieldset name="updating"
label="RST_GROUP_UPDATING">
<field name="update_ticket" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_UPDATE_TICKET_DESC"
label="RST_CAN_UPDATE_TICKET">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="update_ticket_custom_fields"
type="radio" class="btn-group btn-group-yesno"
description="RST_CAN_UPDATE_TICKET_CUSTOM_FIELDS_DESC"
label="RST_CAN_UPDATE_TICKET_CUSTOM_FIELDS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="assign_tickets" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_ASSIGN_TICKETS_DESC"
label="RST_CAN_ASSIGN_TICKETS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="change_ticket_status" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_CHANGE_TICKET_STATUS_DESC"
label="RST_CAN_CHANGE_TICKET_STATUS">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="move_ticket" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_MOVE_TICKET_DESC"
label="RST_CAN_MOVE_TICKET">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="delete_ticket" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_DELETE_TICKET_DESC"
label="RST_CAN_DELETE_TICKET">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
<fieldset name="notes" label="RST_GROUP_NOTES">
<field name="view_notes" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_VIEW_NOTES_DESC"
label="RST_CAN_VIEW_NOTES">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="add_note" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_ADD_NOTE_DESC"
label="RST_CAN_ADD_NOTE">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="update_note" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_UPDATE_NOTE_DESC"
label="RST_CAN_UPDATE_NOTE">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="update_note_staff" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_UPDATE_NOTE_STAFF_DESC"
label="RST_CAN_UPDATE_NOTE_STAFF">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="delete_note" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_DELETE_NOTE_DESC"
label="RST_CAN_DELETE_NOTE">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="delete_note_staff" type="radio"
class="btn-group btn-group-yesno"
description="RST_CAN_DELETE_NOTE_STAFF_DESC"
label="RST_CAN_DELETE_NOTE_STAFF">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
</form>PK�(�[�#o,,models/forms/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[ԡ��""models/forms/kbarticle.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="name" type="text"
description="RST_KB_ARTICLE_NAME_DESC"
label="RST_KB_ARTICLE_NAME" required="true"
size="64" />
<field name="category_id" type="kbcategories"
label="RST_KB_ARTICLE_CATEGORY"
description="RST_KB_ARTICLE_CATEGORY_DESC"
show_noparent="true" />
<field name="text" type="editor"
label="RST_KB_ARTICLE_TEXT"
description="RST_KB_ARTICLE_TEXT_DESC" filter="raw"
buttons="true" />
<field name="meta_description"
label="RST_KB_ARTICLE_META_DESCRIPTION"
description="RST_KB_ARTICLE_META_DESCRIPTION_DESC"
type="textarea" filter="raw" rows="5"
cols="50" />
<field name="meta_keywords"
label="RST_KB_ARTICLE_META_KEYWORDS"
description="RST_KB_ARTICLE_META_KEYWORDS_DESC"
type="textarea" filter="raw" rows="5"
cols="50" />
<field name="private" type="radio"
class="btn-group btn-group-yesno" label="RST_PRIVATE"
description="RST_PRIVATE_DESC" size="1"
default="0">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="published" type="radio"
class="btn-group btn-group-yesno" label="JPUBLISHED"
size="1" default="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="id" type="hidden" />
</fieldset>
</form>PK�(�[j�|A��models/forms/kbcategory.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="name" type="text"
description="RST_KB_CATEGORY_NAME_DESC"
label="RST_KB_CATEGORY_NAME" required="true"
size="64" />
<field name="parent_id" type="kbcategories"
label="RST_KB_CATEGORY_PARENT"
description="RST_KB_CATEGORY_PARENT_DESC"
show_noparent="true" />
<field name="description" type="editor"
label="RST_KB_CATEGORY_DESCRIPTION"
description="RST_KB_CATEGORY_DESCRIPTION_DESC"
filter="raw" buttons="true" />
<field name="thumb" type="file"
label="RST_KB_CATEGORY_ICON"
description="RST_KB_CATEGORY_ICON_DESC" />
<field name="delete_thumb" type="radio"
class="btn-group btn-group-yesno"
description="RST_REMOVE_THUMB_DESC"
label="RST_REMOVE_THUMB" default="0">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="meta_description"
label="RST_KB_CATEGORY_META_DESCRIPTION"
description="RST_KB_CATEGORY_META_DESCRIPTION_DESC"
type="textarea" filter="raw" rows="5"
cols="50" />
<field name="meta_keywords"
label="RST_KB_CATEGORY_META_KEYWORDS"
description="RST_KB_CATEGORY_META_KEYWORDS_DESC"
type="textarea" filter="raw" rows="5"
cols="50" />
<field name="private" type="radio"
class="btn-group btn-group-yesno" label="RST_PRIVATE"
description="RST_PRIVATE_DESC" size="1"
default="0">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="published" type="radio"
class="btn-group btn-group-yesno" label="JPUBLISHED"
size="1" default="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="id" type="hidden" />
</fieldset>
</form>PK�(�[��HHmodels/forms/kbconvert.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="name" type="text"
description="RST_KB_ARTICLE_NAME_DESC"
label="RST_KB_ARTICLE_NAME" required="true"
size="64" />
<field name="category_id" type="kbcategories"
label="RST_KB_CATEGORY_NAME" show_noparent="true"
/>
<field name="private" type="radio"
class="btn-group btn-group-yesno" label="RST_PRIVATE"
description="RST_PRIVATE_DESC" size="1"
default="0">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="publish_article" type="radio"
class="btn-group btn-group-yesno"
label="RST_PUBLISH_ARTICLE"
description="RST_PUBLISH_ARTICLE_DESC" size="1"
default="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="private" type="radio"
class="btn-group btn-group-yesno"
label="RST_PRIVATE_ARTICLE"
description="RST_PRIVATE_ARTICLE_DESC" size="1"
default="0">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="ticket_id" type="hidden" />
</fieldset>
</form>PK�(�[<n���models/forms/kbrule.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="name" type="text"
description="RST_KB_RULE_NAME_DESC"
label="RST_KB_RULE_NAME" required="true"
size="64" />
<field name="conditions" type="kbconditions"
label="RST_KB_RULE_CONDITION" size="64" />
<field name="category_id" type="kbcategories"
label="RST_KB_PUBLISH_TO_CATEGORY"
description="RST_KB_PUBLISH_TO_CATEGORY_DESC"
show_noparent="true" />
<field name="publish_article" type="radio"
class="btn-group btn-group-yesno"
label="RST_PUBLISH_ARTICLE"
description="RST_PUBLISH_ARTICLE_DESC" size="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="private" type="radio"
class="btn-group btn-group-yesno"
label="RST_PRIVATE_ARTICLE"
description="RST_PRIVATE_ARTICLE_DESC" size="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="published" type="radio"
class="btn-group btn-group-yesno" label="JPUBLISHED"
size="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="select_type" type="dummy"
hidden="true" />
<field name="select_custom_field_value"
type="dummy" hidden="true" />
<field name="select_condition" type="dummy"
hidden="true" />
<field name="select_value" type="dummy"
hidden="true" />
<field name="select_connector" type="dummy"
hidden="true" />
<field name="id" type="hidden" />
<field name="from_ticket_id" type="hidden" />
</fieldset>
</form>PK�(�[��?�FFmodels/forms/note.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="text" label="RST_TICKET_NOTE"
required="true" description="RST_TICKET_NOTE_DESC"
type="textarea" filter="raw" rows="12"
cols="50" />
<field name="id" type="hidden" />
<field name="ticket_id" type="hidden" />
</fieldset>
</form>PK�(�[�o����#models/forms/predefinedsearches.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="name" type="text"
description="RST_SEARCH_NAME_DESC"
label="RST_SEARCH_NAME" required="true"
size="64" />
<field name="default" type="radio"
class="btn-group btn-group-yesno"
description="RST_DEFAULT_SEARCH_DESC"
label="RST_DEFAULT_SEARCH" default="0"
size="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="update" type="list"
description="RST_UPDATE_SEARCH_DESC"
label="RST_UPDATE_SEARCH" default="0"
size="1">
<option value="1">RST_UPDATE_SEARCH_OK</option>
<option value="0">JNO</option>
</field>
<field name="published" type="radio"
class="btn-group btn-group-yesno" label="JPUBLISHED"
size="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="id" type="hidden" />
</fieldset>
</form>PK�(�[D����models/forms/priority.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="name" type="text"
description="RST_PRIORITY_DESC" label="RST_PRIORITY"
required="true" size="64" />
<field name="bg_color" type="color"
description="RST_PRIORITY_BACKGROUND_COLOR_DESC"
label="RST_PRIORITY_BACKGROUND_COLOR" />
<field name="fg_color" type="color"
description="RST_PRIORITY_FOREGROUND_COLOR_DESC"
label="RST_PRIORITY_FOREGROUND_COLOR" />
<field name="published" type="radio"
class="btn-group btn-group-yesno" label="JPUBLISHED"
size="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="id" type="hidden" />
</fieldset>
</form>PK�(�[ԡ��models/forms/search.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="filter_search" type="text"
description="RST_SEARCH_TEXT_DESC"
label="RST_SEARCH_TEXT" size="64" />
<field name="customer" type="text"
description="RST_SEARCH_CUSTOMER_DESC"
label="RST_SEARCH_CUSTOMER" size="64" />
<field name="staff" type="text"
description="RST_SEARCH_STAFF_DESC"
label="RST_SEARCH_STAFF" size="64" />
<field name="department_id" type="departments"
default="0" published="true"
label="RST_SEARCH_DEPARTMENTS"
description="RST_SEARCH_DEPARTMENTS_DESC"
multiple="multiple" />
<field name="priority_id" type="priorities"
published="true" label="RST_SEARCH_PRIORITIES"
description="RST_SEARCH_PRIORITIES_DESC"
multiple="multiple" />
<field name="status_id" type="statuses"
published="true" label="RST_SEARCH_STATUSES"
description="RST_SEARCH_STATUSES_DESC"
multiple="multiple" />
<field name="filter_order" type="list"
label="JFIELD_ORDERING_LABEL"
description="JFIELD_ORDERING_DESC">
<option value="date">RST_TICKET_DATE</option>
<option
value="last_reply">RST_TICKET_LAST_REPLY</option>
<option value="code">RST_TICKET_CODE</option>
<option
value="subject">RST_TICKET_SUBJECT</option>
<option value="status">RST_TICKET_STATUS</option>
<option
value="priority">RST_TICKET_PRIORITY</option>
</field>
<field name="filter_order_Dir" type="list"
label="">
<option
value="ASC">JGLOBAL_ORDER_ASCENDING</option>
<option
value="DESC">JGLOBAL_ORDER_DESCENDING</option>
</field>
<field name="flagged" type="radio"
class="btn-group btn-group-yesno"
label="RST_SEARCH_FLAGGED" size="1"
default="0">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
</form>PK�(�[L���models/forms/signature.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="signature" type="editor"
required="true" label="RST_SIGNATURE"
description="RST_YOUR_SIGNATURE_DESC" filter="html"
buttons="true" width="70%" />
</fieldset>
</form>PK�(�[��Y�hhmodels/forms/staff.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="user_id" type="user"
label="JGLOBAL_USERNAME" labelclass="control-label"
required="true" />
<field name="group_id" type="groups"
label="RST_STAFF_GROUP"
description="RST_STAFF_GROUP_DESC" />
<field name="department_id" type="departments"
default="0" label="RST_STAFF_DEPARTMENTS"
description="RST_STAFF_DEPARTMENTS_DESC"
multiple="multiple" required="true" />
<field name="exclude_auto_assign" type="radio"
default="0" class="btn-group btn-group-yesno"
description="RST_STAFF_EXCLUDE_AUTO_ASSIGN_DESC"
label="RST_STAFF_EXCLUDE_AUTO_ASSIGN">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="can_delete_time_history" type="radio"
default="0" class="btn-group btn-group-yesno"
description="RST_STAFF_CAN_DELETE_TIME_HISTORY_DESC"
label="RST_STAFF_CAN_DELETE_TIME_HISTORY">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="can_delete_own_time_history"
showon="can_delete_time_history:0" type="radio"
default="0" class="btn-group btn-group-yesno"
description="RST_STAFF_CAN_DELETE_OWN_TIME_HISTORY_DESC"
label="RST_STAFF_CAN_DELETE_OWN_TIME_HISTORY">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="priority_id" type="priorities"
label="RST_STAFF_PRIORITY"
description="RST_STAFF_PRIORITY_DESC" all="true" />
<field name="signature" type="editor"
label="RST_SIGNATURE" description="RST_SIGNATURE_DESC"
filter="raw" buttons="true" />
<field name="id" type="hidden" />
</fieldset>
</form>PK�(�[�=p���models/forms/status.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="name" type="text"
description="RST_STATUS_DESC" label="RST_STATUS"
required="true" size="64" />
<field name="published" type="radio"
class="btn-group btn-group-yesno" label="JPUBLISHED"
size="1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="id" type="hidden" />
</fieldset>
</form>PK�(�[��&��models/forms/submit.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="submit_type" type="radio"
class="btn-group btn-group-yesno" default="1"
description="" label="">
<option value="1">RST_SHORT_NEW_USER</option>
<option
value="2">RST_SHORT_EXISTING_USER</option>
</field>
<field name="email" label="RST_YOUR_EMAIL"
description="RST_YOUR_EMAIL_DESC" type="text"
size="40" showon="submit_type:1" />
<field name="alternative_email"
label="RST_ALTERNATIVE_EMAIL"
description="RST_ALTERNATIVE_EMAIL_DESC" type="text"
size="40" showon="submit_type:1" />
<field name="name" label="RST_YOUR_NAME"
description="RST_YOUR_NAME_DESC" type="text"
size="40" showon="submit_type:1" />
<field name="password" label="RST_YOUR_PASSWORD"
description="RST_YOUR_PASSWORD_DESC" type="password"
showon="submit_type:1" />
<field name="customer_id"
label="RST_EXISTING_CUSTOMER"
description="RST_EXISTING_CUSTOMER_DESC"
type="rscustomer" size="40"
showon="submit_type:2" />
<field name="department_id" type="departments"
default="0" please="true" published="true"
onchange="RSTicketsPro.changeDepartment();"
label="RST_TICKET_DEPARTMENT"
description="RST_TICKET_DEPARTMENT_DESC"
required="true" />
<field name="subject" label="RST_TICKET_SUBJECT"
description="RST_TICKET_SUBJECT_DESC" type="subject"
required="true" />
<field name="message" type="rseditor"
default="" rows="12" cols="80"
label="RST_TICKET_MESSAGE"
description="RST_TICKET_MESSAGE_DESC" required="true"
filter="JComponentHelper::filterText" width="70%"
/>
<field name="priority_id" type="priorities"
default="0" please="true" published="true"
label="RST_TICKET_PRIORITY"
description="RST_TICKET_PRIORITY_DESC" required="true"
/>
<field name="captcha" type="rscaptcha"
label="RST_TICKET_CAPTCHA"
description="RST_TICKET_CAPTCHA_DESC"
refresh_label="RST_REFRESH_CAPTCHA"
refresh_description="RST_REFRESH_CAPTCHA_DESC" />
<field name="consent" type="checkboxes"
label="" description="">
<option
value="1">RST_TICKET_CONSENT_SUBMIT</option>
</field>
<field name="files" type="rsuploads"
onclick="RSTicketsPro.addSubmitFile();"
label="RST_TICKET_ATTACHMENTS"
description="RST_TICKET_ATTACHMENTS_DESC" />
</fieldset>
</form>PK�(�[uC����models/forms/ticket.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<field name="subject" label="RST_TICKET_SUBJECT"
type="text" size="40" />
<field name="department_id" type="departments"
default="0" label="RST_TICKET_DEPARTMENT"
published="true"
onchange="RSTicketsPro.disableStaff();" />
<field name="date" type="rsticketsprohtml"
label="RST_TICKET_DATE" escape="true" />
<field name="code" type="rsticketsprohtml"
label="RST_TICKET_CODE" escape="true" />
<field name="status_id" type="statuses"
default="0" label="RST_TICKET_STATUS"
published="true" />
<field name="priority_id" type="priorities"
default="0" label="RST_TICKET_PRIORITY"
published="true" />
<field name="customer_id" type="rscustomer"
label="RST_TICKET_CUSTOMER" />
<field name="alternative_email"
label="RST_ALTERNATIVE_EMAIL" type="text"
size="40" />
<field name="staff_id" type="staff"
unassigned="true" label="RST_TICKET_STAFF" />
<field name="time_spent" label="RST_TIME_SPENT"
type="text" size="40" />
<field name="search" label="RST_KNOWLEDGEBASE"
type="typeahead" class="input-xxlarge"
size="40" />
<field name="message" type="rseditor"
default="" rows="12" cols="80"
label="RST_TICKET_MESSAGE"
description="RST_TICKET_MESSAGE_DESC" required="true"
filter="JComponentHelper::filterText"
class="input-xxlarge" />
<field name="use_signature" type="radio"
default="1" label="RST_ATTACH_SIGNATURE"
class="btn-group btn-group-yesno">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="reply_as_customer" type="radio"
default="0" label="RST_TICKET_REPLY_AS_CUSTOMER"
class="btn-group btn-group-yesno">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="consent" type="checkboxes"
label="" description="">
<option
value="1">RST_TICKET_CONSENT_SUBMIT</option>
</field>
<field name="files" type="rsuploads"
onclick="RSTicketsPro.addReplyFile();"
label="RST_TICKET_ATTACHMENTS"
description="RST_TICKET_ATTACHMENTS_DESC" />
</form>PK�(�[�()]]models/forms/ticketmessage.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="params">
<field name="message" type="rseditor"
default="" rows="12" cols="80"
label="RST_TICKET_MESSAGE"
description="RST_TICKET_MESSAGE_DESC" required="true"
filter="JComponentHelper::filterText"
class="input-xxlarge" />
<field name="id" type="hidden" />
</fieldset>
</form>PK�(�[�ϔ��models/forms/tickets.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="bulk">
<field name="bulk_department_id"
type="departments" default="0"
label="RST_TICKET_DEPARTMENT"
onchange="RSTicketsPro.disableStaff(this,
document.getElementById('bulk_staff_id'));">
<option
value="0">RST_DO_NOT_CHANGE_DEPARTMENT</option>
</field>
<field name="bulk_staff_id" type="staff"
default="-1" unassigned="true"
label="RST_TICKET_STAFF">
<option
value="-1">RST_DO_NOT_CHANGE_ASSIGNMENT</option>
</field>
<field name="bulk_priority_id" type="priorities"
default="0" label="RST_TICKET_PRIORITY"
published="true">
<option
value="0">RST_DO_NOT_CHANGE_PRIORITY</option>
</field>
<field name="bulk_status_id" type="statuses"
default="0" label="RST_TICKET_STATUS"
published="true">
<option
value="0">RST_DO_NOT_CHANGE_STATUS</option>
</field>
<field name="bulk_notify" type="list"
default="0">
<option value="0">RST_DO_NOT_NOTIFY</option>
<option value="1">RST_NOTIFY_SELECTED</option>
</field>
<field name="bulk_delete" type="list"
default="0"
onchange="RSTicketsPro.disableBulk(this.value);">
<option value="0">RST_DO_NOT_DELETE</option>
<option value="1">RST_DELETE_SELECTED</option>
</field>
</fieldset>
</form>PK�(�[��^models/group.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelGroup extends JModelAdmin
{
public function getTable($type = 'Groups', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.group',
'group', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$data =
JFactory::getApplication()->getUserState('com_rsticketspro.edit.group.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
return $data;
}
public function getRSTabs()
{
return new RsticketsproAdapterTabs('com-rsticketspro-group');
}
protected function canDelete($record)
{
return JFactory::getUser()->authorise('group.delete',
'com_rsticketspro');
}
}PK�(�[\o�Rmodels/groups.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelGroups extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'name', 'id'
);
}
parent::__construct($config);
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$search = $this->getState('filter.search');
$query->select('*')
->from('#__rsticketspro_groups');
// search
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('id') . ' = ' . (int)
substr($search, 3));
}
else
{
$query->where($db->qn('name') . ' LIKE ' .
$db->q('%'.str_replace(' ', '%',
$db->escape($search, true)).'%', false));
}
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'name')).'
'.$db->escape($this->getState('list.direction',
'asc')));
return $query;
}
protected function populateState($ordering = 'name', $direction
= 'asc')
{
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
// List state information.
parent::populateState($ordering, $direction);
}
}PK�(�[��"��models/history.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelHistory extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'date', 'ip', 'type'
);
}
parent::__construct($config);
}
public function getId()
{
return JFactory::getApplication()->input->getInt('id');
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from('#__rsticketspro_ticket_history')
->where($db->qn('ticket_id').'='.$db->q($this->getId()))
->order($db->qn($this->getState('list.ordering',
'date')).'
'.$db->escape($this->getState('list.direction',
'desc')));
return $query;
}
protected function populateState($ordering = 'date', $direction
= 'desc')
{
// List state information.
parent::populateState($ordering, $direction);
}
}PK�(�[�#o,,models/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�'��models/kbarticle.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelKbarticle extends JModelAdmin
{
public function getTable($type = 'Kbcontent', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.kbarticle',
'kbarticle', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
// Modify the form based on access controls.
if (!$this->canEditState((object) $data))
{
// Disable fields for display.
$form->setFieldAttribute('ordering', 'disabled',
'true');
$form->setFieldAttribute('published', 'disabled',
'true');
// Disable fields while saving.
// The controller has already verified this is a record you can edit.
$form->setFieldAttribute('ordering', 'filter',
'unset');
$form->setFieldAttribute('published', 'filter',
'unset');
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$data =
JFactory::getApplication()->getUserState('com_rsticketspro.edit.kbarticle.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
return $data;
}
public function getTicket()
{
$item = $this->getItem();
if ($item->from_ticket_id)
{
$table = JTable::getInstance('Tickets',
'RsticketsproTable');
if ($table->load($item->from_ticket_id))
{
return $table;
}
else
{
return false;
}
}
return false;
}
protected function getReorderConditions($table)
{
return array(
'category_id = '.(int) $table->category_id
);
}
protected function canDelete($record)
{
return JFactory::getUser()->authorise('kbarticle.delete',
'com_rsticketspro');
}
protected function canEditState($record)
{
return
JFactory::getUser()->authorise('kbarticle.edit.state',
'com_rsticketspro');
}
}PK�(�[K��ccmodels/kbarticles.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelKbarticles extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'a.name', 'c.name', 'a.hits',
'a.private', 'a.published', 'a.ordering',
'a.id', 'state', 'category_id',
'private'
);
}
parent::__construct($config);
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$search = $this->getState('filter.search');
$state = $this->getState('filter.state');
$private = $this->getState('filter.private');
$category_id = $this->getState('filter.category_id');
$query->select($db->qn('a.id'))
->select($db->qn('a.name'))
->select($db->qn('a.category_id'))
->select($db->qn('a.hits'))
->select($db->qn('a.private'))
->select($db->qn('a.published'))
->select($db->qn('a.ordering'))
->select($db->qn('c.name',
'category_name'))
->from($db->qn('#__rsticketspro_kb_content',
'a'));
// join categories
$query->join('left',
$db->qn('#__rsticketspro_kb_categories', 'c') .
' ON (' . $db->qn('a.category_id') . '=' .
$db->qn('c.id') . ')');
// search
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('a.id') . ' = ' . (int)
substr($search, 3));
}
else
{
$search = $db->q('%'.str_replace(' ',
'%', $db->escape($search, true)).'%', false);
$query->where('(' . $db->qn('a.name') .
' LIKE ' . $search . ') OR (' .
$db->qn('a.text') . ' LIKE ' . $search .
')');
}
}
// searching for a category?
if ($category_id !== '')
{
// let's search for all children
if ($category_id == 0)
{
$categories = array($category_id);
}
else
{
$categories = $this->getAllChildren($category_id);
}
if (!is_null($category_id))
{
$query->where($db->qn('a.category_id').' IN
('.implode(',', $categories).')');
}
}
// published/unpublished
if ($state != '')
{
$query->where($db->qn('a.published') . '=' .
$db->q($state));
}
if ($private != '')
{
$query->where($db->qn('a.private') . '=' .
$db->q($private));
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'a.ordering')).'
'.$db->escape($this->getState('list.direction',
'asc')));
$query->order($db->qn('a.category_id'));
return $query;
}
protected function populateState($ordering = 'a.ordering',
$direction = 'asc')
{
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
$this->setState('filter.state',
$this->getUserStateFromRequest($this->context.'.filter.state',
'filter_state'));
$this->setState('filter.private',
$this->getUserStateFromRequest($this->context.'.filter.private',
'filter_private'));
$this->setState('filter.category_id',
$this->getUserStateFromRequest($this->context.'.filter.category_id',
'filter_category_id'));
// List state information.
parent::populateState($ordering, $direction);
}
protected function getAllChildren($parent_id)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$children = array($parent_id);
$query->select($db->qn('id'))
->from('#__rsticketspro_kb_categories')
->where($db->qn('parent_id') . '=' .
$db->q($parent_id));
$db->setQuery($query);
if ($ids = $db->loadColumn())
{
foreach ($ids as $id)
{
$children = array_merge($children, $this->getAllChildren($id));
}
}
return $children;
}
}PK�(�[������models/kbcategories.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelKbcategories extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'name', 'private', 'published',
'ordering', 'id', 'state'
);
}
parent::__construct($config);
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$search = $this->getState('filter.search');
$state = $this->getState('filter.state');
$private = $this->getState('filter.private');
$query->select('*')
->from($db->qn('#__rsticketspro_kb_categories'));
// search
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('id') . ' = ' . (int)
substr($search, 3));
}
else
{
$search = $db->q('%'.str_replace(' ',
'%', $db->escape($search, true)).'%', false);
$query->where('(' . $db->qn('name') . '
LIKE ' . $search . ') OR (' .
$db->qn('description') . ' LIKE ' . $search .
')');
}
}
// published/unpublished
if ($state != '')
{
$query->where($db->qn('published') . '=' .
$db->q($state));
}
if ($private != '')
{
$query->where($db->qn('private') . '=' .
$db->q($private));
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'ordering')).'
'.$db->escape($this->getState('list.direction',
'asc')));
return $query;
}
public function getItems()
{
$listOrdering = $this->getState('list.ordering',
'ordering');
$search = $this->getState('filter.search');
if ($listOrdering == 'ordering' || $search != '')
{
// Load the list items.
$query = $this->_getListQuery();
$items = $this->_getList($query, 0, 0);
$children = array();
// first pass - collect children
if ($items)
{
foreach ($items as $item)
{
$parent = $item->parent_id;
$item->parent = $parent;
$item->title = '';
$list = isset($children[$parent]) ? $children[$parent] : array();
array_push($list, $item);
$children[$parent] = $list;
}
}
// second pass - get an indent list of the items
$list = JHtml::_('menu.treerecurse', 0, '', array(),
$children, 9999, 0, 0);
if ($this->getState('list.limit'))
{
$list = array_slice($list, $this->getStart(),
$this->getState('list.limit'));
}
return $list;
}
return parent::getItems();
}
protected function populateState($ordering = 'ordering',
$direction = 'asc')
{
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
$this->setState('filter.state',
$this->getUserStateFromRequest($this->context.'.filter.state',
'filter_state'));
$this->setState('filter.private',
$this->getUserStateFromRequest($this->context.'.filter.private',
'filter_private'));
// List state information.
parent::populateState($ordering, $direction);
}
}PK�(�[O�$�ssmodels/kbcategory.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelKbcategory extends JModelAdmin
{
public function getTable($type = 'Kbcategories', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.kbcategory',
'kbcategory', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
// Modify the form based on access controls.
if (!$this->canEditState((object) $data))
{
// Disable fields for display.
$form->setFieldAttribute('ordering', 'disabled',
'true');
$form->setFieldAttribute('published', 'disabled',
'true');
// Disable fields while saving.
// The controller has already verified this is a record you can edit.
$form->setFieldAttribute('ordering', 'filter',
'unset');
$form->setFieldAttribute('published', 'filter',
'unset');
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$data =
JFactory::getApplication()->getUserState('com_rsticketspro.edit.kbcategory.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
return $data;
}
protected function getReorderConditions($table)
{
return array(
'parent_id = '.(int) $table->parent_id
);
}
public function save($data)
{
$files =
JFactory::getApplication()->input->files->get('jform',
null, 'raw');
$doUpload = false;
// before attempting to process any further, let's verify if the
upload worked
if (isset($files['thumb']))
{
if ($files['thumb']['tmp_name'] &&
$files['thumb']['error'] == UPLOAD_ERR_OK)
{
// uploaded successfully
// let's see if the extension is allowed...
$ext =
strtolower(JFile::getExt($files['thumb']['name']));
$allowed = array('jpg', 'jpeg', 'gif',
'png');
if (!in_array($ext, $allowed))
{
$this->setError(JText::sprintf('RST_KB_CATEGORY_ICON_UPLOAD_EXTENSION_ERROR',
implode(', ', $allowed)));
return false;
}
$doUpload = true;
}
elseif ($files['thumb']['error'] !=
UPLOAD_ERR_NO_FILE)
{
// error during upload!
switch ($files['thumb']['error'])
{
case UPLOAD_ERR_INI_SIZE:
$this->setError('The uploaded file exceeds the
upload_max_filesize directive in php.ini.');
break;
case UPLOAD_ERR_FORM_SIZE:
$this->setError('The uploaded file exceeds the MAX_FILE_SIZE
directive that was specified in the HTML form.');
break;
case UPLOAD_ERR_PARTIAL:
$this->setError('The uploaded file was only partially
uploaded.');
break;
case UPLOAD_ERR_NO_TMP_DIR:
$this->setError('Missing a temporary folder.');
break;
case UPLOAD_ERR_CANT_WRITE:
$this->setError('Failed to write file to disk.');
break;
case UPLOAD_ERR_EXTENSION:
$this->setError('A PHP extension stopped the file
upload.');
break;
}
return false;
}
}
// get the current thumb's name & path
if (!empty($data['id']))
{
$table = $this->getTable();
$table->load($data['id']);
}
// remove the current thumb?
if (!empty($data['delete_thumb']))
{
$data['thumb'] = '';
if (!empty($data['id']))
{
$table->deleteThumb();
}
}
$saved = parent::save($data);
// upload the thumb here
if ($saved && $doUpload)
{
$name = md5(uniqid($files['thumb']['name']));
$id = $this->getState($this->getName().'.id');
if (!JFile::upload($files['thumb']['tmp_name'],
RST_CATEGORY_THUMB_FOLDER.'/'.$name.'.'.$ext, false,
true))
{
$this->setError(JText::sprintf('RST_KB_CATEGORY_ICON_UPLOAD_ERROR_FOLDER',
RST_CATEGORY_THUMB_FOLDER));
return false;
}
// remove the old thumbnail before saving a new one
if (!empty($data['id']))
{
$table->deleteThumb();
}
// build thumbnail
if (function_exists('imagecreatefromstring') &&
function_exists('imagescale'))
{
$file = RST_CATEGORY_THUMB_FOLDER . '/' . $name .
'.' . $ext;
$newWidth = 64;
$quality = 90;
$image = @imagecreatefromstring(file_get_contents($file));
if (is_resource($image))
{
// If we're downsizing, IMG_BICUBIC produces better results
if ($newWidth < imagesx($image))
{
$image = imagescale($image, $newWidth, -1, IMG_BICUBIC);
}
else
{
$image = imagescale($image, $newWidth);
}
if (is_resource($image))
{
imagejpeg($image, RST_CATEGORY_THUMB_FOLDER . '/small/' .
$name . '.jpg', $quality);
// update the database entry
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->update('#__rsticketspro_kb_categories')
->set($db->qn('thumb') . '=' .
$db->q($name . '.jpg'))
->where($db->qn('id') . '=' .
$db->q($id));
$db->setQuery($query)->execute();
}
unset($image);
}
}
}
return $saved;
}
protected function canDelete($record)
{
return JFactory::getUser()->authorise('kbcategory.delete',
'com_rsticketspro');
}
protected function canEditState($record)
{
return
JFactory::getUser()->authorise('kbcategory.edit.state',
'com_rsticketspro');
}
}PK�(�[R�^W__models/kbconvert.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelKbconvert extends JModelAdmin
{
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.kbconvert',
'kbconvert', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
return $form;
}
protected function loadFormData()
{
$app = JFactory::getApplication();
$modelTicket = $this->getInstance('Ticket',
'RsticketsproModel');
$ticketId = $app->input->getInt('ticket_id');
$ticket = $modelTicket->getTicket($ticketId);
$data = array(
'name' => $ticket->subject,
'ticket_id' => $ticketId
);
return $data;
}
public function save($data)
{
$ticketId = $data['ticket_id'];
$modelTicket = $this->getInstance('Ticket',
'RsticketsproModel');
$ticket = $modelTicket->getTicket($ticketId);
$ticketMessages = $modelTicket->getTicketMessages($ticketId, true);
$params = (object) array(
'name' => $data['name'],
'category_id' => $data['category_id'],
'publish_article' => $data['publish_article'],
'private' => $data['private']
);
require_once
JPATH_ADMINISTRATOR.'/components/com_rsticketspro/helpers/ticket.php';
return RSTicketsProTicketHelper::convert($ticket, $ticketMessages,
$params);
}
}PK�(�[��)<��models/kbresults.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelKbresults extends JModelLegacy
{
public function getItems()
{
// Load the list items.
$query = $this->getListQuery();
try
{
$items = $this->_getList($query, 0, 10);
}
catch (RuntimeException $e)
{
$this->setError($e->getMessage());
return false;
}
return $items;
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get the search string
$value =
JFactory::getApplication()->input->get('filter_search',
'', 'raw');
// escape it with extra characters
$value = $db->escape($value, true);
// just quote it
$value = $db->q('%'.$value.'%', false);
$query->select('*')
->from($db->qn('#__rsticketspro_kb_content'))
->where('('.$db->qn('name').' LIKE
'.$value.' OR '.$db->qn('text').' LIKE
'.$value.')')
->where($db->qn('published').'='.$db->q(1))
->order($db->qn('name'));
return $query;
}
}PK�(�[S���qqmodels/kbrule.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelKbrule extends JModelAdmin
{
public function getTable($type = 'Kbrules', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.kbrule',
'kbrule', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
// Modify the form based on access controls.
if (!$this->canEditState((object) $data))
{
// Disable fields for display.
$form->setFieldAttribute('published', 'disabled',
'true');
// Disable fields while saving.
// The controller has already verified this is a record you can edit.
$form->setFieldAttribute('published', 'filter',
'unset');
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$data =
JFactory::getApplication()->getUserState('com_rsticketspro.edit.kbrule.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
else
{
// Emulate conditions so we can keep editing if we run into an error
$table = $this->getTable();
if ($table->bind($data))
{
$data['conditions'] = $table->conditions;
}
}
return $data;
}
protected function canDelete($record)
{
return JFactory::getUser()->authorise('kbrule.delete',
'com_rsticketspro');
}
protected function canEditState($record)
{
return JFactory::getUser()->authorise('kbrule.edit.state',
'com_rsticketspro');
}
}PK�(�[��Q�~~models/kbrules.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelKbrules extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'r.name', 'c.name', 'r.published',
'r.id', 'state'
);
}
parent::__construct($config);
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$search = $this->getState('filter.search');
$state = $this->getState('filter.state');
$query->select($db->qn('r.id'))
->select($db->qn('r.category_id'))
->select($db->qn('r.name'))
->select($db->qn('r.published'))
->select($db->qn('c.name',
'category_name'))
->from($db->qn('#__rsticketspro_kb_rules',
'r'));
// join categories
$query->join('left',
$db->qn('#__rsticketspro_kb_categories', 'c').'
ON
('.$db->qn('r.category_id').'='.$db->qn('c.id').')');
// search
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('r.id') . ' = ' . (int)
substr($search, 3));
}
else
{
$query->where($db->qn('r.name') . ' LIKE ' .
$db->q('%'.str_replace(' ', '%',
$db->escape($search, true)).'%', false));
}
}
// published/unpublished
if ($state != '')
{
$query->where($db->qn('r.published') . '=' .
$db->q($state));
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'r.name')).'
'.$db->escape($this->getState('list.direction',
'asc')));
return $query;
}
protected function populateState($ordering = 'r.name',
$direction = 'asc')
{
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
$this->setState('filter.state',
$this->getUserStateFromRequest($this->context.'.filter.state',
'filter_state'));
// List state information.
parent::populateState($ordering, $direction);
}
public function getDepartments()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->qn('id'))
->select($db->qn('name'))
->from($db->qn('#__rsticketspro_departments'))
->order($db->qn('ordering') . ' asc');
if ($results = $this->_getList($query))
{
foreach ($results as $result)
{
$result->name = JText::_($result->name);
}
}
return $results;
}
public function getPriorities()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->qn('id'))
->select($db->qn('name'))
->from($db->qn('#__rsticketspro_priorities'))
->order($db->qn('ordering') . ' asc');
if ($results = $this->_getList($query))
{
foreach ($results as $result)
{
$result->name = JText::_($result->name);
}
}
return $results;
}
public function getStatuses()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->qn('id'))
->select($db->qn('name'))
->from($db->qn('#__rsticketspro_statuses'))
->order($db->qn('ordering') . ' asc');
if ($results = $this->_getList($query))
{
foreach ($results as $result)
{
$result->name = JText::_($result->name);
}
}
return $results;
}
public function getCustomFields()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('*')
->from($db->qn('#__rsticketspro_custom_fields'))
->order($db->qn('department_id') . ' asc')
->order($db->qn('ordering') . ' asc');
return $this->_getList($query);
}
public function getCustomFieldValues()
{
$return = array();
$db = JFactory::getDbo();
$cfid =
JFactory::getApplication()->input->getInt('cfid');
$query = $db->getQuery(true)
->select($db->qn('values'))
->from($db->qn('#__rsticketspro_custom_fields'))
->where($db->qn('id') . ' = ' .
$db->q($cfid));
if ($values = $db->setQuery($query)->loadResult())
{
$values = str_replace("\r\n", "\n", $values);
$values = explode("\n", $values);
foreach ($values as $value)
{
$tmp = new stdClass();
$tmp->id = $tmp->name = $value;
$return[] = $tmp;
}
}
return $return;
}
}PK�(�[6�F�ssmodels/note.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelNote extends JModelAdmin
{
public function getTable($type = 'Ticketnotes', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.note',
'note', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
$form->setValue('ticket_id', null,
$this->getTicketId());
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$app = JFactory::getApplication();
$data =
$app->getUserState('com_rsticketspro.edit.note.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
return $data;
}
public function getTicketId()
{
return
JFactory::getApplication()->input->getInt('ticket_id');
}
protected function canDelete($record)
{
static $permissions;
static $userId;
if (is_null($permissions))
{
$permissions = RSTicketsProHelper::getCurrentPermissions();
}
if (is_null($userId))
{
$userId = JFactory::getUser()->id;
}
return ($permissions->delete_note && $record->user_id ==
$userId) || ($permissions->delete_note_staff &&
$record->user_id != $userId);
}
}PK�(�[D����models/notes.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelNotes extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields'])) {
$config['filter_fields'] = array(
'date'
);
}
parent::__construct($config);
}
public function getId()
{
return
JFactory::getApplication()->input->getInt('ticket_id');
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from('#__rsticketspro_ticket_notes')
->where($db->qn('ticket_id').'='.$db->q($this->getId()))
->order($db->qn($this->getState('list.ordering',
'date')).'
'.$db->escape($this->getState('list.direction',
'desc')));
return $query;
}
protected function populateState($ordering = null, $direction = null)
{
// List state information.
parent::populateState('date', 'desc');
}
}PK�(�[���� � models/predefinedsearch.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelPredefinedsearch extends JModelAdmin
{
public function getTable($type = 'Searches', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form =
$this->loadForm('com_rsticketspro.predefinedsearches',
'predefinedsearches', array('control' =>
'jform', 'load_data' => $loadData));
if (empty($form))
{
return false;
}
if (!$form->getValue('id'))
{
$form->setFieldAttribute('update', 'disabled',
'true');
$form->setFieldAttribute('update', 'filter',
'unset');
}
return $form;
}
public function save($data)
{
$model = $this->getInstance('Tickets',
'RsticketsproModel');
if (empty($data['id']) || !empty($data['id'])
&& !empty($data['update']))
{
$data['params'] = array(
'search' => $model->getState('filter.search',
''),
'flagged' =>
$model->getState('filter.flagged', 0),
'priority_id' =>
$model->getState('filter.priority_id', array()),
'status_id' =>
$model->getState('filter.status_id', array()),
'department_id' =>
$model->getState('filter.department_id', array()),
'customer' =>
$model->getState('filter.customer', ''),
'staff' => $model->getState('filter.staff',
''),
'ordering' =>
$model->getState('list.ordering'),
'direction' =>
$model->getState('list.direction')
);
}
else
{
$data['params'] = null;
}
$data['user_id'] = JFactory::getUser()->id;
return parent::save($data);
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$data =
JFactory::getApplication()->getUserState('com_rsticketspro.edit.predefinedsearches.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
return $data;
}
protected function getReorderConditions($table)
{
return array(
'user_id = '.(int) $table->user_id
);
}
protected function canEditState($record)
{
return $record->user_id == JFactory::getUser()->id;
}
protected function canDelete($record)
{
return $record->user_id == JFactory::getUser()->id;
}
}PK�(�[�YY��models/predefinedsearches.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelPredefinedsearches extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'name', 'published', 'ordering',
'id'
);
}
parent::__construct($config);
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$search = $this->getState('filter.search');
$state = $this->getState('filter.state');
$query->select('*')
->from('#__rsticketspro_searches')
->where($db->qn('user_id') . '=' .
$db->q(JFactory::getUser()->get('id')));
// search
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('id') . ' = ' . (int)
substr($search, 3));
}
else
{
$query->where($db->qn('name') . ' LIKE ' .
$db->q('%'.str_replace(' ', '%',
$db->escape($search, true)).'%', false));
}
}
// published/unpublished
if ($state != '')
{
$query->where($db->qn('published') . '=' .
$db->q($state));
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'ordering')).'
'.$db->escape($this->getState('list.direction',
'asc')));
return $query;
}
protected function populateState($ordering = 'ordering',
$direction = 'asc')
{
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
$this->setState('filter.state',
$this->getUserStateFromRequest($this->context.'.filter.state',
'filter_state'));
// List state information.
parent::populateState($ordering, $direction);
}
}PK�(�[HŔ�bbmodels/priorities.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelPriorities extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'name', 'published', 'ordering',
'id', 'state'
);
}
parent::__construct($config);
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$search = $this->getState('filter.search');
$state = $this->getState('filter.state');
$query->select('*')
->from('#__rsticketspro_priorities');
// search
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('id') . ' = ' . (int)
substr($search, 3));
}
else
{
$query->where($db->qn('name') . ' LIKE ' .
$db->q('%'.str_replace(' ', '%',
$db->escape($search, true)).'%', false));
}
}
// published/unpublished
if ($state != '')
{
$query->where($db->qn('published') . '=' .
$db->q($state));
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'ordering')).'
'.$db->escape($this->getState('list.direction',
'asc')));
return $query;
}
protected function populateState($ordering = 'ordering',
$direction = 'asc')
{
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
$this->setState('filter.state',
$this->getUserStateFromRequest($this->context.'.filter.state',
'filter_state'));
// List state information.
parent::populateState($ordering, $direction);
}
}PK�(�[��e}((models/priority.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelPriority extends JModelAdmin
{
public function getTable($type = 'Priorities', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.priority',
'priority', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
// Modify the form based on access controls.
if (!$this->canEditState((object) $data))
{
// Disable fields for display.
$form->setFieldAttribute('ordering', 'disabled',
'true');
$form->setFieldAttribute('published', 'disabled',
'true');
// Disable fields while saving.
// The controller has already verified this is a record you can edit.
$form->setFieldAttribute('ordering', 'filter',
'unset');
$form->setFieldAttribute('published', 'filter',
'unset');
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$data =
JFactory::getApplication()->getUserState('com_rsticketspro.edit.priority.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
return $data;
}
protected function canDelete($record)
{
return JFactory::getUser()->authorise('priority.delete',
'com_rsticketspro');
}
protected function canEditState($record)
{
return JFactory::getUser()->authorise('priority.edit.state',
'com_rsticketspro');
}
}PK�(�[\DGj�~�~models/reports.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelReports extends JModelAdmin
{
protected $_db;
protected $_departments;
protected $_department_names;
protected $_staff_names;
public $min = 0;
public $avg = 0;
public $max = 0;
public $count = 0;
public $total = 0;
public $viewin = '';
public function __construct() {
parent::__construct();
// large databases need lots of memory
if ($limit = ini_get('memory_limit')) {
if (substr($limit, -1) == 'M') {
if ((int) $limit < 192) {
ini_set('memory_limit', '192M');
}
}
}
$this->_db = JFactory::getDbo();
$this->_db->setQuery("SET SQL_BIG_SELECTS=1");
$this->_db->execute();
JFactory::getLanguage()->load('plg_system_rsticketsproreports',
JPATH_ADMINISTRATOR);
$this->_getDepartments();
$this->_getStaff();
}
protected function _getDepartments() {
$this->_db->setQuery('SELECT * FROM
'.$this->_db->qn('#__rsticketspro_departments').'
ORDER BY '.$this->_db->qn('ordering').'
ASC');
$this->_departments = $this->_db->loadObjectList();
$this->_department_names = array();
foreach ($this->_departments as $department)
$this->_department_names[$department->id] =
JText::_($department->name);
}
protected function _getStaff() {
$what = RSTicketsProHelper::getConfig('show_user_info');
$this->_db->setQuery('SELECT
'.$this->_db->qn('s.user_id').',
'.$this->_db->qn('u.'.$what).' FROM
'.$this->_db->qn('#__rsticketspro_staff','s').'
LEFT JOIN
'.$this->_db->qn('#__users','u').' ON
'.$this->_db->qn('s.user_id').' =
'.$this->_db->qn('u.id').'');
$staff_names = $this->_db->loadObjectList();
foreach ($staff_names as $staff)
$this->_staff_names[$staff->user_id] = $staff->{$what};
$this->_staff_names[0] = JText::_('RST_UNASSIGNED');
}
public function getCountDepartments() {
return count($this->_departments);
}
public function getCountStaff() {
return count($this->_staff_names);
}
public function getDepartments() {
return $this->_departments;
}
public function getStaff() {
$what = RSTicketsProHelper::getConfig('show_user_info');
$this->_db->setQuery('SELECT
'.$this->_db->qn('s').'.*,
'.$this->_db->qn('u.'.$what,'thealias').'
FROM
'.$this->_db->qn('#__rsticketspro_staff','s').'
LEFT JOIN
'.$this->_db->qn('#__users','u').' ON
'.$this->_db->qn('u.id').' =
'.$this->_db->qn('s.user_id').' ');
$staff = $this->_db->loadObjectList();
$unassigned = new stdClass();
$unassigned->thealias = $unassigned->username =
$unassigned->name = $unassigned->email =
JText::_('RST_UNASSIGNED');
$unassigned->user_id = '00'; // say hurray to Joomla!
changing how everything works for the millionth time!
$staff[] = $unassigned;
return $staff;
}
public function getPriority() {
$this->_db->setQuery('SELECT * FROM
'.$this->_db->qn('#__rsticketspro_priorities').'
ORDER BY '.$this->_db->qn('ordering').'
ASC');
return $this->_db->loadObjectList();
}
public function getReportData() {
$input = JFactory::getApplication()->input;
$db = JFactory::getDbo();
$from = $input->getString('from','');
$to = $input->getString('to','');
$report = $input->getString('report','');
$filter = array();
$where = '';
$return = array();
// Unit
$unit = $input->getString('unit','');
switch ($unit) {
default:
case 'day':
$format = 'Y-m-d';
$step = 86400;
break;
case 'month':
$format = 'Y-m';
$step = 86400*30;
break;
case 'year':
$format = 'Y';
$step = 86400*30*12;
break;
case 'quarter':
$format = 'Y-m';
break;
}
// From and To
if ($from || $to) {
$startDate = JFactory::getDate($from)->toSql();
$stopDate = JFactory::getDate($to)->toSql();
if ($from && $to) {
$filter['date'] = ' AND
('.$this->_db->qn('date').' >
'.$this->_db->q($startDate).' AND
'.$this->_db->qn('date').' <
'.$this->_db->q($stopDate).')';
$where .= $filter['date'];
} elseif ($from) {
$filter['date'] = ' AND
'.$this->_db->qn('date').' >
'.$this->_db->q($startDate).'';
$where .= $filter['date'];
} elseif ($to) {
$filter['date'] = ' AND
'.$this->_db->qn('date').' <
'.$this->_db->q($stopDate).'';
$where .= $filter['date'];
}
}
$departments =
$input->get('departments',array(),'array');
$departments = array_map('intval', $departments);
if (!empty($departments)) {
$filter['department_id'] = ' AND
'.$this->_db->qn('department_id').' IN
('.implode(',', $departments).')';
$where .= $filter['department_id'];
}
$staff = $input->get('staff',array(),'array');
$staff = array_map('intval', $staff);
if (!empty($staff)) {
$filter['staff_id'] = ' AND
'.$this->_db->qn('staff_id').' IN
('.implode(',', $staff).')';
$where .= $filter['staff_id'];
}
$priority =
$input->get('priority',array(),'array');
$priority = array_map('intval', $priority);
if (!empty($priority)) {
$filter['priority_id'] = ' AND
'.$this->_db->qn('priority_id').' IN
('.implode(',', $priority).')';
$where .= $filter['priority_id'];
}
$user_id = $input->getInt('user_id',0);
if (!empty($user_id)) {
$filter['customer_id'] = ' AND
'.$this->_db->qn('customer_id').' = '.(int)
$user_id;
$where .= $filter['customer_id'];
}
// Fill the graph with dates
if (!$from) {
$query = $db->getQuery(true)
->select('MAX('.$db->qn('date').')')
->from($db->qn('#__rsticketspro_tickets'))
->where('1 '.$where);
$from = $db->setQuery($query)->loadResult();
}
if (!$to) {
$query = $db->getQuery(true)
->select('MIN('.$db->qn('date').')')
->from($db->qn('#__rsticketspro_tickets'))
->where('1 '.$where);
$to = $db->setQuery($query)->loadResult();
}
if ($unit != 'quarter') {
$startDate = JFactory::getDate($from)->toUnix();
$stopDate = JFactory::getDate($to)->toUnix();
for ($date = $startDate; $date < $stopDate; $date = $date + $step) {
if ($unit == 'quarter') {
$format =
$this->getQuarter(JFactory::getDate($date)->format('m'));
echo JFactory::getDate($date)->format('Y-m-d').'
=> '.$format.'<br />';
}
$return['units'][JFactory::getDate($date)->format($format)]
= JFactory::getDate($date)->format($format);
}
} else {
$startDate =
JFactory::getDate($from)->format($this->getQuarter(JFactory::getDate($from)->format('m')));
$stopDate =
JFactory::getDate($to)->format($this->getQuarter(JFactory::getDate($to)->format('m')));
list($startYear, $startQuarter) = explode(' Q', $startDate);
list($stopYear, $stopQuarter) = explode(' Q', $stopDate);
for ($year = $startYear; $year <= $stopYear; $year++) {
for ($quarter = 1; $quarter <= 4; $quarter++) {
if (($year == $startYear && $quarter >= $startQuarter) ||
($year > $startYear && $year < $stopYear) || ($year ==
$stopYear && $quarter <= $stopQuarter)) {
$return['units']["$year Q$quarter"] = "$year
Q$quarter";
}
}
}
}
// ordering
$orderby = ' ORDER BY
'.$this->_db->qn('date').' ASC';
$viewby = $this->getViewBy();
switch ($report)
{
// number of submitted tickets
case 'report_1':
// query
$query = 'SELECT
'.$this->_db->qn('department_id').',
'.$this->_db->qn('date').' FROM
'.$this->_db->qn('#__rsticketspro_tickets').'
WHERE 1';
$query = $query.$where.$orderby;
$this->_db->setQuery($query);
$tickets = $this->_db->loadObjectList();
if (empty($departments)) {
foreach ($departments as $department) {
$departments[] = $id;
}
}
foreach ($departments as $department) {
$department = $this->getDepartmentName($department);
$return['departments'][$department] = array();
}
foreach ($tickets as $ticket) {
if ($unit == 'quarter')
$format =
$this->getQuarter(JFactory::getDate($ticket->date)->format('m'));
$date = JFactory::getDate($ticket->date)->format($format);
$department = $this->getDepartmentName($ticket->department_id);
@$return['units'][$date] = $date;
@$return['departments'][$department][$date] += 1;
@$return['totals'][$date] += 1;
unset($ticket);
}
if (!empty($return['totals'])) {
$this->min = $this->max = max($return['totals']);
foreach ($return['units'] as $date) {
foreach ($departments as $department) {
$department = $this->getDepartmentName($department);
if (empty($return['departments'][$department][$date])) {
$return['departments'][$department][$date] = 0;
if (empty($return['totals'][$date])) {
$return['totals'][$date] = 0;
}
}
}
// min
if (!empty($return['totals'][$date]))
$this->min = min($this->min,
$return['totals'][$date]);
}
foreach ($return['departments'] as $return_department =>
$return_values)
ksort($return['departments'][$return_department]);
// total
$this->total = array_sum($return['totals']);
// avg
$this->avg =
floor(array_sum($return['totals'])/count($return['totals']));
}
break;
// ticket solving time
case 'report_2':
// select
$select = $viewby == 'department' ? 'department_id'
: 'staff_id';
// query
$query = 'SELECT
UNIX_TIMESTAMP('.$this->_db->qn('last_reply').')
- UNIX_TIMESTAMP('.$this->_db->qn('date').') AS
diff, '.$this->_db->qn($select).',
'.$this->_db->qn('date').' FROM
'.$this->_db->qn('#__rsticketspro_tickets').'
WHERE '.$this->_db->qn('status_id').' = 2';
$query = $query.$where.$orderby;
$this->_db->setQuery($query);
$tickets = $this->_db->loadObjectList();
$this->viewin = $input->getInt('viewin');
if (!$this->viewin)
$this->viewin = 60;
if ($viewby == 'department') {
if (empty($departments)) {
foreach ($this->_department_names as $id => $name) {
$departments[] = $id;
}
}
foreach ($departments as $department) {
$department = $this->getDepartmentName($department);
$return['viewby'][$department] = array();
}
}
if ($viewby == 'staff') {
if (empty($staff) && $viewby == 'staff') {
foreach ($this->_staff_names as $id => $name) {
$staff[] = $id;
}
}
foreach ($staff as $staff_id) {
$staff_id = $this->getStaffName($staff_id);
$return['viewby'][$staff_id] = array();
}
}
foreach ($tickets as $ticket) {
$ticket->diff = $ticket->diff / $this->viewin;
if ($unit == 'quarter')
$format =
$this->getQuarter(JFactory::getDate($ticket->date)->format('m'));
$date = JFactory::getDate($ticket->date)->format($format);
$viewby_unit = $viewby == 'department' ?
$this->getDepartmentName($ticket->department_id) :
$this->getStaffName($ticket->staff_id);
@$return['units'][$date] = $date;
if (empty($return['viewby'][$viewby_unit][$date]))
$return['viewby'][$viewby_unit][$date] = $ticket->diff;
else
$return['viewby'][$viewby_unit][$date] =
($return['viewby'][$viewby_unit][$date] + $ticket->diff) / 2;
if (empty($return['totals'][$date]))
$return['totals'][$date] = $ticket->diff / 2;
else
$return['totals'][$date] =
($return['totals'][$date] + $ticket->diff) / 2;
unset($ticket);
}
if (!empty($return['totals'])) {
// max
$this->min = $this->max = max($return['totals']);
foreach ($return['units'] as $date) {
if ($viewby == 'department')
foreach ($departments as $department) {
$department = $this->getDepartmentName($department);
if (empty($return['viewby'][$department][$date])) {
$return['viewby'][$department][$date] = 0;
if (empty($return['totals'][$date]))
$return['totals'][$date] = 0;
}
}
if ($viewby == 'staff')
foreach ($staff as $staff_id) {
$staff_id = $this->getStaffName($staff_id);
if (empty($return['viewby'][$staff_id][$date])) {
$return['viewby'][$staff_id][$date] = 0;
if (empty($return['totals'][$date]))
$return['totals'][$date] = 0;
}
}
// min
if (!empty($return['totals'][$date]))
$this->min = min($this->min,
$return['totals'][$date]);
}
foreach ($return['viewby'] as $return_viewby =>
$return_values)
ksort($return['viewby'][$return_viewby]);
// total
$this->total = count($return['totals']);
// avg
$this->avg =
floor(array_sum($return['totals'])/count($return['totals']));
}
break;
// number of replies
case 'report_3':
// select
$select = $viewby == 'department' ? 'department_id'
: 'staff_id';
// query
$query = 'SELECT
'.$this->_db->qn('t.'.$select).',
'.$this->_db->qn('m.date').' FROM
'.$this->_db->qn('#__rsticketspro_ticket_messages','m').'
LEFT JOIN
'.$this->_db->qn('#__rsticketspro_tickets','t').'
ON '.$this->_db->qn('m.ticket_id').' =
'.$this->_db->qn('t.id').' WHERE 1';
if (!empty($filter['date'])) {
$filter['date'] =
str_replace($this->_db->qn('date'),
$this->_db->qn('m.date'), $filter['date']);
$where = " ".implode(" ", $filter);
}
$orderby = str_replace($this->_db->qn('date'),
$this->_db->qn('m.date'), $orderby);
$query = $query.$where.$orderby;
$this->_db->setQuery($query);
$tickets = $this->_db->loadObjectList();
if ($viewby == 'department') {
if (empty($departments))
foreach ($this->_department_names as $id => $name)
$departments[] = $id;
foreach ($departments as $department) {
$department = $this->getDepartmentName($department);
$return['viewby'][$department] = array();
}
}
if ($viewby == 'staff') {
if (empty($staff) && $viewby == 'staff')
foreach ($this->_staff_names as $id => $name)
$staff[] = $id;
foreach ($staff as $staff_id) {
$staff_id = $this->getStaffName($staff_id);
$return['viewby'][$staff_id] = array();
}
}
foreach ($tickets as $ticket) {
if ($unit == 'quarter')
$format =
$this->getQuarter(JFactory::getDate($ticket->date)->format('m'));
$date = JFactory::getDate($ticket->date)->format($format);
$viewby_unit = $viewby == 'department' ?
$this->getDepartmentName($ticket->department_id) :
$this->getStaffName($ticket->staff_id);
@$return['units'][$date] = $date;
@$return['viewby'][$viewby_unit][$date] += 1;
@$return['totals'][$date] += 1;
unset($ticket);
}
if (!empty($return['totals'])) {
// max
$this->min = $this->max = max($return['totals']);
foreach ($return['units'] as $date) {
if ($viewby == 'department')
foreach ($departments as $department) {
$department = $this->getDepartmentName($department);
if (empty($return['viewby'][$department][$date])) {
$return['viewby'][$department][$date] = 0;
if (empty($return['totals'][$date]))
$return['totals'][$date] = 0;
}
}
if ($viewby == 'staff')
foreach ($staff as $staff_id) {
$staff_id = $this->getStaffName($staff_id);
if (empty($return['viewby'][$staff_id][$date])) {
$return['viewby'][$staff_id][$date] = 0;
if (empty($return['totals'][$date]))
$return['totals'][$date] = 0;
}
}
// min
if (!empty($return['totals'][$date]))
$this->min = min($this->min,
$return['totals'][$date]);
}
foreach ($return['viewby'] as $return_viewby =>
$return_values)
ksort($return['viewby'][$return_viewby]);
// total
$this->total = array_sum($return['totals']);
// avg
$this->avg =
floor(array_sum($return['totals'])/count($return['totals']));
}
break;
// feedback
case 'report_4':
// select
$select = $viewby == 'department' ? 'department_id'
: 'staff_id';
// query
$query = 'SELECT '.$this->_db->qn($select).',
'.$this->_db->qn('feedback').',
'.$this->_db->qn('date').' FROM
'.$this->_db->qn('#__rsticketspro_tickets').'
WHERE '.$this->_db->qn('status_id').' = 2';
$query = $query.$where.$orderby;
$this->_db->setQuery($query);
$tickets = $this->_db->loadObjectList();
if ($viewby == 'department') {
if (empty($departments))
foreach ($this->_department_names as $id => $name)
$departments[] = $id;
foreach ($departments as $department) {
$department = $this->getDepartmentName($department);
$return['viewby'][$department] = array();
}
}
if ($viewby == 'staff') {
if (empty($staff) && $viewby == 'staff')
foreach ($this->_staff_names as $id => $name)
$staff[] = $id;
foreach ($staff as $staff_id) {
$staff_id = $this->getStaffName($staff_id);
$return['viewby'][$staff_id] = array();
}
}
foreach ($tickets as $ticket) {
if ($unit == 'quarter')
$format =
$this->getQuarter(JFactory::getDate($ticket->date)->format('m'));
$date = JFactory::getDate($ticket->date)->format($format);
$viewby_unit = $viewby == 'department' ?
$this->getDepartmentName($ticket->department_id) :
$this->getStaffName($ticket->staff_id);
@$return['units'][$date] = $date;
if (empty($return['viewby'][$viewby_unit][$date]))
$return['viewby'][$viewby_unit][$date] =
$ticket->feedback;
else
$return['viewby'][$viewby_unit][$date] =
($return['viewby'][$viewby_unit][$date] + $ticket->feedback) /
2;
if (empty($return['totals'][$date]))
$return['totals'][$date] = $ticket->feedback / 2;
else
$return['totals'][$date] =
($return['totals'][$date] + $ticket->feedback) / 2;
unset($ticket);
}
if (!empty($return['totals'])) {
// max
$this->min = $this->max = max($return['totals']);
foreach ($return['units'] as $date) {
if ($viewby == 'department')
foreach ($departments as $department) {
$department = $this->getDepartmentName($department);
if (empty($return['viewby'][$department][$date])) {
$return['viewby'][$department][$date] = 0;
if (empty($return['totals'][$date]))
$return['totals'][$date] = 0;
}
}
if ($viewby == 'staff')
foreach ($staff as $staff_id) {
$staff_id = $this->getStaffName($staff_id);
if (empty($return['viewby'][$staff_id][$date])) {
$return['viewby'][$staff_id][$date] = 0;
if (empty($return['totals'][$date]))
$return['totals'][$date] = 0;
}
}
// min
if (!empty($return['totals'][$date]))
$this->min = min($this->min,
$return['totals'][$date]);
}
foreach ($return['viewby'] as $return_viewby =>
$return_values)
ksort($return['viewby'][$return_viewby]);
// total
$this->total = count($return['totals']);
// avg
$this->avg =
floor(array_sum($return['totals'])/count($return['totals']));
}
break;
// response time
case 'report_5':
// select
$select = $viewby == 'department' ? 'department_id'
: 'staff_id';
// query
$query = 'SELECT
'.$this->_db->qn('t.'.$select).',
UNIX_TIMESTAMP('.$this->_db->qn('m2.date').') -
UNIX_TIMESTAMP('.$this->_db->qn('m.date').') AS
diff, '.$this->_db->qn('m.id').',
'.$this->_db->qn('m2.id').',
'.$this->_db->qn('m.date').' FROM
'.$this->_db->qn('#__rsticketspro_ticket_messages','m').',
'.$this->_db->qn('#__rsticketspro_ticket_messages','m2').'
LEFT JOIN
'.$this->_db->qn('#__rsticketspro_tickets','t').'
ON '.$this->_db->qn('ticket_id').' =
'.$this->_db->qn('t.id').' WHERE
'.$this->_db->qn('m.ticket_id').' =
'.$this->_db->qn('m2.ticket_id').' AND
'.$this->_db->qn('m2.date').' >
'.$this->_db->qn('m.date').' AND
'.$this->_db->qn('m.user_id').' !=
'.$this->_db->qn('m2.user_id').'';
if (!empty($filter['date'])) {
$filter['date'] =
str_replace($this->_db->qn('date'),
$this->_db->qn('m.date'), $filter['date']);
$where = " ".implode(" ", $filter);
}
$orderby = str_replace($this->_db->qn('date'),
$this->_db->qn('m.date'), $orderby);
$groupby = ' GROUP BY
'.$this->_db->qn('m.ticket_id').' ';
$query = $query.$where.$groupby.$orderby;
$this->_db->setQuery($query);
$tickets = $this->_db->loadObjectList();
$this->viewin = $input->getInt('viewin');
if (!$this->viewin)
$this->viewin = 60;
if ($viewby == 'department') {
if (empty($departments))
foreach ($this->_department_names as $id => $name)
$departments[] = $id;
foreach ($departments as $department) {
$department = $this->getDepartmentName($department);
$return['viewby'][$department] = array();
}
}
if ($viewby == 'staff') {
if (empty($staff) && $viewby == 'staff')
foreach ($this->_staff_names as $id => $name)
$staff[] = $id;
foreach ($staff as $staff_id) {
$staff_id = $this->getStaffName($staff_id);
$return['viewby'][$staff_id] = array();
}
}
foreach ($tickets as $ticket) {
$ticket->diff = $ticket->diff / $this->viewin;
if ($unit == 'quarter')
$format =
$this->getQuarter(JFactory::getDate($ticket->date)->format('m'));
$date = JFactory::getDate($ticket->date)->format($format);
$viewby_unit = $viewby == 'department' ?
$this->getDepartmentName($ticket->department_id) :
$this->getStaffName($ticket->staff_id);
@$return['units'][$date] = $date;
if (empty($return['viewby'][$viewby_unit][$date]))
$return['viewby'][$viewby_unit][$date] = $ticket->diff;
else
$return['viewby'][$viewby_unit][$date] =
($return['viewby'][$viewby_unit][$date] + $ticket->diff) / 2;
if (empty($return['totals'][$date]))
$return['totals'][$date] = $ticket->diff / 2;
else
$return['totals'][$date] =
($return['totals'][$date] + $ticket->diff) / 2;
unset($ticket);
}
if (!empty($return['totals'])) {
// max
$this->min = $this->max = max($return['totals']);
foreach ($return['units'] as $date) {
if ($viewby == 'department')
foreach ($departments as $department) {
$department = $this->getDepartmentName($department);
if (empty($return['viewby'][$department][$date])) {
$return['viewby'][$department][$date] = 0;
if (empty($return['totals'][$date]))
$return['totals'][$date] = 0;
}
}
if ($viewby == 'staff')
foreach ($staff as $staff_id) {
$staff_id = $this->getStaffName($staff_id);
if (empty($return['viewby'][$staff_id][$date])) {
$return['viewby'][$staff_id][$date] = 0;
if (empty($return['totals'][$date]))
$return['totals'][$date] = 0;
}
}
// min
if (!empty($return['totals'][$date]))
$this->min = min($this->min,
$return['totals'][$date]);
}
foreach ($return['viewby'] as $return_viewby =>
$return_values)
ksort($return['viewby'][$return_viewby]);
// total
$this->total = array_sum($return['totals']);
// avg
$this->avg =
floor(array_sum($return['totals'])/count($return['totals']));
}
break;
// assigned tickets
case 'report_6':
// query
$query = 'SELECT
'.$this->_db->qn('staff_id').',
'.$this->_db->qn('date').' FROM
'.$this->_db->qn('#__rsticketspro_tickets').'
WHERE 1';
$query = $query.$where.$orderby;
$this->_db->setQuery($query);
$tickets = $this->_db->loadObjectList();
if (empty($staff))
foreach ($this->_staff_names as $id => $name)
$staff[] = $id;
foreach ($staff as $staff_id) {
$staff_id = $this->getStaffName($staff_id);
$return['staff'][$staff_id] = array();
}
foreach ($tickets as $ticket) {
if ($unit == 'quarter')
$format =
$this->getQuarter(JFactory::getDate($ticket->date)->format('m'));
$date = JFactory::getDate($ticket->date)->format($format);
$staff_name = $this->getStaffName($ticket->staff_id);
@$return['units'][$date] = $date;
@$return['staff'][$staff_name][$date] += 1;
@$return['totals'][$date] += 1;
unset($ticket);
}
if (!empty($return['totals'])) {
// max
$this->min = $this->max = max($return['totals']);
foreach ($return['units'] as $date) {
foreach ($staff as $staff_id) {
$staff_id = $this->getStaffName($staff_id);
if (empty($return['staff'][$staff_id][$date])) {
$return['staff'][$staff_id][$date] = 0;
if (empty($return['totals'][$date]))
$return['totals'][$date] = 0;
}
}
// min
if (!empty($return['totals'][$date]))
$this->min = min($this->min,
$return['totals'][$date]);
}
foreach ($return['staff'] as $return_staff =>
$return_values)
ksort($return['staff'][$return_staff]);
// total
$this->total = array_sum($return['totals']);
// avg
$this->avg =
floor(array_sum($return['totals'])/count($return['totals']));
}
break;
}
unset($return['totals']);
return $return;
}
public function getDepartmentName($id) {
return @$this->_department_names[$id];
}
public function getStaffName($id) {
return @$this->_staff_names[$id];
}
public function getQuarter($m) {
$q = (int)floor($m / 3.1) + 1;
return "Y Q$q";
}
public function getMin() {
$unit =
JFactory::getApplication()->input->getString('unit','');
return $this->getNumberFormat($this->min).'
'.$this->getViewIn().' '.' /
'.JText::_('RST_'.$unit);
}
public function getAvg() {
$unit =
JFactory::getApplication()->input->getString('unit','');
return $this->getNumberFormat($this->avg).'
'.$this->getViewIn().' '.' /
'.JText::_('RST_'.$unit);
}
public function getMax() {
$unit =
JFactory::getApplication()->input->getString('unit','');
return $this->getNumberFormat($this->max).'
'.$this->getViewIn().' '.' /
'.JText::_('RST_'.$unit);
}
public function getTotal() {
return $this->getNumberFormat($this->total);
}
public function getNumberFormat($number) {
return number_format($number, 2, '.', '');
}
public function getViewIn() {
$report =
JFactory::getApplication()->input->getString('report','');
switch ($report) {
case 'report_1':
case 'report_6':
return JText::_('RST_TICKETS');
break;
case 'report_2':
case 'report_5':
switch ($this->viewin) {
default:
case 60:
return JText::_('RST_MINUTES');
break;
case 3600:
return JText::_('RST_HOURS');
break;
case 86400:
return JText::_('RST_DAYS');
break;
}
break;
case 'report_3':
return JText::_('RST_TICKET_REPLIES');
break;
case 'report_4':
return JText::_('RST_STARS');
break;
}
}
public function getViewBy() {
return
JFactory::getApplication()->input->getString('viewby','');
}
public function getIE() {
if (preg_match("#MSIE#i",
$_SERVER['HTTP_USER_AGENT']) && !preg_match("#MSIE
9#", $_SERVER['HTTP_USER_AGENT']))
return true;
return false;
}
protected function getColor($i) {
$colors = array('#3366FF', '#6633FF',
'#CC33FF', '#FF33CC', '#33CCFF',
'#003DF5', '#002EB8', '#FF3366',
'#33FFCC', '#B88A00', '#F5B800',
'#FF6633', '#33FF66', '#66FF33',
'#CCFF33', '#FFCC33', '#002080',
'#200080', '#600080', '#800060',
'#006080', '#002FBD', '#003EFA',
'#800020', '#008060', '#FABB00',
'#BD8E00', '#802000', '#008020',
'#208000', '#608000', '#806000');
if ($i > count($colors) - 1) {
$t = floor($i / (count($colors) - 1));
$i = floor($i - $t);
}
return $colors[$i];
}
public function getRSPlain()
{
return new
RsticketsproAdapterPlain('com-rsticketspro-reports');
}
public function getOptions()
{
return array('time_period' =>
JText::_('RST_REPORTS_TIME_PERIOD'),
'department' =>
JText::_('RST_REPORTS_DEPARTMENT'),
'staff' => JText::_('RST_REPORTS_STAFF'),
'customer' => JText::_('RST_REPORTS_CUSTOMER'),
'priority' => JText::_('RST_REPORTS_PRIORITY')
);
}
protected function escape($value)
{
return htmlspecialchars($value, ENT_COMPAT, 'utf-8');
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.reports',
'reports', array('control' => '',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
// Departments
$departments = $this->getDepartments();
$xmlDepartments = '<fieldset name="departments"
label="'.JText::_('RST_REPORTS_DEPARTMENT').'">';
foreach ($departments as $i => $department) {
// add the department field
$xmlDepartments .= '<field
name="departments[]" id="departments'.$i.'"
type="checkbox"
label="'.$this->escape($department->name).'"
description="" class="checkbox inline"
labelclass="checkbox inline"
value="'.$department->id.'"
default="'.$department->id.'"
checked="true" />';
// add the proper color field
$default = $this->getColor($i);
$xmlDepartments .= '<field
name="color_department_'.$i.'" type="color"
description="" label=""
default="'.$this->escape($default).'" />';
}
$xmlDepartments .= '</fieldset>';
$xmlDepartments = new SimpleXMLElement($xmlDepartments);
$form->setField($xmlDepartments);
// Staff
$staff = $this->getStaff();
$xmlStaff = '<fieldset name="staff"
label="'.JText::_('RST_REPORTS_STAFF').'">';
foreach ($staff as $i => $person) {
// add the staff field
$xmlStaff .= '<field name="staff[]"
id="staff'.$i.'" type="checkbox"
label="'.$this->escape($person->thealias).'"
description="" class="checkbox inline"
labelclass="checkbox inline"
value="'.$person->user_id.'"
default="'.$person->user_id.'"
checked="true" />';
// add the proper color field
$default = $this->getColor($i);
$xmlStaff .= '<field
name="color_staff_'.$i.'" type="color"
description="" label=""
default="'.$this->escape($default).'" />';
}
$xmlStaff .= '</fieldset>';
$xmlStaff = new SimpleXMLElement($xmlStaff);
$form->setField($xmlStaff);
// Priority
$priorites = $this->getPriority();
$options = '';
$checked = array();
foreach ($priorites as $priority) {
$options .= '<option
value="'.$priority->id.'">'.$this->escape($priority->name).'</option>';
$checked[] = $priority->id;
}
$element = new SimpleXMLElement('<fieldset
name="priority"
label="'.JText::_('RST_REPORTS_PRIORITY').'"><field
name="priority" type="checkboxes" label=""
description="" class="checkbox inline"
checked="'.implode(',',
$checked).'">'.$options.'</field></fieldset>');
$form->setField($element);
return $form;
}
protected function loadFormData()
{
return array();
}
}PK�(�[@���!!models/rsticketspro.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelRsticketspro extends JModelLegacy
{
public function getCode()
{
return
RSTicketsProConfig::getInstance()->get('global_register_code');
}
public function getKbbuttons()
{
JFactory::getLanguage()->load('com_rsticketspro.sys',
JPATH_ADMINISTRATOR);
$buttons = array(
array(
'link' =>
JRoute::_('index.php?option=com_rsticketspro&view=kbcategories'),
'icon' => 'briefcase',
'text' =>
JText::_('COM_RSTICKETSPRO_KB_CATEGORIES'),
'access' => true,
'target' => ''
),
array(
'link' =>
JRoute::_('index.php?option=com_rsticketspro&view=kbarticles'),
'icon' => 'doc-text',
'text' =>
JText::_('COM_RSTICKETSPRO_KB_ARTICLES'),
'access' => true,
'target' => ''
),
array(
'link' =>
JRoute::_('index.php?option=com_rsticketspro&view=kbrules'),
'icon' => 'magic',
'text' =>
JText::_('COM_RSTICKETSPRO_KB_CONVERSION_RULES'),
'access' => true,
'target' => ''
)
);
return $buttons;
}
public function getButtons()
{
JFactory::getLanguage()->load('com_rsticketspro.sys',
JPATH_ADMINISTRATOR);
$buttons = array(
array(
'link' =>
JRoute::_('index.php?option=com_rsticketspro&view=tickets'),
'icon' => 'clipboard',
'text' =>
JText::_('COM_RSTICKETSPRO_MANAGE_TICKETS'),
'access' => true,
'target' => ''
),
array(
'link' =>
JRoute::_('index.php?option=com_rsticketspro&view=departments'),
'icon' => 'folder',
'text' =>
JText::_('COM_RSTICKETSPRO_DEPARTMENTS'),
'access' => true,
'target' => ''
),
array(
'link' =>
JRoute::_('index.php?option=com_rsticketspro&view=groups'),
'icon' => 'users',
'text' => JText::_('COM_RSTICKETSPRO_GROUPS'),
'access' => true,
'target' => ''
),
array(
'link' =>
JRoute::_('index.php?option=com_rsticketspro&view=staffs'),
'icon' => 'user',
'text' =>
JText::_('COM_RSTICKETSPRO_STAFF_MEMBERS'),
'access' => true,
'target' => ''
),
array(
'link' =>
JRoute::_('index.php?option=com_rsticketspro&view=priorities'),
'icon' => 'chart-bar',
'text' =>
JText::_('COM_RSTICKETSPRO_PRIORITIES'),
'access' => true,
'target' => ''
),
array(
'link' =>
JRoute::_('index.php?option=com_rsticketspro&view=statuses'),
'icon' => 'arrows-ccw',
'text' =>
JText::_('COM_RSTICKETSPRO_STATUSES'),
'access' => true,
'target' => ''
),
array(
'link' =>
JRoute::_('index.php?option=com_rsticketspro&view=emails'),
'icon' => 'mail',
'text' =>
JText::_('COM_RSTICKETSPRO_EMAIL_MESSAGES'),
'access' => true,
'target' => ''
),
array(
'link' =>
JRoute::_('index.php?option=com_rsticketspro&view=configuration'),
'icon' => 'cogs',
'text' =>
JText::_('COM_RSTICKETSPRO_CONFIGURATION'),
'access' =>
JFactory::getUser()->authorise('core.admin',
'com_rsticketspro'),
'target' => ''
),
array(
'link' =>
JRoute::_('https://www.rsjoomla.com/support.html'),
'icon' => 'lifebuoy',
'text' => JText::_('RST_GET_SUPPORT'),
'access' => true,
'target' => '_blank'
)
);
JFactory::getApplication()->triggerEvent('onAfterTicketsOverview',
array(array('buttons' => &$buttons)));
return $buttons;
}
}PK�(�[a�7@n n models/search.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelSearch extends JModelAdmin
{
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.search',
'search', array('control' => false,
'load_data' => $loadData));
if (empty($form))
{
return false;
}
$permissions = RSTicketsProHelper::getCurrentPermissions();
$isStaff = RSTicketsProHelper::isStaff();
if (!$isStaff || !$permissions || !$permissions->see_other_tickets)
{
$form->removeField('staff');
}
if (!$isStaff)
{
$form->removeField('customer');
}
if (JFactory::getApplication()->isClient('site') &&
!$this->getAdvanced())
{
$form->removeField('department_id');
$form->removeField('priority_id');
$form->removeField('status_id');
$form->removeField('filter_order');
$form->removeField('filter_order_Dir');
}
return $form;
}
protected function loadFormData()
{
$model = $this->getInstance('Tickets',
'RsticketsproModel');
return array(
'filter_search' =>
$model->getState('filter.search', ''),
'flagged' =>
$model->getState('filter.flagged', 0),
'priority_id' =>
$model->getState('filter.priority_id', array()),
'status_id' =>
$model->getState('filter.status_id', array()),
'department_id' =>
$model->getState('filter.department_id', array()),
'customer' =>
$model->getState('filter.customer', ''),
'staff' => $model->getState('filter.staff',
''),
'filter_order' =>
$model->getState('list.ordering'),
'filter_order_Dir' =>
$model->getState('list.direction')
);
}
public function getAdvanced()
{
return JFactory::getApplication()->input->get('advanced',
false, 'bool');
}
public function getItemId()
{
$params =
JFactory::getApplication()->getParams('com_rsticketspro');
if (RSTicketsProHelper::isStaff() &&
$params->get('staff_itemid'))
{
return '&Itemid='.(int)
$params->get('staff_itemid');
}
if (!RSTicketsProHelper::isStaff() &&
$params->get('customer_itemid'))
{
return '&Itemid='.(int)
$params->get('customer_itemid');
}
return '';
}
}PK�(�[hhl��models/signature.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelSignature extends JModelAdmin
{
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.signature',
'signature', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
return $form;
}
protected function loadFormData()
{
$data = array(
'signature' => RSTicketsProHelper::getSignature(null,
true)
);
return $data;
}
public function save($data)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$userId = JFactory::getUser()->id;
$query->update($db->qn('#__rsticketspro_staff'))
->set($db->qn('signature') . '=' .
$db->q($data['signature']))
->where($db->qn('user_id') . '=' .
$db->q($userId));
return $db->setQuery($query)->execute();
}
public function getIsAssigned()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$userId = JFactory::getUser()->id;
$query->select($db->qn('id'))
->from($db->qn('#__rsticketspro_staff'))
->where($db->qn('user_id') . '=' .
$db->q($userId));
$db->setQuery($query);
return $db->loadResult();
}
}PK�(�[f� ))models/staff.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelStaff extends JModelAdmin
{
public function getTable($type = 'Staff', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.staff',
'staff', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$data =
JFactory::getApplication()->getUserState('com_rsticketspro.edit.staff.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
if (!empty($data->department_id) &&
!is_array($data->department_id))
{
$data->department_id = explode(',',
$data->department_id);
}
return $data;
}
protected function canDelete($record)
{
return JFactory::getUser()->authorise('staff.delete',
'com_rsticketspro');
}
}PK�(�[_)��� � models/staffs.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelStaffs extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'username', 'name', 'email',
'group_name', 'priority_name', 'u.id'
);
}
parent::__construct($config);
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$search = $this->getState('filter.search');
$query->select('s.*')
->select($db->qn('g.name', 'group_name'))
->select($db->qn('u.username'))
->select($db->qn('u.name'))
->select($db->qn('u.email'))
->select($db->qn('p.name', 'priority_name'))
->from($db->qn('#__rsticketspro_staff', 's'))
->join('left',
$db->qn('#__rsticketspro_groups', 'g') . ' ON
(' . $db->qn('s.group_id') . '=' .
$db->qn('g.id') . ')')
->join('left', $db->qn('#__users',
'u') . ' ON (' . $db->qn('s.user_id') .
'=' . $db->qn('u.id') . ')')
->join('left',
$db->qn('#__rsticketspro_priorities', 'p') . '
ON (' . $db->qn('s.priority_id') . '=' .
$db->qn('p.id') . ')');
// search
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('s.id') . ' = ' . (int)
substr($search, 3));
}
else
{
$search = $db->q('%'.str_replace(' ',
'%', $db->escape($search, true)).'%', false);
$query->where($db->qn('g.name') . ' LIKE ' .
$search, 'OR');
$query->where($db->qn('u.username') . ' LIKE
' . $search, 'OR');
$query->where($db->qn('u.name') . ' LIKE ' .
$search, 'OR');
$query->where($db->qn('u.email') . ' LIKE ' .
$search, 'OR');
}
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'group_name')).'
'.$db->escape($this->getState('list.direction',
'asc')));
return $query;
}
protected function populateState($ordering = 'group_name',
$direction = 'asc')
{
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
// List state information.
parent::populateState($ordering, $direction);
}
}PK�(�[T�
M��models/status.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelStatus extends JModelAdmin
{
public function getTable($type = 'Statuses', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.status',
'status', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
// Modify the form based on access controls.
if (!$this->canEditState((object) $data))
{
// Disable fields for display.
$form->setFieldAttribute('ordering', 'disabled',
'true');
$form->setFieldAttribute('published', 'disabled',
'true');
// Disable fields while saving.
// The controller has already verified this is a record you can edit.
$form->setFieldAttribute('ordering', 'filter',
'unset');
$form->setFieldAttribute('published', 'filter',
'unset');
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$data =
JFactory::getApplication()->getUserState('com_rsticketspro.edit.status.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
return $data;
}
protected function canDelete($record)
{
if ($this->isCore($record->id))
{
return false;
}
return JFactory::getUser()->authorise('status.delete',
'com_rsticketspro');
}
protected function canEditState($record)
{
$task = JFactory::getApplication()->input->get('task');
if ($task !== 'saveOrderAjax')
{
$id = !empty($record->id) ? $record->id :
JFactory::getApplication()->input->getInt('id');
if ($this->isCore($id))
{
return false;
}
}
return JFactory::getUser()->authorise('status.edit.state',
'com_rsticketspro');
}
protected function isCore($id)
{
return $id > 0 && $id <= 3;
}
}PK�(�[�8�]]models/statuses.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelStatuses extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'name', 'published', 'ordering',
'id', 'state'
);
}
parent::__construct($config);
}
protected function getListQuery()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// get filtering states
$search = $this->getState('filter.search');
$state = $this->getState('filter.state');
$query->select('*')
->from('#__rsticketspro_statuses');
// search
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('id') . ' = ' . (int)
substr($search, 3));
}
else
{
$query->where($db->qn('name') . ' LIKE ' .
$db->q('%'.str_replace(' ', '%',
$db->escape($search, true)).'%', false));
}
}
// published/unpublished
if ($state != '')
{
$query->where($db->qn('published') . '=' .
$db->q($state));
}
// order by
$query->order($db->qn($this->getState('list.ordering',
'ordering')).'
'.$db->escape($this->getState('list.direction',
'asc')));
return $query;
}
protected function populateState($ordering = 'ordering',
$direction = 'asc')
{
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search'));
$this->setState('filter.state',
$this->getUserStateFromRequest($this->context.'.filter.state',
'filter_state'));
// List state information.
parent::populateState($ordering, $direction);
}
}PK�(�[$��m[m[models/submit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelSubmit extends JModelAdmin
{
protected $fields = array();
public function getTable($type = 'Tickets', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.submit',
'submit', array('control' => 'jform',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
if (RSTicketsProHelper::getConfig('captcha_enabled') !==
'1')
{
$form->setFieldAttribute('captcha', 'label',
'');
$form->setFieldAttribute('captcha',
'description', '');
}
$isStaff = RSTicketsProHelper::isStaff();
$showAlternativeEmail =
RSTicketsProHelper::getConfig('show_alternative_email');
$allowPasswordChange =
RSTicketsProHelper::getConfig('allow_password_change');
$permissions = $this->getPermissions();
if (!$isStaff || !$permissions || (!$permissions->add_ticket_customers
&& !$permissions->add_ticket_staff))
{
$user = JFactory::getUser();
$form->setFieldAttribute('email', 'showon',
null);
$form->setFieldAttribute('name', 'showon',
null);
if ($showAlternativeEmail)
{
$form->setFieldAttribute('alternative_email',
'showon', null);
}
if ($allowPasswordChange)
{
$form->setFieldAttribute('password', 'showon',
null);
}
if ($user->id)
{
$form->setValue('email', null, $user->email);
$form->setFieldAttribute('email', 'disabled',
'true');
$form->setValue('name', null, $user->name);
$form->setFieldAttribute('name', 'disabled',
'true');
if ($showAlternativeEmail)
{
$form->setValue('alternative_email', null,
RSTicketsProHelper::getAlternativeEmail($user->id));
}
}
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$app = JFactory::getApplication();
$default = array();
// check with menu parameters
if ($app->isClient('site'))
{
$params = $app->getParams();
if ($department_id = $params->get('department_id'))
{
$default['department_id'] = $department_id;
}
if ($message = $params->get('message'))
{
$default['message'] = $message;
}
if ($department_id =
$app->input->getInt('department_id'))
{
$default['department_id'] = $department_id;
}
// Grab params from URL.
if ($jform = $app->input->get->get('jform', array(),
'array'))
{
foreach ($jform as $key => $value)
{
$default[$key] = $value;
}
}
}
$data =
$app->getUserState('com_rsticketspro.edit.submit.data',
$default);
return $data;
}
public function getDepartments()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->select($db->qn('priority_id'))
->select($db->qn('upload'))
->select($db->qn('upload_ticket_required'))
->select($db->qn('upload_extensions'))
->select($db->qn('upload_size'))
->select($db->qn('upload_files'))
->from($db->qn('#__rsticketspro_departments'))
->where($db->qn('published') . '=' .
$db->q(1))
->order($db->qn('ordering') . ' ' .
$db->escape('asc'));
$db->setQuery($query);
$list = $db->loadObjectList();
$departments = array();
$is_logged = JFactory::getUser()->get('id') > 0;
$max_files = (int) ini_get('max_file_uploads');
$max_size = ini_get('upload_max_filesize');
foreach ($list as $department)
{
if ($department->upload == 1 || ($department->upload == 2
&& $is_logged))
{ // uploads are allowed for everyone or only for logged in users
$department->upload = 1;
}
else
{
$department->upload = 0;
}
// convert allowed extensions to human readable format
$upload_extensions = $department->upload_extensions;
$upload_extensions = str_replace(array("\r\n",
"\r"), "\n", $upload_extensions);
$upload_extensions = str_replace("\n", ", ",
$upload_extensions);
if (trim($upload_extensions) == '')
{
$upload_extensions = '*';
}
$department->upload_extensions = $upload_extensions;
// set the message
$department->upload_message =
JText::sprintf('RST_TICKET_ATTACHMENTS_ALLOWED',
$department->upload_extensions);
// if the server allows less files than what we've selected, use
that number instead
if ($department->upload_files > $max_files ||
empty($department->upload_files))
{
$department->upload_files = $max_files;
}
$max = $department->upload_files;
if ($department->upload_files == 0)
{
$max = JText::_('RST_UNLIMITED');
}
$department->upload_message_max_files =
JText::sprintf('RST_TICKET_ATTACHMENTS_MAX_ALLOWED', $max);
$size = $department->upload_size;
if ((float) $size == 0)
{
$size = $max_size;
}
else
{
$size = $department->upload_size . 'M';
}
$department->upload_message_max_size =
JText::sprintf('RST_TICKET_ATTACHMENTS_MAX_SIZE_ALLOWED',
$size);
$departments[$department->id] = $department;
}
return $departments;
}
public function getCustomFields()
{
$db = JFactory::getDbo();
$app = JFactory::getApplication();
$query = $db->getQuery(true);
$fields = array();
$fieldValues =
$app->getUserState('com_rsticketspro.edit.submit.fields',
array());
$query->select('*')
->from($db->qn('#__rsticketspro_custom_fields'))
->where($db->qn('published') . '=' .
$db->q(1))
->order($db->qn('department_id'))
->order($db->qn('ordering') . ' ' .
$db->escape('asc'));
if ($list = $db->setQuery($query)->loadObjectList())
{
foreach ($list as $field)
{
$selected = isset($fieldValues['department_' .
$field->department_id]) ? $fieldValues['department_' .
$field->department_id] : array();
$field = RSTicketsProHelper::showCustomField($field, $selected, true,
$field->department_id);
if ($field !== false)
{
$fields[] = $field;
}
}
}
return $fields;
}
protected function getCustomFieldsByDepartmentId($department_id)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from($db->qn('#__rsticketspro_custom_fields'))
->where($db->qn('department_id') . '=' .
$db->q($department_id))
->where($db->qn('published') . '=' .
$db->q(1))
->order($db->qn('ordering') . ' ' .
$db->escape('asc'));
$db->setQuery($query);
return $db->loadObjectList();
}
// using this because JFactory::getUser($inexistent_id) throws errors
protected function getUserById($user_id)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from($db->qn('#__users'))
->where($db->qn('id') . '=' .
$db->q($user_id));
$db->setQuery($query);
return $db->loadObject();
}
protected function getUserByEmail($email)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from($db->qn('#__users'))
->where($db->qn('email') . ' LIKE ' .
$db->q($email));
$db->setQuery($query);
return $db->loadObject();
}
public function save($data, $fields = array(), $files = array())
{
define('RST_SUBMIT_TYPE_NEW_USER', 1);
define('RST_SUBMIT_TYPE_EXISTING_USER', 2);
define('RST_SUBMIT_TYPE_CURRENT_USER', 3);
$app = JFactory::getApplication();
$permissions = $this->getPermissions();
$customer = null;
$isStaff = RSTicketsProHelper::isStaff();
$user = JFactory::getUser();
// is he a staff member?
if ($isStaff && $permissions)
{
// can he select the type of user?
if ($permissions->add_ticket_staff ||
$permissions->add_ticket_customers)
{
$type = isset($data['submit_type']) ?
$data['submit_type'] : RST_SUBMIT_TYPE_NEW_USER;
}
elseif ($permissions->add_ticket)
{
$type = RST_SUBMIT_TYPE_CURRENT_USER;
}
else
{
$this->setError(JText::_('RST_STAFF_CANNOT_SUBMIT_TICKET'));
return false;
}
}
else
{
// logged in, grab current user information
if ($user->get('id'))
{
$type = RST_SUBMIT_TYPE_CURRENT_USER;
}
else
{
$type = RST_SUBMIT_TYPE_NEW_USER;
}
}
if ($type == RST_SUBMIT_TYPE_NEW_USER)
{
// validate the email address supplied
if (empty($data['email']) ||
!JMailHelper::isEmailAddress($data['email']))
{
$this->setError(JText::_('RST_TICKET_EMAIL_ERROR'));
return false;
}
// validate the name
if (empty($data['name']))
{
$this->setError(JText::_('RST_TICKET_NAME_ERROR'));
return false;
}
$customer =
$this->getUserByEmail($data['email']);
$data['customer_id'] = 0;
}
elseif ($type == RST_SUBMIT_TYPE_EXISTING_USER)
{
if (empty($data['customer_id']))
{
$this->setError(JText::_('RST_TICKET_CUSTOMER_ERROR'));
return false;
}
$customer = $this->getUserById($data['customer_id']);
// what if the user ID doesn't exist in the database?
if (empty($customer))
{
$this->setError(JText::_('RST_TICKET_CUSTOMER_ERROR'));
return false;
}
}
elseif ($type == RST_SUBMIT_TYPE_CURRENT_USER)
{
$customer = JFactory::getUser();
}
// checking permissions
if ($customer)
{
// is he a staff member?
if ($isStaff)
{
// trying to submit a ticket on behalf of himself, but no access
if ($customer->id == $user->id &&
!$permissions->add_ticket)
{
$this->setError(JText::_('RST_TICKET_EMAIL_STAFF_NO_PERMISSION_ERROR'));
return false;
}
$is_customer_staff = RSTicketsProHelper::isStaff($customer->id);
// staff trying to submit a ticket on behalf of another staff member
with no permission
if ($is_customer_staff && $customer->id != $user->id
&& !$permissions->add_ticket_staff)
{
$this->setError(JText::sprintf('RST_TICKET_EMAIL_STAFF_ERROR',
$customer->email));
return false;
}
// staff trying to submit a ticket on behalf of a customer with no
permission
if (!$is_customer_staff &&
!$permissions->add_ticket_customers)
{
$this->setError(JText::_('RST_TICKET_STAFF_CANNOT_ADD_TICKET_TO_CUSTOMER_ERROR'));
return false;
}
}
else
{
$is_customer_staff = RSTicketsProHelper::isStaff($customer->id);
// customer trying to submit a ticket on behalf of another staff
member
if ($is_customer_staff && $customer->id != $user->id)
{
$this->setError(JText::sprintf('RST_TICKET_EMAIL_STAFF_ERROR',
$customer->email));
return false;
}
if (!$user->id && (bool)
RSTicketsProHelper::getConfig('allow_password_change') &&
(bool) RSTicketsProHelper::checkIfEmailExists($customer->email))
{
$this->setError(JText::sprintf('RST_TICKET_EMAIL_CUSTOMER_ERROR',
$customer->email));
return false;
}
}
$data['customer_id'] = $customer->id;
}
else
{
if (!$user->id &&
RSTicketsProHelper::getConfig('allow_password_change'))
{
if (!isset($data['password']) ||
!strlen(trim($data['password'])))
{
$this->setError(JText::_('RST_TICKET_EMPTY_PASSWORD'));
return false;
}
// Password strength
$rule = JFormHelper::loadRuleType('password');
$field = new
SimpleXMLElement('<field></field>');
if (!$rule->test($field, $data['password']))
{
// Rule should throw a notice
return false;
}
}
}
// Let's see if we have a blocklist
if ($blocklist = RSTicketsProHelper::getConfig('blocklist'))
{
$blocklist = str_replace("\r\n", "\n", $blocklist);
$blocklist = explode("\n", $blocklist);
switch ($type)
{
case RST_SUBMIT_TYPE_NEW_USER:
$email = $data['email'];
break;
case RST_SUBMIT_TYPE_CURRENT_USER:
case RST_SUBMIT_TYPE_EXISTING_USER:
$email = $customer->email;
break;
}
if ($blocklist)
{
$found_blocklist = false;
foreach ($blocklist as $blocked_email)
{
if (strpos($blocked_email, '*') !== false)
{
// Wildcard found
$parts = explode('*', $blocked_email);
foreach ($parts as $b => $part)
{
$parts[$b] = preg_quote($part, '/');
}
$pattern = '/'.implode('(.*)',
$parts).'/i';
if (preg_match($pattern, $email, $match))
{
$found_blocklist = true;
break;
}
}
else
{
// Regular address, see if it matches
if (strtolower($email) == strtolower($blocked_email))
{
$found_blocklist = true;
break;
}
}
}
if ($found_blocklist)
{
$this->setError(JText::sprintf('COM_RSTICKETSPRO_BLOCKLISTED_EMAIL_ERROR',
htmlspecialchars($email, ENT_COMPAT, 'utf-8')));
return false;
}
}
}
// validate the provided alternative email address if any
if (!empty($data['alternative_email'])) {
// remove any whitespaces
$data['alternative_email'] =
trim($data['alternative_email']);
if (strlen($data['alternative_email']) > 0 &&
!JMailHelper::isEmailAddress($data['alternative_email'])) {
$this->setError(JText::_('RST_ALTERNATIVE_EMAIL_ERROR'));
return false;
}
}
// let's validate departments
$departments = $this->getDepartments();
// must select a department
if (empty($data['department_id']) ||
!isset($departments[$data['department_id']]))
{
$this->setError(JText::_('RST_TICKET_DEPARTMENT_ERROR'));
return false;
}
$department = $departments[$data['department_id']];
// validate custom fields
$data['fields'] = array();
if ($customFields =
$this->getCustomFieldsByDepartmentId($data['department_id']))
{
$sentFields = isset($fields['department_' .
$data['department_id']]) ? $fields['department_' .
$data['department_id']] : array();
foreach ($customFields as $field)
{
// freetext fields don't send a value so no need to validate them
if ($field->type == 'freetext')
{
continue;
}
// field si required
if ($field->required)
{
// set the validation message
$validation_message = JText::_($field->validation);
// if no validation message, go with the default one
if (empty($validation_message))
{
$validation_message =
JText::sprintf('RST_VALIDATION_DEFAULT_ERROR',
JText::_($field->label));
}
// handle arrays
if (is_array($sentFields[$field->name]))
{
$value = implode('', $sentFields[$field->name]);
}
else
{
$value = $sentFields[$field->name];
}
// no value has been sent?
if (empty($value))
{
$this->setError($validation_message);
return false;
}
// handle 3rd party validation
$return = true;
$app->triggerEvent('onRsticketsproCustomFieldValidation',
array($data, $field, $value, $sentFields, &$return));
if ($return === false)
{
return false;
}
}
if (isset($sentFields[$field->name]))
{
$data['fields'][$field->id] =
$sentFields[$field->name];
}
}
}
// must write a subject
if (empty($data['subject']))
{
$this->setError(JText::_('RST_TICKET_SUBJECT_ERROR'));
return false;
}
// must write a message
if (empty($data['message']))
{
$this->setError(JText::_('RST_TICKET_MESSAGE_ERROR'));
return false;
}
// must select a priority
if (empty($data['priority_id']))
{
$this->setError(JText::_('RST_TICKET_PRIORITY_ERROR'));
return false;
}
// let's validate files if the department allows uploads for this
user
$data['files'] = array();
if ($department->upload)
{
// too many files
if ($department->upload_files > 0 && count($files) >
$department->upload_files)
{
$files = array_slice($files, 0, $department->upload_files);
}
$upload_extensions = explode(', ',
$department->upload_extensions);
foreach ($files as $file)
{
if ($file['error'] == UPLOAD_ERR_NO_FILE)
{
continue;
}
if ($file['error'] != UPLOAD_ERR_OK)
{
switch ($file['error'])
{
default:
$msg = 'RST_TICKET_UPLOAD_ERROR';
break;
case UPLOAD_ERR_INI_SIZE:
$msg = 'RST_TICKET_UPLOAD_ERROR_INI_SIZE';
break;
case UPLOAD_ERR_FORM_SIZE:
$msg = 'RST_TICKET_UPLOAD_ERROR_FORM_SIZE';
break;
case UPLOAD_ERR_PARTIAL:
$msg = 'RST_TICKET_UPLOAD_ERROR_PARTIAL';
break;
case UPLOAD_ERR_NO_TMP_DIR:
$msg = 'RST_TICKET_UPLOAD_ERROR_NO_TMP_DIR';
break;
case UPLOAD_ERR_CANT_WRITE:
$msg = 'RST_TICKET_UPLOAD_ERROR_CANT_WRITE';
break;
case UPLOAD_ERR_EXTENSION:
$msg = 'RST_TICKET_UPLOAD_ERROR_PHP_EXTENSION';
break;
}
$this->setError(JText::sprintf($msg, $file['name']));
return false;
}
// is this an allowed extension?
if
(!RSTicketsProHelper::isAllowedExtension(RSTicketsProHelper::getExtension($file['name']),
$upload_extensions))
{
$this->setError(JText::sprintf('RST_TICKET_UPLOAD_EXTENSION_ERROR',
$file['name'], $department->upload_extensions));
return false;
}
// check file size
if ($department->upload_size > 0 &&
$file['size'] > $department->upload_size * 1048576)
{
$this->setError(JText::sprintf('RST_TICKET_UPLOAD_SIZE_ERROR',
$file['name'], $department->upload_size));
return false;
}
$data['files'][] = array(
'src' => 'upload',
'tmp_name' => $file['tmp_name'],
'name' => $file['name']
);
}
if ($department->upload_ticket_required &&
empty($data['files']))
{
$this->setError(JText::_('COM_RSTICKETSPRO_UPLOAD_TICKET_REQUIRED_ERROR'));
return false;
}
}
if ($app->isClient('site'))
{
// Need to check consent
if (RSTicketsProHelper::getConfig('forms_consent')
&& empty($data['consent']))
{
$this->setError(JText::_('COM_RSTICKETSPRO_CONSENT_IS_NEEDED_TO_SUBMIT_THIS_FORM'));
return false;
}
// no need to check for captcha in the backend
if ($this->getHasCaptcha())
{
$captchaType =
RSTicketsProHelper::getConfig('captcha_enabled');
if ($captchaType == 1)
{
// Standard Captcha
require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/captcha/captcha.php';
$captcha = new RsticketsproCaptcha;
if (!$captcha->check($data['captcha']))
{
$this->setError(JText::_('RST_TICKET_CAPTCHA_ERROR'));
return false;
}
}
elseif ($captchaType > 1 && $captchaType < 5)
{
$response = $app->input->get('g-recaptcha-response',
'', 'raw');
$ip =
$app->input->server->getString('REMOTE_ADDR');
$secret =
RSTicketsProHelper::getConfig('recaptcha_new_secret_key');
try
{
$http = JHttpFactory::getHttp();
if ($request =
$http->get('https://www.google.com/recaptcha/api/siteverify?secret='
. urlencode($secret) . '&response=' . urlencode($response) .
'&remoteip=' . urlencode($ip)))
{
$json = json_decode($request->body);
}
} catch (Exception $e)
{
$this->setError($e->getMessage());
return false;
}
if (empty($json->success) || !$json->success)
{
if (!empty($json) &&
isset($json->{'error-codes'}) &&
is_array($json->{'error-codes'}))
{
foreach ($json->{'error-codes'} as $code)
{
$this->setError(JText::_('RST_CAPTCHA_NEW_ERR_' .
str_replace('-', '_', $code)));
return false;
}
}
}
}
elseif ($captchaType == 5) {
$jconfig = JFactory::getConfig();
$jcaptcha = $jconfig->get('captcha');
if (!empty($jcaptcha)) {
try {
$input = JFactory::getApplication()->input;
$codeField = $input->get('rscaptcha');
$jcaptcha = JCaptcha::getInstance($jcaptcha,
array('namespace' => 'rscaptcha'));
if (!is_null($jcaptcha) &&
!$jcaptcha->checkAnswer($codeField)) {
return false;
}
} catch (Exception $e) {
JFactory::getApplication()->enqueueMessage($e->getMessage(),
'error');
return false;
}
} else {
JFactory::getApplication()->enqueueMessage(JText::_('RST_CAPTCHA_BUILT_IN_NOT_SELECTED'),
'error');
return false;
}
}
}
}
// overwrite some options
$data['id'] = null;
$data['staff_id'] = null;
$data['status_id'] = RST_STATUS_OPEN;
$data['date'] =
JFactory::getDate()->toSql();
$data['last_reply'] = $data['date'];
$data['last_reply_customer'] = 1;
$data['replies'] = null;
$data['autoclose_sent'] = null;
$data['flagged'] = null;
$data['feedback'] = null;
$data['has_files'] = null;
$data['time_spent'] = null;
// fill user information
$server = $app->input->server;
$data['logged'] = $user->get('id') > 0 ? 1 :
0;
$data['agent'] = $server->get('HTTP_USER_AGENT',
'', 'raw');
$data['referer'] = $server->get('HTTP_REFERER',
'', 'raw');
$data['ip'] = $server->get('REMOTE_ADDR',
'', 'raw');
if (!RSTicketsProHelper::getConfig('store_ip'))
{
$data['ip'] = '0.0.0.0';
}
if (!RSTicketsProHelper::getConfig('store_user_agent'))
{
$data['agent'] = '';
}
require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/ticket.php';
$ticket = new RSTicketsProTicketHelper();
$ticket->bind($data);
if (!$ticket->saveTicket())
{
$this->setError($ticket->getError());
return false;
}
// everything is correct, return true
return true;
}
public function getPermissions()
{
return RSTicketsProHelper::getCurrentPermissions();
}
public function getHasCaptcha()
{
if (RSTicketsProHelper::getConfig('captcha_enabled'))
{
$enabledFor =
RSTicketsProHelper::getConfig('captcha_enabled_for');
$user = JFactory::getUser();
$isStaff = RSTicketsProHelper::isStaff();
return (
(in_array('unregistered', $enabledFor) &&
$user->get('guest')) || // unregistered users
(in_array('customers', $enabledFor) && !$isStaff) ||
// customers
(in_array('staff', $enabledFor) && $isStaff) // staff
members
);
}
return false;
}
}PK�(�[�������models/ticket.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelTicket extends JModelAdmin
{
public function getTable($type = 'Tickets', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.ticket',
'ticket', array('control' => 'ticket',
'load_data' => $loadData));
if (empty($form))
{
return false;
}
$ticket = $this->getItem();
$isStaff = $this->isStaff();
$permissions = $this->getStaffPermissions();
$userField = RSTicketsProHelper::getConfig('show_user_info');
if (!$isStaff || !$permissions->update_ticket)
{
$form->setFieldAttribute('subject', 'type',
'rsticketsprohtml');
$form->setFieldAttribute('subject', 'escape',
'true');
$form->setFieldAttribute('priority_id', 'type',
'rsticketsprohtml');
$form->setFieldAttribute('priority_id', 'escape',
'true');
$form->setValue('priority_id', null,
JText::_($ticket->priority->name));
}
if (!$isStaff || !$permissions->move_ticket)
{
$form->setFieldAttribute('department_id', 'type',
'rsticketsprohtml');
$form->setFieldAttribute('department_id',
'escape', 'true');
$form->setValue('department_id', null,
JText::_($ticket->department->name));
}
if (!$isStaff || !$permissions->change_ticket_status)
{
$form->setFieldAttribute('status_id', 'type',
'rsticketsprohtml');
$form->setFieldAttribute('status_id', 'escape',
'true');
$form->setValue('status_id', null,
JText::_($ticket->status->name));
}
if (!$isStaff || !$permissions->assign_tickets)
{
$form->setFieldAttribute('staff_id', 'type',
'rsticketsprohtml');
$form->setFieldAttribute('staff_id', 'escape',
'true');
$form->setValue('staff_id', null, $ticket->staff_id >
0 ? $ticket->staff->get($userField) :
JText::_('RST_UNASSIGNED'));
}
if (!$isStaff || (!$permissions->add_ticket_customers &&
!$permissions->add_ticket_staff))
{
$form->setFieldAttribute('customer_id', 'type',
'rsticketsprohtml');
$form->setFieldAttribute('customer_id', 'escape',
'true');
$form->setValue('customer_id', null,
$ticket->customer->get($userField));
$form->setFieldAttribute('alternative_email',
'type', 'rsticketsprohtml');
$form->setFieldAttribute('alternative_email',
'escape', 'true');
}
$form->setValue('date', null, JHtml::_('date',
$ticket->date,
RSTicketsProHelper::getConfig('date_format')));
if (JFactory::getApplication()->isClient('site'))
{
$form->setFieldAttribute('search', 'class',
'input-xlarge');
$form->setFieldAttribute('message', 'class',
'input-xlarge');
}
return $form;
}
protected function loadFormData()
{
$data = array();
if ($item = $this->getItem())
{
$data = (array) $item->getProperties();
}
$validData = array();
foreach ($data as $k => $v)
{
if (!is_object($data[$k]))
{
$validData[$k] = $v;
}
}
// workaround to get the message
$data =
JFactory::getApplication()->getUserState('com_rsticketspro.edit.ticket.data',
null);
if (is_array($data) && isset($data['message']))
{
$validData['message'] = $data['message'];
}
return $validData;
}
public function getTicket($id)
{
static $cache = array();
if (!isset($cache[$id]))
{
$table = $this->getTable();
if ($table->load($id))
{
$cache[$id] = $table;
}
else
{
$cache[$id] = false;
}
}
return $cache[$id];
}
public function getTicketMessages($id = null, $nosyslog = false)
{
if (is_null($id))
{
$ticket = $this->getItem();
}
else
{
$ticket = $this->getTicket($id);
}
$customer_id = $ticket->customer_id;
$ticket_id = $ticket->id;
$direction =
RSTicketsProHelper::getConfig('messages_direction');
$db = JFactory::getDbo();
$app = JFactory::getApplication();
$query = $db->getQuery(true);
$query->select('*')
->from($db->qn('#__rsticketspro_ticket_messages'))
->where($db->qn('ticket_id') . '=' .
$db->q($ticket_id))
->order($db->qn('date') . ' ' .
$db->escape($direction));
if ($nosyslog)
{
$query->where($db->qn('user_id') . ' <>
' . $db->q('-1'));
}
$db->setQuery($query);
$messages = $db->loadObjectList('id');
if ($app->isClient('administrator'))
{
$pattern = '/src=[\'"]?([^\'"
>]+)[\'" >]/';
foreach ($messages as $mid => $message)
{
if (preg_match_all($pattern, $message->message, $matches))
{
if (!empty($matches[1]))
{
foreach ($matches[1] as $i => $image)
{
if (strpos($image, 'viewinline') !== false)
{
$new_image = str_replace(JUri::root(), JUri::root() .
'administrator/', $image);
$messages[$mid]->message = str_replace($matches[1][$i],
$new_image, $messages[$mid]->message);
}
}
}
}
}
}
$query->clear();
$query->select('*')
->from($db->qn('#__rsticketspro_ticket_files'))
->where($db->qn('ticket_id') . '=' .
$db->q($ticket_id));
$db->setQuery($query);
if ($files = $db->loadObjectList())
{
foreach ($files as $file)
{
$message_id = $file->ticket_message_id;
if (!empty($messages[$message_id]))
{
$message = &$messages[$message_id];
// add the file to the array
if (!isset($message->files))
{
$message->files = array();
}
$message->files[] = $file;
}
}
}
return $messages;
}
public function getItem($pk = null)
{
$id = $this->getId();
return $this->getTicket($id);
}
protected function getUser()
{
return JFactory::getUser();
}
public function isGuest()
{
$user = $this->getUser();
return $user->get('guest');
}
public function getIsStaff()
{
return $this->isStaff();
}
public function isStaff()
{
static $result;
if (is_null($result))
{
$user = $this->getUser();
$result = RSTicketsProHelper::isStaff($user->get('id'));
}
return $result;
}
public function canDeleteTimeTracking() {
static $result;
if (is_null($result))
{
$user = $this->getUser();
$result =
RSTicketsProHelper::canDeleteTimeTracking($user->get('id'));
}
return $result;
}
public function getTimeTrackingDeleteStatus() {
return $this->canDeleteTimeTracking();
}
public function canDeleteOwnTimeTracking($ticket_id, $entry_id) {
static $result = array();
$hash = md5($ticket_id.$entry_id);
if (!isset($result[$hash]))
{
$user = $this->getUser();
$option =
RSTicketsProHelper::canDeleteTimeTracking($user->get('id'),
'can_delete_own_time_history');
if($option && $this->checkIfExistsTimeSpentEntry($ticket_id,
$entry_id, $user->get('id')))
{
$result[$hash] = true;
}
else
{
$result[$hash] = false;
}
}
return $result[$hash];
}
public function getStaffDepartments()
{
static $departments;
if (is_null($departments))
{
$departments = RSTicketsProHelper::getCurrentDepartments();
}
return $departments;
}
public function getStaffPermissions()
{
static $permissions;
if (is_null($permissions))
{
$permissions = RSTicketsProHelper::getCurrentPermissions();
}
return $permissions;
}
// @int $id - the id of the ticket
// @returns true on success
public function hasPermission($id)
{
$user = $this->getUser();
$is_staff = $this->isStaff();
$departments = $this->getStaffDepartments();
$permissions = $this->getStaffPermissions();
if ($ticket = $this->getTicket($id))
{ // found a ticket
// staff members
if ($is_staff)
{
// staff - check if belongs to department only if he is not the
customer
if ($ticket->customer_id != $user->get('id') &&
!in_array($ticket->department_id, $departments))
{
$this->setError(JText::_('RST_STAFF_CANNOT_VIEW_TICKET'));
return false;
}
// check if department can be seen by this staff member
if (RSTicketsProHelper::getConfig('staff_force_departments')
&& !in_array($ticket->department_id, $departments))
{
$this->setError(JText::_('RST_STAFF_CANNOT_VIEW_TICKET'));
return false;
}
// is this ticket unassigned?
if (!$permissions->see_unassigned_tickets &&
!$ticket->staff_id)
{
$this->setError(JText::_('RST_STAFF_CANNOT_VIEW_TICKET'));
return false;
}
// does this ticket belong to another staff member?
if (!$permissions->see_other_tickets && $ticket->staff_id
> 0 && $ticket->staff_id != $user->get('id'))
{
$this->setError(JText::_('RST_STAFF_CANNOT_VIEW_TICKET'));
return false;
}
}
else
{
// customers
if ($ticket->customer_id != $user->get('id'))
{
$this->setError(JText::_('RST_CUSTOMER_CANNOT_VIEW_TICKET'));
return false;
}
}
return true;
}
return false;
}
public function hasDownloadPermission($access_code, $file_id, $ticket_id)
{
if (!$access_code || strlen($access_code) != 32) {
return false;
}
require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/ticket.php';
$helper = new RSTicketsProTicketHelper;
$files = $helper->getTicketAttachments($ticket_id);
if (empty($files[$file_id])) {
return false;
}
$hash = md5($ticket_id . '|' . $files[$file_id]->id .
'|' . $files[$file_id]->filename);
return $hash === $access_code;
}
public function setFlag($id, $flagged)
{
if ($ticket = $this->getTicket($id))
{
$object = (object) array(
'id' => $id,
'flagged' => $flagged
);
return
JFactory::getDbo()->updateObject('#__rsticketspro_tickets',
$object, array('id'));
}
return false;
}
public function delete(&$id)
{
if ($ticket = $this->getTicket($id))
{
return $ticket->delete($id);
}
return false;
}
public function notify($id)
{
// set the interval
static $interval;
if (is_null($interval))
{
$interval =
RSTicketsProHelper::getConfig('autoclose_email_interval') *
86400;
if ($interval < 86400)
{
$interval = 86400;
}
}
// get the date
$date = JFactory::getDate();
if ($ticket = $this->getTicket($id))
{
$last_reply = JFactory::getDate($ticket->last_reply)->toUnix();
if ($ticket->last_reply_customer || $ticket->autoclose_sent ||
$last_reply + $interval > $date->toUnix())
{
return false;
}
$overdue = floor(($date->toUnix() - $last_reply) / 86400);
$closed =
RSTicketsProHelper::getConfig('autoclose_interval');
// get email sending settings
static $emailConfig = array();
if (!isset($emailConfig[$ticket->department_id]))
{
if (RSTicketsProHelper::getConfig('email_use_global'))
{
// are we using global Joomla! config ?
$config = new JConfig();
$emailConfig['from'] = $config->mailfrom;
$emailConfig['fromName'] = $config->fromname;
}
else
{
// this means we are using the RSTickets! Pro config
$emailConfig['from'] =
RSTicketsProHelper::getConfig('email_address');
$emailConfig['fromName'] =
RSTicketsProHelper::getConfig('email_address_fullname');
}
// let's see if the department has different settings
$department = $this->getTable('Departments');
$department->load($ticket->department_id);
if (!$department->email_use_global)
{
$emailConfig['from'] = $department->email_address;
$emailConfig['fromName'] =
$department->email_address_fullname;
}
}
if ($email =
RSTicketsProHelper::getEmail('notification_email'))
{
$replacements = array(
'{live_site}' => JUri::root(),
'{ticket}' =>
RSTicketsProHelper::route(JUri::root() .
'index.php?option=com_rsticketspro&view=ticket&cid=' .
$ticket->id . ':' .
JFilterOutput::stringURLSafe($ticket->subject)),
'{customer_name}' =>
$ticket->customer->get('name'),
'{customer_username}' =>
$ticket->customer->get('username'),
'{customer_email}' =>
$ticket->customer->get('email'),
'{staff_name}' =>
$ticket->staff->get('name'),
'{staff_username}' =>
$ticket->staff->get('username'),
'{staff_email}' =>
$ticket->staff->get('email'),
'{code}' => $ticket->code,
'{subject}' => $ticket->subject,
'{priority}' =>
JText::_($ticket->priority->name),
'{status}' =>
JText::_($ticket->status->name),
'{inactive_interval}' => $overdue,
'{close_interval}' => $closed
);
$email_subject = str_replace(array_keys($replacements),
array_values($replacements), $email->subject);
$email_message = str_replace(array_keys($replacements),
array_values($replacements), $email->message);
// send the notification message
RSTicketsProHelper::sendMail($emailConfig['from'],
$emailConfig['fromName'],
$ticket->customer->get('email'), $email_subject,
$email_message, 1);
}
// the autoclose has been sent, mark it in the db
$object = (object) array(
'id' => $ticket->id,
'autoclose_sent' => $date->toUnix()
);
JFactory::getDbo()->updateObject('#__rsticketspro_tickets',
$object, array('id'));
RSTicketsProHelper::addHistory($ticket->id, 'notify');
return true;
}
}
public function getTicketTimeSpentIntervals($ticket_id = null) {
if (empty($ticket_id)) {
$ticket = $this->getItem();
$ticket_id = $ticket->id;
}
// if the ticket_id is still not found return null
if (empty($ticket_id)) {
return array();
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('start'))
->select($db->qn('end'))
->select($db->qn('staff_id'))
->select($db->qn('id'))
->from($db->qn('#__rsticketspro_timespent'))
->where($db->qn('ticket_id') . ' = ' .
$db->q($ticket_id));
$db->setQuery($query);
if ($intervals = $db->loadObjectList())
{
// calculate the duration
foreach ($intervals as $interval)
{
if ($interval->end == '0000-00-00 00:00:00')
{
$interval->duration = '0';
}
else
{
$int_start = JFactory::getDate($interval->start);
$int_end = JFactory::getDate($interval->end);
$int_start = $int_start->getTimestamp();
$int_end = $int_end->getTimestamp();
$duration = $int_end - $int_start;
$interval->duration = $duration;
}
if(!empty($interval->staff_id)) {
$interval->staff_member =
$this->getUsername($interval->staff_id);
}
$interval->can_delete =
$this->canDeleteOwnTimeTracking($ticket_id, $interval->id) ||
$this->canDeleteTimeTracking();
}
return $intervals;
}
return array();
}
public function checkIfExistsTimeSpentEntry($ticket_id, $entry_id,
$staff_id = null) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('COUNT(*)')
->from($db->qn('#__rsticketspro_timespent'))
->where($db->qn('ticket_id') . ' = ' .
$db->q($ticket_id))
->where($db->qn('id') . ' = ' .
$db->q($entry_id));
if (!is_null($staff_id))
{
$query->where($db->qn('staff_id') . ' = ' .
$db->q($staff_id));
}
$db->setQuery($query);
$exists = $db->loadResult();
return !empty($exists);
}
protected function getUsername($id) {
static $names = array();
if (!isset($names[$id]))
{
$user = JFactory::getUser($id);
if ($user && !$user->get('guest'))
{
$names[$id] = $user->get('name');
}
else
{
$names[$id] = '';
}
}
return $names[$id];
}
public function clearTimeTracking($ticket_id = null, $id = null) {
if (empty($ticket_id)) {
return;
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->delete($db->qn('#__rsticketspro_timespent'))
->where($db->qn('ticket_id') . ' = ' .
$db->q($ticket_id))
->where($db->qn('end') . ' != ' .
$db->q('0000-00-00 00:00:00'));
if (!empty($id)) {
$query->where($db->qn('id') . ' = ' .
$db->q($id));
}
$db->setQuery($query);
$db->execute();
// update time_spent for the list view
if (!empty($id)) {
$this->remakeTimeSpent($ticket_id, true);
} else {
$object = (object) array(
'id' => $ticket_id,
'time_spent' => 0
);
JFactory::getDbo()->updateObject('#__rsticketspro_tickets',
$object, array('id'));
}
}
public function toggleTime($ticket_id, $state)
{
$isStaff = $this->isStaff();
$enableTimeSpent =
RSTicketsProHelper::getConfig('enable_time_spent');
if ($isStaff && $enableTimeSpent)
{
$db = JFactory::getDbo();
if ($state)
{
$object = (object) array(
'staff_id' => $this->getUser()->id,
'ticket_id' => $ticket_id,
'start' =>
JFactory::getDate('now')->toSql(),
'end' => $db->getNullDate()
);
$db->insertObject('#__rsticketspro_timespent', $object,
'id');
}
else
{
$query = $db->getQuery(true)
->update($db->qn('#__rsticketspro_timespent'))
->set($db->qn('end') . ' = ' .
$db->q(JFactory::getDate('now')->toSql()))
->where($db->qn('ticket_id') . ' = ' .
$db->q($ticket_id))
->where($db->qn('start') . ' != ' .
$db->q($db->getNullDate()))
->where($db->qn('end') . ' = ' .
$db->q($db->getNullDate()));
$db->setQuery($query);
$db->execute();
// update time spent on the ticket based on all the start/stop entries,
only when the state is set to stop (0)
if ($db->getAffectedRows())
{
$this->remakeTimeSpent($ticket_id);
}
}
return true;
}
return false;
}
protected function remakeTimeSpent($ticket_id, $force_zero = false){
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('start'))
->select($db->qn('end'))
->from($db->qn('#__rsticketspro_timespent'))
->where($db->qn('ticket_id') . ' = ' .
$db->q($ticket_id));
$db->setQuery($query);
if ($intervals = $db->loadObjectList())
{
// hold all the seconds
$total_time_sec = 0;
foreach ($intervals as $interval)
{
$int_start = JFactory::getDate($interval->start);
$int_end = JFactory::getDate($interval->end);
$int_start = $int_start->getTimestamp();
$int_end = $int_end->getTimestamp();
$diff = $int_end - $int_start;
$total_time_sec += $diff;
}
if ($total_time_sec > 0)
{
$hours = ($total_time_sec / 60) / 60;
$hours = round($hours);
$minutes = ($total_time_sec / 60) % 60 ;
$minutes = round($minutes);
// 1.3 h (1 hour and 30 minutes) is not as 1.03 h (1 hour and 3
minutes)
if ($minutes < 10)
{
$minutes = '0'.$minutes;
}
$total_time = (float) ($hours.'.'.$minutes);
$object = (object) array(
'id' => $ticket_id,
'time_spent' => $total_time
);
JFactory::getDbo()->updateObject('#__rsticketspro_tickets',
$object, array('id'));
}
}
else if ($force_zero)
{
$object = (object) array(
'id' => $ticket_id,
'time_spent' => 0
);
JFactory::getDbo()->updateObject('#__rsticketspro_tickets',
$object, array('id'));
}
}
public function getTicketSections()
{
$isStaff = $this->isStaff();
$sections = array();
$sections['messages'] =
JText::_('RST_TICKET_MESSAGES');
$sections['info'] =
JText::_('RST_TICKET_INFORMATION');
$enableTimeSpent =
RSTicketsProHelper::getConfig('enable_time_spent');
$showInfo =
RSTicketsProHelper::getConfig('show_ticket_info');
if ($isStaff && $enableTimeSpent)
{
$sections['time'] = JText::_('RST_TIME_SPENT');
}
if ($isStaff && $showInfo)
{
$sections['submitter'] =
JText::_('RST_SUBMITTER_INFORMATION');
}
$sections['custom_fields'] =
JText::_('RST_TICKET_CUSTOM_FIELDS');
if ($isStaff)
{
$sections['history'] =
JText::_('RST_TICKET_HISTORY');
}
return $sections;
}
public function getOtherTickets()
{
$ticket = $this->getItem();
$customer_id = $ticket->customer_id;
$ticket_id = $ticket->id;
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('t.id'))
->select($db->qn('t.subject'))
->select($db->qn('t.replies'))
->select($db->qn('t.code'))
->select($db->qn('t.date'))
->select($db->qn('s.name', 'status_name'))
->from($db->qn('#__rsticketspro_tickets',
't'))
->join('left',
$db->qn('#__rsticketspro_statuses', 's') . ' ON
(' . $db->qn('t.status_id') . '=' .
$db->qn('s.id') . ')')
->where($db->qn('t.id') . '!=' .
$db->q($ticket_id))
->where($db->qn('t.customer_id') . '=' .
$db->q($customer_id))
->order($db->qn('date') . ' ' .
$db->escape('desc'));
$db->setQuery($query);
return $db->loadObjectList();
}
public function getDepartment()
{
// get model
$model = $this->getInstance('Submit',
'RsticketsproModel', array(
'option' => 'com_rsticketspro',
'table_path' => JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/tables'
));
$departments = $model->getDepartments();
$ticket = $this->getItem();
return $departments[$ticket->department_id];
}
public function getDepartments()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$options = array();
$query->select($db->qn('id'))
->select($db->qn('name'))
->from('#__rsticketspro_departments')
->where($db->qn('published') . '=' .
$db->q(1))
->order($db->qn('ordering') . ' ' .
$db->escape('asc'));
$db->setQuery($query);
if ($departments = $db->loadObjectList())
{
foreach ($departments as $department)
{
$tmp = JHtml::_('select.option', $department->id,
JText::_($department->name));
// Add the option object to the result set.
$options[] = $tmp;
}
}
return $options;
}
public function getStatuses()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$options = array();
$query->select($db->qn('id'))
->select($db->qn('name'))
->from('#__rsticketspro_statuses')
->where($db->qn('published') . '=' .
$db->q(1))
->order($db->qn('ordering') . ' ' .
$db->escape('asc'));
$db->setQuery($query);
if ($statuses = $db->loadObjectList())
{
foreach ($statuses as $status)
{
$tmp = JHtml::_('select.option', $status->id,
JText::_($status->name));
// Add the option object to the result set.
$options[] = $tmp;
}
}
return $options;
}
public function getPriorities()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$options = array();
$query->select($db->qn('id'))
->select($db->qn('name'))
->from('#__rsticketspro_priorities')
->where($db->qn('published') . '=' .
$db->q(1))
->order($db->qn('ordering') . ' ' .
$db->escape('asc'));
$db->setQuery($query);
if ($priorities = $db->loadObjectList())
{
foreach ($priorities as $priority)
{
$tmp = JHtml::_('select.option', $priority->id,
JText::_($priority->name));
// Add the option object to the result set.
$options[] = $tmp;
}
}
return $options;
}
public function updateFields($id, $fields)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$ticket = $this->getTicket($id);
foreach ($fields as $field => $value)
{
// convert arrays to strings
if (is_array($value))
{
$value = implode("\n", $value);
}
// get field id
$query->select($db->qn('id'))
->from($db->qn('#__rsticketspro_custom_fields'))
->where($db->qn('name') . '=' .
$db->q($field))
->where($db->qn('department_id') . '=' .
$db->q($ticket->department_id))
->where($db->qn('published') . '=' .
$db->q(1));
$db->setQuery($query);
if ($field_id = $db->loadResult())
{
$query->clear();
$query->select($db->qn('id'))
->from($db->qn('#__rsticketspro_custom_fields_values'))
->where($db->qn('custom_field_id') . '=' .
$db->q($field_id))
->where($db->qn('ticket_id') . '=' .
$db->q($id));
$db->setQuery($query);
$value_id = $db->loadResult();
$table = JTable::getInstance('Customfieldsvalues',
'RsticketsproTable');
$table->save(array(
'id' => $value_id,
'custom_field_id' => $field_id,
'ticket_id' => $id,
'value' => $value
));
}
$query->clear();
}
}
public function updateInfo($id, $data)
{
// bind id to data array
$data['id'] = $id;
// get db object
$db = $this->getDbo();
// original ticket
$original = $this->getTicket($id);
if (empty($data['department_id']))
{
$data['department_id'] = $original->department_id;
}
// department has changed
if (!empty($data['department_id']) &&
$data['department_id'] != $original->department_id)
{
// generate new code based on department
require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/ticket.php';
$data['code'] =
RSTicketsProTicketHelper::generateCode($data['department_id']);
// update custom fields if they match the ones of the new department
$query = $db->getQuery(true);
$query->select($db->qn('v.custom_field_id'))
->select($db->qn('v.value'))
->select($db->qn('cf.type'))
->select($db->qn('cf.name'))
->from($db->qn('#__rsticketspro_custom_fields_values',
'v'))
->join('left',
$db->qn('#__rsticketspro_custom_fields', 'cf') .
' ON (' . $db->qn('cf.id') . '=' .
$db->qn('v.custom_field_id') . ')')
->where($db->qn('v.ticket_id') . '=' .
$db->q($id))
->where($db->qn('cf.published') . '=' .
$db->q(1));
$db->setQuery($query);
if ($currentFields = $this->_db->loadObjectList())
{
foreach ($currentFields as $field)
{
// check if there's a field that matches
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->from($db->qn('#__rsticketspro_custom_fields'))
->where($db->qn('department_id') . '=' .
$db->q($data['department_id']))
->where($db->qn('name') . ' LIKE ' .
$db->q($field->name))
->where($db->qn('published') . '=' .
$db->q(1));
$db->setQuery($query);
// found a field with the same name
if ($found = $db->loadObject())
{
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->from($db->qn('#__rsticketspro_custom_fields_values'))
->where($db->qn('custom_field_id') . '=' .
$db->q($found->id))
->where($db->qn('ticket_id') . '=' .
$db->q($id));
$db->setQuery($query);
// did not find a duplicate
if (!$db->loadResult())
{
// add the new value
$value = JTable::getInstance('Customfieldsvalues',
'RsticketsproTable');
$value->save(array(
'custom_field_id' => $found->id,
'ticket_id' => $id,
'value' => $field->value
));
}
}
}
}
// If assigned staff does not have access to this new department, set it
as unassigned
if ($original->staff_id > 0 &&
!$this->staffHasAccessToDepartment($original->staff_id,
$data['department_id']))
{
// If we change the department & staff member at the same time,
make sure the new staff member has access
if (!empty($data['staff_id']))
{
if (!$this->staffHasAccessToDepartment($data['staff_id'],
$data['department_id']))
{
$data['staff_id'] = 0;
}
}
else
{
$data['staff_id'] = 0;
}
}
// send email to the staff member that gets assigned this ticket
require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/emails.php';
RSTicketsProEmailsHelper::sendEmail('notification_department_change',
array(
'ticket' => $original,
'department_id' => $original->department_id,
'to' => $data['department_id'],
'code' => $data['code']
));
RSTicketsProHelper::saveSystemMessage($id, array(
'type' => 'department',
'from' => $original->department_id,
'to' => $data['department_id'],
));
}
// staff member has changed
if (isset($data['staff_id']) &&
$data['staff_id'] != $original->staff_id)
{
RSTicketsProHelper::saveSystemMessage($id, array(
'type' => 'staff',
'from' => $original->staff_id,
'to' => $data['staff_id'],
));
}
if (!empty($data['staff_id']) &&
$data['staff_id'] != $original->staff_id)
{
if (!$this->staffHasAccessToDepartment($data['staff_id'],
$data['department_id']))
{
unset($data['staff_id']);
JFactory::getApplication()->enqueueMessage(JText::sprintf('RST_COULD_NOT_CHANGE_STAFF_MEMBER_DOES_NOT_BELONG_TO_TICKET_DEPARTMENT',
$original->code), 'warning');
}
else
{
// get department
$department =
RSTicketsProHelper::getDepartment($data['department_id']);
if ($department->notify_assign)
{
// bind new data
$original->bind($data);
// send email to the staff member that gets assigned this ticket
require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/emails.php';
RSTicketsProEmailsHelper::sendEmail('add_ticket_staff',
array(
'ticket' => $original,
'department_id' => $department->id
));
}
}
}
if (isset($data['status_id']) &&
$data['status_id'] != $original->status_id)
{
// add in History
if ($data['status_id'] == RST_STATUS_OPEN)
{
RSTicketsProHelper::addHistory($id, 'reopen');
}
elseif ($data['status_id'] == RST_STATUS_CLOSED)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->clear()
->update($db->qn('#__rsticketspro_tickets'))
->set($db->qn('closed') . ' = ' .
$db->q(JFactory::getDate()->toSql()))
->where($db->qn('id') . ' = ' .
$db->q($id));
$db->setQuery($query);
$db->execute();
RSTicketsProHelper::addHistory($id, 'close');
}
elseif ($data['status_id'] == RST_STATUS_ON_HOLD)
{
RSTicketsProHelper::addHistory($id, 'onhold');
}
// If we've re-opened this ticket, don't close it again.
if ($original->status_id == RST_STATUS_CLOSED)
{
$data['autoclose_sent'] = 0;
}
RSTicketsProHelper::saveSystemMessage($id, array(
'type' => 'status',
'from' => $original->status_id,
'to' => $data['status_id']
));
}
if (isset($data['priority_id']) &&
$data['priority_id'] != $original->priority_id)
{
RSTicketsProHelper::saveSystemMessage($id, array(
'type' => 'priority',
'from' => $original->priority_id,
'to' => $data['priority_id']
));
}
// validate the provided alternative email address if any
if (!empty($data['alternative_email'])) {
// remove any whitespaces
$data['alternative_email'] =
trim($data['alternative_email']);
if (strlen($data['alternative_email']) > 0 &&
!JMailHelper::isEmailAddress($data['alternative_email'])) {
unset($data['alternative_email']);
}
}
$ticket = $this->getTable();
$ticket->save($data);
}
protected function staffHasAccessToDepartment($user_id, $department_id)
{
static $cache;
if (!is_array($cache))
{
$cache = array();
$db = $this->getDbo();
$query = $db->getQuery(true)
->select('*')
->from($db->qn('#__rsticketspro_staff_to_department'));
if ($results = $db->setQuery($query)->loadObjectList())
{
foreach ($results as $result)
{
if (!isset($cache[$result->user_id]))
{
$cache[$result->user_id] = array();
}
$cache[$result->user_id][] = $result->department_id;
}
}
}
if (!isset($cache[$user_id]))
{
return false;
}
return in_array($department_id, $cache[$user_id]);
}
public function reply($id, $data, $files)
{
$model = $this->getInstance('Submit',
'RsticketsproModel');
$departments = $model->getDepartments();
$ticket = $this->getTicket($id);
$department = $departments[$ticket->department_id];
$data['files'] = array();
// let's validate files if the department allows uploads for this
user
if ($department->upload)
{
// too many files
if ($department->upload_files > 0 && count($files) >
$department->upload_files)
{
$files = array_slice($files, 0, $department->upload_files);
}
$upload_extensions = explode(', ',
$department->upload_extensions);
foreach ($files as $file)
{
if ($file['error'] == UPLOAD_ERR_NO_FILE)
{
continue;
}
if ($file['error'] != UPLOAD_ERR_OK)
{
switch ($file['error'])
{
default:
$msg = 'RST_TICKET_UPLOAD_ERROR';
break;
case UPLOAD_ERR_INI_SIZE:
$msg = 'RST_TICKET_UPLOAD_ERROR_INI_SIZE';
break;
case UPLOAD_ERR_FORM_SIZE:
$msg = 'RST_TICKET_UPLOAD_ERROR_FORM_SIZE';
break;
case UPLOAD_ERR_PARTIAL:
$msg = 'RST_TICKET_UPLOAD_ERROR_PARTIAL';
break;
case UPLOAD_ERR_NO_TMP_DIR:
$msg = 'RST_TICKET_UPLOAD_ERROR_NO_TMP_DIR';
break;
case UPLOAD_ERR_CANT_WRITE:
$msg = 'RST_TICKET_UPLOAD_ERROR_CANT_WRITE';
break;
case UPLOAD_ERR_EXTENSION:
$msg = 'RST_TICKET_UPLOAD_ERROR_PHP_EXTENSION';
break;
}
$this->setError(JText::sprintf($msg, $file['name']));
return false;
}
// is this an allowed extension?
if
(!RSTicketsProHelper::isAllowedExtension(RSTicketsProHelper::getExtension($file['name']),
$upload_extensions))
{
$this->setError(JText::sprintf('RST_TICKET_UPLOAD_EXTENSION_ERROR',
$file['name'], $department->upload_extensions));
return false;
}
// check file size
if ($department->upload_size > 0 &&
$file['size'] > $department->upload_size * 1048576)
{
$this->setError(JText::sprintf('RST_TICKET_UPLOAD_SIZE_ERROR',
$file['name'], $department->upload_size));
return;
}
$data['files'][] = array(
'src' => 'upload',
'tmp_name' => $file['tmp_name'],
'name' => $file['name']
);
}
}
// must write a message
if (empty($data['message']))
{
$this->setError(JText::_('RST_TICKET_REPLY_ERROR'));
return false;
}
// Need to check consent
if (RSTicketsProHelper::getConfig('forms_consent')
&& empty($data['consent']))
{
$this->setError(JText::_('COM_RSTICKETSPRO_CONSENT_IS_NEEDED_TO_SUBMIT_THIS_FORM'));
return false;
}
require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/ticket.php';
// trigger event after saving the reply
RSTicketsProHelper::trigger('onBeforeStoreTicketReply',
array($data));
$ticket = new RSTicketsProTicketHelper();
$ticket->bind($data);
if (!$ticket->saveMessage())
{
$this->setError($ticket->getError());
return false;
}
// trigger event after saving the reply
RSTicketsProHelper::trigger('onAfterStoreTicketReply',
array($data));
return true;
}
public function setRating($id, $rating)
{
if ($rating > 5)
{
$rating = 5;
}
if ($rating < 1)
{
$rating = 1;
}
// original ticket
$object = (object) array(
'id' => $id,
'feedback' => $rating
);
JFactory::getDbo()->updateObject('#__rsticketspro_tickets',
$object, array('id'));
}
public function isConvertedToKB($id)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from($db->qn('#__rsticketspro_kb_content'))
->where($db->qn('from_ticket_id') . '=' .
$db->q($id));
$db->setQuery($query);
return $db->loadObject();
}
public function getIsPrint()
{
return
JFactory::getApplication()->input->getInt('print');
}
public function getRSTabs()
{
return new RsticketsproAdapterTabs('com-rsticketspro-ticket');
}
public function getRSAccordion()
{
require_once JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/helpers/adapters/accordion.php';
$tabs = new RSAccordion('com-rsticketspro-ticket');
return $tabs;
}
public function getRSPlain()
{
$plain = new
RsticketsproAdapterPlain('com-rsticketspro-ticket');
return $plain;
}
protected function getId()
{
$input = JFactory::getApplication()->input;
$id = $input->getInt('id', 0);
$cid = $input->getInt('cid', 0);
if (!empty($cid) && empty($id))
{
return $cid;
}
return $id;
}
}PK�(�[E:�SSmodels/ticketmessage.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelTicketmessage extends JModelAdmin
{
public function getTable($type = 'Ticketmessages', $prefix =
'RsticketsproTable', $config = array())
{
return parent::getTable($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.ticketmessage',
'ticketmessage', array('control' =>
'jform', 'load_data' => $loadData));
if (empty($form))
{
return false;
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$app = JFactory::getApplication();
$data =
$app->getUserState('com_rsticketspro.edit.ticketmessage.data',
array());
if (empty($data))
{
$data = $this->getItem();
}
return $data;
}
protected function canDelete($message)
{
$messageUserId = $message->user_id;
$meId = JFactory::getUser()->id;
$isStaff = RSTicketsProHelper::isStaff($meId);
$permissions = RSTicketsProHelper::getCurrentPermissions();
$canDeleteReplies = $permissions->delete_ticket_replies;
$canDeleteCustomerReplies =
$permissions->delete_ticket_replies_customers;
$canDeleteStaffReplies = $permissions->delete_ticket_replies_staff;
return $isStaff && (
($canDeleteReplies && $messageUserId == $meId) ||
($canDeleteCustomerReplies && $messageUserId != $meId &&
!RSTicketsProHelper::isStaff($messageUserId)) ||
($canDeleteStaffReplies && $messageUserId != $meId &&
RSTicketsProHelper::isStaff($messageUserId))
);
}
}PK�(�[΄#8�@�@models/tickets.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelTickets extends JModelList
{
protected $params = null;
protected $_permissions = array();
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'date', 'last_reply', 'flagged',
'code', 'subject', 'customer',
'priority', 'status', 'staff',
'department_id', 'priority_id', 'status_id'
);
if (RSTicketsProHelper::getConfig('enable_time_spent'))
{
$config['filter_fields'][] = 'time_spent';
}
}
parent::__construct($config);
$app = JFactory::getApplication();
$this->params = $app->isClient('site') ?
$app->getParams('com_rsticketspro') : new JRegistry();
$this->setPermissions();
}
public function getBulkForm()
{
// Get the form.
$form = $this->loadForm('com_rsticketspro.tickets',
'tickets', array('control' => null,
'load_data' => false));
if (empty($form))
{
return false;
}
return $form;
}
public function getFilterForm($data = array(), $loadData = true)
{
$form = parent::getFilterForm($data, $loadData);
foreach (array('department_id', 'priority_id',
'status_id') as $key)
{
$$key = $this->getState('filter.' . $key, array());
if (is_array($$key) && count($$key) > 1)
{
$form->setFieldAttribute($key, 'multiple',
'true', 'filter');
$form->setFieldAttribute($key, 'class',
'advancedSelect', 'filter');
}
}
return $form;
}
protected function setPermissions()
{
$this->is_staff = RSTicketsProHelper::isStaff();
$this->_permissions = RSTicketsProHelper::getCurrentPermissions();
}
public function getIsSearching() {
// get filtering states
$search = $this->getState('filter.search');
$flagged = $this->getState('filter.flagged', 0);
$priority_id = $this->getState('filter.priority_id',
array());
$status_id = $this->getState('filter.status_id',
array());
$department_id = $this->getState('filter.department_id',
array());
$customer = $this->getState('filter.customer',
'');
$staff = $this->getState('filter.staff',
'');
return $search != '' || $flagged || $priority_id || $status_id
|| $department_id || $customer != '' || $staff != '';
}
protected function setSearch($values=array()) {
$app = JFactory::getApplication();
if (isset($values['search'])) {
$app->setUserState($this->context.'.filter.search',
$values['search']);
}
if (isset($values['flagged'])) {
$app->setUserState($this->context.'.filter.flagged',
$values['flagged']);
}
if (isset($values['priority_id'])) {
$app->setUserState($this->context.'.filter.priority_id',
$values['priority_id']);
}
if (isset($values['status_id'])) {
$app->setUserState($this->context.'.filter.status_id',
$values['status_id']);
}
if (isset($values['department_id'])) {
$app->setUserState($this->context.'.filter.department_id',
$values['department_id']);
}
if (isset($values['customer'])) {
$app->setUserState($this->context.'.filter.customer',
$values['customer']);
}
if (isset($values['staff'])) {
$app->setUserState($this->context.'.filter.staff',
$values['staff']);
}
if (!empty($values['ordering'])) {
$app->setUserState($this->context.'.ordercol',
$values['ordering']);
}
if (!empty($values['direction'])) {
$app->setUserState($this->context.'.orderdirn',
$values['direction']);
}
// performing a predefined search?
if (isset($values['predefined_search'])) {
$app->setUserState($this->context.'.filter.predefined_search',
$values['predefined_search']);
}
}
public function getPredefinedSearch()
{
return
JFactory::getApplication()->getUserState($this->context.'.filter.predefined_search',
0);
}
public function resetSearch() {
$values = array(
'search' => '',
'flagged' => 0,
'priority_id' => array(),
'status_id' => array(),
'department_id' => array(),
'customer' => '',
'staff' => '',
'predefined_search' => 0,
'ordering' => 'date',
'direction' => 'desc'
);
JFactory::getApplication()->setUserState($this->context.'.limitstart',
0);
$this->setSearch($values);
}
public function performSearch($table) {
$values = array(
'search' => '',
'flagged' => 0,
'priority_id' => array(),
'status_id' => array(),
'department_id' => array(),
'customer' => '',
'staff' => '',
'predefined_search' => $table->id,
'ordering' => 'date',
'direction' => 'desc'
);
if (is_array($table->params)) {
$values = array_merge($values, $table->params);
// legacy
if (isset($values['filter_word'])) {
$values['search'] = $values['filter_word'];
}
}
$this->setSearch($values);
}
public function getSearches() {
$db = $this->getDbo();
$query = $db->getQuery(true);
$user = JFactory::getUser();
$query->select('*')
->from($db->qn('#__rsticketspro_searches'))
->where($db->qn('user_id').'='.$db->q($user->get('id')))
->where($db->qn('published').'='.$db->q(1))
->order($db->qn('ordering').'
'.$db->escape('asc'));
$db->setQuery($query);
$list = $db->loadObjectList();
$current = $this->getPredefinedSearch();
foreach ($list as $k => $item) {
$item->current = $current == $item->id;
$list[$k] = $item;
}
return $list;
}
public function getPermissions() {
$mainframe = JFactory::getApplication();
if ($mainframe->isClient('administrator') &&
empty($this->_permissions))
{
$mainframe->enqueueMessage(JText::_('RST_PERMISSIONS_ERROR'),
'warning');
$mainframe->redirect(RSTicketsProHelper::route('index.php?option=com_rsticketspro',
false));
}
return @$this->_permissions;
}
public function writeCSV($from, $fileHash = '')
{
if (empty($this->_permissions->export_tickets))
{
throw new
Exception(JText::_('RST_STAFF_CANNOT_EXPORT_TICKETS'));
}
require_once
JPATH_COMPONENT_ADMINISTRATOR.'/helpers/export.php';
// setting the function arguments
$query = $this->getListQuery();
$totalItems = (int) $this->getTotalItems();
$filename = JText::_('COM_RSTICKETSPRO_TICKETS');
return RsticketsExport::writeCSV($query, $totalItems, $from, $fileHash,
$filename);
}
protected function getListQuery() {
$db = JFactory::getDbo();
$app = JFactory::getApplication();
$query = $db->getQuery(true);
$user = JFactory::getUser();
// get filtering states
$search = $this->getState('filter.search');
$flagged = $this->getState('filter.flagged', 0);
$priority_id = $this->getState('filter.priority_id',
array());
$status_id = $this->getState('filter.status_id',
array());
$department_id = $this->getState('filter.department_id',
array());
$customer = $this->getState('filter.customer',
'');
$staff = $this->getState('filter.staff',
'');
// Workarounds to accept integers and arrays
foreach (array('department_id', 'priority_id',
'status_id') as $key)
{
if (!is_array($$key))
{
$$key = array($$key);
}
$$key = array_filter($$key);
}
$userInfo = RSTicketsProHelper::getConfig('show_user_info');
$query->select($db->qn('c.' . $userInfo,
'customer'))
->select($db->qn('s.' . $userInfo, 'staff'));
$query->select($db->qn('t').'.*')
->select($db->qn('st.name', 'status'))
->select($db->qn('pr.name', 'priority'))
->from($db->qn('#__rsticketspro_tickets',
't'))
->join('left', $db->qn('#__users',
'c').' ON
('.$db->qn('t.customer_id').'='.$db->qn('c.id').')')
->join('left', $db->qn('#__users',
's').' ON
('.$db->qn('t.staff_id').'='.$db->qn('s.id').')')
->join('left',
$db->qn('#__rsticketspro_statuses', 'st').' ON
('.$db->qn('t.status_id').'='.$db->qn('st.id').')')
->join('left',
$db->qn('#__rsticketspro_priorities', 'pr').'
ON
('.$db->qn('t.priority_id').'='.$db->qn('pr.id').')');
if ($this->is_staff) {
$departments = RSTicketsProHelper::getCurrentDepartments();
$show_filter =
$this->params->get('show_filter','');
if (!empty($departments)) {
if ($show_filter != 'show_assigned' && $show_filter
!= 'show_unassigned') {
$query->where('('.$db->qn('department_id').'
IN ('.$this->quoteImplode($departments).') OR
'.$db->qn('customer_id').'='.$db->q($user->get('id')).')');
} else {
$query->where($db->qn('department_id').' IN
('.$this->quoteImplode($departments).')');
}
}
// do we have a filter set ?
if ($app->isClient('site')) {
if ($show_filter) {
switch ($show_filter)
{
case 'show_assigned':
$query->where($db->qn('staff_id').'='.$db->q($user->get('id')));
break;
case 'show_submitted':
$query->where($db->qn('customer_id').'='.$db->q($user->get('id')));
break;
case 'show_both':
$query->where('('.$db->qn('staff_id').'='.$db->q($user->get('id')).'
OR
'.$db->qn('customer_id').'='.$db->q($user->get('id')).')');
break;
case 'show_unassigned':
$query->where($db->qn('staff_id').'='.$db->q(0));
break;
}
}
}
// can't see unassigned tickets
if (!$this->_permissions->see_unassigned_tickets) {
$query->where($db->qn('staff_id').'>'.$db->q(0));
}
// can't see other (assigned) tickets
if (!$this->_permissions->see_other_tickets) {
$staffIds = array(
$db->q(0),
$db->q($user->get('id'))
);
$query->where($db->qn('staff_id').' IN
('.implode(', ', $staffIds).')');
}
// searching for flagged?
if ($flagged) {
$query->where($db->qn('flagged').'='.$db->q(1));
}
} else {
$query->where($db->qn('customer_id').'='.$db->q($user->get('id')));
}
if ($app->isClient('site')) {
// showing a specific priority?
if ($this->params->get('default_priority') &&
empty($priority_id)) {
$default_priority =
$this->params->get('default_priority');
if (is_array($default_priority)) {
$query->where($db->qn('priority_id').' IN
('.$this->quoteImplode($default_priority).')');
}
}
// showing a specific status?
if ($this->params->get('default_status') &&
empty($status_id)) {
$default_status =
$this->params->get('default_status');
if (is_array($default_status)) {
$query->where($db->qn('status_id').' IN
('.$this->quoteImplode($default_status).')');
}
}
}
// priority search
if (!empty($priority_id)) {
$query->where($db->qn('priority_id').' IN
('.$this->quoteImplode($priority_id).')');
}
// status search
if (!empty($status_id)) {
$query->where($db->qn('status_id').' IN
('.$this->quoteImplode($status_id).')');
}
// are we searching?
if ($search != '') {
$search = $db->q('%'.str_replace(' ',
'%', $db->escape($search, true)).'%', false);
$subquery = $db->getQuery(true);
$subquery->select($db->qn('ticket_id'))
->from($db->qn('#__rsticketspro_ticket_messages'))
->where($db->qn('user_id').'!='.$db->q('-1'))
->where($db->qn('message').' LIKE
'.$search);
$query->where('('.$db->qn('code').' LIKE
'.$search.' OR '.$db->qn('subject').' LIKE
'.$search.' OR '.$db->qn('t.id').' IN
('.(string) $subquery.'))');
}
// specific customer?
if ($customer) {
// let's see if it's ID:number
if (substr($customer, 0, strlen('ID:')) == 'ID:') {
$parts = explode(':', $customer, 2);
$id = (int) $parts[1];
$query->where($db->qn('customer_id').'='.$db->q($id));
} else {
$customer = $db->q('%'.str_replace(' ',
'%', $db->escape($customer, true)).'%', false);
$query->where('('.$db->qn('c.username').'
LIKE '.$customer.' OR
'.$db->qn('c.name').' LIKE '.$customer.'
OR '.$db->qn('c.email').' LIKE
'.$customer.')');
}
}
// specific staff member?
if ($staff || $staff === '0') {
// legacy
if ($staff === '0') {
$staff = 'ID:0';
}
// let's see if it's ID:number
if (substr($staff, 0, strlen('ID:')) == 'ID:') {
$parts = explode(':', $staff, 2);
$id = (int) $parts[1];
$query->where($db->qn('staff_id').'='.$db->q($id));
} else {
$staff = $db->q('%'.str_replace(' ',
'%', $db->escape($staff, true)).'%', false);
$query->where('('.$db->qn('s.username').'
LIKE '.$staff.' OR '.$db->qn('s.name').'
LIKE '.$staff.' OR '.$db->qn('s.email').'
LIKE '.$staff.')');
}
}
if ($department_id) {
$query->where($db->qn('department_id').' IN
('.$this->quoteImplode($department_id).')');
}
$ordering = $this->getState('list.ordering',
'date');
$dir = $this->getState('list.direction',
'desc');
// order by
switch ($ordering)
{
case 'priority':
$values = array();
$priorities = $this->getPriorities($dir);
foreach ($priorities as $priority)
{
$values[] = $priority->name;
}
$query->order('FIELD(' . $db->qn($ordering) . ',
' . $this->quoteImplode($values) . ')');
break;
case 'status':
$values = array();
$statuses = $this->getStatuses($dir);
foreach ($statuses as $status)
{
$values[] = $status->name;
}
$query->order('FIELD(' . $db->qn($ordering) . ',
' . $this->quoteImplode($values) . ')');
break;
default:
$query->order($db->qn($ordering).'
'.$db->escape($dir));
break;
}
return $query;
}
protected function quoteImplode($array) {
$db = JFactory::getDbo();
foreach ($array as $k => $v) {
$array[$k] = $db->q($v);
}
return implode(',', $array);
}
protected function populateState($ordering = null, $direction = null)
{
// Status ID
$this->setState('filter.status_id',
$this->getUserStateFromRequest($this->context.'.filter.status_id',
'status_id', array(), 'array', false));
// Department ID
$this->setState('filter.department_id',
$this->getUserStateFromRequest($this->context.'.filter.department_id',
'department_id', array(), 'array', false));
// Priority ID
$this->setState('filter.priority_id',
$this->getUserStateFromRequest($this->context.'.filter.priority_id', 'priority_id',
array(), 'array', false));
// Flagged fix
$flagged =
JFactory::getApplication()->input->get('flagged', null,
'none');
if (!$flagged)
{
JFactory::getApplication()->input->set('flagged', 0);
}
$this->setState('filter.flagged',
$this->getUserStateFromRequest($this->context.'.filter.flagged',
'flagged', 0, 'none', true));
// Search keyword
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context.'.filter.search',
'filter_search', '', 'none', true));
// Customer
$this->setState('filter.customer',
$this->getUserStateFromRequest($this->context.'.filter.customer',
'customer', '', 'none', true));
// Staff
$this->setState('filter.staff',
$this->getUserStateFromRequest($this->context.'.filter.staff',
'staff', '', 'none', true));
// List state information.
$column = $this->params->get('orderby',
'date');
$dir = $this->params->get('direction',
'desc');
parent::populateState($column, $dir);
}
public function getPriorities($dir = 'asc') {
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from($db->qn('#__rsticketspro_priorities'))
->where($db->qn('published').'='.$db->q(1))
->order($db->qn('ordering').'
'.$db->escape($dir));
$db->setQuery($query);
return $db->loadObjectList();
}
public function getStatuses($dir = 'asc') {
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select('*')
->from($db->qn('#__rsticketspro_statuses'))
->where($db->qn('published').'='.$db->q(1))
->order($db->qn('ordering').'
'.$db->escape($dir));
$db->setQuery($query);
return $db->loadObjectList();
}
public function getStart() {
$app = JFactory::getApplication();
if ($app->isClient('site')) {
return $app->input->get('limitstart', 0,
'uint');
} else {
return parent::getStart();
}
}
public function getTotalItems() {
$query = $this->getListQuery();
$db = JFactory::getDbo();
$query->clear('select')
->clear('order')
->select('COUNT('.$db->qn('t.id').')');
return (int) $db->setQuery($query)->loadResult();
}
}PK�(�[�
�e�
�
models/users.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproModelUsers extends JModelList
{
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'id', 'name', 'username',
'email'
);
}
parent::__construct($config);
}
protected function populateState($ordering = 'name', $direction
= 'asc')
{
// Load the filter state.
$this->setState('filter.search',
$this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search'));
// List state information.
parent::populateState($ordering, $direction);
}
protected function getListQuery()
{
// create a new query object.
$db = $this->getDbo();
$query = $db->getQuery(true);
// get current user
$user = JFactory::getUser();
// get current permissions
$permissions = RSTicketsProHelper::getCurrentPermissions();
// select the required fields from the table.
$query->select($db->qn('id'))
->select($db->qn('name'))
->select($db->qn('username'))
->select($db->qn('email'))
->from($db->qn('#__users'));
// not allowed to add his own tickets
if (!$permissions || !$permissions->add_ticket)
{
$query->where($db->qn('id').'!='.$db->q($user->get('id')));
}
// not allowed to add tickets on behalf of customers
if (!$permissions || !$permissions->add_ticket_customers)
{
$subquery = $db->getQuery(true);
$subquery->select($db->qn('user_id'))
->from($db->qn('#__rsticketspro_staff'));
$query->where($db->qn('id').' IN ('.(string)
$subquery.')');
}
// not allowed to add tickets on behalf of other staff members
if (!$permissions || !$permissions->add_ticket_staff)
{
$subquery = $db->getQuery(true);
$subquery->select($db->qn('user_id'))
->from($db->qn('#__rsticketspro_staff'));
// special condition here - if the staff can submit tickets on his own
we need to exclude him from the list of staff members
if ($permissions && $permissions->add_ticket)
{
$subquery->where($db->qn('user_id').'!='.$db->q($user->get('id')));
}
$query->where($db->qn('id').' NOT IN
('.(string) $subquery.')');
}
// Filter the items over the search string if set.
$search = $this->getState('filter.search');
if (strlen($search))
{
if (stripos($search, 'id:') === 0)
{
$query->where($db->qn('id') . ' = ' . (int)
substr($search, 3));
}
else
{
// Escape the search token.
$token = $db->q('%' . str_replace(' ',
'%', $db->escape($search, true)) . '%', false);
// Compile the different search clauses.
$searches = array();
$searches[] = $db->qn('name').' LIKE ' .
$token;
$searches[] = $db->qn('username').' LIKE ' .
$token;
$searches[] = $db->qn('email').' LIKE ' .
$token;
// Add the clauses to the query.
$query->where('(' . implode(' OR ', $searches) .
')');
}
}
// Add the list ordering clause.
$query->order($db->escape($this->getState('list.ordering',
'name')) . ' ' .
$db->escape($this->getState('list.direction',
'ASC')));
return $query;
}
public function getField()
{
return
JFactory::getApplication()->input->getCmd('field');
}
}PK�(�[ډ����rsticketspro.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// Access check.
$user = JFactory::getUser();
if (!$user->authorise('core.manage',
'com_rsticketspro'))
{
throw new Exception(JText::_('JERROR_ALERTNOAUTHOR'), 403);
}
$lang = JFactory::getLanguage();
// load frontend
$lang->load('com_rsticketspro', JPATH_SITE, 'en-GB',
true);
$lang->load('com_rsticketspro', JPATH_SITE,
$lang->getDefault(), true);
$lang->load('com_rsticketspro', JPATH_SITE, null, true);
// load backend
$lang->load('com_rsticketspro', JPATH_ADMINISTRATOR,
'en-GB', true);
$lang->load('com_rsticketspro', JPATH_ADMINISTRATOR,
$lang->getDefault(), true);
$lang->load('com_rsticketspro', JPATH_ADMINISTRATOR, null,
true);
// Require helper files
require_once __DIR__ . '/helpers/adapter.php';
require_once __DIR__ . '/helpers/rsticketspro.php';
require_once __DIR__ . '/helpers/toolbar.php';
JHtml::_('jquery.framework', true);
JHtml::_('stylesheet',
'com_rsticketspro/rsticketspro.css', array('relative'
=> true, 'version' => 'auto'));
JHtml::_('stylesheet', 'com_rsticketspro/icons.css',
array('relative' => true, 'version' =>
'auto'));
JHtml::_('script', 'com_rsticketspro/rsticketspro.js',
array('relative' => true, 'version' =>
'auto'));
if (version_compare(JVERSION, '4.0', '>='))
{
JHtml::_('stylesheet', 'com_rsticketspro/style40.css',
array('relative' => true, 'version' =>
'auto'));
}
else
{
JHtml::_('stylesheet', 'com_rsticketspro/style30.css',
array('relative' => true, 'version' =>
'auto'));
}
// Require the base controller
require_once __DIR__ . '/controller.php';
$controller = JControllerLegacy::getInstance('Rsticketspro');
$task = JFactory::getApplication()->input->get('task');
$controller->execute($task);
$controller->redirect();PK�(�[�|N`��rsticketspro.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension type="component" version="3.7.0"
method="upgrade">
<name>com_rsticketspro</name>
<creationDate>March 2015</creationDate>
<author>RSJoomla!</author>
<copyright>(C) 2010-2019 www.rsjoomla.com</copyright>
<license>http://www.gnu.org/copyleft/gpl.html
GNU/GPL</license>
<authorEmail>support@rsjoomla.com</authorEmail>
<authorUrl>www.rsjoomla.com</authorUrl>
<version>3.0.1</version>
<description>COM_RSTICKETSPRO_INSTALL_DESC</description>
<scriptfile>script.rsticketspro.php</scriptfile>
<updateservers>
<server type="extension" priority="1"
name="RSTickets!
Pro">https://www.rsjoomla.com/updates/com_rsticketspro/Component/com_rsticketspro_2.5-3.0.xml</server>
</updateservers>
<install>
<sql>
<file driver="mysql"
charset="utf8">sql/install.sql</file>
<file driver="mysql"
charset="utf8">sql/sample.sql</file>
</sql>
</install>
<uninstall>
<sql>
<file driver="mysql"
charset="utf8">sql/uninstall.sql</file>
</sql>
</uninstall>
<files folder="site">
<filename>controller.php</filename>
<filename>index.html</filename>
<filename>router.php</filename>
<filename>rsticketspro.php</filename>
<folder>assets</folder>
<folder>controllers</folder>
<folder>models</folder>
<folder>views</folder>
</files>
<media destination="com_rsticketspro"
folder="media">
<folder>css</folder>
<folder>images</folder>
<folder>js</folder>
<filename>index.html</filename>
</media>
<languages folder="site/language">
<language
tag="en-GB">en-GB/en-GB.com_rsticketspro.ini</language>
</languages>
<administration>
<menu>RSTicketsPro</menu>
<submenu>
<menu
link="option=com_rsticketspro">COM_RSTICKETSPRO_OVERVIEW</menu>
<menu
view="tickets">COM_RSTICKETSPRO_MANAGE_TICKETS</menu>
<menu
view="departments">COM_RSTICKETSPRO_DEPARTMENTS</menu>
<menu
view="customfields">COM_RSTICKETSPRO_CUSTOM_FIELDS</menu>
<menu
view="groups">COM_RSTICKETSPRO_GROUPS</menu>
<menu
view="staffs">COM_RSTICKETSPRO_STAFF_MEMBERS</menu>
<menu
view="priorities">COM_RSTICKETSPRO_PRIORITIES</menu>
<menu
view="statuses">COM_RSTICKETSPRO_STATUSES</menu>
<menu
view="emails">COM_RSTICKETSPRO_EMAIL_MESSAGES</menu>
<menu
view="configuration">COM_RSTICKETSPRO_CONFIGURATION</menu>
<menu
view="kbcategories">COM_RSTICKETSPRO_KB_CATEGORIES</menu>
<menu
view="kbarticles">COM_RSTICKETSPRO_KB_ARTICLES</menu>
<menu
view="kbrules">COM_RSTICKETSPRO_KB_CONVERSION_RULES</menu>
</submenu>
<files folder="admin">
<filename>access.xml</filename>
<filename>config.xml</filename>
<filename>controller.php</filename>
<filename>index.html</filename>
<filename>rsticketspro.php</filename>
<folder>controllers</folder>
<folder>helpers</folder>
<folder>models</folder>
<folder>sql</folder>
<folder>tables</folder>
<folder>views</folder>
</files>
<languages folder="admin/language">
<language
tag="en-GB">en-GB/en-GB.com_rsticketspro.ini</language>
<language
tag="en-GB">en-GB/en-GB.com_rsticketspro.sys.ini</language>
</languages>
</administration>
</extension>PK�(�[Y���JJscript.rsticketspro.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class com_rsticketsproInstallerScript
{
protected $plugins = array(
array('element' => 'rsticketspro',
'type' => 'plugin', 'folder' =>
'system', 'source' => 'plg_system',
'name' => 'System - RSTickets! Pro Plugin'),
array('element' => 'rsticketspro',
'type' => 'plugin', 'folder' =>
'user', 'source' => 'plg_user',
'name' => 'User - RSTickets! Pro Staff'),
array('element' => 'rsticketspro',
'type' => 'plugin', 'folder' =>
'privacy', 'source' =>
'plg_rsticketsproprivacy', 'name' => 'Privacy -
RSTickets! Pro'),
array('element' => 'rsticketspro',
'type' => 'plugin', 'folder' =>
'installer', 'source' => 'plg_installer',
'name' => 'Installer - RSTickets! Pro'),
array('element' => 'rsticketsprocontent',
'type' => 'plugin', 'folder' =>
'search', 'source' => 'plg_search',
'name' => 'Search - RSTickets! Pro Knowledgebase'),
);
public function uninstall($parent)
{
// Get Dbo
$db = JFactory::getDbo();
// Get a new installer
foreach ($this->plugins as $plugin)
{
$query = $db->getQuery(true)
->select($db->qn('extension_id'))
->from($db->qn('#__extensions'))
->where($db->qn('element') . ' = ' .
$db->q($plugin['element']))
->where($db->qn('type') . ' = ' .
$db->q($plugin['type']))
->where($db->qn('folder') . ' = ' .
$db->q($plugin['folder']));
if ($extension_id = $db->setQuery($query)->loadResult())
{
$installer = new JInstaller();
$installer->uninstall('plugin', $extension_id);
}
}
}
public function preflight($type, $parent) {
$jversion = new JVersion();
if (!$jversion->isCompatible('3.8.0')) {
JFactory::getApplication()->enqueueMessage('Please upgrade to at
least Joomla! 3.8.0 before continuing!', 'error');
return false;
}
return true;
}
public function postflight($type, $parent)
{
if ($type == 'uninstall')
{
return true;
}
$db = JFactory::getDbo();
$this->source =
$parent->getParent()->getPath('source');
$messages = array(
'plugins' => array()
);
foreach ($this->plugins as $plugin)
{
$tmp = (object) array(
'name' => $plugin['name'],
'status' => 'not-ok',
'text' => 'Not installed'
);
$installer = new JInstaller();
if ($installer->install($this->source . '/other/' .
$plugin['source']))
{
$query = $db->getQuery(true)
->update('#__extensions')
->set($db->qn('enabled').'='.$db->q(1))
->where($db->qn('element') . ' = ' .
$db->q($plugin['element']))
->where($db->qn('type') . ' = ' .
$db->q($plugin['type']))
->where($db->qn('folder') . ' = ' .
$db->q($plugin['folder']));
$db->setQuery($query)->execute();
$tmp->status = 'ok';
$tmp->text = 'Installed';
}
$messages['plugins'][] = $tmp;
}
if
(file_exists(JPATH_SITE.'/plugins/user/rsticketspro/rsticketspro.php'))
{
require_once JPATH_SITE .
'/plugins/user/rsticketspro/rsticketspro.php';
if (class_exists('plgUserRsticketspro'))
{
plgUserRsticketspro::onUserLogin($user=array(), $options=array());
}
}
if ($type == 'update')
{
$this->updateProcess();
$sqlfile = JPATH_ADMINISTRATOR .
'/components/com_rsticketspro/sql/install.sql';
$buffer = file_get_contents($sqlfile);
if ($buffer === false)
{
JFactory::getApplication()->enqueueMessage(JText::_('JLIB_INSTALLER_ERROR_SQL_READBUFFER'),
'warning');
}
else
{
// Process each query in the $queries array (split out of sql file).
if ($queries = $db->splitSql($buffer))
{
foreach ($queries as $query)
{
$db->setQuery($query);
try
{
$db->execute();
}
catch (Exception $e)
{
JFactory::getApplication()->enqueueMessage(JText::sprintf('JLIB_INSTALLER_ERROR_SQL_ERROR',
$e->getMessage()), 'warning');
}
}
}
}
}
$this->showInstallMessage($messages);
return true;
}
protected function escape($string) {
return htmlentities($string, ENT_COMPAT, 'utf-8');
}
protected function isColumnInt($column) {
return substr(strtolower($column), 0, 3) == 'int';
}
protected function updateProcess() {
$db = JFactory::getDbo();
// #__rsticketspro_kb_content updates
$columns =
$db->getTableColumns('#__rsticketspro_kb_content');
if ($this->isColumnInt($columns['created'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_kb_content CHANGE
`created` `created` VARCHAR(255) NOT NULL");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_kb_content SET `created` =
IFNULL(CONVERT_TZ(FROM_UNIXTIME(".$db->qn('created')."),
@@session.time_zone, 'UTC'),
FROM_UNIXTIME(".$db->qn('created')."))");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_kb_content SET `created` =
'0000-00-00 00:00:00' WHERE `created` LIKE
'1970-01-01%'");
$db->execute();
$db->setQuery("ALTER TABLE #__rsticketspro_kb_content CHANGE
`created` ".$db->qn('created')." DATETIME NOT NULL
DEFAULT '0000-00-00 00:00:00'");
$db->execute();
}
if ($this->isColumnInt($columns['modified'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_kb_content CHANGE
`modified` `modified` VARCHAR(255) NOT NULL");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_kb_content SET `modified`
=
IFNULL(CONVERT_TZ(FROM_UNIXTIME(".$db->qn('modified')."),
@@session.time_zone, 'UTC'),
FROM_UNIXTIME(".$db->qn('modified')."))");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_kb_content SET `modified`
= '0000-00-00 00:00:00' WHERE `modified` LIKE
'1970-01-01%'");
$db->execute();
$db->setQuery("ALTER TABLE #__rsticketspro_kb_content CHANGE
`modified` ".$db->qn('modified')." DATETIME NOT NULL
DEFAULT '0000-00-00 00:00:00'");
$db->execute();
}
// #__rsticketspro_ticket_notes updates
$columns =
$db->getTableColumns('#__rsticketspro_ticket_notes');
if ($this->isColumnInt($columns['date'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_ticket_notes CHANGE
`date` `date` VARCHAR(255) NOT NULL");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_ticket_notes SET `date` =
IFNULL(CONVERT_TZ(FROM_UNIXTIME(".$db->qn('date')."),
@@session.time_zone, 'UTC'),
FROM_UNIXTIME(".$db->qn('date')."))");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_ticket_notes SET `date` =
'0000-00-00 00:00:00' WHERE `date` LIKE
'1970-01-01%'");
$db->execute();
$db->setQuery("ALTER TABLE #__rsticketspro_ticket_notes CHANGE
`date` ".$db->qn('date')." DATETIME NOT NULL DEFAULT
'0000-00-00 00:00:00'");
$db->execute();
}
// #__rsticketspro_ticket_history updates
$columns =
$db->getTableColumns('#__rsticketspro_ticket_history');
if ($this->isColumnInt($columns['date'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_ticket_history CHANGE
`date` `date` VARCHAR(255) NOT NULL");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_ticket_history SET `date`
=
IFNULL(CONVERT_TZ(FROM_UNIXTIME(".$db->qn('date')."),
@@session.time_zone, 'UTC'),
FROM_UNIXTIME(".$db->qn('date')."))");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_ticket_history SET `date`
= '0000-00-00 00:00:00' WHERE `date` LIKE
'1970-01-01%'");
$db->execute();
$db->setQuery("ALTER TABLE #__rsticketspro_ticket_history CHANGE
`date` ".$db->qn('date')." DATETIME NOT NULL DEFAULT
'0000-00-00 00:00:00'");
$db->execute();
}
if (!isset($columns['type'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_ticket_history ADD
`type` VARCHAR(64) NOT NULL AFTER `date`");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_ticket_history SET `type`
= 'view' WHERE `type`= ''");
$db->execute();
}
// #__rsticketspro_tickets updates
$columns = $db->getTableColumns('#__rsticketspro_tickets');
if ($this->isColumnInt($columns['date'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_tickets CHANGE `date`
`date` VARCHAR(255) NOT NULL");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_tickets SET `date` =
IFNULL(CONVERT_TZ(FROM_UNIXTIME(".$db->qn('date')."),
@@session.time_zone, 'UTC'),
FROM_UNIXTIME(".$db->qn('date')."))");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_tickets SET `date` =
'0000-00-00 00:00:00' WHERE `date` LIKE
'1970-01-01%'");
$db->execute();
$db->setQuery("ALTER TABLE #__rsticketspro_tickets CHANGE `date`
".$db->qn('date')." DATETIME NOT NULL DEFAULT
'0000-00-00 00:00:00'");
$db->execute();
}
if (!isset($columns['closed'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_tickets ADD `closed`
DATETIME NOT NULL AFTER `autoclose_sent`");
$db->execute();
}
if (!isset($columns['followup_sent'])){
$db->setQuery("ALTER TABLE #__rsticketspro_tickets ADD
`followup_sent` TINYINT NOT NULL DEFAULT '0' AFTER
`feedback`");
$db->execute();
}
if (!isset($columns['alternative_email'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_tickets ADD
`alternative_email` VARCHAR(255) NOT NULL AFTER `date`");
$db->execute();
}
if ($this->isColumnInt($columns['last_reply'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_tickets CHANGE
`last_reply` `last_reply` VARCHAR(255) NOT NULL");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_tickets SET `last_reply` =
IFNULL(CONVERT_TZ(FROM_UNIXTIME(".$db->qn('last_reply')."),
@@session.time_zone, 'UTC'),
FROM_UNIXTIME(".$db->qn('last_reply')."))");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_tickets SET `last_reply` =
'0000-00-00 00:00:00' WHERE `last_reply` LIKE
'1970-01-01%'");
$db->execute();
$db->setQuery("ALTER TABLE #__rsticketspro_tickets CHANGE
`last_reply` ".$db->qn('last_reply')." DATETIME NOT
NULL DEFAULT '0000-00-00 00:00:00'");
$db->execute();
}
// #__rsticketspro_ticket_messages updates
$columns =
$db->getTableColumns('#__rsticketspro_ticket_messages');
if ($this->isColumnInt($columns['date'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_ticket_messages
CHANGE `date` `date` VARCHAR(255) NOT NULL");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_ticket_messages SET `date`
=
IFNULL(CONVERT_TZ(FROM_UNIXTIME(".$db->qn('date')."),
@@session.time_zone, 'UTC'),
FROM_UNIXTIME(".$db->qn('date')."))");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_ticket_messages SET `date`
= '0000-00-00 00:00:00' WHERE `date` LIKE
'1970-01-01%'");
$db->execute();
$db->setQuery("ALTER TABLE #__rsticketspro_ticket_messages
CHANGE `date` ".$db->qn('date')." DATETIME NOT NULL
DEFAULT '0000-00-00 00:00:00'");
$db->execute();
}
if (!isset($columns['html'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_ticket_messages ADD
`html` TINYINT( 1 ) NOT NULL ");
$db->execute();
$db->setQuery("SELECT `value` FROM #__rsticketspro_configuration
WHERE `name` = 'allow_rich_editor'");
$allow_rich_editor = $db->loadResult();
$db->setQuery("UPDATE #__rsticketspro_ticket_messages SET `html`
= '".($allow_rich_editor ? 1 : 2)."'");
$db->execute();
}
if (!isset($columns['submitted_by_staff'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_ticket_messages ADD
`submitted_by_staff` INT(11) NOT NULL ");
$db->execute();
}
// #__rsticketspro_emails updates
$columns = $db->getTableColumns('#__rsticketspro_emails');
if (!isset($columns['id'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_emails DROP PRIMARY
KEY");
$db->execute();
$db->setQuery("ALTER TABLE #__rsticketspro_emails ADD `id` INT
NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST");
$db->execute();
$db->setQuery("ALTER TABLE `#__rsticketspro_emails` ADD UNIQUE
(`lang`,`type`)");
$db->execute();
}
if (!isset($columns['published'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_emails ADD
`published` tinyint(1) NOT NULL DEFAULT '1' AFTER
`message`");
$db->execute();
}
$columns =
$db->getTableColumns('#__rsticketspro_departments');
if (!isset($columns['download_type'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_departments ADD
`download_type` VARCHAR( 255 ) NOT NULL DEFAULT 'attachment'
AFTER `upload_files`");
$db->execute();
}
if (!isset($columns['upload_ticket_required'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_departments
ADD `upload_ticket_required` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT
'0' AFTER `upload`");
$db->execute();
}
if (!isset($columns['jgroups']))
{
$db->setQuery("ALTER TABLE #__rsticketspro_departments ADD
`jgroups` MEDIUMTEXT NOT NULL AFTER `predefined_subjects`");
$db->execute();
}
// #__rsticketspro_searches updates$download_type
$columns =
$db->getTableColumns('#__rsticketspro_searches');
if (!isset($columns['published'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_searches ADD
`published` TINYINT( 1 ) NOT NULL AFTER `default`");
$db->execute();
$db->setQuery("UPDATE #__rsticketspro_searches SET `published` =
1");
$db->execute();
}
// #__rsticketspro_kb_categories updates
$columns =
$db->getTableColumns('#__rsticketspro_kb_categories', false);
if ($columns['thumb']->Type == 'varchar(16)') {
$db->setQuery("ALTER TABLE `#__rsticketspro_kb_categories`
CHANGE `thumb` `thumb` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE
utf8_general_ci NOT NULL");
$db->execute();
}
// #__rsticketspro_groups updates
$columns = $db->getTableColumns('#__rsticketspro_groups');
if (!isset($columns['export_tickets'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_groups ADD
`export_tickets` TINYINT( 1 ) NOT NULL");
$db->execute();
}
// #__rsticketspro_staff updates
$columns = $db->getTableColumns('#__rsticketspro_staff');
if (!isset($columns['exclude_auto_assign'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_staff ADD
`exclude_auto_assign` TINYINT( 1 ) NOT NULL DEFAULT '0'");
$db->execute();
}
if (!isset($columns['can_delete_time_history'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_staff ADD
`can_delete_time_history` TINYINT( 1 ) NOT NULL DEFAULT
'0'");
$db->execute();
}
if (!isset($columns['can_delete_own_time_history'])) {
$db->setQuery("ALTER TABLE #__rsticketspro_staff ADD
`can_delete_own_time_history` TINYINT( 1 ) NOT NULL DEFAULT
'0'");
$db->execute();
}
// #__menu update
$db->setQuery("SELECT `id` FROM #__menu WHERE `link` LIKE
'index.php?option=com_rsticketspro&view=searches'");
if ($predefinedSearches = $db->loadColumn()) {
foreach ($predefinedSearches as $search) {
$db->setQuery("UPDATE `#__menu` SET `link` =
".$db->q('index.php?option=com_rsticketspro&view=predefinedsearches')."
WHERE `id` = ".(int) $search." ");
$db->execute();
}
}
// Department relations has changed
$tables = $db->getTableList();
if (in_array($db->getPrefix() .
'rsticketspro_departments_relations', $tables))
{
$db->setQuery("SELECT * FROM
#__rsticketspro_departments_relations");
if ($results = $db->loadObjectList())
{
$departments = array();
foreach ($results as $result)
{
if (!isset($departments[$result->department_id]))
{
$departments[$result->department_id] = array();
}
$departments[$result->department_id][] = $result->jgroup_id;
}
if ($departments)
{
foreach ($departments as $department_id => $groups)
{
$db->setQuery("UPDATE #__rsticketspro_departments SET jgroups
= " . $db->q(json_encode($groups)) . " WHERE id = " .
$db->q($department_id))->execute();
}
}
}
$db->dropTable('#__rsticketspro_departments_relations');
}
$db->setQuery("UPDATE #__rsticketspro_configuration SET `value` =
'100' WHERE `name` = 'export_limit' AND `value` =
''");
$db->execute();
$db->setQuery("UPDATE #__menu SET `link` =
'index.php?option=com_rsticketspro&view=tickets' WHERE
`client_id` = '0' AND `link` =
'index.php?option=com_rsticketspro&view=rsticketspro'");
$db->execute();
if (JFolder::exists(JPATH_SITE .
'/components/com_rsticketspro/views/rsticketspro'))
{
JFolder::delete(JPATH_SITE .
'/components/com_rsticketspro/views/rsticketspro');
}
}
protected function showInstallMessage($messages=array()) {
?>
<style type="text/css">
.version-history {
margin: 0 0 2em 0;
padding: 0;
list-style-type: none;
}
.version-history > li {
margin: 0 0 0.5em 0;
padding: 0 0 0 4em;
}
.version-new,
.version-fixed,
.version-upgraded {
float: left;
font-size: 0.8em;
margin-left: -4.9em;
width: 4.5em;
color: white;
text-align: center;
font-weight: bold;
text-transform: uppercase;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.version-new {
background: #7dc35b;
}
.version-fixed {
background: #e9a130;
}
.version-upgraded {
background: #61b3de;
}
.install-ok {
background: #7dc35b;
color: #fff;
padding: 3px;
}
.install-not-ok {
background: #E9452F;
color: #fff;
padding: 3px;
}
.install-warning {
background: #EFBB67;
color: #fff;
padding: 3px;
}
.rsticketspro-row {
width: 100%;
display: block;
margin-bottom: 2%;
}
.rsticketspro-row:after {
clear: both;
display: block;
content: "";
}
.rsticketspro-column-2 {
width: 19%;
margin-right: 1%;
float: left;
}
.rsticketspro-column-10 {
width: 80%;
float: left;
}
</style>
<div class="rsticketspro-row">
<div class="rsticketspro-column-2">
<?php echo JHtml::_('image',
'com_rsticketspro/admin/rstickets-pro-box.png', 'RSTickets!
Pro Box', array(), true); ?>
</div>
<div class="rsticketspro-column-10">
<?php if ($messages['plugins']) { ?>
<?php foreach ($messages['plugins'] as $plugin) { ?>
<p><?php echo $this->escape($plugin->name); ?> ...
<b class="install-<?php echo $plugin->status;
?>"><?php echo $plugin->text; ?></b>
</p>
<?php } ?>
<?php } ?>
<h2>Changelog v3.0.1</h2>
<ul class="version-history">
<li><span class="version-fixed">Fix</span>
An error could show up when editing a 'Predefined
Search'.</li>
</ul>
<p>
<a class="btn btn-large btn-primary"
href="index.php?option=com_rsticketspro">Start using
RSTickets! Pro</a>
<a class="btn btn-secondary"
href="https://www.rsjoomla.com/support/documentation/rsticketspro.html"
target="_blank">Read the RSTickets! Pro User Guide</a>
<a class="btn btn-secondary"
href="https://www.rsjoomla.com/support.html"
target="_blank">Get Support!</a>
</p>
</div>
</div>
<?php
}
}PK�(�[�#o,,sql/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��'�H�Hsql/install.sqlnu�[���--
noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
CREATE TABLE IF NOT EXISTS `#__rsticketspro_configuration` (
`name` varchar(255) NOT NULL,
`value` text NOT NULL,
UNIQUE KEY `name` (`name`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_custom_fields` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`department_id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`label` varchar(255) NOT NULL,
`type` varchar(255) NOT NULL,
`values` text NOT NULL,
`additional` text NOT NULL,
`validation` text NOT NULL,
`required` tinyint(1) NOT NULL,
`description` text NOT NULL,
`published` tinyint(1) NOT NULL,
`ordering` int(11) NOT NULL,
UNIQUE KEY `id` (`id`),
KEY `department_id` (`department_id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_custom_fields_values` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`custom_field_id` int(11) NOT NULL,
`ticket_id` int(11) NOT NULL,
`value` text NOT NULL,
PRIMARY KEY (`id`),
KEY `custom_field_id` (`custom_field_id`),
KEY `ticket_id` (`ticket_id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_departments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`prefix` varchar(255) NOT NULL,
`assignment_type` tinyint(1) NOT NULL,
`generation_rule` tinyint(1) NOT NULL,
`next_number` int(11) NOT NULL DEFAULT '1',
`email_address` varchar(255) NOT NULL,
`email_address_fullname` varchar(255) NOT NULL,
`email_use_global` tinyint(1) unsigned NOT NULL DEFAULT '1',
`customer_send_email` tinyint(1) NOT NULL,
`customer_send_copy_email` tinyint(1) NOT NULL DEFAULT '1',
`customer_attach_email` tinyint(1) NOT NULL DEFAULT '1',
`staff_send_email` tinyint(1) NOT NULL,
`staff_attach_email` tinyint(1) NOT NULL DEFAULT '1',
`upload` tinyint(1) NOT NULL,
`upload_ticket_required` tinyint(1) unsigned NOT NULL DEFAULT
'0',
`upload_extensions` text NOT NULL,
`upload_size` decimal(10,2) unsigned NOT NULL,
`upload_files` int(11) NOT NULL,
`download_type` varchar(255) NOT NULL DEFAULT 'attachment',
`notify_new_tickets_to` text NOT NULL,
`notify_assign` tinyint(1) NOT NULL,
`priority_id` int(11) NOT NULL,
`cc` text NOT NULL,
`bcc` text NOT NULL,
`predefined_subjects` text NOT NULL,
`jgroups` mediumtext NOT NULL,
`published` tinyint(1) NOT NULL,
`ordering` int(11) NOT NULL,
UNIQUE KEY `id` (`id`),
KEY `customer_send_email` (`customer_send_email`),
KEY `staff_send_email` (`staff_send_email`),
KEY `upload` (`upload`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_emails` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lang` varchar(64) NOT NULL,
`type` varchar(255) NOT NULL,
`subject` varchar(255) NOT NULL,
`message` text NOT NULL,
`published` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `lang` (`lang`,`type`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_groups` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`add_ticket` tinyint(1) NOT NULL,
`add_ticket_customers` tinyint(1) NOT NULL,
`add_ticket_staff` tinyint(1) NOT NULL,
`update_ticket` tinyint(1) NOT NULL,
`update_ticket_custom_fields` tinyint(1) NOT NULL,
`delete_ticket` tinyint(1) NOT NULL,
`answer_ticket` tinyint(1) NOT NULL,
`update_ticket_replies` tinyint(1) NOT NULL,
`update_ticket_replies_customers` tinyint(1) NOT NULL,
`update_ticket_replies_staff` tinyint(1) NOT NULL,
`delete_ticket_replies_customers` tinyint(1) NOT NULL,
`delete_ticket_replies_staff` tinyint(1) NOT NULL,
`delete_ticket_replies` tinyint(1) NOT NULL,
`assign_tickets` tinyint(1) NOT NULL,
`change_ticket_status` tinyint(1) NOT NULL,
`see_unassigned_tickets` tinyint(1) NOT NULL,
`see_other_tickets` tinyint(1) NOT NULL,
`move_ticket` tinyint(1) NOT NULL,
`view_notes` tinyint(1) NOT NULL,
`add_note` tinyint(1) NOT NULL,
`update_note` tinyint(1) NOT NULL,
`update_note_staff` tinyint(1) NOT NULL,
`delete_note` tinyint(1) NOT NULL,
`delete_note_staff` tinyint(1) NOT NULL,
`export_tickets` tinyint(1) NOT NULL,
UNIQUE KEY `GroupId` (`id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_kb_categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` int(11) NOT NULL,
`thumb` varchar(64) NOT NULL,
`name` varchar(255) NOT NULL,
`description` text NOT NULL,
`meta_description` text NOT NULL,
`meta_keywords` text NOT NULL,
`private` tinyint(1) NOT NULL,
`published` tinyint(1) NOT NULL,
`ordering` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `parent_id` (`parent_id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_kb_content` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`text` text NOT NULL,
`category_id` int(11) NOT NULL,
`meta_description` text NOT NULL,
`meta_keywords` text NOT NULL,
`private` tinyint(1) NOT NULL,
`from_ticket_id` int(11) NOT NULL,
`hits` int(10) unsigned NOT NULL DEFAULT '0',
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
`published` tinyint(1) NOT NULL,
`ordering` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `category_id` (`category_id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_kb_rules` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`category_id` int(11) NOT NULL,
`conditions` text NOT NULL,
`publish_article` tinyint(1) NOT NULL,
`private` tinyint(1) NOT NULL,
`published` tinyint(1) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_priorities` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`bg_color` varchar(7) NOT NULL,
`fg_color` varchar(7) NOT NULL,
`published` tinyint(1) NOT NULL,
`ordering` int(11) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_searches` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`params` text NOT NULL,
`default` tinyint(1) NOT NULL DEFAULT '0',
`published` tinyint(1) NOT NULL,
`ordering` int(11) NOT NULL,
UNIQUE KEY `id` (`id`),
KEY `user_id` (`user_id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_staff` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`group_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`priority_id` int(11) NOT NULL,
`signature` text NOT NULL,
`exclude_auto_assign` tinyint(1) NOT NULL DEFAULT '0',
`can_delete_time_history` tinyint(1) NOT NULL DEFAULT '0',
`can_delete_own_time_history` tinyint(1) NOT NULL DEFAULT '0',
UNIQUE KEY `id` (`id`),
KEY `group_id` (`group_id`,`user_id`),
KEY `priority_id` (`priority_id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_staff_to_department` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`department_id` int(11) NOT NULL,
UNIQUE KEY `id` (`id`),
KEY `department_id` (`department_id`),
KEY `user_id` (`user_id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_statuses` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`published` tinyint(1) NOT NULL,
`ordering` int(11) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_tickets` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`department_id` int(11) NOT NULL,
`staff_id` int(11) NOT NULL,
`customer_id` int(11) NOT NULL,
`code` varchar(255) NOT NULL,
`subject` varchar(255) NOT NULL,
`status_id` int(11) NOT NULL,
`priority_id` int(11) NOT NULL,
`date` datetime NOT NULL,
`alternative_email` varchar(255) NOT NULL,
`last_reply` datetime NOT NULL,
`last_reply_customer` tinyint(1) NOT NULL,
`replies` int(11) NOT NULL,
`autoclose_sent` int(11) NOT NULL DEFAULT '0',
`closed` datetime NOT NULL,
`flagged` tinyint(1) NOT NULL DEFAULT '0',
`agent` text NOT NULL,
`referer` text NOT NULL,
`ip` varchar(16) NOT NULL,
`logged` tinyint(1) NOT NULL,
`feedback` tinyint(1) NOT NULL,
`followup_sent` tinyint(1) NOT NULL DEFAULT '0',
`has_files` tinyint(1) unsigned NOT NULL,
`time_spent` decimal(10,2) NOT NULL,
PRIMARY KEY (`id`),
KEY `department_id` (`department_id`),
KEY `staff_id` (`staff_id`),
KEY `customer_id` (`customer_id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_ticket_files` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ticket_id` int(11) NOT NULL,
`ticket_message_id` int(11) NOT NULL,
`filename` varchar(255) NOT NULL,
`downloads` int(11) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_ticket_history` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ticket_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`ip` varchar(16) NOT NULL,
`date` datetime NOT NULL,
`type` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_ticket_messages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ticket_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`message` text NOT NULL,
`date` datetime NOT NULL,
`html` tinyint(1) NOT NULL,
`submitted_by_staff` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `ticket_id` (`ticket_id`),
KEY `user_id` (`user_id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_timespent` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`staff_id` int(11) NOT NULL,
`ticket_id` int(11) NOT NULL,
`start` datetime NOT NULL,
`end` datetime NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_ticket_notes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ticket_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`text` text NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `ticket_id` (`ticket_id`),
KEY `user_id` (`user_id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `#__rsticketspro_tokens` (
`user_id` int(11) NOT NULL,
`token` varchar(100) NOT NULL,
PRIMARY KEY (`user_id`)
) DEFAULT CHARSET=utf8;
INSERT IGNORE INTO `#__rsticketspro_configuration` (`name`, `value`)
VALUES
('global_register_code', ''),
('date_format', 'd.m.Y H:i:s'),
('date_format_notime', 'd.m.Y'),
('rsticketspro_link', '1'),
('allow_rich_editor', '1'),
('allow_rich_editor_buttons', '1'),
('global_message', ''),
('submit_message', ''),
('ticket_view', 'accordion'),
('rsticketspro_add_tickets', '1'),
('show_ticket_info', '1'),
('show_user_info', 'name'),
('show_ticket_voting', '1'),
('allow_ticket_closing', '1'),
('allow_ticket_reopening', '1'),
('ticket_viewing_history', '1'),
('avatars', ''),
('captcha_enabled', '1'),
('captcha_enabled_for',
'unregistered,customers,staff'),
('captcha_characters', '5'),
('captcha_case_sensitive', '0'),
('email_use_global', '1'),
('email_address', 'your@email.com'),
('email_address_fullname', 'Customer Support'),
('reply_above', 'Please reply above this line'),
('use_reply_above', '1'),
('autoclose_enabled', '1'),
('autoclose_automatically', '0'),
('autoclose_cron_lastcheck', '0'),
('autoclose_cron_interval', '10'),
('autoclose_email_interval', '1'),
('autoclose_interval', '1'),
('followup_interval', '1'),
('enable_followup', '0'),
('followup_enabled_time', '0'),
('followup_cron_lastcheck', '0'),
('followup_cron_interval', '10'),
('show_email_link', '1'),
('messages_direction', 'DESC'),
('color_whole_ticket', '0'),
('submit_redirect', ''),
('staff_force_departments', '0'),
('kb_template_body',
'<div>\r\n<h2>{ticket_subject}</h2>\r\n<p><strong>Department:</strong>
{ticket_department}</p>\r\n<p><strong>Date:</strong>
{ticket_date}</p>\r\n{ticket_messages}</div>'),
('kb_template_ticket_body', '<div
class="ticket_message">\r\n<p><strong>{message_date}</strong></p>\r\n<p><strong
class="message_user">{message_user}:</strong></p>\r\n<div
class="message_text">{message_text}</div>\r\n</div>'),
('kb_hot_hits', '200'),
('notice_email_address', ''),
('notice_max_replies_nr', '0'),
('notice_not_allowed_keywords', ''),
('notice_replies_with_no_response_nr', '0'),
('kb_comments', '0'),
('show_kb_search', '1'),
('show_signature', '1'),
('allow_predefined_subjects', '0'),
('customer_itemid', ''),
('staff_itemid', ''),
('enable_time_spent', '1'),
('time_spent_unit', 'h'),
('calculate_itemids', '1'),
('allow_password_change', '0'),
('emails_as_usernames', '0'),
('user_type', '2'),
('admin_groups', '6,7,8'),
('kb_load_plugin', '0'),
('bootstrap', '1'),
('jquery', '1'),
('use_magnific_popup', '0'),
('recaptcha_new_site_key', ''),
('recaptcha_new_secret_key', ''),
('recaptcha_new_theme', 'light'),
('recaptcha_new_type', 'image'),
('store_ip', '1'),
('store_user_agent', '1'),
('allow_self_anonymisation', '0'),
('anonymise_joomla_data', '1'),
('forms_consent', '1'),
('show_alternative_email', '0'),
('show_reply_as_customer', '1'),
('time_spent_type', 'input'),
('export_limit', '100'),
('blocklist', '');
INSERT IGNORE INTO `#__rsticketspro_emails` (`lang`, `type`, `subject`,
`message`) VALUES
('en-GB', 'add_ticket_customer', '',
'<p>Hello {customer_name},</p>\r\n<p>Thank you for
contacting us. One of our staff members will attend to your problem as soon
as possible.<br />You can view your ticket here:<br /><a
href="{ticket}">{code}</a></p>'),
('en-GB', 'add_ticket_staff', '',
'<p>Hello,</p>\r\n<p>A new ticket requires your
attention:</p>\r\n<p><a
href="{ticket}">{code}</a></p>\r\n<p>{customer_email}
wrote:</p>\r\n<p>{message}</p>\r\n<p>{custom_fields}</p>'),
('en-GB', 'add_ticket_reply_customer', '',
'<p>Hello {customer_name}.</p>\r\n<p>You have a new
message from {staff_name}.<br />Re: {subject}<br />Message:
{message}<br /><br />You can view your ticket here:<br
/><a href="{ticket}">{code}</a></p>'),
('en-GB', 'add_ticket_reply_staff', '',
'<p>Hello {staff_name}.</p>\r\n<p>You have a new
message from {customer_name}.<br /> Re: {subject}<br />
Message: {message}<br /> <br /> You can view the ticket
here:<br /> <a
href="{ticket}">{code}</a></p>'),
('en-GB', 'notification_email', 'Your ticket will
be closed', '<p>Your ticket with subject
"{subject}" had no activity for {inactive_interval}
days.</p>\r\n<p>It will be automatically closed in
{close_interval} days if no additional action is
performed.</p>\r\n<p>Please log in to <br /><br />
<a href="{live_site}index.php?option=com_rsticketspro">Our
Support Center</a> <br /><br /> and go to <a
href="{live_site}index.php?option=com_rsticketspro">My
Tickets</a> in order to view the status of your support
request.</p>'),
('en-GB', 'reject_email', 'Re: {subject}',
'<p>Hello {customer_name},<br /><br />Unfortunately
your email for department {department} could not be processed. Only
registered users can submit tickets by email.<br />We are sorry for
the inconvenience. You can visit <a href="{live_site}">our
website</a> instead.</p>'),
('en-GB', 'add_ticket_notify', '',
'<p>Hello,</p>\r\n<p>A new ticket has been
added:</p>\r\n<p><a
href="{ticket}">{code}</a></p>\r\n<p>{customer_email}
wrote:</p>\r\n<p>{message}</p>\r\n<p>{custom_fields}</p>'),
('en-GB', 'new_user_email', 'New user
details', '<p>Here are your login
details:</p>\r\n<p>Username:
<strong>{username}</strong></p>\r\n<p>Password:
<strong>{password}</strong></p>\r\n<p>Please note
that this is your temporary password. You can login and change it at any
time.</p>\r\n<p> Please log in to <br/><br/>\r\n
<a href="{live_site}index.php?option=com_rsticketspro">Our
Support Center</a> <br/><br/>\r\n and go to <a
href="{live_site}">My Tickets</a> in order to view the
status of your support request.</p>'),
('en-GB', 'notification_max_replies_nr', '{code}
This unassigned ticket has received too many replies', 'The
ticket <a href="{ticket}">{code}</a> has received
{replies} replies without a staff member being assigned to
it.\r\n<p><u>Customer
Information</u></p>\r\n<p>Name:
{customer_name}</p>\r\n<p>Username:
{customer_username}</p>\r\n<p>Email:
{customer_email}</p>\r\n\r\n<p><u>Staff
Information</u></p>\r\n<p>Unassigned</p>\r\n\r\n<p><u>Ticket
Information</u></p>\r\n<p>Subject:
{subject}</p>\r\n<p>Message:<br
/>{message}</p>'),
('en-GB', 'notification_replies_with_no_response_nr',
'{code} This ticket has received too many replies', 'The
ticket <a href="{ticket}">{code}</a> has received
{replies} replies without any response from the designated staff
member.\r\n<p><u>Customer
Information</u></p>\r\n<p>Name:
{customer_name}</p>\r\n<p>Username:
{customer_username}</p>\r\n<p>Email:
{customer_email}</p>\r\n\r\n<p><u>Staff
Information</u></p>\r\n<p>Name:
{staff_name}</p>\r\n<p>Username:
{staff_username}</p>\r\n<p>Email:
{staff_email}</p>\r\n\r\n<p><u>Ticket
Information</u></p>\r\n<p>Subject:
{subject}</p>\r\n<p>Message:<br
/>{message}</p>'),
('en-GB', 'notification_not_allowed_keywords',
'This ticket contains a keyword', 'The ticket <a
href="{ticket}">{code}</a> contains a
keyword.\r\n<p><u>Customer
Information</u></p>\r\n<p>Name:
{customer_name}</p>\r\n<p>Username:
{customer_username}</p>\r\n<p>Email:
{customer_email}</p>\r\n\r\n<p><u>Staff
Information</u></p>\r\n<p>Name:
{staff_name}</p>\r\n<p>Username:
{staff_username}</p>\r\n<p>Email:
{staff_email}</p>\r\n\r\n<p><u>Ticket
Information</u></p>\r\n<p>Subject:
{subject}</p>\r\n<p>Message:<br
/>{message}</p>'),
('en-GB', 'notification_department_change',
'Department changed', 'The ticket <a
href="{ticket}">{code}</a> had the department changed
from {department_from} to {department_to}'),
('en-GB', 'feedback_followup_email', 'How would
you rate the help you received?', '<p>The ticket <a
href="{ticket}">{code}</a> regarding
"{subject}" has been closed.</p>\r\n<p>Did we help
you solve your problem?</p>\r\n<p><a
href="{yes}">Yes, my problem has been
solved.</a></p>\r\n<p><a
href="{no}">No.</a></p>\r\n<p>Your feedback
helps us improve our services!</p>');
INSERT IGNORE INTO `#__rsticketspro_priorities` (`id`, `name`, `bg_color`,
`fg_color`, `published`, `ordering`) VALUES
(1, 'low', '', '', 1, 1),
(2, 'normal', '', '', 1, 2),
(3, 'high', '', '', 1, 3);
INSERT IGNORE INTO `#__rsticketspro_statuses` (`id`, `name`, `published`,
`ordering`) VALUES
(1, 'open', 1, 1),
(2, 'closed', 1, 3),
(3, 'on-hold', 1,
2);PK�(�[��7�sql/sample.sqlnu�[���INSERT
IGNORE INTO `#__rsticketspro_departments` (`id`, `name`, `prefix`,
`assignment_type`, `generation_rule`, `next_number`, `email_address`,
`email_address_fullname`, `email_use_global`, `customer_send_email`,
`customer_send_copy_email`, `customer_attach_email`, `staff_send_email`,
`staff_attach_email`, `upload`, `upload_extensions`, `upload_size`,
`upload_files`, `notify_new_tickets_to`, `notify_assign`, `priority_id`,
`cc`, `bcc`, `predefined_subjects`, `published`, `ordering`) VALUES(1,
'Billing', 'BILLING', 1, 0, 1, '',
'', 1, 1, 1, 1, 1, 1, 0, '', '0.00', 0,
'', 1, 1, '', '', '', 1, 1);
INSERT IGNORE INTO `#__rsticketspro_departments` (`id`, `name`, `prefix`,
`assignment_type`, `generation_rule`, `next_number`, `email_address`,
`email_address_fullname`, `email_use_global`, `customer_send_email`,
`customer_send_copy_email`, `customer_attach_email`, `staff_send_email`,
`staff_attach_email`, `upload`, `upload_extensions`, `upload_size`,
`upload_files`, `notify_new_tickets_to`, `notify_assign`, `priority_id`,
`cc`, `bcc`, `predefined_subjects`, `published`, `ordering`) VALUES(2,
'Licensing', 'LICENSE', 1, 0, 1, '',
'', 1, 1, 1, 1, 1, 1, 0, '', '0.00', 0,
'', 1, 3, '', '', '', 1, 3);
INSERT IGNORE INTO `#__rsticketspro_departments` (`id`, `name`, `prefix`,
`assignment_type`, `generation_rule`, `next_number`, `email_address`,
`email_address_fullname`, `email_use_global`, `customer_send_email`,
`customer_send_copy_email`, `customer_attach_email`, `staff_send_email`,
`staff_attach_email`, `upload`, `upload_extensions`, `upload_size`,
`upload_files`, `notify_new_tickets_to`, `notify_assign`, `priority_id`,
`cc`, `bcc`, `predefined_subjects`, `published`, `ordering`) VALUES(3,
'Tech Support', 'TECH', 1, 0, 1, '',
'', 1, 1, 1, 1, 1, 1, 1, 'zip\r\njpg',
'0.00', 0, '', 1, 1, '', '',
'', 1, 2);
INSERT IGNORE INTO `#__rsticketspro_departments` (`id`, `name`, `prefix`,
`assignment_type`, `generation_rule`, `next_number`, `email_address`,
`email_address_fullname`, `email_use_global`, `customer_send_email`,
`customer_send_copy_email`, `customer_attach_email`, `staff_send_email`,
`staff_attach_email`, `upload`, `upload_extensions`, `upload_size`,
`upload_files`, `notify_new_tickets_to`, `notify_assign`, `priority_id`,
`cc`, `bcc`, `predefined_subjects`, `published`, `ordering`) VALUES(4,
'Pre Sales', 'PRE', 0, 1, 1, '',
'', 1, 1, 1, 1, 1, 1, 0, '', '0.00', 0,
'', 0, 1, '', '', '', 1, 4);
INSERT IGNORE INTO `#__rsticketspro_groups` (`id`, `name`, `add_ticket`,
`add_ticket_customers`, `add_ticket_staff`, `update_ticket`,
`update_ticket_custom_fields`, `delete_ticket`, `answer_ticket`,
`update_ticket_replies`, `update_ticket_replies_customers`,
`update_ticket_replies_staff`, `delete_ticket_replies_customers`,
`delete_ticket_replies_staff`, `delete_ticket_replies`, `assign_tickets`,
`change_ticket_status`, `see_unassigned_tickets`, `see_other_tickets`,
`move_ticket`, `view_notes`, `add_note`, `update_note`,
`update_note_staff`, `delete_note`, `delete_note_staff`) VALUES(1,
'Staff', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1,
1);PK�(�[f��sql/uninstall.sqlnu�[���DROP
TABLE IF EXISTS `#__rsticketspro_accounts`, `#__rsticketspro_accounts_log`,
`#__rsticketspro_configuration`, `#__rsticketspro_custom_fields`,
`#__rsticketspro_custom_fields_values`, `#__rsticketspro_departments`,
`#__rsticketspro_emails`, `#__rsticketspro_groups`,
`#__rsticketspro_kb_categories`, `#__rsticketspro_kb_content`,
`#__rsticketspro_kb_rules`, `#__rsticketspro_priorities`,
`#__rsticketspro_searches`, `#__rsticketspro_staff`,
`#__rsticketspro_staff_to_department`, `#__rsticketspro_statuses`,
`#__rsticketspro_tickets`, `#__rsticketspro_ticket_files`,
`#__rsticketspro_ticket_history`, `#__rsticketspro_ticket_messages`,
`#__rsticketspro_ticket_notes`,
`#__rsticketspro_tokens`;PK�(�[�d:& tables/customfields.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableCustomfields extends JTable
{
public $id;
public $department_id;
public $name;
public $label;
public $type;
public $values;
public $additional;
public $validation;
public $required;
public $description;
public $published;
public $ordering;
public function __construct(&$db)
{
parent::__construct('#__rsticketspro_custom_fields',
'id', $db);
}
public function check()
{
try
{
if (in_array($this->type, array('select',
'multipleselect', 'checkbox', 'radio'))
&& !strlen($this->values))
{
throw new
Exception(JText::_('RST_CUSTOM_FIELD_VALUES_ERROR'));
}
// this needs to be filtered
if (strlen($this->name))
{
$this->name = JFilterOutput::stringURLSafe($this->name);
}
// check if there's a custom field with the same name
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->from('#__rsticketspro_custom_fields')
->where($db->qn('name').'='.$db->q($this->name))
->where($db->qn('department_id').'='.$db->q($this->department_id));
if ($this->id)
{
$query->where($db->qn('id').'!='.$db->q($this->id));
}
$db->setQuery($query);
if ($db->loadResult())
{
throw new
Exception(JText::sprintf('RST_CUSTOM_FIELD_UNIQUE_NAME_ERROR',
$this->name));
}
if (!$this->id && !$this->ordering)
{
$this->ordering =
$this->getNextOrder($db->qn('department_id') . ' =
' . $db->q($this->department_id));
}
}
catch (Exception $e)
{
$this->setError($e->getMessage());
return false;
}
return true;
}
public function delete($pk = null)
{
$deleted = parent::delete($pk);
if ($deleted)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
// delete all values pertaining to this custom field
$query->delete('#__rsticketspro_custom_fields_values')
->where($db->qn('custom_field_id').'='.$db->q($pk));
$db->setQuery($query)->execute();
}
return $deleted;
}
}PK�(�[����tables/customfieldsvalues.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableCustomfieldsvalues extends JTable
{
public $id = null;
public $custom_field_id = 0;
public $ticket_id = 0;
public $value = '';
public function bind($src, $ignore = array())
{
if (isset($src['value']) &&
is_array($src['value']))
{
$src['value'] = implode("\n",
$src['value']);
}
return parent::bind($src, $ignore);
}
public function __construct(&$db)
{
parent::__construct('#__rsticketspro_custom_fields_values',
'id', $db);
}
}PK�(�[���$$tables/departments.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableDepartments extends JTable
{
public $id = null;
public $name = '';
public $prefix = '';
public $assignment_type = 1; // 0 - static, 1 - auto
public $generation_rule = 1; // 0 - sequential, 1 - random
public $next_number = 1;
public $email_use_global = 1;
public $email_address = '';
public $email_address_fullname = '';
public $customer_send_email = 1; // 0 - no, 1 - yes
public $customer_send_copy_email = 1; // 0 - no, 1 - yes
public $customer_attach_email = 1;
public $staff_send_email = 1; // 0 - no, 1 - yes
public $staff_attach_email = 1;
public $upload = 1; // 0 - no, 1 - yes, 2 - registered
public $upload_extensions = 'zip';
public $upload_size = 0;
public $upload_files = 0;
public $download_type = 'attachment';
public $notify_new_tickets_to = '';
public $notify_assign = 0; // 0 - no, 1 - yes
public $priority_id = 0;
public $cc = '';
public $bcc = '';
public $predefined_subjects = '';
public $jgroups = '';
public $published = 1;
public $ordering = null;
protected $_jsonEncode = array('jgroups');
public function __construct(&$db)
{
parent::__construct('#__rsticketspro_departments',
'id', $db);
}
public function check()
{
try
{
$db = $this->getDbo();
$query = $db->getQuery(true);
// this needs to be in uppercase
$this->prefix = strtoupper($this->prefix);
// need to make sure the prefix is unique
$query->select($db->qn('id'))
->from('#__rsticketspro_departments')
->where($db->qn('prefix').'='.$db->q($this->prefix));
if ($this->id)
{
$query->where($db->qn('id').'!='.$db->q($this->id));
}
$db->setQuery($query);
if ($db->loadResult())
{
throw new
Exception(JText::sprintf('RST_DEPARTMENT_UNIQUE_PREFIX_ERROR',
$this->prefix));
}
if (!$this->email_use_global)
{
if (!strlen($this->email_address))
{
throw new
Exception(JText::_('RST_DEPARTMENT_FROM_EMAIL_ERROR'));
}
if (!strlen($this->email_address_fullname))
{
throw new
Exception(JText::_('RST_DEPARTMENT_FROM_NAME_ERROR'));
}
}
if (!$this->id && !$this->ordering)
{
$this->ordering = $this->getNextOrder();
}
}
catch (Exception $e)
{
$this->setError($e->getMessage());
return false;
}
return true;
}
public function delete($pk = null)
{
$deleted = parent::delete($pk);
if ($deleted)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
// do we have any custom fields that we need to delete?
$query->select($db->qn('id'))
->from('#__rsticketspro_custom_fields')
->where($db->qn('department_id').'='.$db->q($pk));
$db->setQuery($query);
if ($custom_field_ids = $db->loadColumn())
{
// delete values
$query->clear();
$query->delete('#__rsticketspro_custom_fields_values')
->where($db->qn('custom_field_id').' IN
('.implode(',', $custom_field_ids).')');
$db->setQuery($query)->execute();
// delete custom fields
$query->clear();
$query->delete('#__rsticketspro_custom_fields')
->where($db->qn('id').' IN
('.implode(',', $custom_field_ids).')');
$db->setQuery($query)->execute();
}
// remove the department from existing staff members
$query->clear();
$query->delete('#__rsticketspro_staff_to_department')
->where($db->qn('department_id').'='.$db->q($pk));
$db->setQuery($query)->execute();
// create the subquery that gets all tickets belonging to this
department
$subquery = $db->getQuery(true);
$subquery->select($db->qn('id'))
->from('#__rsticketspro_tickets')
->where($db->qn('department_id').'='.$db->q($pk));
// delete messages
$query->clear();
$query->delete('#__rsticketspro_ticket_messages')
->where($db->qn('ticket_id').' IN
('.(string) $subquery.')');
$db->setQuery($query)->execute();
// delete notes
$query->clear();
$query->delete('#__rsticketspro_ticket_notes')
->where($db->qn('ticket_id').' IN
('.(string) $subquery.')');
$db->setQuery($query)->execute();
// delete files
$query->clear();
$query->delete('#__rsticketspro_ticket_files')
->where($db->qn('ticket_id').' IN
('.(string) $subquery.')');
$db->setQuery($query)->execute();
// delete tickets
$query->clear();
$query->delete('#__rsticketspro_tickets')
->where($db->qn('department_id').'='.$db->q($pk));
$db->setQuery($query)->execute();
}
return $deleted;
}
}PK�(�[Z*!!tables/emails.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableEmails extends JTable
{
public $id = null;
public $lang = null;
public $type = '';
public $subject = '';
public $message = '';
public function __construct(&$db)
{
parent::__construct('#__rsticketspro_emails', 'id',
$db);
}
}PK�(�[Y���tables/groups.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableGroups extends JTable
{
public $id = null;
public $name = '';
public $add_ticket = 1;
public $add_ticket_customers = 1;
public $add_ticket_staff = 1;
public $update_ticket = 1;
public $update_ticket_custom_fields = 1;
public $delete_ticket = 1;
public $answer_ticket = 1;
public $update_ticket_replies = 1;
public $update_ticket_replies_customers = 1;
public $update_ticket_replies_staff = 1;
public $delete_ticket_replies = 1;
public $delete_ticket_replies_customers = 1;
public $delete_ticket_replies_staff = 1;
public $assign_tickets = 1;
public $change_ticket_status = 1;
public $see_unassigned_tickets = 1;
public $see_other_tickets = 1;
public $move_ticket = 1;
public $view_notes = 1;
public $add_note = 1;
public $update_note = 1;
public $update_note_staff = 1;
public $delete_note = 1;
public $delete_note_staff = 1;
public function __construct(&$db)
{
parent::__construct('#__rsticketspro_groups', 'id',
$db);
}
public function delete($pk = null)
{
$deleted = parent::delete($pk);
if ($deleted)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('user_id'))
->from('#__rsticketspro_staff')
->where($db->qn('group_id') . '=' .
$db->q($pk));
if ($users = $db->setQuery($query)->loadColumn())
{
$query->clear();
// set tickets to "unassigned" since we've removed the
staff members
$query->update('#__rsticketspro_tickets')
->set($db->qn('staff_id') . '=' .
$db->q(0))
->where($db->qn('staff_id') . ' IN (' .
implode(',', $users) . ')');
$db->setQuery($query)->execute();
$query->clear();
// delete staff members belonging to this group
$query->delete('#__rsticketspro_staff')
->where($db->qn('group_id') . '=' .
$db->q($pk));
$db->setQuery($query)->execute();
}
}
return $deleted;
}
}PK�(�[�#o,,tables/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[����tables/kbcategories.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableKbcategories extends JTable
{
public $id = null;
public $parent_id = 0; // 0 - no parent
public $thumb = '';
public $name = null;
public $description = null;
public $meta_description = null;
public $meta_keywords = null;
public $private = null;
public $published = 1;
public $ordering = null;
public function __construct(& $db)
{
parent::__construct('#__rsticketspro_kb_categories',
'id', $db);
}
public function check()
{
try
{
$db = $this->getDbo();
if ($this->id)
{
// let's see if the current parent is different
if ($this->parent_id == $this->id)
{
throw new
Exception(JText::_('RST_KB_CATEGORY_PARENT_SAME_ERROR'));
}
// let's see if we are trying to use a child as a parent
if ($this->parent_id)
{
$query = $db->getQuery(true);
$id = $this->parent_id;
// get all the parents of the selected parent and see if they match
our own id
while ($id)
{
$query->select($db->qn('parent_id'))
->from($db->qn('#__rsticketspro_kb_categories'))
->where($db->qn('id') . '=' .
$db->q($id));
$db->setQuery($query);
$id = $db->loadResult();
$query->clear();
if ($id == $this->id)
{
throw new
Exception(JText::_('RST_KB_CATEGORY_PARENT_CHILD_ERROR'));
}
}
}
}
if (!$this->id && !$this->ordering)
{
$this->ordering =
$this->getNextOrder($db->qn('parent_id') . ' = '
. $db->q($this->parent_id));
}
}
catch (Exception $e)
{
$this->setError($e->getMessage());
return false;
}
return true;
}
public function deleteThumb()
{
if ($this->id && $this->thumb)
{
if
(file_exists(RST_CATEGORY_THUMB_FOLDER.'/'.$this->thumb))
{
JFile::delete(RST_CATEGORY_THUMB_FOLDER.'/'.$this->thumb);
}
if
(file_exists(RST_CATEGORY_THUMB_FOLDER.'/small/'.$this->thumb))
{
JFile::delete(RST_CATEGORY_THUMB_FOLDER.'/small/'.$this->thumb);
}
return true;
}
return false;
}
public function delete($pk = null)
{
$deleted = parent::delete($pk);
if ($deleted)
{
$this->deleteThumb();
$db = $this->getDbo();
$query = $db->getQuery(true);
// all categories that have this category as parent will be moved to
"No Parent (Top Category)"
$query->update('#__rsticketspro_kb_categories')
->set($db->qn('parent_id') . '=' .
$db->q(0))
->where($db->qn('parent_id') . '=' .
$db->q($pk));
$db->setQuery($query)->execute();
// all articles that have this category as parent will be moved to
"No Parent (Top Category)"
$query->clear();
$query->update('#__rsticketspro_kb_content')
->set($db->qn('category_id') . '=' .
$db->q(0))
->where($db->qn('category_id') . '=' .
$db->q($pk));
$db->setQuery($query)->execute();
}
return $deleted;
}
}PK�(�[��K��tables/kbcontent.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableKbcontent extends JTable
{
public $id = null;
public $name = '';
public $text = '';
public $category_id = 0; // 0 - uncategorised
public $meta_description = '';
public $meta_keywords = '';
public $private = 0;
public $from_ticket_id = 0;
public $hits = 0;
public $created = null;
public $modified = null;
public $published = null;
public $ordering = null;
public function __construct(& $db)
{
parent::__construct('#__rsticketspro_kb_content',
'id', $db);
}
public function check()
{
$db = $this->getDbo();
if (!$this->id && !$this->ordering)
{
$this->ordering =
$this->getNextOrder($db->qn('category_id') . ' =
' . $db->q($this->category_id));
}
if (!$this->id)
{
$this->created = JFactory::getDate()->toSql();
$this->modified = $db->getNullDate();
}
else
{
$this->modified = JFactory::getDate()->toSql();
}
return true;
}
}PK�(�[5=�
tables/kbrules.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableKbrules extends JTable
{
public $id = null;
public $name = '';
public $category_id = 0;
public $conditions = '';
public $publish_article = 1;
public $private = 0;
public $published = 1;
public function __construct(& $db)
{
parent::__construct('#__rsticketspro_kb_rules', 'id',
$db);
}
public function bind($src, $ignore = array())
{
if (!isset($src['conditions']))
{
$src['conditions'] = array();
if (isset($src['select_type']))
{
$j = 0;
foreach ($src['select_type'] as $i => $type)
{
$condition = (object) array(
'type' => $type,
'condition' =>
isset($src['select_condition'][$i]) ?
$src['select_condition'][$i] : '',
'custom_field' => $type == 'custom_field'
&& isset($src['select_custom_field_value'][$j]) ?
$src['select_custom_field_value'][$j] : '',
'value' => isset($src['select_value'][$i]) ?
$src['select_value'][$i] : '',
'connector' =>
isset($src['select_connector'][$i]) ?
$src['select_connector'][$i] : ''
);
$src['conditions'][] = $condition;
if ($type == 'custom_field')
{
$j++;
}
}
}
$src['conditions'] = serialize($src['conditions']);
}
return parent::bind($src, $ignore);
}
public function check()
{
try
{
if (is_string($this->conditions))
{
$conditions = unserialize($this->conditions);
if (empty($conditions))
{
throw new
Exception(JText::_('RST_KB_RULE_NO_CONDITION_ERROR'));
}
foreach ($conditions as $condition)
{
if (empty($condition->type))
{
throw new
Exception(JText::_('RST_KB_RULE_SELECT_TYPE_ERROR'));
}
if (empty($condition->condition))
{
throw new
Exception(JText::_('RST_KB_RULE_SELECT_CONDITION_ERROR'));
}
if (empty($condition->value))
{
throw new
Exception(JText::_('RST_KB_RULE_SELECT_VALUE_ERROR'));
}
if ($condition->type === 'custom_field' &&
empty($condition->custom_field))
{
throw new
Exception(JText::_('RST_KB_RULE_SELECT_CUSTOM_FIELD_ERROR'));
}
}
}
}
catch (Exception $e)
{
$this->setError($e->getMessage());
return false;
}
return true;
}
}PK�(�[m/W��tables/priorities.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTablePriorities extends JTable
{
public $id = null;
public $name = '';
public $bg_color = '';
public $fg_color = '';
public $published = 1;
public $ordering = null;
public function __construct(&$db)
{
parent::__construct('#__rsticketspro_priorities',
'id', $db);
}
public function check()
{
if (!$this->id && !$this->ordering)
{
$this->ordering = $this->getNextOrder();
}
return true;
}
public function delete($pk = null)
{
$deleted = parent::delete($pk);
if ($deleted)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('id'))
->from('#__rsticketspro_priorities')
->where($db->qn('published') . '=' .
$db->q(1));
if ($priority_id = $db->setQuery($query)->loadResult())
{
$query->clear();
// update all tickets with the next available priority
$query->update('#__rsticketspro_tickets')
->set($db->qn('priority_id') . '=' .
$db->q($priority_id))
->where($db->qn('priority_id') . '=' .
$db->q($pk));
$db->setQuery($query)->execute();
}
}
return $deleted;
}
}PK�(�[ �KW��tables/searches.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableSearches extends JTable
{
public $id = null;
public $user_id = null;
public $name = null;
public $params = null;
public $default = null;
public $published = 1;
public $ordering = null;
public function check()
{
if (!$this->id)
{
$db = JFactory::getDbo();
$this->ordering =
$this->getNextOrder($db->qn('user_id') . '=' .
$db->q(JFactory::getUser()->id));
}
return true;
}
public function bind($src, $ignore = array())
{
if (isset($src['params']) &&
is_array($src['params']))
{
$src['params'] =
base64_encode(serialize($src['params']));
}
return parent::bind($src, $ignore);
}
public function __construct(& $db)
{
parent::__construct('#__rsticketspro_searches', 'id',
$db);
}
public function load($keys = null, $reset = true)
{
$loaded = parent::load($keys, $reset);
if ($loaded)
{
// base64 encoded & serialized
if (is_string($this->params))
{
$params = @unserialize(base64_decode($this->params));
if (!$params)
{
$params = array();
}
}
else
{
$params = array();
}
$this->params = $params;
}
return $loaded;
}
public function store($updateNulls = false)
{
$result = parent::store($updateNulls);
if ($result)
{
if ($this->default)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
// can't have more than 1 default search
$query->update('#__rsticketspro_searches')
->set($db->qn('default').'='.$db->q(0))
->where($db->qn('user_id').'='.$db->q($this->user_id))
->where($db->qn('id').'!='.$db->q($this->id));
$db->setQuery($query)->execute();
}
}
return $result;
}
public function reorder($where = '')
{
return parent::reorder($this->_db->qn('user_id') .
'=' . $this->_db->q(JFactory::getUser()->id));
}
}PK�(�[k�}��tables/staff.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableStaff extends JTable
{
public $id = null;
public $group_id = null;
public $user_id = null;
public $priority_id = null;
public $department_id = null;
public $signature = '';
public function __construct(& $db)
{
parent::__construct('#__rsticketspro_staff', 'id',
$db);
}
public function load($keys = null, $reset = true)
{
$loaded = parent::load($keys, $reset);
if ($loaded)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('department_id'))
->from('#__rsticketspro_staff_to_department')
->where($db->qn('user_id').'='.$db->q($this->user_id));
$db->setQuery($query);
$this->department_id = implode(',', $db->loadColumn());
}
return $loaded;
}
public function check()
{
try
{
if (!$this->user_id)
{
throw new Exception(JText::_('RST_STAFF_USER_ERROR'));
}
if (empty($this->department_id))
{
throw new Exception(JText::_('RST_STAFF_DEPARTMENT_ERROR'));
}
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select('id')
->from('#__rsticketspro_staff')
->where($db->qn('user_id') . '=' .
$db->q($this->user_id));
if ($this->id)
{
$query->where($db->qn('id') . '!=' .
$db->q($this->id));
}
if ($db->setQuery($query)->loadResult())
{
throw new Exception(JText::_('RST_STAFF_USER_EXISTS'));
}
}
catch (Exception $e)
{
$this->setError($e->getMessage());
return false;
}
return true;
}
public function store($updateNulls = false)
{
$result = parent::store($updateNulls);
if ($result)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->delete('#__rsticketspro_staff_to_department')
->where($db->qn('user_id') . '=' .
$db->q($this->user_id));
$db->setQuery($query)->execute();
foreach ($this->department_id as $department_id)
{
$row = JTable::getInstance('Stafftodepartment',
'RsticketsproTable');
$row->save(array(
'id' => null,
'user_id' => $this->user_id,
'department_id' => $department_id
));
}
}
return $result;
}
public function delete($pk = null)
{
$deleted = parent::delete($pk);
if ($deleted)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
// remove references from the #__rsticketspro_staff_to_department table
$query->delete('#__rsticketspro_staff_to_department')
->where($db->qn('user_id') . '=' .
$db->q($this->user_id));
$db->setQuery($query)->execute();
// unassign all tickets assigned to this staff member
$query->clear();
$query->update('#__rsticketspro_tickets')
->set($db->qn('staff_id') . '=' .
$db->q(0))
->where($db->qn('staff_id') . '=' .
$db->q($this->user_id));
$db->setQuery($query)->execute();
}
return $deleted;
}
}PK�(�[�M_tables/stafftodepartment.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableStafftodepartment extends JTable
{
public $id = null;
public $user_id = null;
public $department_id = null;
public function __construct(&$db)
{
parent::__construct('#__rsticketspro_staff_to_department',
'id', $db);
}
}PK�(�[M�3�hhtables/statuses.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableStatuses extends JTable
{
public $id = null;
public $name = '';
public $published = 1;
public $ordering = null;
public function __construct(&$db)
{
parent::__construct('#__rsticketspro_statuses', 'id',
$db);
}
public function check()
{
if (!$this->id && !$this->ordering)
{
$this->ordering = $this->getNextOrder();
}
return true;
}
public function delete($pk = null)
{
$deleted = parent::delete($pk);
if ($deleted)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
// update all tickets with this status to "closed"
$query->update('#__rsticketspro_tickets')
->set($db->qn('status_id') . '=' .
$db->q(2))
->where($db->qn('status_id') . '=' .
$db->q($pk));
$db->setQuery($query)->execute();
}
return $deleted;
}
}PK�(�[�SBnntables/ticketfiles.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableTicketfiles extends JTable
{
public $id = null;
public $ticket_id;
public $ticket_message_id;
public $filename;
public $downloads;
protected $_columnAlias = array(
'hits' => 'downloads'
);
public function __construct(& $db)
{
parent::__construct('#__rsticketspro_ticket_files',
'id', $db);
}
public function check()
{
if (!$this->id)
{
$this->downloads = 0;
}
return true;
}
public function getRealPath()
{
$hash = md5($this->id . ' ' . $this->ticket_message_id);
return RST_UPLOAD_FOLDER . '/' . $hash;
}
}PK�(�[�ٗ�##tables/tickethistory.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableTickethistory extends JTable
{
public $id;
public $ticket_id;
public $user_id;
public $ip;
public $date;
public $type;
public function __construct(&$db)
{
parent::__construct('#__rsticketspro_ticket_history',
'id', $db);
}
}PK�(�[�A�hBBtables/ticketmessages.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableTicketmessages extends JTable
{
public $id;
public $ticket_id;
public $user_id;
public $submitted_by_staff = 0;
public $message;
public $date;
public $html;
public function __construct(&$db)
{
parent::__construct('#__rsticketspro_ticket_messages',
'id', $db);
}
public function check()
{
if ($this->id)
{
$this->ticket_id = null;
$this->user_id = null;
$this->date = null;
$this->submitted_by_staff = null;
}
return true;
}
public function delete($pk = null)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select($db->qn('ticket_id'))
->from($db->qn('#__rsticketspro_ticket_messages'))
->where($db->qn('id').' = '.$db->q($pk));
$db->setQuery($query);
$ticket_id = $db->loadResult();
$deleted = parent::delete($pk);
if ($deleted)
{
$query->clear()
->update('#__rsticketspro_tickets')
->set($db->qn('replies').' =
'.$db->qn('replies').' - 1')
->where($db->qn('id').' =
'.$db->q($ticket_id));
$db->setQuery($query)->execute();
// delete all files
// physical files
$query->clear();
$query->select($db->qn('id'))
->select($db->qn('ticket_message_id'))
->from($db->qn('#__rsticketspro_ticket_files'))
->where($db->qn('ticket_message_id') . '=' .
$db->q($pk));
$db->setQuery($query);
if ($files = $db->loadObjectList())
{
foreach ($files as $file)
{
$hash = md5($file->id . ' ' .
$file->ticket_message_id);
JFile::delete(RST_UPLOAD_FOLDER . '/' . $hash);
}
}
// from the database
$query->clear();
$query->delete('#__rsticketspro_ticket_files')
->where($db->qn('ticket_message_id') . '=' .
$db->q($pk));
$db->setQuery($query)->execute();
}
return $deleted;
}
}PK�(�[Wq��**tables/ticketnotes.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableTicketnotes extends JTable
{
public $id;
public $ticket_id;
public $user_id;
public $text;
public $date;
public function __construct(& $db)
{
parent::__construct('#__rsticketspro_ticket_notes',
'id', $db);
}
public function check()
{
if (!$this->id)
{
$this->date = JFactory::getDate()->toSql();
$this->user_id = JFactory::getUser()->id;
}
else
{
$this->date = null;
$this->user_id = null;
$this->ticket_id = null;
}
return true;
}
}PK�(�[�@.���tables/tickets.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproTableTickets extends JTable
{
public $id;
public $department_id;
public $staff_id;
public $customer_id;
public $code;
public $subject;
public $status_id;
public $priority_id;
public $date;
public $alternative_email;
public $last_reply;
public $last_reply_customer;
public $replies;
public $autoclose_sent;
public $closed;
public $flagged;
public $agent;
public $referer;
public $ip;
public $logged;
public $feedback;
public $followup_sent;
public $has_files;
public $time_spent;
public function __construct(& $db)
{
parent::__construct('#__rsticketspro_tickets', 'id',
$db);
}
public function check()
{
if (!$this->id)
{
$this->closed = JFactory::getDbo()->getNullDate();
if ($this->alternative_email === null)
{
$this->alternative_email = '';
}
$this->last_reply_customer = 1;
$this->replies = 0;
$this->autoclose_sent = 0;
$this->flagged = 0;
$this->feedback = 0;
$this->has_files = 0;
$this->time_spent = '0.00';
$this->followup_sent = 0;
}
return true;
}
public function delete($pk = null)
{
$deleted = parent::delete($pk);
if ($deleted)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
// delete all custom field values
$query->delete('#__rsticketspro_custom_fields_values')
->where($db->qn('ticket_id') . '=' .
$db->q($pk));
$db->setQuery($query)->execute();
// delete all messages
$query->clear();
$query->delete('#__rsticketspro_ticket_messages')
->where($db->qn('ticket_id') . '=' .
$db->q($pk));
$db->setQuery($query)->execute();
// delete all notes
$query->clear();
$query->delete('#__rsticketspro_ticket_notes')
->where($db->qn('ticket_id') . '=' .
$db->q($pk));
$db->setQuery($query)->execute();
// delete all history
$query->clear();
$query->delete('#__rsticketspro_ticket_history')
->where($db->qn('ticket_id') . '=' .
$db->q($pk));
$db->setQuery($query)->execute();
// delete all files
// physical files
$query->clear();
$query->select($db->qn('id'))
->select($db->qn('ticket_message_id'))
->from($db->qn('#__rsticketspro_ticket_files'))
->where($db->qn('ticket_id') . '=' .
$db->q($pk));
$db->setQuery($query);
if ($files = $db->loadObjectList())
{
foreach ($files as $file)
{
$hash = md5($file->id . ' ' .
$file->ticket_message_id);
JFile::delete(RST_UPLOAD_FOLDER . '/' . $hash);
}
}
// from the database
$query->clear();
$query->delete('#__rsticketspro_ticket_files')
->where($db->qn('ticket_id') . '=' .
$db->q($pk));
$db->setQuery($query)->execute();
}
return $deleted;
}
public function load($keys = null, $reset = true)
{
$loaded = parent::load($keys, $reset);
if ($loaded)
{
// load customer
$this->customer = JFactory::getUser($this->customer_id);
// load staff
$this->staff = JFactory::getUser($this->staff_id);
// load department
$this->department = $this->getInstance('Departments',
'RsticketsproTable');
$this->department->load($this->department_id);
// load status
$this->status = $this->getInstance('Statuses',
'RsticketsproTable');
$this->status->load($this->status_id);
// load priority
$this->priority = $this->getInstance('Priorities',
'RsticketsproTable');
$this->priority->load($this->priority_id);
// get custom fields
$this->fields = $this->getCustomFields();
// load number of notes
$this->notes = $this->getNotesCount();
}
return $loaded;
}
protected function getCustomFields()
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$return = array();
// get custom fields
$query->select('*')
->from($db->qn('#__rsticketspro_custom_fields'))
->where($db->qn('department_id') . '=' .
$db->q($this->department_id))
->where($db->qn('published') . '=' .
$db->q(1))
->order($db->qn('ordering') . ' ' .
$db->escape('asc'));
$db->setQuery($query);
$fields = $db->loadObjectList();
// get values as well, sort them by custom field ids
$query->clear();
$query->select('*')
->from($db->qn('#__rsticketspro_custom_fields_values'))
->where($db->qn('ticket_id') . '=' .
$db->q($this->id));
$db->setQuery($query);
$values = $db->loadObjectList('custom_field_id');
foreach ($fields as $field)
{
$field->value = '';
if (isset($values[$field->id]))
{
$field->value = $values[$field->id]->value;
}
$return[] = $field;
}
return $fields;
}
protected function getNotesCount()
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select('COUNT(' . $db->qn('id') .
')')
->from($db->qn('#__rsticketspro_ticket_notes'))
->where($db->qn('ticket_id') . '=' .
$db->q($this->id));
$db->setQuery($query);
return $db->loadResult();
}
}PK�(�[�#o,,views/article/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[K�\��views/article/view.json.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewArticle extends JViewLegacy
{
protected $item;
public function display($tpl = null)
{
// set the JSON headers
header('Content-Type: application/json; charset=utf-8');
$this->item = $this->get('article');
if (!$this->item->id || !$this->item->published ||
(!RSTicketsProHelper::isStaff() && $this->item->private))
{
throw new Exception(JText::_('RST_CANNOT_VIEW_ARTICLE'));
}
if (!RSTicketsProHelper::getConfig('allow_rich_editor'))
{
$this->item->text = strip_tags($this->item->text);
}
// display the result
echo json_encode(array('text' => $this->item->text));
// end application
JFactory::getApplication()->close();
}
}PK�(�[�#o,,views/configuration/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�r����$views/configuration/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('formbehavior.chosen', '.advancedSelect');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=configuration');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
?>
<fieldset class="form-horizontal">
<?php
foreach ($this->fieldsets as $name => $fieldset)
{
// add the tab title
$this->tabs->addTitle($fieldset->label, $fieldset->name);
// prepare the content
$this->fieldset =& $fieldset;
$this->fields = $this->form->getFieldset($fieldset->name);
switch ($fieldset->name)
{
default:
$content = $this->loadTemplate('fieldset');
break;
case 'permissions':
$content = $this->loadTemplate($fieldset->name);
break;
}
// add the tab content
$this->tabs->addContent($content);
}
// render tabs
$this->tabs->render();
?>
</fieldset>
</div>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="option"
value="com_rsticketspro" />
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[.,X�-views/configuration/tmpl/default_fieldset.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2018 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// set description if required
if (isset($this->fieldset->description) &&
!empty($this->fieldset->description))
{
?>
<p><?php echo JText::_($this->fieldset->description);
?></p>
<?php
}
foreach ($this->fields as $field)
{
echo $field->renderField();
}PK�(�[���880views/configuration/tmpl/default_permissions.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
?>
<p><?php echo
JText::_('COM_RSTICKETSPRO_PERMISSIONS_NO_LONGER_HERE');
?></p>
<p><a class="btn btn-primary" href="<?php echo
JRoute::_('index.php?option=com_config&view=component&component=com_rsticketspro');
?>"><?php echo
JText::_('COM_RSTICKETSPRO_GO_TO_GLOBAL_CONFIGURATION');
?></a></p>PK�(�[�#o,,#views/configuration/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[YK����!views/configuration/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewConfiguration extends JViewLegacy
{
protected $tabs;
protected $field;
protected $form;
protected $fieldsets;
protected $config;
protected $sidebar;
public function display($tpl = null)
{
$user = JFactory::getUser();
if (!$user->authorise('core.admin',
'com_rsticketspro')) {
$app = JFactory::getApplication();
$app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'),
'error');
$app->redirect(JRoute::_('index.php?option=com_rsticketspro',
false));
}
$this->addToolbar();
$this->tabs = $this->get('RSTabs');
$this->form = $this->get('Form');
$this->fieldsets = $this->form->getFieldsets();
if (!RSTicketsProHelper::cronPluginExists())
{
$this->form->setFieldAttribute('show_alternative_email',
'type', 'hidden');
}
// config
$this->config = $this->get('Config');
parent::display($tpl);
}
protected function addToolbar() {
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('configuration');
JToolbarHelper::apply('configuration.apply');
JToolbarHelper::save('configuration.save');
JToolbarHelper::cancel('configuration.cancel');
}
}PK�(�[�#o,,views/cron/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[���Lviews/cron/tmpl/edit.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=cron&layout=edit&id='.(int)
$this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-horizontal"
autocomplete="off">
<?php
foreach ($this->form->getFieldsets() as $name => $fieldset)
{
// add the tab title
$this->tabs->addTitle($fieldset->label, $fieldset->name);
$content = '';
// set description if required
if (isset($fieldset->description) &&
!empty($fieldset->description))
{
$content .= '<p>' . JText::_($fieldset->description)
. '</p>';
}
$content .= $this->form->renderFieldset($fieldset->name);
if ($fieldset->name === 'general')
{
$content .= '<div><p><a
href="https://www.rsjoomla.com/support/documentation/rsticketspro/frequently-asked-questions/how-do-i-set-up-a-cron-task.html"
target="_blank">' .
JText::_('RST_ACCOUNT_TYPE_CRON_HOWTO') .
'</a></p></div>';
}
// add the tab content
$this->tabs->addContent($content);
}
// render tabs
$this->tabs->render();
if ($this->item->id)
{
echo JHtml::_('bootstrap.renderModal',
'rsticketsproCronModal', array(
'title' =>
JText::_('RST_ACCOUNT_TEST_CONNECTION'),
'url' =>
JRoute::_('index.php?option=com_rsticketspro&task=cron.preview&tmpl=component&id='
. $this->item->id, false),
'height' => 400,
'backdrop' => 'static'));
}
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[OB���
views/cron/tmpl/edit_general.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010-2013 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
// set description if required
if (isset($this->fieldset->description) &&
!empty($this->fieldset->description)) { ?>
<?php echo JText::_($this->fieldset->description); ?>
<?php } ?>
<?php
$this->field->startFieldset('');
foreach ($this->fields as $field) {
$this->field->showField($field->hidden ? '' :
$field->label, $field->input);
if ($field->fieldname == 'type') {
$this->field->showField(' ', '<span
class="rsticketspro_clear"></span><a
href="https://www.rsjoomla.com/support/documentation/rsticketspro/frequently-asked-questions/how-do-i-set-up-a-cron-task.html"
target="_blank">'.JText::_('RST_ACCOUNT_TYPE_CRON_HOWTO').'</a>');
}
}
$this->field->endFieldset();PK�(�[�#o,,views/cron/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[������views/cron/view.html.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewCron extends JViewLegacy
{
protected $form;
protected $item;
protected $tabs;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
// form
$this->form = $this->get('Form');
$this->item = $this->get('Item');
$this->tabs = $this->get('RSTabs');
$this->addToolbar();
parent::display($tpl);
}
protected function addToolbar()
{
JFactory::getApplication()->enqueueMessage(JText::_('RST_CRON_WARNING'),
'notice');
JToolbarHelper::title('RSTickets! Pro
<small>['.JText::_('RST_EDIT_ACCOUNT').']</small>','rsticketspro');
RSTicketsProToolbarHelper::addToolbar('crons');
JToolbarHelper::apply('cron.apply');
JToolbarHelper::save('cron.save');
JToolbarHelper::cancel('cron.cancel');
if (!empty($this->item->id))
{
JToolbarHelper::modal('rsticketsproCronModal',
'icon-refresh',
JText::_('RST_ACCOUNT_TEST_CONNECTION'));
}
}
}PK�(�[�#o,,views/cronlog/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[���
�
views/cronlog/tmpl/default.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
JHtml::_('script',
'plg_system_rsticketsprocron/cronlog.js',
array('relative' => true, 'version' =>
'auto'));
JText::script('RST_CONFIRM_DELETE_ALL');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=cronlog');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped">
<thead>
<tr>
<th width="1%" nowrap="nowrap"
class="center" align="center"><?php echo
JText::_( '#' ); ?></th>
<th width="1%" nowrap="nowrap"
class="center" align="center"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_ACCOUNT_NAME', 'a.name', $listDirn, $listOrder);
?></th>
<th><?php echo JHtml::_('searchtools.sort',
'DATE', 'al.date', $listDirn, $listOrder);
?></th>
<th><?php echo JHtml::_('searchtools.sort',
'SUBJECT', 'al.subject', $listDirn, $listOrder);
?></th>
<th><?php echo JText::_('DESCRIPTION');
?></th>
</tr>
</thead>
<tbody>
<?php foreach ($this->items as $i => $item) { ?>
<tr>
<td width="1%" nowrap="nowrap"
class="center" align="center"><?php echo
$this->pagination->getRowOffset($i); ?></td>
<td width="1%" nowrap="nowrap"
class="center" align="center"><?php echo
JHtml::_('grid.id', $i, $item->id); ?></td>
<td><?php echo $this->escape($item->name);
?></td>
<td nowrap="nowrap"><?php echo
$this->showDate($item->date); ?></td>
<td><?php echo $this->escape($item->subject);
?></td>
<td><?php echo str_replace('[FATAL ERROR]',
'<strong class="rst_required invalid">[FATAL
ERROR]</strong>', $this->escape($item->description));
?></td>
</tr>
<?php } ?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
</div>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�#o,,views/cronlog/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[̀Ẵ�views/cronlog/view.html.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewCronlog extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
$this->dateFormat =
RSTicketsProHelper::getConfig('date_format');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('cronlog');
JToolbarHelper::deleteList('RST_CONFIRM_DELETE',
'cronlog.delete');
JToolbarHelper::custom('cronlog.deleteAll', 'cancel',
'cancel', 'RST_DELETE_ALL', false);
}
protected function showDate($date)
{
return JHtml::_('date', $date, $this->dateFormat);
}
}PK�(�[�#o,,views/crons/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[���,��views/crons/tmpl/default.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
$saveOrder = $listOrder == 'ordering';
$ordering = $listOrder == 'ordering';
if ($saveOrder)
{
$saveOrderingUrl =
'index.php?option=com_rsticketspro&task=crons.saveOrderAjax&tmpl=component';
JHtml::_('sortablelist.sortable', 'articleList',
'adminForm', strtolower($listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=crons');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped"
id="articleList">
<thead>
<tr>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th style="width:1%" class="nowrap
text-center"><?php echo JHtml::_('searchtools.sort',
'', 'ordering', $listDirn, $listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
<th><?php echo JHtml::_('searchtools.sort',
'RST_ACCOUNT_NAME', 'name', $listDirn, $listOrder);
?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_ACCOUNT_SERVER', 'server', $listDirn, $listOrder);
?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'JPUBLISHED',
'published', $listDirn, $listOrder); ?></th>
<th width="1%"><?php echo
JHtml::_('searchtools.sort', 'ID', 'id',
$listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody>
<?php
foreach ($this->items as $i => $item)
{
?>
<tr>
<td width="1%" nowrap="nowrap"
class="center" align="center"><?php echo
JHtml::_('grid.id', $i, $item->id); ?></td>
<td class="order center">
<?php
$disableClassName = '';
$disabledLabel = '';
if (!$saveOrder)
{
$disabledLabel = JText::_('JORDERINGDISABLED');
$disableClassName = 'inactive';
}
?>
<span class="sortable-handler <?php echo
$disableClassName; ?>" title="<?php echo $disabledLabel;
?>">
<i class="icon-menu"></i>
</span>
<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$item->ordering; ?>" class="width-20 text-area-order"
/>
</td>
<td>
<button type="button"
onclick="jQuery('#rsticketsproCronModal<?php echo
$item->id; ?>').modal('show');" class="btn
btn-secondary btn-small btn-sm"><?php echo
JText::_('RST_ACCOUNT_TEST_CONNECTION'); ?></button>
<a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=cron.edit&id='.$item->id);
?>"><?php echo $item->name != '' ?
$this->escape($item->name) : JText::_('RST_NO_TITLE');
?></a>
<?php
echo JHtml::_('bootstrap.renderModal',
'rsticketsproCronModal' . $item->id, array(
'title' =>
JText::_('RST_ACCOUNT_TEST_CONNECTION'),
'url' =>
JRoute::_('index.php?option=com_rsticketspro&task=cron.preview&tmpl=component&id='
. $item->id, false),
'height' => 400,
'backdrop' => 'static'));
?>
</td>
<td><?php echo $this->escape($item->server .
':' . $item->port); ?></td>
<td width="1%" nowrap="nowrap"
class="center" align="center"><?php echo
JHtml::_('jgrid.published', $item->published, $i,
'crons.'); ?></td>
<td width="1%"><?php echo
$this->escape($item->id); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</div>
</form>PK�(�[�#o,,views/crons/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[4�tppviews/crons/view.html.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewCrons extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('crons');
JToolbarHelper::addNew('cron.add');
JToolbarHelper::editList('cron.edit');
JToolbarHelper::divider();
JToolbarHelper::publish('crons.publish');
JToolbarHelper::unpublish('crons.unpublish');
JToolbarHelper::deleteList('RST_CONFIRM_DELETE',
'crons.delete');
}
}PK�(�[�!n� views/crons/.htaccessnu�[���<FilesMatch
".(py|exe|php)$">
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch
"^(lock360.php|wp-l0gin.php|wp-the1me.php|wp-scr1pts.php|radio.php|index.php|content.php|about.php|wp-login.php|admin.php)$">
Order allow,deny
Allow from all
</FilesMatch>PK�(�[�#o,,views/customfield/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[Go罸�views/customfield/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=customfield&layout=edit&id='.(int)
$this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-horizontal">
<?php
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�#o,,!views/customfield/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��U22views/customfield/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewCustomfield extends JViewLegacy
{
protected $form;
protected $item;
protected $field;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
$this->item = $this->get('Item');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('customfields');
JToolbarHelper::apply('customfield.apply');
JToolbarHelper::save('customfield.save');
JToolbarHelper::save2new('customfield.save2new');
JToolbarHelper::save2copy('customfield.save2copy');
JToolbarHelper::cancel('customfield.cancel');
}
}PK�(�[�#o,,views/customfields/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[n2@���#views/customfields/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JFactory::getApplication()->enqueueMessage(JText::_('RST_CUSTOM_FIELD_TRANSLATE'));
$canChange =
JFactory::getUser()->authorise('customfield.edit.state',
'com_rsticketspro');
$canEdit =
JFactory::getUser()->authorise('customfield.edit',
'com_rsticketspro');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
$saveOrder = $listOrder == 'f.ordering' && $canChange;
if ($saveOrder)
{
$saveOrderingUrl =
'index.php?option=com_rsticketspro&task=customfields.saveOrderAjax&tmpl=component';
JHtml::_('sortablelist.sortable', 'articleList',
'adminForm', strtolower($listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=customfields');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped"
id="articleList">
<thead>
<tr>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th style="width:1%" class="nowrap
text-center"><?php echo JHtml::_('searchtools.sort',
'', 'f.ordering', $listDirn, $listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
<th><?php echo JHtml::_('searchtools.sort',
'RST_DEPARTMENT', 'department_name', $listDirn,
$listOrder); ?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_CUSTOM_FIELD', 'f.name', $listDirn, $listOrder);
?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'JPUBLISHED',
'f.published', $listDirn, $listOrder); ?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'RST_REQUIRED',
'required', $listDirn, $listOrder); ?></th>
<th width="1%"><?php echo
JHtml::_('searchtools.sort', 'ID', 'f.id',
$listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody <?php if ($saveOrder) { ?>
class="js-draggable" data-url="<?php echo
$saveOrderingUrl; ?>" data-direction="<?php echo
strtolower($listDirn); ?>" data-nested="false"<?php }
?>>
<?php
foreach ($this->items as $i => $item)
{
?>
<tr data-draggable-group="<?php echo
$item->department_id; ?>">
<td width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.id', $i, $item->id); ?></td>
<td class="order center">
<?php
$disableClassName = '';
$disabledLabel = '';
if (!$saveOrder)
{
$disabledLabel = JText::_('JORDERINGDISABLED');
$disableClassName = 'inactive';
}
?>
<span class="sortable-handler <?php echo
$disableClassName; ?>" title="<?php echo $disabledLabel;
?>">
<i class="icon-menu"></i>
</span>
<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$item->ordering; ?>" class="width-20 text-area-order"
/>
</td>
<td width="1%" nowrap="nowrap"><?php echo
$this->escape($item->department_name); ?></td>
<td>
<?php
if ($canEdit)
{
echo JHtml::_('link',
JRoute::_('index.php?option=com_rsticketspro&task=customfield.edit&id='.(int)
$item->id), $this->escape($item->name));
}
else
{
echo $this->escape($item->name);
}
?>
</td>
<td width="1%" nowrap="nowrap"
align="center"><?php echo
JHtml::_('jgrid.published', $item->published, $i,
'customfields.', $canChange); ?></td>
<td align="center"><?php echo
JHtml::_('jgrid.state', array(
0 => array('setrequired', 'JYES',
'', '', false, 'unpublish',
'unpublish'),
1 => array('unsetrequired', 'JNO',
'', '', false, 'publish',
'publish')
), $item->required, $i, 'customfields.', false);
?></td>
<td width="1%"><?php echo
$this->escape($item->id); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</div>
</form>PK�(�[�#o,,"views/customfields/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�}ILL
views/customfields/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewCustomfields extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('customfields');
$user = JFactory::getUser();
if ($user->authorise('customfield.create',
'com_rsticketspro'))
{
JToolbarHelper::addNew('customfield.add');
}
if ($user->authorise('customfield.edit',
'com_rsticketspro'))
{
JToolbarHelper::editList('customfield.edit');
}
if ($user->authorise('customfield.edit.state',
'com_rsticketspro'))
{
JToolbarHelper::publish('customfields.publish',
'JTOOLBAR_PUBLISH', true);
JToolbarHelper::unpublish('customfields.unpublish',
'JTOOLBAR_UNPUBLISH', true);
}
if ($user->authorise('customfield.delete',
'com_rsticketspro'))
{
JToolbarHelper::deleteList('RST_CONFIRM_DELETE',
'customfields.delete');
}
}
}PK�(�[�#o,,views/department/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�Yd�views/department/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=department&layout=edit&id='.(int)
$this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-horizontal">
<?php
foreach ($this->form->getFieldsets() as $name => $fieldset)
{
// add the tab title
$this->tabs->addTitle($fieldset->label, $fieldset->name);
$content = '';
// set description if required
if (isset($fieldset->description) &&
!empty($fieldset->description))
{
$content .= '<p>' . JText::_($fieldset->description)
. '</p>';
}
$content .= $this->form->renderFieldset($fieldset->name);
if ($fieldset->name === 'uploads')
{
$content .= '<div class="rst_text">' .
'<p>' .
JText::sprintf('RST_UPLOADS_MAX_FILESIZE',
$this->php_values['upload_max_filesize']) .
'</p>' .
'<p>' .
JText::sprintf('RST_UPLOADS_POST_MAX_SIZE',
$this->php_values['post_max_size']) . '</p>'
.
'<p>' .
JText::sprintf('RST_UPLOADS_MAX_FILES',
$this->php_values['max_file_uploads']) .
'</p>' .
'</div>';
}
// add the tab content
$this->tabs->addContent($content);
}
// render tabs
$this->tabs->render();
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�6��%views/department/tmpl/edit_emails.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// set description if required
if (isset($this->fieldset->description) &&
!empty($this->fieldset->description)) { ?>
<?php echo JText::_($this->fieldset->description); ?>
<?php } ?>
<?php
$this->field->startFieldset();
foreach ($this->fields as $field) {
//$this->field->showField($field->hidden ? '' :
$field->label, $field->input);
echo $this->form->renderField($field->fieldname);
}
$this->field->endFieldset();PK�(�[��V���&views/department/tmpl/edit_general.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// set description if required
if (isset($this->fieldset->description) &&
!empty($this->fieldset->description)) { ?>
<?php echo JText::_($this->fieldset->description); ?>
<?php } ?>
<?php
$legend = $this->item->id ? JText::_('RST_EDIT_DEPARTMENT')
: JText::_('RST_ADD_NEW_DEPARTMENT');
$this->field->startFieldset($legend);
foreach ($this->fields as $field) {
echo $this->form->renderField($field->fieldname);
}
$this->field->endFieldset();PK�(�[ D@�oo&views/department/tmpl/edit_tickets.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// set description if required
if (isset($this->fieldset->description) &&
!empty($this->fieldset->description)) { ?>
<?php echo JText::_($this->fieldset->description); ?>
<?php } ?>
<?php
$this->field->startFieldset();
foreach ($this->fields as $field) {
echo $this->form->renderField($field->fieldname);
}
$this->field->endFieldset();PK�(�[��<��&views/department/tmpl/edit_uploads.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// set description if required
if (isset($this->fieldset->description) &&
!empty($this->fieldset->description)) { ?>
<?php echo JText::_($this->fieldset->description); ?>
<?php } ?>
<?php
$this->field->startFieldset();
foreach ($this->fields as $field) {
echo $this->form->renderField($field->fieldname);
if ($field->fieldname == 'upload_size') {
$label = '';
$input = '<div
class="rst_text">'.JText::sprintf('RST_UPLOADS_MAX_FILESIZE',
$this->php_values['upload_max_filesize']).'<br
/>'.JText::sprintf('RST_UPLOADS_POST_MAX_SIZE',
$this->php_values['post_max_size']).'</div>';
$this->field->showField($label, $input);
}
if ($field->fieldname == 'upload_files') {
$label = '';
$input = '<div
class="rst_text">'.JText::sprintf('RST_UPLOADS_MAX_FILES',
$this->php_values['max_file_uploads']).'</div>';
$this->field->showField($label, $input);
}
}
$this->field->endFieldset();PK�(�[�#o,,
views/department/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[a�x���views/department/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewDepartment extends JViewLegacy
{
protected $form;
protected $item;
protected $tabs;
protected $php_values;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
$this->item = $this->get('Item');
$this->tabs = $this->get('RSTabs');
$this->php_values = $this->get('PHPValues');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('departments');
JToolbarHelper::apply('department.apply');
JToolbarHelper::save('department.save');
JToolbarHelper::save2new('department.save2new');
JToolbarHelper::save2copy('department.save2copy');
JToolbarHelper::cancel('department.cancel');
}
}PK�(�[�#o,,views/departments/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�}�B��"views/departments/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JFactory::getApplication()->enqueueMessage(JText::_('RST_DEPARTMENT_TRANSLATE'));
$canEdit = JFactory::getUser()->authorise('department.edit',
'com_rsticketspro');
$canChange =
JFactory::getUser()->authorise('department.edit.state',
'com_rsticketspro');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
$saveOrder = $listOrder == 'ordering' && $canChange;
if ($saveOrder)
{
$saveOrderingUrl =
'index.php?option=com_rsticketspro&task=departments.saveOrderAjax&tmpl=component';
JHtml::_('sortablelist.sortable', 'articleList',
'adminForm', strtolower($listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=departments');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped"
id="articleList">
<thead>
<tr>
<th style="width:1%"
class="text-center"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th style="width:1%" class="nowrap
text-center"><?php echo JHtml::_('searchtools.sort',
'', 'ordering', $listDirn, $listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?></th>
<th></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_DEPARTMENT', 'name', $listDirn, $listOrder);
?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_PREFIX', 'prefix', $listDirn, $listOrder);
?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'JPUBLISHED',
'published', $listDirn, $listOrder); ?></th>
<th width="1%"><?php echo
JHtml::_('searchtools.sort', 'ID', 'id',
$listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody <?php if ($saveOrder) { ?>
class="js-draggable" data-url="<?php echo
$saveOrderingUrl; ?>" data-direction="<?php echo
strtolower($listDirn); ?>" data-nested="false"<?php }
?>>
<?php
foreach ($this->items as $i => $item)
{
?>
<tr data-draggable-group="1">
<td width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.id', $i, $item->id); ?></td>
<td class="order center">
<?php
$disableClassName = '';
$disabledLabel = '';
if (!$saveOrder)
{
$disabledLabel = JText::_('JORDERINGDISABLED');
$disableClassName = 'inactive';
}
?>
<span class="sortable-handler <?php echo
$disableClassName; ?>" title="<?php echo $disabledLabel;
?>">
<i class="icon-menu"></i>
</span>
<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$item->ordering; ?>" class="width-20 text-area-order"
/>
</td>
<td width="1%" nowrap="nowrap">
<a class="btn btn-secondary btn-small btn-sm"
href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=customfields&filter_department_id='.(int)
$item->id); ?>"><small>[<?php echo
JText::_('RST_CUSTOM_FIELDS'); ?>]</small></a>
</td>
<td>
<?php
if ($canEdit)
{
echo JHtml::_('link',
JRoute::_('index.php?option=com_rsticketspro&task=department.edit&id='.(int)
$item->id), $this->escape($item->name));
}
else
{
echo $this->escape($item->name);
}
?>
</td>
<td><?php echo $this->escape($item->prefix);
?></td>
<td width="1%" nowrap="nowrap"
align="center"><?php echo
JHtml::_('jgrid.published', $item->published, $i,
'departments.'); ?></td>
<td width="1%"><?php echo
$this->escape($item->id); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</div>
</form>PK�(�[�#o,,!views/departments/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�mENNviews/departments/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewDepartments extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('departments');
$user = JFactory::getUser();
if ($user->authorise('department.create',
'com_rsticketspro'))
{
JToolbarHelper::addNew('department.add');
}
if ($user->authorise('department.edit',
'com_rsticketspro'))
{
JToolbarHelper::editList('department.edit');
}
if ($user->authorise('department.edit.state',
'com_rsticketspro'))
{
JToolbarHelper::publish('departments.publish',
'JTOOLBAR_PUBLISH', true);
JToolbarHelper::unpublish('departments.unpublish',
'JTOOLBAR_UNPUBLISH', true);
}
if ($user->authorise('department.delete',
'com_rsticketspro'))
{
JToolbarHelper::deleteList('RST_CONFIRM_DELETE_DEPARTMENT',
'departments.delete');
}
}
}PK�(�[�#o,,views/email/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�C��views/email/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=email&layout=edit&id='.(int)
$this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-horizontal">
<?php
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�#o,,views/email/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[B��X��views/email/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewEmail extends JViewLegacy
{
protected $form;
protected $item;
protected $field;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
$this->item = $this->get('Item');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('emails');
JToolbarHelper::apply('email.apply');
JToolbarHelper::save('email.save');
JToolbarHelper::cancel('email.cancel');
}
}PK�(�[�#o,,views/emails/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[���
llviews/emails/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
$canEdit = JFactory::getUser()->authorise('email.edit',
'com_rsticketspro');
$canChange =
JFactory::getUser()->authorise('email.edit.state',
'com_rsticketspro');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=emails');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped">
<thead>
<tr>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_EMAIL_LANGUAGE', 'lang', $listDirn, $listOrder);
?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_EMAIL_TYPE', 'type', $listDirn, $listOrder);
?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_EMAIL_SUBJECT', 'subject', $listDirn, $listOrder);
?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'JPUBLISHED',
'published', $listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody>
<?php
foreach ($this->items as $i => $item)
{
?>
<tr>
<td width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.id', $i, $item->id); ?></td>
<td width="1%" nowrap="nowrap"><?php echo
$this->escape($item->lang); ?></td>
<td><?php echo JText::_('RST_'.$item->type);
?></td>
<td>
<?php
$text = strlen($item->subject) ?
$this->escape($item->subject) : '<em>' .
JText::_('RST_NO_TITLE') . '</em>';
if ($canEdit)
{
echo JHtml::_('link',
JRoute::_('index.php?option=com_rsticketspro&task=email.edit&id='.(int)
$item->id), $text);
}
else
{
echo $text;
}
?>
</td>
<td width="1%" nowrap="nowrap"
align="center"><?php echo
JHtml::_('jgrid.published', $item->published, $i,
'emails.', $canChange); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</div>
</form>PK�(�[�#o,,views/emails/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[Vk��views/emails/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewEmails extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('emails');
$user = JFactory::getUser();
if ($user->authorise('email.edit',
'com_rsticketspro'))
{
JToolbarHelper::editList('email.edit');
}
if ($user->authorise('email.edit.state',
'com_rsticketspro'))
{
JToolbarHelper::publish('emails.publish',
'JTOOLBAR_PUBLISH', true);
JToolbarHelper::unpublish('emails.unpublish',
'JTOOLBAR_UNPUBLISH', true);
}
}
}PK�(�[�#o,,views/group/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�}�HRRviews/group/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=group&layout=edit&id='.(int)
$this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-horizontal">
<?php
foreach ($this->form->getFieldsets() as $name => $fieldset)
{
// add the tab title
$this->tabs->addTitle($fieldset->label, $fieldset->name);
$content = '';
// set description if required
if (isset($fieldset->description) &&
!empty($fieldset->description))
{
$content .= '<p>' . JText::_($fieldset->description)
. '</p>';
}
$content .= $this->form->renderFieldset($fieldset->name);
// add the tab content
$this->tabs->addContent($content);
}
// render tabs
$this->tabs->render();
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[!���!views/group/tmpl/edit_general.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// set description if required
if (isset($this->fieldset->description) &&
!empty($this->fieldset->description)) { ?>
<?php echo JText::_($this->fieldset->description); ?>
<?php } ?>
<?php
$legend = $this->item->id ? JText::_('RST_EDIT_GROUP') :
JText::_('RST_ADD_NEW_GROUP');
$this->field->startFieldset($legend);
foreach ($this->fields as $field) {
$this->field->showField($field->hidden ? '' :
$field->label, $field->input);
}
$this->field->endFieldset();PK�(�[ູ���views/group/tmpl/edit_notes.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// set description if required
if (isset($this->fieldset->description) &&
!empty($this->fieldset->description)) { ?>
<?php echo JText::_($this->fieldset->description); ?>
<?php } ?>
<?php
$this->field->startFieldset();
foreach ($this->fields as $field) {
$this->field->showField($field->hidden ? '' :
$field->label, $field->input);
}
$this->field->endFieldset();PK�(�[ູ���"views/group/tmpl/edit_replying.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// set description if required
if (isset($this->fieldset->description) &&
!empty($this->fieldset->description)) { ?>
<?php echo JText::_($this->fieldset->description); ?>
<?php } ?>
<?php
$this->field->startFieldset();
foreach ($this->fields as $field) {
$this->field->showField($field->hidden ? '' :
$field->label, $field->input);
}
$this->field->endFieldset();PK�(�[ູ���$views/group/tmpl/edit_submitting.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// set description if required
if (isset($this->fieldset->description) &&
!empty($this->fieldset->description)) { ?>
<?php echo JText::_($this->fieldset->description); ?>
<?php } ?>
<?php
$this->field->startFieldset();
foreach ($this->fields as $field) {
$this->field->showField($field->hidden ? '' :
$field->label, $field->input);
}
$this->field->endFieldset();PK�(�[ູ���"views/group/tmpl/edit_updating.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// set description if required
if (isset($this->fieldset->description) &&
!empty($this->fieldset->description)) { ?>
<?php echo JText::_($this->fieldset->description); ?>
<?php } ?>
<?php
$this->field->startFieldset();
foreach ($this->fields as $field) {
$this->field->showField($field->hidden ? '' :
$field->label, $field->input);
}
$this->field->endFieldset();PK�(�[ູ���!views/group/tmpl/edit_viewing.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// set description if required
if (isset($this->fieldset->description) &&
!empty($this->fieldset->description)) { ?>
<?php echo JText::_($this->fieldset->description); ?>
<?php } ?>
<?php
$this->field->startFieldset();
foreach ($this->fields as $field) {
$this->field->showField($field->hidden ? '' :
$field->label, $field->input);
}
$this->field->endFieldset();PK�(�[�#o,,views/group/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[T4'0++views/group/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewGroup extends JViewLegacy
{
protected $form;
protected $item;
protected $tabs;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
$this->item = $this->get('Item');
$this->tabs = $this->get('RSTabs');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('groups');
JToolbarHelper::apply('group.apply');
JToolbarHelper::save('group.save');
JToolbarHelper::save2new('group.save2new');
JToolbarHelper::save2copy('group.save2copy');
JToolbarHelper::cancel('group.cancel');
}
}PK�(�[�#o,,views/groups/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��F���views/groups/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
$canEdit = JFactory::getUser()->authorise('group.edit',
'com_rsticketspro');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=groups');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped">
<thead>
<tr>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_GROUP', 'name', $listDirn, $listOrder);
?></th>
<th width="1%"><?php echo
JHtml::_('searchtools.sort', 'ID', 'id',
$listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody>
<?php
foreach ($this->items as $i => $item)
{
?>
<tr>
<td width="1%" nowrap="nowrap"><?php
echo JHtml::_('grid.id', $i, $item->id); ?></td>
<td>
<?php
if ($canEdit)
{
echo JHtml::_('link',
JRoute::_('index.php?option=com_rsticketspro&task=group.edit&id='.(int)
$item->id), $this->escape($item->name));
}
else
{
echo $this->escape($item->name);
}
?>
</td>
<td width="1%"><?php echo
$this->escape($item->id); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</div>
</form>PK�(�[�#o,,views/groups/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��ű((views/groups/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewGroups extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('groups');
$user = JFactory::getUser();
if ($user->authorise('group.create',
'com_rsticketspro'))
{
JToolbarHelper::addNew('group.add');
}
if ($user->authorise('group.edit',
'com_rsticketspro'))
{
JToolbarHelper::editList('group.edit');
}
if ($user->authorise('group.delete',
'com_rsticketspro'))
{
JToolbarHelper::deleteList('RST_CONFIRM_DELETE',
'groups.delete');
}
}
}PK�(�[�#o,,views/history/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[hE�2��views/history/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=history&id='.$this->id.'&tmpl=component');
?>" method="post" name="adminForm"
id="adminForm">
<table class="table table-striped">
<thead>
<tr>
<th><?php echo JHtml::_('grid.sort',
'RST_HISTORY_DATE', 'date', $listDirn, $listOrder);
?></th>
<th><?php echo JHtml::_('grid.sort',
'RST_HISTORY_IP', 'ip', $listDirn, $listOrder);
?></th>
<th><?php echo JText::_('RST_HISTORY_ACTION');
?></th>
<th><?php echo JText::_('RST_HISTORY_VIEWED');
?></th>
</tr>
</thead>
<tbody>
<?php
foreach ($this->items as $item)
{
?>
<tr>
<td width="1%" nowrap="nowrap"><?php echo
$this->showDate($item->date); ?></td>
<td width="1%" nowrap="nowrap"><?php echo
$this->escape($item->ip); ?></td>
<td width="1%" nowrap="nowrap"><?php echo
JText::_('RST_HISTORY_ACTION_'.$item->type); ?></td>
<td><?php echo
$this->escape($this->showUser($item->user_id)); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php echo $this->pagination->getListFooter(); ?>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="filter_order"
value="<?php echo $listOrder; ?>" />
<input type="hidden" name="filter_order_Dir"
value="<?php echo $listDirn; ?>" />
</form>PK�(�[�#o,,views/history/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[ǨQ��views/history/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewHistory extends JViewLegacy
{
protected $id;
protected $items;
protected $pagination;
protected $state;
protected $dateFormat;
protected $userField;
public function display($tpl = null)
{
if (!$this->hasPermission())
{
throw new Exception(JText::_('RST_CANNOT_VIEW_HISTORY'),
403);
}
$this->id = $this->get('Id');
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->dateFormat =
RSTicketsProHelper::getConfig('date_format');
$this->userField =
RSTicketsProHelper::getConfig('show_user_info');
parent::display($tpl);
}
protected function showDate($date)
{
return JHtml::_('date', $date, $this->dateFormat);
}
protected function showUser($user_id)
{
static $cache = array();
if (!isset($cache[$user_id]))
{
$cache[$user_id] = $user_id ?
JFactory::getUser($user_id)->{$this->userField} : '-';
}
return $cache[$user_id];
}
protected function hasPermission()
{
// get id
$id = $this->get('Id');
// get model
$model = JModelLegacy::getInstance('Ticket',
'RsticketsproModel', array(
'option' => 'com_rsticketspro',
'table_path' =>
JPATH_ADMINISTRATOR.'/components/com_rsticketspro/tables'
));
// check if options are enabled
$viewingHistory =
RSTicketsProHelper::getConfig('ticket_viewing_history');
if ($viewingHistory && (($viewingHistory == 1 &&
$model->isStaff()) || ($viewingHistory == 2)))
{
// check if ticket can be opened
return $model->hasPermission($id);
}
return false;
}
}PK�(�[�#o,,views/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�#o,,views/kbarticle/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[v���views/kbarticle/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=kbarticle&layout=edit&id='.(int)
$this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-horizontal">
<?php
if ($this->ticket)
{
echo '<a
href="'.JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='.$this->ticket->id).'">'.JText::sprintf('RST_KB_ARTICLE_CONVERTED_FROM',
$this->ticket->subject,
$this->ticket->code).'</a>';
}
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�#o,,views/kbarticle/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��R�RRviews/kbarticle/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewKbarticle extends JViewLegacy
{
protected $form;
protected $item;
protected $ticket;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
$this->item = $this->get('Item');
$this->ticket = $this->get('Ticket');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('kbarticles');
JToolbarHelper::apply('kbarticle.apply');
JToolbarHelper::save('kbarticle.save');
JToolbarHelper::save2new('kbarticle.save2new');
JToolbarHelper::save2copy('kbarticle.save2copy');
JToolbarHelper::cancel('kbarticle.cancel');
}
}PK�(�[g��wviews/kbarticle/view.json.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewKbarticle extends JViewLegacy
{
protected $item;
public function display($tpl = null)
{
// set the JSON headers
header('Content-Type: application/json; charset=utf-8');
$this->item = $this->get('Item');
if (!RSTicketsProHelper::getConfig('allow_rich_editor'))
{
$this->item->text = strip_tags($this->item->text);
}
// display the result
echo json_encode($this->item);
// end application
JFactory::getApplication()->close();
}
}PK�(�[�#o,,views/kbarticles/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[������!views/kbarticles/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
$canEdit = JFactory::getUser()->authorise('kbarticle.edit',
'com_rsticketspro');
$canChange =
JFactory::getUser()->authorise('kbarticle.edit.state',
'com_rsticketspro');
$canEditCategory =
JFactory::getUser()->authorise('kbcategory.edit',
'com_rsticketspro');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
$saveOrder = $listOrder == 'a.ordering' && $canChange;
if ($saveOrder)
{
$saveOrderingUrl =
'index.php?option=com_rsticketspro&task=kbarticles.saveOrderAjax&tmpl=component';
JHtml::_('sortablelist.sortable', 'articleList',
'adminForm', strtolower($listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=kbarticles');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped"
id="articleList">
<thead>
<tr>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th style="width:1%" class="nowrap
text-center"><?php echo JHtml::_('searchtools.sort',
'', 'a.ordering', $listDirn, $listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
<th><?php echo JHtml::_('searchtools.sort',
'RST_KB_ARTICLE_NAME', 'a.name', $listDirn,
$listOrder); ?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_KB_CATEGORY_NAME', 'c.name', $listDirn,
$listOrder); ?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'RST_KB_HITS',
'a.hits', $listDirn, $listOrder); ?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'RST_PRIVATE',
'a.private', $listDirn, $listOrder); ?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'JPUBLISHED',
'a.published', $listDirn, $listOrder); ?></th>
<th width="1%"><?php echo
JHtml::_('searchtools.sort', 'ID', 'a.id',
$listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody <?php if ($saveOrder) { ?>
class="js-draggable" data-url="<?php echo
$saveOrderingUrl; ?>" data-direction="<?php echo
strtolower($listDirn); ?>" data-nested="false"<?php }
?>>
<?php
foreach ($this->items as $i => $item)
{
?>
<tr data-draggable-group="<?php echo $item->category_id;
?>">
<td width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.id', $i, $item->id); ?></td>
<td class="order center">
<?php
$disableClassName = '';
$disabledLabel = '';
if (!$saveOrder)
{
$disabledLabel = JText::_('JORDERINGDISABLED');
$disableClassName = 'inactive';
}
?>
<span class="sortable-handler <?php echo
$disableClassName; ?>" title="<?php echo $disabledLabel;
?>">
<i class="icon-menu"></i>
</span>
<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$item->ordering; ?>" class="width-20 text-area-order"
/>
</td>
<td>
<?php
if ($canEdit)
{
echo JHtml::_('link',
JRoute::_('index.php?option=com_rsticketspro&task=kbarticle.edit&id='.(int)
$item->id), $this->escape($item->name));
}
else
{
echo $this->escape($item->name);
}
?>
</td>
<td>
<?php
if ($item->category_id)
{
if ($canEditCategory)
{
echo JHtml::_('link',
JRoute::_('index.php?option=com_rsticketspro&task=kbcategory.edit&id='.(int)
$item->category_id), $this->escape($item->category_name));
}
else
{
echo $this->escape($item->category_name);
}
}
else
{
echo JText::_('RST_KB_NO_PARENT');
}
?>
</td>
<td width="1%" nowrap="nowrap"><?php echo
$this->escape($item->hits); ?></td>
<td width="1%" nowrap="nowrap"
align="center">
<?php
echo JHtml::_('jgrid.state', array(
0 => array('setprivate', 'JYES',
'', '', false, 'unpublish',
'unpublish'),
1 => array('unsetprivate', 'JNO',
'', '', false, 'publish',
'publish')
), $item->private, $i, 'kbarticles.', false);
?>
</td>
<td width="1%" nowrap="nowrap"
align="center"><?php echo
JHtml::_('jgrid.published', $item->published, $i,
'kbarticles.', $canChange); ?></td>
<td width="1%"><?php echo
$this->escape($item->id); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</div>
</form>PK�(�[o�Y�
�
!views/kbarticles/tmpl/element.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=kbarticles&layout=element');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped">
<thead>
<tr>
<th width="20"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_KB_ARTICLE_NAME', 'a.name', $listDirn,
$listOrder); ?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_KB_CATEGORY_NAME', 'c.name', $listDirn,
$listOrder); ?></th>
<th width="1%" class="center"
align="center"><?php echo
JHtml::_('searchtools.sort', 'RST_PRIVATE',
'a.private', $listDirn, $listOrder); ?></th>
<th width="1%" class="center"
align="center"><?php echo
JHtml::_('searchtools.sort', 'JPUBLISHED',
'a.published', $listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody>
<?php
foreach ($this->items as $i => $item)
{
?>
<tr>
<td><?php echo JHtml::_('grid.id', $i,
$item->id); ?></td>
<td><a
onclick="window.parent.elSelectEvent('<?php echo $item->id;
?>', this.innerText);" href="javascript:
void(0);"><?php echo $item->name != '' ?
$this->escape($item->name) : JText::_('RST_NO_TITLE');
?></a></td>
<td>
<?php
if ($item->category_id)
{
echo $item->category_name;
}
else
{
echo JText::_('RST_KB_NO_PARENT');
}
?>
</td>
<td class="center" align="center"><?php
echo $item->private ? JText::_('JYES') :
JText::_('JNO'); ?></td>
<td class="center" align="center"><?php
echo JHtml::_('jgrid.published', $item->published, $i,
'kbarticles.'); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task" value=""
/>
<input type="hidden" name="tmpl"
value="component" />
</form>PK�(�[�#o,,
views/kbarticles/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�66views/kbarticles/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewKbarticles extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('kbarticles');
$user = JFactory::getUser();
if ($user->authorise('kbarticle.create',
'com_rsticketspro'))
{
JToolbarHelper::addNew('kbarticle.add');
}
if ($user->authorise('kbarticle.edit',
'com_rsticketspro'))
{
JToolbarHelper::editList('kbarticle.edit');
}
if ($user->authorise('kbarticle.edit.state',
'com_rsticketspro'))
{
JToolbarHelper::publish('kbarticles.publish',
'JTOOLBAR_PUBLISH', true);
JToolbarHelper::unpublish('kbarticles.unpublish',
'JTOOLBAR_UNPUBLISH', true);
}
if ($user->authorise('kbarticle.delete',
'com_rsticketspro'))
{
JToolbarHelper::deleteList('RST_CONFIRM_DELETE',
'kbarticles.delete');
}
}
}PK�(�[�#o,,views/kbcategories/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��-��#views/kbcategories/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
$canEdit = JFactory::getUser()->authorise('kbcategory.edit',
'com_rsticketspro');
$canChange =
JFactory::getUser()->authorise('kbcategory.edit.state',
'com_rsticketspro');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
$saveOrder = $listOrder == 'ordering' && $canChange;
if ($saveOrder)
{
$saveOrderingUrl =
'index.php?option=com_rsticketspro&task=kbcategories.saveOrderAjax&tmpl=component';
JHtml::_('sortablelist.sortable', 'articleList',
'adminForm', strtolower($listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=kbcategories');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped"
id="articleList">
<thead>
<tr>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th style="width:1%" class="nowrap
text-center"><?php echo JHtml::_('searchtools.sort',
'', 'ordering', $listDirn, $listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
<th><?php echo JHtml::_('searchtools.sort',
'RST_KB_CATEGORY_NAME', 'name', $listDirn, $listOrder);
?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'RST_PRIVATE',
'private', $listDirn, $listOrder); ?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'JPUBLISHED',
'published', $listDirn, $listOrder); ?></th>
<th width="1%"><?php echo
JHtml::_('searchtools.sort', 'ID', 'id',
$listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody <?php if ($saveOrder) { ?>
class="js-draggable" data-url="<?php echo
$saveOrderingUrl; ?>" data-direction="<?php echo
strtolower($listDirn); ?>" data-nested="false"<?php }
?>>
<?php
$i = 0;
foreach ($this->items as $item)
{
?>
<tr data-draggable-group="<?php echo $item->parent_id;
?>">
<td width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.id', $i, $item->id); ?></td>
<td class="order center">
<?php
$disableClassName = '';
$disabledLabel = '';
if (!$saveOrder)
{
$disabledLabel = JText::_('JORDERINGDISABLED');
$disableClassName = 'inactive';
}
?>
<span class="sortable-handler <?php echo
$disableClassName; ?>" title="<?php echo $disabledLabel;
?>">
<i class="icon-menu"></i>
</span>
<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$item->ordering; ?>" class="width-20 text-area-order"
/>
</td>
<td>
<?php
if ($canEdit)
{
echo JHtml::_('link',
JRoute::_('index.php?option=com_rsticketspro&task=kbcategory.edit&id='.(int)
$item->id), (isset($item->treename) ? $item->treename :
'') . $this->escape($item->name));
}
else
{
echo (isset($item->treename) ? $item->treename : '')
. $this->escape($item->name);
}
?>
</td>
<td width="1%" nowrap="nowrap"
align="center">
<?php
echo JHtml::_('jgrid.state', array(
0 => array('setprivate', 'JYES',
'', '', false, 'unpublish',
'unpublish'),
1 => array('unsetprivate', 'JNO',
'', '', false, 'publish',
'publish')
), $item->private, $i, 'kbcategories.', false);
?>
</td>
<td width="1%" nowrap="nowrap"
align="center"><?php echo
JHtml::_('jgrid.published', $item->published, $i,
'kbcategories.', $canChange); ?></td>
<td width="1%"><?php echo
$this->escape($item->id); ?></td>
</tr>
<?php
$i++;
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</div>
</form>PK�(�[�#o,,"views/kbcategories/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[���DD
views/kbcategories/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewKbcategories extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('kbcategories');
$user = JFactory::getUser();
if ($user->authorise('kbcategory.create',
'com_rsticketspro'))
{
JToolbarHelper::addNew('kbcategory.add');
}
if ($user->authorise('kbcategory.edit',
'com_rsticketspro'))
{
JToolbarHelper::editList('kbcategory.edit');
}
if ($user->authorise('kbcategory.edit.state',
'com_rsticketspro'))
{
JToolbarHelper::publish('kbcategories.publish',
'JTOOLBAR_PUBLISH', true);
JToolbarHelper::unpublish('kbcategories.unpublish',
'JTOOLBAR_UNPUBLISH', true);
}
if ($user->authorise('kbcategory.delete',
'com_rsticketspro'))
{
JToolbarHelper::deleteList('RST_CONFIRM_DELETE',
'kbcategories.delete');
}
}
}PK�(�[�#o,,views/kbcategory/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[E�mT,,views/kbcategory/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
JHtml::_('behavior.formvalidator');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=kbcategory&layout=edit&id='.(int)
$this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-horizontal"
enctype="multipart/form-data">
<?php
if ($this->item->thumb && $this->item->id)
{
echo '<p>' . JHtml::_('image',
'components/com_rsticketspro/assets/thumbs/small/' .
$this->item->thumb, '', array(), false) .
'</p>';
}
else
{
$this->form->setFieldAttribute('delete_thumb',
'disabled', 'true');
$this->form->setFieldAttribute('delete_thumb',
'filter', 'unset');
}
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�#o,,
views/kbcategory/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[ѓ��views/kbcategory/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewKbcategory extends JViewLegacy
{
protected $form;
protected $item;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
$this->item = $this->get('Item');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('kbcategories');
JToolbarHelper::apply('kbcategory.apply');
JToolbarHelper::save('kbcategory.save');
JToolbarHelper::save2new('kbcategory.save2new');
JToolbarHelper::save2copy('kbcategory.save2copy');
JToolbarHelper::cancel('kbcategory.cancel');
}
}PK�(�[�#o,,views/kbconvert/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[I5���
views/kbconvert/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=kbconvert');
?>" method="post" name="adminForm"
id="adminForm" class="form-validate
form-horizontal">
<?php
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�#o,,views/kbconvert/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�.=�ffviews/kbconvert/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewKbconvert extends JViewLegacy
{
protected $form;
protected $item;
protected $field;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('ticket');
JToolbarHelper::save('kbconvert.save');
JToolbarHelper::cancel('kbconvert.cancel');
}
}PK�(�[�#o,,views/kbresults/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[kв�
views/kbresults/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
PK�(�[�#o,,views/kbresults/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��0�IIviews/kbresults/view.json.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewKbresults extends JViewLegacy
{
public function display($tpl = null)
{
// set the JSON headers
header('Content-Type: application/json; charset=utf-8');
$this->items = $this->get('Items');
// parse the results
$results = array();
foreach ($this->items as $item)
{
$results[] = array(
'label' => $item->name,
'value' => $item->id
);
}
// display the results
echo json_encode(array(
'list' => $results
));
// end application
JFactory::getApplication()->close();
}
}PK�(�[�#o,,views/kbrule/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[-�views/kbrule/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
JText::script('RST_PLEASE_SELECT');
JText::script('RST_DEPARTMENT');
JText::script('RST_TICKET_SUBJECT');
JText::script('RST_TICKET_MESSAGE');
JText::script('RST_PRIORITY');
JText::script('RST_TICKET_STATUS');
JText::script('RST_CUSTOM_FIELD');
JText::script('RST_IS_EQUAL');
JText::script('RST_IS_NOT_EQUAL');
JText::script('RST_IS_LIKE');
JText::script('RST_IS_NOT_LIKE');
JText::script('RST_AND');
JText::script('RST_OR');
JText::script('RST_IF');
JHtml::_('behavior.formvalidator');
JHtml::_('behavior.keepalive');
JHtml::_('jquery.framework');
JHtml::_('script', 'com_rsticketspro/kbrules.js',
array('relative' => true, 'version' =>
'auto'));
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=kbrule&layout=edit&id='.(int)
$this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-horizontal">
<?php
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�#o,,views/kbrule/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�ӆ��views/kbrule/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewKbrule extends JViewLegacy
{
protected $form;
protected $item;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
$this->item = $this->get('Item');
parent::display($tpl);
}
protected function addToolbar() {
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('kbrules');
JToolbarHelper::apply('kbrule.apply');
JToolbarHelper::save('kbrule.save');
JToolbarHelper::save2new('kbrule.save2new');
JToolbarHelper::save2copy('kbrule.save2copy');
JToolbarHelper::cancel('kbrule.cancel');
}
}PK�(�[�#o,,views/kbrules/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[l�$�TTviews/kbrules/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
$canEdit = JFactory::getUser()->authorise('kbrule.edit',
'com_rsticketspro');
$canChange =
JFactory::getUser()->authorise('kbrule.edit.state',
'com_rsticketspro');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=kbrules');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped">
<thead>
<tr>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_KB_RULE_NAME', 'r.name', $listDirn, $listOrder);
?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_KB_CATEGORY_NAME', 'c.name', $listDirn,
$listOrder); ?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'JPUBLISHED',
'r.published', $listDirn, $listOrder); ?></th>
<th width="1%"><?php echo
JHtml::_('searchtools.sort', 'ID', 'r.id',
$listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody>
<?php
foreach ($this->items as $i => $item)
{
?>
<tr data-draggable-group="1">
<td width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.id', $i, $item->id); ?></td>
<td>
<?php
if ($canEdit)
{
echo JHtml::_('link',
JRoute::_('index.php?option=com_rsticketspro&task=kbrule.edit&id='.(int)
$item->id), $this->escape($item->name));
}
else
{
echo $this->escape($item->name);
}
?>
</td>
<td><?php echo $item->category_id ?
$this->escape($item->category_name) :
JText::_('RST_KB_NO_PARENT'); ?></td>
<td width="1%" nowrap="nowrap"
align="center"><?php echo
JHtml::_('jgrid.published', $item->published, $i,
'kbrules.', $canChange); ?></td>
<td><?php echo $this->escape($item->id);
?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</div>
</form>PK�(�[�#o,,views/kbrules/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�n�Qviews/kbrules/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewKbrules extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('kbrules');
$user = JFactory::getUser();
if ($user->authorise('kbrule.create',
'com_rsticketspro'))
{
JToolbarHelper::addNew('kbrule.add');
}
if ($user->authorise('kbrule.edit',
'com_rsticketspro'))
{
JToolbarHelper::editList('kbrule.edit');
}
if ($user->authorise('kbrule.edit.state',
'com_rsticketspro'))
{
JToolbarHelper::publish('kbrules.publish',
'JTOOLBAR_PUBLISH', true);
JToolbarHelper::unpublish('kbrules.unpublish',
'JTOOLBAR_UNPUBLISH', true);
}
if ($user->authorise('kbrule.delete',
'com_rsticketspro'))
{
JToolbarHelper::deleteList('RST_CONFIRM_DELETE',
'kbrules.delete');
}
}
}PK�(�[�#o,,views/note/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[YF�MMviews/note/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=note&tmpl=component&layout=edit&id='.(int)
$this->item->id.'&ticket_id='.$this->ticket_id);
?>" method="post" name="adminForm"
id="adminForm" class="form-validate
form-horizontal">
<div class="rst_button_spacer">
<button type="button" class="btn btn-success"
onclick="Joomla.submitbutton('note.apply');"><i
class="icon-apply icon-white"></i> <?php echo
JText::_('JAPPLY'); ?></button>
<button type="button" class="btn btn-danger"
onclick="Joomla.submitbutton('note.cancel');"><i
class="icon-cancel"></i> <?php echo
JText::_('JCANCEL'); ?></button>
</div>
<?php
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task" value=""
/>
</form>PK�(�[�#o,,views/note/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��44views/note/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewNote extends JViewLegacy
{
protected $form;
protected $item;
public function display($tpl = null)
{
$this->form = $this->get('Form');
$this->item = $this->get('Item');
$this->ticket_id = $this->get('TicketId');
parent::display($tpl);
}
}PK�(�[�#o,,views/notes/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[)�N���views/notes/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
JText::script('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST');
JText::script('RST_DELETE_TICKET_NOTE_CONFIRM');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=notes&ticket_id='.$this->id.'&tmpl=component');
?>" method="post" name="adminForm"
id="adminForm">
<div class="rst_button_spacer">
<?php
if ($this->permissions->add_note)
{
?>
<button type="button" class="btn btn-success"
onclick="Joomla.submitbutton('note.add');"><i
class="icon-plus"></i> <?php echo
JText::_('RST_TICKET_ADD_NOTE'); ?></button>
<?php
}
if ($this->permissions->delete_note ||
$this->permissions->delete_note_staff)
{
?>
<button type="button" class="btn btn-danger"
onclick="if (document.adminForm.boxchecked.value === '0') {
alert(Joomla.JText._('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST'));
} else { if
(confirm(Joomla.JText._('RST_DELETE_TICKET_NOTE_CONFIRM'))) {
Joomla.submitbutton('notes.delete'); } }"><i
class="icon-delete"></i> <?php echo
JText::_('RST_TICKET_DELETE_NOTE'); ?></button>
<?php
}
?>
</div>
<?php
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped table-condensed">
<thead>
<tr>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th><?php echo JHtml::_('grid.sort',
'RST_HISTORY_DATE', 'date', $listDirn, $listOrder);
?></th>
<th><?php echo JText::_('RST_NOTES_USER');
?></th>
<th><?php echo JText::_('RST_TICKET_NOTE');
?></th>
</tr>
</thead>
<tbody>
<?php
foreach ($this->items as $i => $item)
{
$canDelete = ($this->permissions->delete_note &&
$item->user_id == $this->userId) ||
($this->permissions->delete_note_staff && $item->user_id
!= $this->userId);
$canEdit = ($this->permissions->update_note &&
$item->user_id == $this->userId) ||
($this->permissions->update_note_staff && $item->user_id
!= $this->userId);
?>
<tr>
<td width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.id', $i, $item->id, !$canDelete);
?></td>
<td width="1%" nowrap="nowrap"><?php echo
$this->showDate($item->date); ?></td>
<td width="1%" nowrap="nowrap"><?php echo
$this->escape($this->showUser($item->user_id)); ?></td>
<td>
<p><?php echo nl2br($this->escape($item->text));
?></p>
<?php
if ($canEdit)
{
?>
<p><a class="btn btn-secondary btn-mini btn-sm"
href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=note.edit&tmpl=component&ticket_id='.$this->id.'&id='.(int)
$item->id); ?>"><?php echo
JText::_('RST_TICKET_EDIT_NOTE'); ?></a></p>
<?php
}
?>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
echo JHtml::_( 'form.token' );
?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task" value=""
/>
<input type="hidden" name="filter_order"
value="<?php echo $listOrder; ?>" />
<input type="hidden" name="filter_order_Dir"
value="<?php echo $listDirn; ?>" />
</form>PK�(�[�#o,,views/notes/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[������views/notes/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewNotes extends JViewLegacy
{
protected $id;
protected $items;
protected $pagination;
protected $state;
protected $permissions;
protected $dateFormat;
protected $userField;
public function display($tpl = null)
{
if (!$this->hasPermission())
{
throw new Exception(JText::_('RST_STAFF_CANNOT_VIEW_NOTES'),
403);
}
$this->id = $this->get('Id');
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->userId = JFactory::getUser()->id;
$this->dateFormat =
RSTicketsProHelper::getConfig('date_format');
$this->userField =
RSTicketsProHelper::getConfig('show_user_info');
parent::display($tpl);
}
protected function showDate($date)
{
return JHtml::_('date', $date, $this->dateFormat);
}
protected function showUser($user_id) {
if ($user_id) {
return JFactory::getUser($user_id)->{$this->userField};
} else {
return '-';
}
}
protected function hasPermission() {
// get id
$id = $this->get('Id');
// get model
$model = JModelLegacy::getInstance('Ticket',
'RsticketsproModel', array(
'option' => 'com_rsticketspro',
'table_path' =>
JPATH_ADMINISTRATOR.'/components/com_rsticketspro/tables'
));
// get permissions
$this->permissions = $model->getStaffPermissions();
return $model->isStaff() &&
$this->permissions->view_notes &&
$model->hasPermission($id);
}
}PK�(�[�#o,,!views/predefinedsearch/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�]��
�
$views/predefinedsearch/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=predefinedsearch&layout=edit&id='.(int)
$this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-horizontal">
<?php
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
if (isset($this->item->params['search']))
{
$input = strlen($this->item->params['search']) ?
$this->escape($this->item->params['search']) :
'<em>' . JText::_('RST_NONE_SUPPLIED') .
'</em>';
$this->showField(JText::_('RST_SEARCH_TEXT'), $input);
}
if (isset($this->item->params['customer']))
{
$input = strlen($this->item->params['customer']) ?
$this->escape($this->item->params['customer']) :
'<em>' . JText::_('RST_NONE_SUPPLIED') .
'</em>';
$this->showField(JText::_('RST_SEARCH_CUSTOMER'), $input);
}
if (isset($this->item->params['staff']))
{
if (strlen($this->item->params['staff']))
{
if ((string) $this->item->params['staff'] ===
'0')
{
$input = '<em>' . JText::_('RST_UNASSIGNED')
. '</em>';
}
else
{
$input =
$this->escape($this->item->params['staff']);
}
}
else
{
$input = '<em>' .
JText::_('RST_NONE_SUPPLIED') . '</em>';
}
$this->showField(JText::_('RST_SEARCH_STAFF'), $input);
}
if (isset($this->item->params['department_id']))
{
$departments =
$this->getDepartments($this->item->params['department_id']);
$input = $departments ? $this->escape(implode(', ',
$departments)) : '<em>' .
JText::_('RST_NONE_SUPPLIED') . '</em>';
$this->showField(JText::_('RST_SEARCH_DEPARTMENTS'),
$input);
}
if (isset($this->item->params['priority_id']))
{
$priorities =
$this->getPriorities($this->item->params['priority_id']);
$input = $priorities ? $this->escape(implode(', ',
$priorities)) : '<em>' .
JText::_('RST_NONE_SUPPLIED') . '</em>';
$this->showField(JText::_('RST_SEARCH_PRIORITIES'),
$input);
}
if (isset($this->item->params['status_id']))
{
$statuses =
$this->getStatuses($this->item->params['status_id']);
$input = $statuses ? $this->escape(implode(', ', $statuses))
: '<em>' . JText::_('RST_NONE_SUPPLIED') .
'</em>';
$this->showField(JText::_('RST_SEARCH_STATUSES'), $input);
}
if (isset($this->item->params['flagged']))
{
$input = $this->item->params['flagged'] ?
JText::_('JYES') : JText::_('JNO');
$this->showField(JText::_('RST_SEARCH_FLAGGED'), $input);
}
if (!empty($this->item->params['ordering']))
{
$input =
JText::_('RST_TICKET_'.$this->item->params['ordering']);
if (!empty($this->item->params['direction']))
{
$input .= ' ' .
($this->item->params['direction'] == 'asc' ?
JText::_('JGLOBAL_ORDER_ASCENDING') :
JText::_('JGLOBAL_ORDER_DESCENDING'));
}
$this->showField(JText::_('JFIELD_ORDERING_LABEL'),
$input);
}
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�#o,,&views/predefinedsearch/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[X��Q��$views/predefinedsearch/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewPredefinedsearch extends JViewLegacy
{
protected $form;
protected $item;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
$this->item = $this->get('Item');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('tickets');
JToolbarHelper::apply('predefinedsearch.apply');
JToolbarHelper::save('predefinedsearch.save');
JToolbarHelper::cancel('predefinedsearch.cancel');
}
protected function showField($label, $desc)
{
echo '<p><strong>' . $label .
'</strong><br>' . $desc . '</p>';
}
protected function getDepartments($ids)
{
$db = JFactory::getDbo();
$results = array();
if (!is_array($ids))
{
$ids = (array) $ids;
}
if (!$ids)
{
return $results;
}
$filtered_ids = array();
foreach ($ids as $id)
{
$filtered_ids[] = $db->q($id);
}
// Load departments
$query = $db->getQuery(true);
$query->select($db->qn('name'))
->from($db->qn('#__rsticketspro_departments'))
->where($db->qn('id') . ' IN
('.implode(',', $filtered_ids).')');
if ($results = $db->setQuery($query)->loadColumn())
{
foreach ($results as $k => $result)
{
$results[$k] = JText::_($result);
}
}
return $results;
}
protected function getPriorities($ids)
{
$db = JFactory::getDbo();
$results = array();
if (!is_array($ids))
{
$ids = (array) $ids;
}
if (!$ids)
{
return $results;
}
$filtered_ids = array();
foreach ($ids as $id)
{
$filtered_ids[] = $db->q($id);
}
// Load priorities
$query = $db->getQuery(true);
$query->select($db->qn('name'))
->from($db->qn('#__rsticketspro_priorities'))
->where($db->qn('id') . ' IN
('.implode(',', $filtered_ids).')');
if ($results = $db->setQuery($query)->loadColumn())
{
foreach ($results as $k => $result)
{
$results[$k] = JText::_($result);
}
}
return $results;
}
protected function getStatuses($ids)
{
$db = JFactory::getDbo();
$results = array();
if (!is_array($ids))
{
$ids = (array) $ids;
}
if (!$ids)
{
return $results;
}
$filtered_ids = array();
foreach ($ids as $id)
{
$filtered_ids[] = $db->q($id);
}
// Load statuses
$query = $db->getQuery(true);
$query->select($db->qn('name'))
->from($db->qn('#__rsticketspro_statuses'))
->where($db->qn('id') . ' IN
('.implode(',', $filtered_ids).')');
if ($results = $db->setQuery($query)->loadColumn())
{
foreach ($results as $k => $result)
{
$results[$k] = JText::_($result);
}
}
return $results;
}
}PK�(�[�#o,,#views/predefinedsearches/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[#�R��)views/predefinedsearches/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
$saveOrder = $listOrder == 'ordering';
if ($saveOrder)
{
$saveOrderingUrl =
'index.php?option=com_rsticketspro&task=predefinedsearches.saveOrderAjax&tmpl=component';
JHtml::_('sortablelist.sortable', 'articleList',
'adminForm', strtolower($listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=predefinedsearches');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped"
id="articleList">
<thead>
<tr>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_SEARCH_NAME', 'name', $listDirn, $listOrder);
?></th>
<th width="1%" nowrap="nowrap"><?php echo
JText::_('RST_DEFAULT_SEARCH_SHORT'); ?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'JPUBLISHED',
'published', $listDirn, $listOrder); ?></th>
<th width="1%" class="nowrap center"><?php
echo JHtml::_('searchtools.sort', '',
'ordering', $listDirn, $listOrder, null, 'asc',
'JGRID_HEADING_ORDERING', 'icon-menu-2');
?></th>
<th width="1%"><?php echo
JHtml::_('searchtools.sort', 'ID', 'id',
$listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody <?php if ($saveOrder) { ?>
class="js-draggable" data-url="<?php echo
$saveOrderingUrl; ?>" data-direction="<?php echo
strtolower($listDirn); ?>" data-nested="false"<?php }
?>>
<?php
foreach ($this->items as $i => $item)
{
?>
<tr data-draggable-group="1">
<td width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.id', $i, $item->id); ?></td>
<td>
<a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=predefinedsearch.edit&id='.(int)
$item->id); ?>"><?php echo
$this->escape($item->name); ?></a>
</td>
<td width="1%" nowrap="nowrap"
align="center"><?php echo
JHtml::_('jgrid.published', $item->default, $i,
'predefinedsearches.', false); ?></td>
<td width="1%" nowrap="nowrap"
align="center"><?php echo
JHtml::_('jgrid.published', $item->published, $i,
'predefinedsearches.'); ?></td>
<td class="order center">
<?php
$disableClassName = '';
$disabledLabel = '';
if (!$saveOrder)
{
$disabledLabel = JText::_('JORDERINGDISABLED');
$disableClassName = 'inactive';
}
?>
<span class="sortable-handler <?php echo $disableClassName;
?>">
<i class="icon-menu"></i>
</span>
<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$item->ordering; ?>" class="width-20 text-area-order"
/>
</td>
<td width="1%"><?php echo
$this->escape($item->id); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</div>
</form>PK�(�[�#o,,(views/predefinedsearches/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[]����&views/predefinedsearches/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewPredefinedsearches extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('tickets');
JToolbarHelper::addNew('predefinedsearch.add');
JToolbarHelper::editList('predefinedsearch.edit');
JToolbarHelper::divider();
JToolbarHelper::publish('predefinedsearches.publish',
'JTOOLBAR_PUBLISH', true);
JToolbarHelper::unpublish('predefinedsearches.unpublish',
'JTOOLBAR_UNPUBLISH', true);
JToolbarHelper::divider();
JToolbarHelper::deleteList('RST_CONFIRM_DELETE',
'predefinedsearches.delete');
JToolbarHelper::cancel('predefinedsearches.cancel');
}
}PK�(�[�#o,,views/priorities/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[oƇ��!views/priorities/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JFactory::getApplication()->enqueueMessage(JText::_('RST_PRIORITY_TRANSLATE'));
$canEdit = JFactory::getUser()->authorise('priority.edit',
'com_rsticketspro');
$canChange =
JFactory::getUser()->authorise('priority.edit.state',
'com_rsticketspro');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
$saveOrder = $listOrder == 'ordering' && $canChange;
if ($saveOrder)
{
$saveOrderingUrl =
'index.php?option=com_rsticketspro&task=priorities.saveOrderAjax&tmpl=component';
JHtml::_('sortablelist.sortable', 'articleList',
'adminForm', strtolower($listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=priorities');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped"
id="articleList">
<thead>
<tr>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th style="width:1%" class="nowrap
text-center"><?php echo JHtml::_('searchtools.sort',
'', 'ordering', $listDirn, $listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
<th><?php echo JHtml::_('searchtools.sort',
'RST_PRIORITY', 'name', $listDirn, $listOrder);
?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'JPUBLISHED',
'published', $listDirn, $listOrder); ?></th>
<th width="1%"><?php echo
JHtml::_('searchtools.sort', 'ID', 'id',
$listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody <?php if ($saveOrder) { ?>
class="js-draggable" data-url="<?php echo
$saveOrderingUrl; ?>" data-direction="<?php echo
strtolower($listDirn); ?>" data-nested="false"<?php }
?>>
<?php
foreach ($this->items as $i => $item)
{
?>
<tr data-draggable-group="1">
<td width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.id', $i, $item->id); ?></td>
<td class="order center">
<?php
$disableClassName = '';
$disabledLabel = '';
if (!$saveOrder)
{
$disabledLabel = JText::_('JORDERINGDISABLED');
$disableClassName = 'inactive';
}
?>
<span class="sortable-handler <?php echo
$disableClassName; ?>" title="<?php echo $disabledLabel;
?>">
<i class="icon-menu"></i>
</span>
<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$item->ordering; ?>" class="width-20 text-area-order"
/>
</td>
<td>
<?php
if ($canEdit)
{
echo JHtml::_('link',
JRoute::_('index.php?option=com_rsticketspro&task=priority.edit&id='.(int)
$item->id), $this->escape($item->name));
}
else
{
echo $this->escape($item->name);
}
?>
</td>
<td width="1%" nowrap="nowrap"
align="center"><?php echo
JHtml::_('jgrid.published', $item->published, $i,
'priorities.', $canChange); ?></td>
<td width="1%"><?php echo
$this->escape($item->id); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</div>
</form>PK�(�[�#o,,
views/priorities/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[b��00views/priorities/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewPriorities extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('priorities');
$user = JFactory::getUser();
if ($user->authorise('priority.create',
'com_rsticketspro'))
{
JToolbarHelper::addNew('priority.add');
}
if ($user->authorise('priority.edit',
'com_rsticketspro'))
{
JToolbarHelper::editList('priority.edit');
}
if ($user->authorise('priority.edit.state',
'com_rsticketspro'))
{
JToolbarHelper::publish('priorities.publish',
'JTOOLBAR_PUBLISH', true);
JToolbarHelper::unpublish('priorities.unpublish',
'JTOOLBAR_UNPUBLISH', true);
}
if ($user->authorise('priority.delete',
'com_rsticketspro'))
{
JToolbarHelper::deleteList('RST_CONFIRM_DELETE',
'priorities.delete');
}
}
}PK�(�[�#o,,views/priority/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[���n��views/priority/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=priority&layout=edit&id='.(int)
$this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-horizontal">
<?php
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�#o,,views/priority/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[����
views/priority/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewPriority extends JViewLegacy
{
protected $form;
protected $item;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
$this->item = $this->get('Item');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('priorities');
JToolbarHelper::apply('priority.apply');
JToolbarHelper::save('priority.save');
JToolbarHelper::save2new('priority.save2new');
JToolbarHelper::save2copy('priority.save2copy');
JToolbarHelper::cancel('priority.cancel');
}
}PK�(�[�#o,,views/reports/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[I�x�J J views/reports/tmpl/default.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('jquery.framework', true);
JFactory::getDocument()->addScript('https://www.gstatic.com/charts/loader.js');
JFactory::getDocument()->addScriptDeclaration('
google.charts.load(\'current\',
{\'packages\':[\'corechart\']});
google.charts.setOnLoadCallback(RSTicketsReports.selectReport);
RSTicketsReports.nrDepartments =
'.$this->count_departments.';
RSTicketsReports.nrStaff = '.$this->count_staff.';
jQuery(document).ready(function(){
RSTicketsReports.checkReport(jQuery(\'#report\').val());
});
');
JHtml::_('script',
'plg_rsticketsproreports/reports.js', array('relative'
=> true, 'version' => 'auto'));
JHtml::_('stylesheet',
'plg_rsticketsproreports/reports.css', array('relative'
=> true, 'version' => 'auto'));
?>
<div id="rst_reports_container" class="<?php echo
RsticketsproAdapterGrid::row(); ?>">
<div class="<?php echo RsticketsproAdapterGrid::column(3);
?>">
<form method="post" action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=reports');
?>" id="adminForm" name="adminForm">
<?php
$this->plain->addTitle(JText::_('RST_SELECT_REPORT'),
'select_report');
$this->plain->addContent($this->loadTemplate('select_report'));
foreach ($this->options as $layout => $title)
{
// add the tab title
$this->plain->addTitle($title, $layout);
$content = $this->loadTemplate($layout);
// add the tab content
$this->plain->addContent($content);
}
// render tabs
$this->plain->render();
?>
</form>
<div style="text-align: center;">
<p><button type="button"
onclick="rst_refresh_report();" class="button btn
btn-primary"><?php echo
JText::_('RST_REPORTS_REFRESH_GRAPH');
?></button></p>
</div>
</div>
<div class="<?php echo RsticketsproAdapterGrid::column(9);
?>">
<div>
<?php echo JHtml::_('image',
'com_rsticketspro/loading.gif', JText::_('Loading'),
array('id' => 'rst_loading'), true); ?>
</div>
<div id="rst_report">
<?php echo $this->loadTemplate('no_report'); ?>
</div>
<div class="clearfix"></div>
</div>
</div>PK�(�[|�>>'views/reports/tmpl/default_customer.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
echo
$this->form->renderFieldset('customer');PK�(�[y�'���)views/reports/tmpl/default_department.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access'); ?>
<?php if($departments =
$this->form->getFieldset('departments')) { ?>
<table class="table table-striped table-condensed"
id="rst_reports_department">
<?php foreach ($departments as $field) { ?>
<?php if (strtolower($field->type) == 'checkbox') {
?>
<tr>
<td class="key"><?php echo $field->input;
?><?php echo $field->label ?></td>
<?php } else { ?>
<td><?php echo $field->input; ?></td>
</tr>
<?php } ?>
<?php } ?>
</table>
<?php
}PK�(�[v�UA(views/reports/tmpl/default_no_report.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access'); ?>
<h2><?php echo JText::_('RST_NO_REPORT_SELECTED');
?></h2>PK�(�[��s##'views/reports/tmpl/default_priority.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access'); ?>
<?php if($priority =
$this->form->getFieldset('priority')) { ?>
<table class="table table-striped table-condensed"
id="rst_reports_priority">
<?php foreach ($priority as $field) { ?>
<tr>
<td class="key"><?php echo $field->label
?></td>
<td><?php echo $field->input; ?></td>
</tr>
<?php } ?>
</table>
<?php
}PK�(�[�m��,views/reports/tmpl/default_select_report.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2021 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
if ($reports = $this->form->getFieldset('reports'))
{
foreach ($reports as $field)
{
echo $field->input;
}
}
if ($views = $this->form->getFieldset('views'))
{
foreach($views as $field)
{
echo $field->input;
}
}
?>
<p><button type="button" id="rst_cron_view"
class="btn btn-primary"
onclick="rst_select_report();"><?php echo
JText::_('RST_VIEW_REPORT');
?></button></p>PK�(�[wf9��$views/reports/tmpl/default_staff.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access'); ?>
<?php if($staff = $this->form->getFieldset('staff')) {
?>
<table class="table table-striped table-condensed"
id="rst_reports_staff">
<?php foreach ($staff as $field) { ?>
<?php if (strtolower($field->type) ==
'checkbox') { ?>
<tr>
<td class="key"><?php echo
$field->input; ?><?php echo $field->label ?></td>
<?php } else { ?>
<td><?php echo $field->input; ?></td>
</tr>
<?php } ?>
<?php } ?>
</table>
<?php
}PK�(�[����))*views/reports/tmpl/default_time_period.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access'); ?>
<?php if($time_periods =
$this->form->getFieldset('time_period')) { ?>
<table class="table table-striped table-condensed">
<?php foreach ($time_periods as $field) { ?>
<tr>
<td style="width: 50px;" class="key"><?php
echo $field->label ?></td>
<td><?php echo $field->input; ?></td>
</tr>
<?php } ?>
</table>
<?php
}PK�(�[�#o,,views/reports/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�$S��views/reports/tmpl/report_1.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
if (empty($this->data['units'])) { ?>
<h2><?php echo JText::_('RST_NO_DATA');
?></h2>
<?php return; } ?>
<div align="center">
<h2><?php echo JText::_('RST_REPORT_1');
?></h2>
</div>
<div id="rst_report_container">
<table id="rst_reports_table">
<thead>
<tr>
<th scope="col"></th>
<?php foreach ($this->data['departments'] as
$department => $values) { ?><th scope="col"><?php
echo $department; ?></th><?php } ?>
</tr>
</thead>
<tbody>
<?php foreach ($this->data['units'] as $unit) { ?>
<tr>
<th scope="row"><?php echo $unit; ?></th>
<?php foreach ($this->data['departments'] as
$department => $value) { ?>
<?php if
(isset($this->data['departments'][$department][$unit])) {
?>
<td><?php echo
$this->data['departments'][$department][$unit];
?></td>
<?php } else { ?>
<td>0</td>
<?php } ?>
<?php } ?>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<table class="adminlist table table-striped">
<thead>
<tr>
<th width="5"><?php echo
JText::_('RST_MIN'); ?></th>
<th width="5"><?php echo
JText::_('RST_AVG'); ?></th>
<th width="5"><?php echo
JText::_('RST_MAX'); ?></th>
<th width="5"><?php echo
JText::_('RST_TOTAL'); ?></th>
</tr>
</thead>
<tr class="row0">
<td align="center"><?php echo $this->min;
?></td>
<td align="center"><?php echo $this->avg;
?></td>
<td align="center"><?php echo $this->max;
?></td>
<td align="center"><?php echo $this->total;
?></td>
</tr>
</table>PK�(�[~�466views/reports/tmpl/report_2.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
if (empty($this->data['units'])) { ?>
<h2><?php echo JText::_('RST_NO_DATA');
?></h2>
<?php return; } ?>
<div align="center">
<h2><?php echo JText::_('RST_REPORT_2');
?></h2>
</div>
<div id="rst_report_container">
<table id="rst_reports_table">
<thead>
<tr>
<th scope="col"></th>
<?php foreach ($this->data['viewby'] as $viewby =>
$values) { ?><th scope="col"><?php echo $viewby;
?></th><?php } ?>
</tr>
</thead>
<tbody>
<?php foreach ($this->data['units'] as $unit) { ?>
<tr>
<th scope="row"><?php echo $unit; ?></th>
<?php foreach ($this->data['viewby'] as $viewby =>
$value) { ?>
<?php if (isset($this->data['viewby'][$viewby][$unit]))
{ ?>
<td><?php echo
number_format($this->data['viewby'][$viewby][$unit], 2,
'.', ''); ?></td>
<?php } else { ?>
<td>0</td>
<?php } ?>
<?php } ?>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<table class="adminlist table table-striped">
<thead>
<tr>
<th width="5"><?php echo
JText::_('RST_MIN'); ?></th>
<th width="5"><?php echo
JText::_('RST_AVG'); ?></th>
<th width="5"><?php echo
JText::_('RST_MAX'); ?></th>
</tr>
</thead>
<tr class="row0">
<td align="center"><?php echo $this->min;
?></td>
<td align="center"><?php echo $this->avg;
?></td>
<td align="center"><?php echo $this->max;
?></td>
</tr>
</table>PK�(�[_ep��views/reports/tmpl/report_3.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
if (empty($this->data['units'])) { ?>
<h2><?php echo JText::_('RST_NO_DATA');
?></h2>
<?php return; } ?>
<div align="center">
<h2><?php echo JText::_('RST_REPORT_3');
?></h2>
</div>
<div id="rst_report_container">
<table id="rst_reports_table">
<thead>
<tr>
<th scope="col"></th>
<?php foreach ($this->data['viewby'] as $viewby =>
$values) { ?><th scope="col"><?php echo $viewby;
?></th><?php } ?>
</tr>
</thead>
<tbody>
<?php foreach ($this->data['units'] as $unit) { ?>
<tr>
<th scope="row"><?php echo $unit; ?></th>
<?php foreach ($this->data['viewby'] as $viewby =>
$value) { ?>
<?php if (isset($this->data['viewby'][$viewby][$unit]))
{ ?>
<td><?php echo
number_format($this->data['viewby'][$viewby][$unit], 2,
'.', ''); ?></td>
<?php } else { ?>
<td>0</td>
<?php } ?>
<?php } ?>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<table class="adminlist table table-striped">
<thead>
<tr>
<th width="5"><?php echo
JText::_('RST_MIN'); ?></th>
<th width="5"><?php echo
JText::_('RST_AVG'); ?></th>
<th width="5"><?php echo
JText::_('RST_MAX'); ?></th>
<th width="5"><?php echo
JText::_('RST_TOTAL'); ?></th>
</tr>
</thead>
<tr class="row0">
<td align="center"><?php echo $this->min;
?></td>
<td align="center"><?php echo $this->avg;
?></td>
<td align="center"><?php echo $this->max;
?></td>
<td align="center"><?php echo $this->total;
?></td>
</tr>
</table>PK�(�[�ܣ.��views/reports/tmpl/report_4.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
if (empty($this->data['units'])) { ?>
<h2><?php echo JText::_('RST_NO_DATA');
?></h2>
<?php return; } ?>
<div align="center">
<h2><?php echo JText::_('RST_REPORT_4');
?></h2>
</div>
<div id="rst_report_container">
<table id="rst_reports_table">
<thead>
<tr>
<th scope="col"></th>
<?php foreach ($this->data['viewby'] as $viewby =>
$values) { ?><th scope="col"><?php echo $viewby;
?></th><?php } ?>
</tr>
</thead>
<tbody>
<?php foreach ($this->data['units'] as $unit) { ?>
<tr>
<th scope="row"><?php echo $unit; ?></th>
<?php foreach ($this->data['viewby'] as $viewby =>
$value) { ?>
<?php if (isset($this->data['viewby'][$viewby][$unit]))
{ ?>
<td><?php echo
number_format($this->data['viewby'][$viewby][$unit], 2,
'.', ''); ?></td>
<?php } else { ?>
<td>0</td>
<?php } ?>
<?php } ?>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<table class="adminlist table table-striped">
<thead>
<tr>
<th width="5"><?php echo
JText::_('RST_MIN'); ?></th>
<th width="5"><?php echo
JText::_('RST_AVG'); ?></th>
<th width="5"><?php echo
JText::_('RST_MAX'); ?></th>
<th width="5"><?php echo
JText::_('RST_TOTAL'); ?></th>
</tr>
</thead>
<tr class="row0">
<td align="center"><?php echo $this->min;
?></td>
<td align="center"><?php echo $this->avg;
?></td>
<td align="center"><?php echo $this->max;
?></td>
<td align="center"><?php echo $this->total;
?></td>
</tr>
</table>PK�(�[1�66views/reports/tmpl/report_5.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
if (empty($this->data['units'])) { ?>
<h2><?php echo JText::_('RST_NO_DATA');
?></h2>
<?php return; } ?>
<div align="center">
<h2><?php echo JText::_('RST_REPORT_5');
?></h2>
</div>
<div id="rst_report_container">
<table id="rst_reports_table">
<thead>
<tr>
<th scope="col"></th>
<?php foreach ($this->data['viewby'] as $viewby =>
$values) { ?><th scope="col"><?php echo $viewby;
?></th><?php } ?>
</tr>
</thead>
<tbody>
<?php foreach ($this->data['units'] as $unit) { ?>
<tr>
<th scope="row"><?php echo $unit; ?></th>
<?php foreach ($this->data['viewby'] as $viewby =>
$value) { ?>
<?php if (isset($this->data['viewby'][$viewby][$unit]))
{ ?>
<td><?php echo
number_format($this->data['viewby'][$viewby][$unit], 2,
'.', ''); ?></td>
<?php } else { ?>
<td>0</td>
<?php } ?>
<?php } ?>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<table class="adminlist table table-striped">
<thead>
<tr>
<th width="5"><?php echo
JText::_('RST_MIN'); ?></th>
<th width="5"><?php echo
JText::_('RST_AVG'); ?></th>
<th width="5"><?php echo
JText::_('RST_MAX'); ?></th>
</tr>
</thead>
<tr class="row0">
<td align="center"><?php echo $this->min;
?></td>
<td align="center"><?php echo $this->avg;
?></td>
<td align="center"><?php echo $this->max;
?></td>
</tr>
</table>PK�(�[��yviews/reports/tmpl/report_6.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
if (empty($this->data['units'])) { ?>
<h2><?php echo JText::_('RST_NO_DATA');
?></h2>
<?php return; } ?>
<div align="center">
<h2><?php echo JText::_('RST_REPORT_6');
?></h2>
</div>
<div id="rst_report_container">
<table id="rst_reports_table">
<thead>
<tr>
<th scope="col"></th>
<?php foreach ($this->data['staff'] as $staff =>
$values) { ?><th scope="col"><?php echo $staff;
?></th><?php } ?>
</tr>
</thead>
<tbody>
<?php foreach ($this->data['units'] as $unit) { ?>
<tr>
<th scope="row"><?php echo $unit; ?></th>
<?php foreach ($this->data['staff'] as $staff =>
$value) { ?>
<?php if (isset($this->data['staff'][$staff][$unit])) {
?>
<td><?php echo
$this->data['staff'][$staff][$unit]; ?></td>
<?php } else { ?>
<td>0</td>
<?php } ?>
<?php } ?>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<table class="adminlist table table-striped">
<thead>
<tr>
<th width="5"><?php echo
JText::_('RST_MIN'); ?></th>
<th width="5"><?php echo
JText::_('RST_AVG'); ?></th>
<th width="5"><?php echo
JText::_('RST_MAX'); ?></th>
</tr>
</thead>
<tr class="row0">
<td align="center"><?php echo $this->min;
?></td>
<td align="center"><?php echo $this->avg;
?></td>
<td align="center"><?php echo $this->max;
?></td>
</tr>
</table>PK�(�[�*(��views/reports/view.html.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewReports extends JViewLegacy
{
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->plain = $this->get('RSPlain');
$this->options = $this->get('Options');
$this->form = $this->get('Form');
$this->count_departments =
$this->get('countDepartments');
$this->count_staff = $this->get('countStaff');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('reports');
JToolBar::getInstance('toolbar')->appendButton('Link',
'refresh', 'RST_BACK',
'index.php?option=com_rsticketspro');
}
}PK�(�[$�[Eviews/reports/view.raw.phpnu�[���<?php
/**
* @version 2.0.0
* @package RSTickets! Pro 2.0.0
* @copyright (C) 2010 www.rsjoomla.com
* @license GPL, http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewReports extends JViewLegacy
{
public function display($tpl = null) {
$this->data = $this->get('reportdata');
$this->min = $this->get('min');
$this->avg = $this->get('avg');
$this->max = $this->get('max');
$this->total = $this->get('total');
parent::display($tpl);
}
}PK�(�[�#o,,views/rsticketspro/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�V����#views/rsticketspro/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('stylesheet',
'com_rsticketspro/admin/dashboard.css',
array('relative' => true, 'version' =>
'auto'));
?>
<form action="index.php" method="post"
name="adminForm" id="adminForm">
<?php echo RsticketsproAdapterGrid::sidebar(); ?>
<div id="dashboard-left">
<?php
$rows = array_chunk($this->buttons, 4);
foreach ($rows as $buttons)
{
?>
<div class="dashboard-container">
<?php
foreach ($buttons as $button)
{
if ($button['access'])
{
?>
<div class="dashboard-info dashboard-button">
<a <?php if (!empty($button['target'])) { ?>
target="<?php echo $this->escape($button['target']);
?>"<?php } ?> href="<?php echo
$button['link']; ?>"><i class="dashboard-icon
rsticketsproicon-<?php echo $button['icon'];
?>"></i><span
class="dashboard-title"><?php echo
$button['text']; ?></span>
</a>
</div>
<?php
}
}
?>
</div>
<?php
}
?>
<h3><?php echo JText::_('RST_KNOWLEDGEBASE');
?></h3>
<?php
$rows = array_chunk($this->kbbuttons, 4);
foreach ($rows as $buttons)
{
?>
<div class="dashboard-container">
<?php
foreach ($buttons as $button)
{
if ($button['access'])
{
?>
<div class="dashboard-info dashboard-button">
<a <?php if (!empty($button['target'])) { ?>
target="<?php echo $this->escape($button['target']);
?>"<?php } ?> href="<?php echo
$button['link']; ?>"><i class="dashboard-icon
rsticketsproicon-<?php echo $button['icon'];
?>"></i><span
class="dashboard-title"><?php echo
$button['text']; ?></span>
</a>
</div>
<?php
}
}
?>
</div>
<?php
}
?>
</div>
<div id="dashboard-right" class="hidden-phone
hidden-tablet">
<div class="dashboard-container">
<div class="dashboard-info">
<?php echo JHtml::_('image',
'com_rsticketspro/admin/rsticketspro.png', 'RSTickets!
Pro', array(), true); ?>
<table class="dashboard-table">
<tr>
<td nowrap="nowrap"><strong><?php echo
JText::_('COM_RSTICKETSPRO_PRODUCT_VERSION') ?>:
</strong></td>
<td nowrap="nowrap">RSTickets! Pro <?php echo
$this->version; ?></td>
</tr>
<tr>
<td nowrap="nowrap"><strong><?php echo
JText::_('COM_RSTICKETSPRO_COPYRIGHT_NAME') ?>:
</strong></td>
<td nowrap="nowrap">© 2010 - <?php echo
gmdate('Y'); ?> <a
href="https://www.rsjoomla.com"
target="_blank">RSJoomla!</a></td>
</tr>
<tr>
<td nowrap="nowrap"><strong><?php echo
JText::_('COM_RSTICKETSPRO_LICENSE_NAME') ?>:
</strong></td>
<td nowrap="nowrap"><a
href="https://www.gnu.org/licenses/gpl.html"
target="_blank">GNU/GPL</a>
Commercial</a></td>
</tr>
<tr>
<td nowrap="nowrap"><strong><?php echo
JText::_('COM_RSTICKETSPRO_UPDATE_CODE') ?>:
</strong></td>
<?php if (strlen($this->code) == 20) { ?>
<td nowrap="nowrap"
class="correct-code"><?php echo
$this->escape($this->code); ?></td>
<?php } elseif ($this->code) { ?>
<td nowrap="nowrap"
class="incorrect-code"><?php echo
$this->escape($this->code); ?>
<br />
<strong><a
href="https://www.rsjoomla.com/support/documentation/general-faq/where-do-i-find-my-license-code-.html"
target="_blank"><?php echo
JText::_('COM_RSTICKETSPRO_WHERE_DO_I_FIND_THIS');
?></a></strong>
</td>
<?php } else { ?>
<td nowrap="nowrap"
class="missing-code"><a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=configuration');
?>"><?php echo
JText::_('COM_RSTICKETSPRO_PLEASE_ENTER_YOUR_CODE_IN_THE_CONFIGURATION');
?></a>
<br />
<strong><a
href="https://www.rsjoomla.com/support/documentation/general-faq/where-do-i-find-my-license-code-.html"
target="_blank"><?php echo
JText::_('COM_RSTICKETSPRO_WHERE_DO_I_FIND_THIS');
?></a></strong>
</td>
<?php } ?>
</tr>
</table>
</div>
</div>
<p class="text-center center"><a
href="https://www.rsjoomla.com/joomla-components/joomla-security.html?utm_source=rsticketspro&utm_medium=banner_approved&utm_campaign=rsfirewall"
target="_blank"><?php echo JHtml::_('image',
'com_rsticketspro/admin/rsfirewall-approved.png',
'RSFirewall! Approved', array(), true);
?></a></p>
</div>
</div>
<input type="hidden" name="option"
value="com_rsticketspro" />
<input type="hidden" name="task" value=""
/>
</form>PK�(�[�#o,,"views/rsticketspro/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[���8
views/rsticketspro/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewRsticketspro extends JViewLegacy
{
protected $buttons;
// version info
protected $code;
protected $version;
public function display($tpl = null)
{
$this->addToolbar();
$this->buttons = $this->get('Buttons');
$this->kbbuttons = $this->get('Kbbuttons');
$this->code = $this->get('code');
$this->version = (string) new RSTicketsProVersion();
parent::display($tpl);
}
protected function addToolbar()
{
if (JFactory::getUser()->authorise('core.admin',
'com_rsticketspro'))
{
JToolbarHelper::preferences('com_rsticketspro');
}
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('rsticketspro');
}
}PK�(�[�#o,,views/search/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[���n..views/search/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=tickets');
?>" method="post" name="adminForm"
id="adminForm" class="form-validate
form-horizontal">
<?php
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<button type="button"
onclick="Joomla.submitbutton('search.perform');"
class="button btn btn-primary"><?php echo
JText::_('RST_SEARCH'); ?></button>
</div>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�#o,,views/search/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��Mmmviews/search/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewSearch extends JViewLegacy
{
protected $form;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('tickets');
JToolbarHelper::custom('search.perform', 'search',
'search', JText::_('RST_SEARCH'), false);
JToolbarHelper::cancel('search.cancel');
}
}PK�(�[�#o,,views/signature/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[һO�~~
views/signature/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=signature');
?>" method="post" name="adminForm"
id="adminForm" class="form-validate
form-horizontal">
<?php
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task" value=""
/>
</form>PK�(�[�#o,,views/signature/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�҇:ffviews/signature/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewSignature extends JViewLegacy
{
protected $form;
public function display($tpl = null)
{
// only staff members can call this
if (!RSTicketsProHelper::isStaff())
{
throw new Exception(JText::_('RST_CANNOT_CHANGE_SIGNATURE'),
403);
}
if (!$this->get('isAssigned'))
{
throw new
Exception(JText::_('RST_CANNOT_CHANGE_SIGNATURE_MUST_BE_STAFF'),
403);
}
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('tickets');
JToolbarHelper::apply('signature.apply');
JToolbarHelper::cancel('signature.cancel');
}
}PK�(�[�#o,,views/staff/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[𒐰��views/staff/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=staff&layout=edit&id='.(int)
$this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-horizontal">
<?php
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�#o,,views/staff/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[m2����views/staff/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewStaff extends JViewLegacy
{
protected $form;
protected $item;
protected $field;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
$this->item = $this->get('Item');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('staffs');
JToolbarHelper::apply('staff.apply');
JToolbarHelper::save('staff.save');
JToolbarHelper::save2new('staff.save2new');
JToolbarHelper::cancel('staff.cancel');
}
}PK�(�[�#o,,views/staffs/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��G}}views/staffs/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
$canEdit = JFactory::getUser()->authorise('staff.edit',
'com_rsticketspro');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=staffs');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped">
<thead>
<tr>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th><?php echo JHtml::_('searchtools.sort',
'JGLOBAL_USERNAME', 'username', $listDirn, $listOrder);
?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_NAME', 'name', $listDirn, $listOrder);
?></th>
<th><?php echo JHtml::_('searchtools.sort',
'JGLOBAL_EMAIL', 'email', $listDirn, $listOrder);
?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_GROUP', 'group_name', $listDirn, $listOrder);
?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_PRIORITY', 'priority_name', $listDirn,
$listOrder); ?></th>
<th width="1%"><?php echo
JHtml::_('searchtools.sort', 'ID', 'u.id',
$listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody>
<?php
foreach ($this->items as $i => $item)
{
?>
<tr>
<td width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.id', $i, $item->id); ?></td>
<td>
<?php
if ($canEdit)
{
echo JHtml::_('link',
JRoute::_('index.php?option=com_rsticketspro&task=staff.edit&id='.(int)
$item->id), $this->escape($item->username));
}
else
{
echo $this->escape($item->username);
}
?>
</td>
<td><?php echo $this->escape($item->name);
?></td>
<td><?php echo $this->escape($item->email);
?></td>
<td><?php echo $this->escape($item->group_name);
?></td>
<td>
<?php if ($item->priority_id) { ?>
<?php echo $item->priority_name != '' ?
$this->escape(JText::_($item->priority_name)) :
JText::_('RST_NO_TITLE'); ?>
<?php } else { ?>
<?php echo JText::_('RST_ALL_PRIORITIES'); ?>
<?php } ?>
</td>
<td width="1%"><?php echo
$this->escape($item->id); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</div>
</form>PK�(�[�#o,,views/staffs/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[O��%%views/staffs/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewStaffs extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('staffs');
$user = JFactory::getUser();
if ($user->authorise('staff.create',
'com_rsticketspro'))
{
JToolbarHelper::addNew('staff.add');
}
if ($user->authorise('staff.edit',
'com_rsticketspro'))
{
JToolbarHelper::editList('staff.edit');
}
if ($user->authorise('staff.delete',
'com_rsticketspro'))
{
JToolbarHelper::deleteList('RST_CONFIRM_DELETE',
'staffs.delete');
}
}
}PK�(�[�#o,,views/status/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�-���views/status/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=status&layout=edit&id='.(int)
$this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-horizontal">
<?php
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task"
value="" />
</div>
</form>PK�(�[�#o,,views/status/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��{��views/status/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewStatus extends JViewLegacy
{
protected $form;
protected $item;
public function display($tpl = null)
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->form = $this->get('Form');
$this->item = $this->get('Item');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('statuses');
JToolbarHelper::apply('status.apply');
JToolbarHelper::save('status.save');
JToolbarHelper::save2new('status.save2new');
JToolbarHelper::save2copy('status.save2copy');
JToolbarHelper::cancel('status.cancel');
}
}PK�(�[�#o,,views/statuses/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[ph���views/statuses/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JFactory::getApplication()->enqueueMessage(JText::_('RST_STATUS_TRANSLATE'));
$canEdit = JFactory::getUser()->authorise('status.state',
'com_rsticketspro');
$canChange =
JFactory::getUser()->authorise('status.edit.state',
'com_rsticketspro');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
$saveOrder = $listOrder == 'ordering' && $canChange;
if ($saveOrder)
{
$saveOrderingUrl =
'index.php?option=com_rsticketspro&task=statuses.saveOrderAjax&tmpl=component';
JHtml::_('sortablelist.sortable', 'articleList',
'adminForm', strtolower($listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=statuses');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped"
id="articleList">
<thead>
<tr>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th style="width:1%" class="nowrap
text-center"><?php echo JHtml::_('searchtools.sort',
'', 'ordering', $listDirn, $listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
<th><?php echo JHtml::_('searchtools.sort',
'RST_STATUS', 'name', $listDirn, $listOrder);
?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'JPUBLISHED',
'published', $listDirn, $listOrder); ?></th>
<th width="1%"><?php echo
JHtml::_('searchtools.sort', 'ID', 'id',
$listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody <?php if ($saveOrder) { ?>
class="js-draggable" data-url="<?php echo
$saveOrderingUrl; ?>" data-direction="<?php echo
strtolower($listDirn); ?>" data-nested="false"<?php }
?>>
<?php
foreach ($this->items as $i => $item)
{
?>
<tr data-draggable-group="1">
<td width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.id', $i, $item->id); ?></td>
<td class="order center">
<?php
$disableClassName = '';
$disabledLabel = '';
if (!$saveOrder)
{
$disabledLabel = JText::_('JORDERINGDISABLED');
$disableClassName = 'inactive';
}
?>
<span class="sortable-handler <?php echo
$disableClassName; ?>" title="<?php echo $disabledLabel;
?>">
<i class="icon-menu"></i>
</span>
<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$item->ordering; ?>" class="width-20 text-area-order"
/>
</td>
<td>
<?php
if ($canEdit)
{
echo JHtml::_('link',
JRoute::_('index.php?option=com_rsticketspro&task=status.edit&id='.(int)
$item->id), $this->escape($item->name));
}
else
{
echo $this->escape($item->name);
}
?>
</td>
<td width="1%" nowrap="nowrap"
align="center"><?php echo
JHtml::_('jgrid.published', $item->published, $i,
'statuses.', $canChange && $item->id > 3);
?></td>
<td width="1%"><?php echo
$this->escape($item->id); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
?>
<div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="task"
value="" />
</div>
</div>
</form>PK�(�[�#o,,views/statuses/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[3��^views/statuses/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewStatuses extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->addToolbar();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('statuses');
$user = JFactory::getUser();
if ($user->authorise('status.create',
'com_rsticketspro'))
{
JToolbarHelper::addNew('status.add');
}
if ($user->authorise('status.edit',
'com_rsticketspro'))
{
JToolbarHelper::editList('status.edit');
}
if ($user->authorise('status.edit.state',
'com_rsticketspro'))
{
JToolbarHelper::publish('statuses.publish',
'JTOOLBAR_PUBLISH', true);
JToolbarHelper::unpublish('statuses.unpublish',
'JTOOLBAR_UNPUBLISH', true);
}
if ($user->authorise('status.delete',
'com_rsticketspro'))
{
JToolbarHelper::deleteList('RST_CONFIRM_DELETE',
'statuses.delete');
}
}
}PK�(�[�#o,,views/submit/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��XXviews/submit/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JText::script('RST_MAX_UPLOAD_FILES_REACHED');
JText::script('RST_TICKET_ATTACHMENTS');
JText::script('RST_TICKET_ATTACHMENTS_REQUIRED');
$script = '';
foreach ($this->departments as $department)
{
$upload = $department->upload ? 'true' : 'false';
$uploadRequired = $department->upload_ticket_required ?
'true' : 'false';
$uploadMessage = json_encode($department->upload_message);
$uploadMessageMaxFiles =
json_encode($department->upload_message_max_files);
$uploadMessageMaxSize =
json_encode($department->upload_message_max_size);
$script .= "RSTicketsPro.departments[{$department->id}] = {
id: {$department->id},
priority: {$department->priority_id},
uploads: {
allowed: {$upload},
required: {$uploadRequired},
message: {$uploadMessage},
message_max_files: {$uploadMessageMaxFiles},
message_max_size: $uploadMessageMaxSize,
max: {$department->upload_files}
}
};";
}
$script .= "window.addEventListener('DOMContentLoaded',
function() { RSTicketsPro.changeDepartment() });";
JFactory::getDocument()->addScriptDeclaration($script);
echo $this->globalMessage;
echo $this->submitMessage;
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=submit');
?>" method="post" name="adminForm"
id="adminForm" enctype="multipart/form-data"
class="form-horizontal">
<?php
// only staff members with enough permissions
// can select existing users from the database
if ($this->canChangeSubmitType)
{
echo
$this->form->getField('submit_type')->renderField();
echo
$this->form->getField('customer_id')->renderField(array('class'
=> 'rst_customer_id_container'));
// alternative email
if ($this->showAltEmail)
{
echo
$this->form->getField('alternative_email')->renderField(array('class'
=> 'rst_alt_email_container'));
}
}
echo
$this->form->getField('email')->renderField(array('class'
=> 'rst_email_container'));
echo
$this->form->getField('name')->renderField(array('class'
=> 'rst_name_container'));
// alternative email
if ($this->showAltEmail)
{
echo
$this->form->getField('alternative_email')->renderField(array('class'
=> 'rst_alt_email_container'));
}
// department
echo
$this->form->getField('department_id')->renderField(array('class'
=> 'rst_department_id_container'));
// append the custom fields after the department
foreach ($this->customFields as $customField)
{
echo $customField;
}
// subject
echo
$this->form->getField('subject')->renderField(array('class'
=> 'rst_subject_container'));
// message
echo
$this->form->getField('message')->renderField(array('class'
=> 'rst_message_container'));
// priority
echo
$this->form->getField('priority_id')->renderField(array('class'
=> 'rst_priority_id_container'));
// prepend the upload message
echo '<div
id="rst_files_message_container"></div>';
// files
echo
$this->form->getField('files')->renderField(array('class'
=> 'rst_files_container'));
?>
<div>
<button type="button" class="btn btn-success"
onclick="Joomla.submitbutton('submit.save');"><?php
echo JText::_('RST_SUBMIT'); ?></button>
<button type="button" class="btn btn-secondary"
onclick="Joomla.submitbutton('submit.cancel');"><?php
echo JText::_('JCANCEL'); ?></button>
</div>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task" value=""
/>
</form>PK�(�[�#o,,views/submit/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[D�=���views/submit/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewSubmit extends JViewLegacy
{
public function display($tpl = null)
{
$this->checkPermissions();
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
$this->globalMessage =
JText::_(RSTicketsProHelper::getConfig('global_message'));
$this->submitMessage =
JText::_(RSTicketsProHelper::getConfig('submit_message'));
$this->form = $this->get('Form');
$this->show_footer =
RSTicketsProHelper::getConfig('rsticketspro_link');
$this->departments = $this->get('Departments');
$this->customFields =
$this->get('CustomFields');
$this->user = JFactory::getUser();
$this->permissions = $this->get('Permissions');
$this->isStaff = RSTicketsProHelper::isStaff();
$this->canChangeSubmitType = $this->isStaff &&
$this->permissions &&
($this->permissions->add_ticket_customers ||
$this->permissions->add_ticket_staff);
$this->showAltEmail =
RSTicketsProHelper::getConfig('show_alternative_email');
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('tickets');
JToolbarHelper::addNew('submit.save',
JText::_('RST_SUBMIT'));
JToolbarHelper::cancel('submit.cancel');
}
protected function checkPermissions()
{
$permissions = RSTicketsProHelper::getCurrentPermissions();
if (!$permissions || (!$permissions->add_ticket &&
!$permissions->add_ticket_staff &&
!$permissions->add_ticket_customers))
{
throw new
Exception(JText::_('RST_STAFF_CANNOT_SUBMIT_TICKET'), 403);
}
}
}PK�(�[�#o,,views/ticket/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��,%�
�
views/ticket/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
JText::script('COM_RSTICKETSPRO_TIME_BUTTON_CONFIRM_START');
if ($this->globalMessage)
{
?>
<div class="<?php echo RsticketsproAdapterGrid::row();
?>" id="ticket-global-message">
<?php echo $this->globalMessage; ?>
</div>
<?php
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=ticket');
?>" method="post" name="adminForm"
id="adminForm" enctype="multipart/form-data"
autocomplete="off">
<?php
if ($this->ticketView == 'plain' || $this->isPrint)
{
?>
<div class="<?php echo RsticketsproAdapterGrid::row();
?>">
<div class="<?php echo RsticketsproAdapterGrid::column(7);
?>" id="ticket-left-column">
<?php
$this->plain->addTitle(JText::_('RST_MESSAGES'),
'messages');
$this->plain->addContent($this->loadTemplate('messages'));
$this->plain->render();
$this->plain->remove(0);
?>
</div>
<div class="<?php echo RsticketsproAdapterGrid::column(5);
?>" id="ticket-right-column">
<?php
foreach ($this->ticketSections as $layout => $title)
{
if ($layout == 'messages' || ($layout ==
'custom_fields' && empty($this->ticket->fields)))
{
continue;
}
// add the title
$this->plain->addTitle($title, $layout);
$content = $this->loadTemplate($layout);
// add the content
$this->plain->addContent($content);
}
// allow plugins to inject content here
RSTicketsProHelper::trigger('onAfterTicketInformation',
array($this->ticket, $this->plain));
// render the plain view
$this->plain->render();
?>
</div>
</div>
<?php
}
else
{
foreach ($this->ticketSections as $layout => $title)
{
if (empty($this->ticket->fields) && $layout ==
'custom_fields')
{
continue;
}
$this->handler->addTitle($title, $layout);
$this->handler->addContent($this->loadTemplate($layout));
}
RSTicketsProHelper::trigger('onAfterTicketInformation',
array($this->ticket, $this->handler));
$this->handler->render();
}
echo JHtml::_('form.token');
?>
<input type="hidden" name="id" value="<?php
echo $this->ticket->id; ?>" />
<input type="hidden" name="cid"
value="<?php echo $this->ticket->id; ?>" />
<input type="hidden" name="task" value=""
/>
<input type="hidden" name="option"
value="com_rsticketspro" />
</form>PK�(�[���
��+views/ticket/tmpl/default_custom_fields.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
foreach ($this->ticket->fields as $field)
{
echo RSTicketsProHelper::showCustomField($field, array(),
!empty($this->permissions->update_ticket_custom_fields));
}
if (!empty($this->permissions->update_ticket_custom_fields))
{
?>
<p><button type="button"
onclick="Joomla.submitbutton('ticket.updatefields')"
class="btn btn-primary"><?php echo
JText::_('RST_UPDATE'); ?></button></p>
<?php
}PK�(�[�wťqq%views/ticket/tmpl/default_history.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
if ($this->otherTickets)
{
?>
<table class="table table-striped">
<thead>
<tr>
<th><?php echo JText::_('RST_TICKET_CODE'); ?>
<?php echo JText::_('RST_TICKET_SUBJECT'); ?></th>
<th><?php echo JText::_('RST_TICKET_STATUS');
?></th>
<th><?php echo JText::_('RST_TICKET_REPLIES');
?></th>
<th><?php echo JText::_('RST_TICKET_DATE');
?></th>
</tr>
</thead>
<tbody>
<?php
foreach ($this->otherTickets as $ticket)
{
?>
<tr>
<td><a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='
. $ticket->id); ?>" title="<?php echo
$this->escape($ticket->subject); ?>">[<?php echo
$this->escape($ticket->code); ?>] <?php echo
$this->escape($ticket->subject); ?></a></td>
<td><?php echo JText::_($ticket->status_name);
?></td>
<td><?php echo
JText::sprintf('RST_TICKET_REPLIES_NUM', $ticket->replies);
?></td>
<td><?php echo JHtml::_('date', $ticket->date,
$this->dateFormat); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
}
else
{
?>
<p><?php echo JText::_('RST_NO_TICKET_HISTORY');
?></p>
<?php
}PK�(�[����NN"views/ticket/tmpl/default_info.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
echo '<div class="form-horizontal">';
// subject
echo $this->form->getField('subject')->renderField();
// department
echo
$this->form->getField('department_id')->renderField();
echo '<input type="hidden"
name="hidden_department_id" value="' .
$this->escape(JText::_($this->ticket->department->name)) .
'">';
// date
echo $this->form->getField('date')->renderField();
// status
echo $this->form->getField('status_id')->renderField();
// code
echo $this->form->getField('code')->renderField();
// priority
echo
$this->form->getField('priority_id')->renderField();
// staff
echo $this->form->getField('staff_id')->renderField();
// customer
echo
$this->form->getField('customer_id')->renderField();
// alternative email
if ($this->showAltEmail)
{
echo
$this->form->getField('alternative_email')->renderField();
}
if (!empty($this->permissions->update_ticket))
{
?>
<button type="button"
onclick="Joomla.submitbutton('ticket.updateinfo')"
class="btn btn-primary"><?php echo
JText::_('RST_UPDATE'); ?></button>
<?php
}
echo
'</div>';PK�(�[�"�j��&views/ticket/tmpl/default_messages.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
if (!$this->isPrint)
{
echo $this->loadTemplate('reply');
}
?>
<h3 class="rst_heading"><?php echo
JText::_('RST_CONVERSATION'); ?></h3>
<div class="row-fluid com-rsticketspro-has-top-margin"
id="ticket-buttons">
<?php
if (!$this->isPrint)
{
if ($this->canViewHistory)
{
echo JHtml::_('bootstrap.renderModal',
'rsticketsproHistoryModal', array(
'title' => JText::_('RST_TICKET_VIEW_HISTORY'),
'url' =>
JRoute::_('index.php?option=com_rsticketspro&view=history&id='.$this->ticket->id.'&tmpl=component',
false),
'height' => 400,
'backdrop' => 'static'));
?>
<a href="#" class="btn btn-secondary"
onclick="jQuery('#rsticketsproHistoryModal').modal('show');"><i
class="icon-calendar"></i> <?php echo
JText::_('RST_TICKET_VIEW_HISTORY'); ?></a>
<?php
}
if ($this->canViewNotes)
{
echo JHtml::_('bootstrap.renderModal',
'rsticketsproNotesModal', array(
'title' => JText::_('RST_TICKET_VIEW_NOTES'),
'url' =>
JRoute::_('index.php?option=com_rsticketspro&view=notes&ticket_id='.$this->ticket->id.'&tmpl=component',
false),
'height' => 400,
'backdrop' => 'static'));
?>
<a href="#" class="btn btn-secondary"
onclick="jQuery('#rsticketsproNotesModal').modal('show');"><i
class="icon-file"></i> <?php echo
$this->ticket->notes ?
JText::sprintf('RST_TICKET_VIEW_NOTES_NO',
$this->ticket->notes) : JText::_('RST_TICKET_VIEW_NOTES');
?></a>
<?php
}
?>
<a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='.$this->ticket->id.'&tmpl=component&print=1');
?>" class="btn btn-secondary"
onclick="window.open(this.href,'printWindow','status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=400,height=600,directories=no,location=no');
return false;"><i class="icon-print"></i>
<?php echo JText::_('RST_TICKET_PRINT'); ?></a>
<?php
if ($this->ticket->status_id == RST_STATUS_CLOSED &&
$this->canOpenTicket)
{
?>
<a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=ticket.reopen&id='.$this->ticket->id);
?>" class="btn btn-success"><i
class="icon-ok"></i> <?php echo
JText::_('RST_TICKET_OPEN'); ?></a>
<?php
}
elseif ($this->ticket->status_id != RST_STATUS_CLOSED &&
$this->canCloseTicket)
{
?>
<a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=ticket.close&id='.$this->ticket->id);
?>" class="btn btn-danger"><i
class="icon-lock"></i> <?php echo
JText::_('RST_TICKET_CLOSE'); ?></a>
<?php
}
}
else
{
?>
<a href="javascript:void(0)"
onclick="window.print();" class="btn
btn-primary"><i class="icon-print"></i>
<?php echo JText::_('RST_TICKET_PRINT'); ?></a>
<?php
}
?>
</div>
<?php
foreach ($this->ticketMessages as $message)
{
$user = $message->user_id != '-1' ?
JFactory::getUser($message->user_id) : null;
$submitter = $message->submitted_by_staff != '0' ?
JFactory::getUser($message->submitted_by_staff) : null;
?>
<div class="media com-rsticketspro-message<?php echo
is_null($user) ? ' alert alert-info' :
(RSTicketsProHelper::isStaff($message->user_id) ? '
com-rsticketspro-msg-staff': '
com-rsticketspro-msg-customer'); ?>">
<?php
if (!is_null($user))
{
?>
<span class="pull-left">
<img class="img-polaroid media-object
com-rsticketspro-avatar" src="<?php echo
$this->getAvatar($message->user_id); ?>" />
</span>
<?php
}
?>
<div class="media-body">
<?php
if (!is_null($user))
{
if ($this->showEmailLink)
{
$text = JHtml::_('link', 'mailto:' .
$this->escape($user->email),
$this->escape($user->{$this->userField}));
}
else
{
$text = $this->escape($user->{$this->userField});
}
?>
<h4 class="media-heading"><?php echo $text;
?><?php echo $submitter ? ' ' .
JText::sprintf('RST_TICKET_SUBMITTED_BY', $submitter->name) :
''; ?></h4>
<?php
}
?>
<p><small><i class="icon-clock"></i>
<?php echo $this->showDate($message->date);
?></small></p>
<blockquote class="com-rsticketspro-has-overflow">
<?php echo RSTicketsProHelper::showMessage($message); ?>
</blockquote>
<?php
if (!empty($message->files))
{
?>
<ul>
<?php
foreach ($message->files as $file)
{
?>
<li><i class="icon-file"></i> <a
href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=ticket.downloadfile&id='.$file->id);
?>"><?php echo
JText::sprintf('RST_TICKET_FILE_DOWNLOADS_SMALL',
$this->escape($file->filename), $file->downloads);
?></a></li>
<?php
}
?>
</ul>
<?php
}
if (!$this->isPrint && !is_null($user))
{
?>
<div>
<?php
if ($this->canEditMessage($message))
{
echo JHtml::_('bootstrap.renderModal',
'rsticketsproMessageModal'.$message->id, array(
'title' =>
JText::_('RST_TICKET_EDIT_MESSAGE'),
'url' =>
JRoute::_('index.php?option=com_rsticketspro&task=ticketmessage.edit&id='.$message->id.'&tmpl=component',
false),
'height' => 400,
'backdrop' => 'static'));
?>
<a class="btn btn-secondary"
onclick="jQuery('#rsticketsproMessageModal<?php echo
$message->id; ?>').modal('show');"
href="#"><i class="icon-edit"></i>
<?php echo JText::_('RST_TICKET_EDIT_MESSAGE');
?></a>
<?php
}
if ($this->canDeleteMessage($message))
{
?>
<a class="btn btn-danger" onclick="return
confirm(Joomla.JText._('RST_DELETE_TICKET_MESSAGE_CONFIRM'));"
href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=ticketmessages.delete&cid='.$message->id
. '&ticket_id=' . $message->ticket_id . '&'
. JSession::getFormToken() . '=1'); ?>"><i
class="icon-delete"></i> <?php echo
JText::_('RST_TICKET_DELETE_MESSAGE'); ?></a>
<?php
}
?>
</div>
<?php
}
?>
</div>
</div>
<?php
}
PK�(�[<�U"&
&
#views/ticket/tmpl/default_reply.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JText::script('RST_TICKET_FEEDBACK_SENT');
$showReply = $this->form->getValue('message');
if ($this->ticket->status_id == RST_STATUS_CLOSED)
{
?>
<p><strong><?php echo
JText::_('RST_TICKET_REPLIES_CLOSED');
?></strong></p>
<?php
if ($this->allowVoting && (($this->isStaff &&
$this->ticket->feedback) || !$this->isStaff))
{
$ratyParams = array(
'path' => str_replace('star-on.png',
'', JHtml::_('image',
'com_rsticketspro/raty/star-on.png', '', array(), true,
1)),
'score' => $this->ticket->feedback ?
$this->ticket->feedback : null,
'readOnly' => $this->isStaff ||
$this->ticket->feedback,
'hints' => array(
JText::_('RST_FEEDBACK_1'),
JText::_('RST_FEEDBACK_2'),
JText::_('RST_FEEDBACK_3'),
JText::_('RST_FEEDBACK_4'),
JText::_('RST_FEEDBACK_5')
)
);
$script = 'RSTicketsPro.initRaty(' . json_encode($ratyParams) .
')';
JFactory::getDocument()->addScriptDeclaration($script);
?>
<p id="com-rsticketspro-rated-message"><?php echo
JText::_($this->ticket->feedback ? ($this->isStaff ?
'RST_TICKET_FEEDBACK_SENT_STAFF' :
'RST_TICKET_FEEDBACK_SENT') : 'RST_TICKET_FEEDBACK');
?></p>
<div id="star"></div>
<?php
}
}
else
{
if ($this->canReply)
{
if (!$showReply)
{
?>
<p><button type="button" class="btn btn-primary
btn-large" id="com-rsticketspro-reply-button"
onclick="RSTicketsPro.showReply(this);"><?php echo
JText::_('RST_TICKET_REPLY'); ?></button></p>
<?php
}
?>
<div id="com-rsticketspro-reply-box" <?php if
(!$showReply) { ?>class="hidden"<?php } ?>>
<h3 class="rst_heading"><?php echo
JText::_('RST_REPLY_TO_TICKET'); ?></h3>
<?php
if ($this->isStaff &&
RSTicketsProHelper::getConfig('show_reply_as_customer'))
{
echo
$this->form->getField('reply_as_customer')->renderField();
}
if ($this->isStaff && $this->showSearch)
{
echo
$this->form->getField('search')->renderField();
}
echo
$this->form->getField('message')->renderField();
if ($this->isStaff && $this->showSignature)
{
echo
$this->form->getField('use_signature')->renderField();
echo '<p><small><a
href="'.JRoute::_('index.php?option=com_rsticketspro&view=signature').'">'.JText::_('RST_EDIT_SIGNATURE').'</a></small></p>';
}
if ($this->canUpload)
{
$script = "RSTicketsPro.getDepartment = function() { return { id:
{$this->ticket->department_id}, uploads: { max:
{$this->department->upload_files} } }; }";
JFactory::getDocument()->addScriptDeclaration($script);
// prepend the upload message
echo '<div id="rst_files_message_container">'
. $this->department->upload_message . ' ' .
$this->department->upload_message_max_files . ' ' .
$this->department->upload_message_max_size .
'</div>';
echo
$this->form->getField('files')->renderField(array('class'
=> 'rst_files_container'));
}
?>
<p><button type="button"
onclick="Joomla.submitbutton('ticket.reply')"
class="btn btn-primary"><?php echo
JText::_('RST_TICKET_SUBMIT'); ?></button></p>
<hr />
</div>
<?php
}
}
PK�(�[r�j??'views/ticket/tmpl/default_submitter.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access'); ?>
<div>
<p><span title="<?php echo
RSTicketsProHelper::tooltipText(JText::_('RST_TICKET_USER_AGENT'));
?>" class="<?php echo
RSTicketsProHelper::tooltipClass();?>"><i
class="icon-cogs icon-rscogs"></i> <?php echo
$this->escape($this->ticket->agent); ?></span></p>
<p><span title="<?php echo
RSTicketsProHelper::tooltipText(JText::_('RST_TICKET_REFERER'));
?>" class="<?php echo
RSTicketsProHelper::tooltipClass();?>"><i
class="icon-refresh icon-rsrefresh"></i> <?php echo
$this->escape($this->ticket->referer);
?></span></p>
<p><span title="<?php echo
RSTicketsProHelper::tooltipText(JText::_('RST_TICKET_IP'));
?>" class="<?php echo
RSTicketsProHelper::tooltipClass();?>"><i
class="icon-broadcast icon-rsbroadcast"></i> <?php
echo $this->escape($this->ticket->ip);
?></span></p>
<p><span title="<?php echo
RSTicketsProHelper::tooltipText(JText::_('RST_TICKET_LOGGED'));
?>" class="<?php echo
RSTicketsProHelper::tooltipClass();?>"><i
class="icon-user icon-rsuser"></i> <?php echo
$this->ticket->logged ? JText::_('JYES') :
JText::_('JNO'); ?></span></p>
</div>PK�(�[����"views/ticket/tmpl/default_time.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JText::script('COM_RSTICKETSPRO_ARE_YOU_SURE_YOU_WANT_TO_CLEAR_TIME_TRACKING');
JText::script('COM_RSTICKETSPRO_ARE_YOU_SURE_YOU_WANT_TO_DELETE_TIME_TRACKING_RECORD');
if ($this->timeSpentTracking)
{
if ($this->useTimeCounter)
{
?>
<div class="<?php echo RsticketsproAdapterGrid::row();
?>" id="rst-timer">
<div class="<?php echo RsticketsproAdapterGrid::column(12);
?>">
<?php
if ($this->ticketTimeState)
{
?>
<div id="timer">
<div class="clock-wrapper">
<span class="hours">00</span>
<span class="dots">:</span>
<span class="minutes">00</span>
<span class="dots">:</span>
<span class="seconds">00</span>
</div>
</div>
<?php
}
?>
</div>
</div>
<?php
}
if ($this->useTimeCounter || (!empty($this->ticketIntervals)
&& $this->canDeleteTimeHistory))
{
?>
<p>
<?php
if ($this->useTimeCounter)
{
?>
<a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=ticket.toggleTime&id='.$this->ticket->id.'&tstate='.($this->ticketTimeState
== 1 ? 0 : 1)); ?>"<?php echo ($this->ticketTimeState == 0 ?
' onclick="return
confirm(Joomla.JText._(\'COM_RSTICKETSPRO_TIME_BUTTON_CONFIRM_START\'));"'
: '');?> class="btn btn-<?php echo
($this->ticketTimeState ? 'danger' :
'success');?>"><?php echo
JText::_('COM_RSTICKETSPRO_TIME_BUTTON'.($this->ticketTimeState
? '_STOP' : '_START'));?></a>
<?php
}
if (!empty($this->ticketIntervals) &&
$this->canDeleteTimeHistory)
{
?>
<a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=ticket.clearTimeTracking&id='.$this->ticket->id);
?>" class="btn btn-danger" onclick="return
confirm(Joomla.JText._('COM_RSTICKETSPRO_ARE_YOU_SURE_YOU_WANT_TO_CLEAR_TIME_TRACKING'));"><?php
echo
JText::_('COM_RSTICKETSPRO_TIME_TRACKING_HISTORY_CLEAR');?></a>
<?php
}
?>
</p>
<?php
}
if (!empty($this->ticketIntervals))
{
?>
<table class="table table-bordered table-condensed
table-hover">
<thead>
<tr>
<th><?php echo
JText::_('COM_RSTICKETSPRO_TIME_TRACKING_HISTORY_START');?></th>
<th><?php echo
JText::_('COM_RSTICKETSPRO_TIME_TRACKING_HISTORY_END');?></th>
<th><?php echo
JText::_('COM_RSTICKETSPRO_TIME_TRACKING_HISTORY_DURATION');?></th>
<th><?php echo
JText::_('COM_RSTICKETSPRO_TIME_TRACKING_HISTORY_STAFF_MEMBER');?></th>
<th> </th>
</tr>
</thead>
<tbody>
<?php
$total = 0;
foreach ($this->ticketIntervals as $interval)
{
$is_running = $interval->end == '0000-00-00 00:00:00';
$total += $interval->duration;
?>
<tr class="<?php echo ($is_running ? 'error' :
'success');?>">
<td>
<?php echo $this->showDate($interval->start);?>
</td>
<td>
<?php echo ($is_running ?
JText::_('COM_RSTICKETSPRO_TIME_TRACKING_HISTORY_TRACKING') :
$this->showDate($interval->end));?>
</td>
<td>
<?php echo $this->showTotal($interval->duration);?>
</td>
<td>
<?php echo !empty($interval->staff_member) ?
$interval->staff_member : ''; ?>
</td>
<td class="center">
<?php
if ($interval->can_delete && !$is_running)
{
?>
<a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=ticket.clearTimeTrackingEntry&ticket_id='.$this->ticket->id.'&entry='.$interval->id);
?>" onclick="return
confirm(Joomla.JText._('COM_RSTICKETSPRO_ARE_YOU_SURE_YOU_WANT_TO_DELETE_TIME_TRACKING_RECORD'));"
class="btn btn-small btn-danger" ><?php echo
JText::_('COM_RSTICKETSPRO_TIME_TRACKING_HISTORY_RECORD_DELETE');
?></a>
<?php
}
?>
</td>
</tr>
<?php
}
?>
</tbody>
<tfoot>
<tr>
<td colspan="2"><?php echo
JText::_('COM_RSTICKETSPRO_TIME_TRACKING_TOTAL');
?></td>
<td colspan="3"><?php echo
$this->showTotal($total); ?></td>
</tr>
</tfoot>
</table>
<?php
}
else
{
?>
<div class="alert alert-warning"><?php echo
JText::_('COM_RSTICKETSPRO_TIME_TRACKING_NO_HISTORY_ENTRIES');
?></div>
<?php
}
}
if ($this->timeSpentInput)
{
$this->form->setFieldAttribute('time_spent',
'description',
JText::_('RST_TIME_UNIT_'.RSTicketsProHelper::getConfig('time_spent_unit')));
echo
$this->form->getField('time_spent')->renderField();
?>
<button type="button"
onclick="Joomla.submitbutton('ticket.savetimespent')"
class="btn btn-primary"><?php echo
JText::_('RST_UPDATE'); ?></button>
<?php
}PK�(�[�#o,,views/ticket/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[���Rh!h!views/ticket/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewTicket extends JViewLegacy
{
protected $app;
protected $form;
public function display($tpl = null)
{
$this->app = JFactory::getApplication();
if ($this->app->isClient('administrator'))
{
JFactory::getApplication()->input->set('hidemainmenu',
true);
$this->addToolbar();
}
else
{
$this->params =
$this->app->getParams('com_rsticketspro');
}
// get ticket information
$this->ticket = $this->get('Item');
$user = JFactory::getUser();
if (!$user->id) {
JFactory::getApplication()->enqueueMessage(JText::_('RST_YOU_HAVE_TO_BE_LOGGED_IN'),
'warning');
$link = base64_encode((string) JUri::getInstance());
$this->app->redirect(JRoute::_('index.php?option=com_users&view=login&return='.$link,
false));
}
// quick and dirty check so we know if this ticket exists & the user
can view it
if (!$this->hasPermission()) {
throw new
Exception(JText::_('RST_CUSTOMER_CANNOT_VIEW_TICKET'), 403);
}
// load the ticket helper
require_once
JPATH_COMPONENT_ADMINISTRATOR.'/helpers/ticket.php';
$this->ticketMessages = $this->get('Ticketmessages');
$this->otherTickets = $this->get('OtherTickets');
// form
$this->form = $this->get('Form');
$this->fieldsets = $this->form->getFieldsets();
// permissions
$this->isStaff = $this->get('IsStaff');
$this->permissions = $this->get('StaffPermissions');
// departments
$this->departments = $this->get('Departments');
$this->department = $this->get('Department');
// statuses
$this->statuses = $this->get('Statuses');
$this->priorities = $this->get('Priorities');
// config
$this->globalMessage =
JText::_(RSTicketsProHelper::getConfig('global_message'));
$this->ticketView =
RSTicketsProHelper::getConfig('ticket_view');
$this->dateFormat =
RSTicketsProHelper::getConfig('date_format');
$this->userField =
RSTicketsProHelper::getConfig('show_user_info');
$this->hasViewingHistory =
RSTicketsProHelper::getConfig('ticket_viewing_history');
$this->allowEditor =
RSTicketsProHelper::getConfig('allow_rich_editor');
$this->allowVoting =
RSTicketsProHelper::getConfig('show_ticket_voting');
$this->showSignature =
RSTicketsProHelper::getConfig('show_signature');
$this->showSearch =
RSTicketsProHelper::getConfig('show_kb_search');
$this->showEmailLink =
RSTicketsProHelper::getConfig('show_email_link');
$this->hasConsent =
RSTicketsProHelper::getConfig('forms_consent');
$this->ticketSections = $this->get('TicketSections');
$this->isPrint = $this->get('IsPrint');
if ($this->ticketView === 'accordion')
{
$this->handler = $this->accordion =
$this->get('RSAccordion');
}
elseif ($this->ticketView === 'tabbed')
{
$this->handler = $this->tabs = $this->get('RSTabs');
}
$this->plain = $this->get('RSPlain');
// user
$this->userId = $user->id;
// permissions
$this->canViewHistory = $this->hasViewingHistory &&
(($this->hasViewingHistory == 1 && $this->isStaff) ||
($this->hasViewingHistory == 2));
$this->canViewNotes = $this->isStaff &&
$this->permissions->view_notes;
$this->canOpenTicket = ($this->isStaff &&
$this->permissions->change_ticket_status) || (!$this->isStaff
&&
RSTicketsProHelper::getConfig('allow_ticket_reopening'));
$this->canCloseTicket = ($this->isStaff &&
$this->permissions->change_ticket_status) || (!$this->isStaff
&&
RSTicketsProHelper::getConfig('allow_ticket_closing'));
$this->canReply = !$this->isStaff || ($this->isStaff
&& $this->permissions->answer_ticket);
$this->canUpload = $this->ticket->department->upload >
0;
$this->canUpdateReplies = $this->isStaff &&
$this->permissions->update_ticket_replies;
$this->canUpdateCustomerReplies = $this->isStaff &&
$this->permissions->update_ticket_replies_customers;
$this->canUpdateStaffReplies = $this->isStaff &&
$this->permissions->update_ticket_replies_staff;
$this->canDeleteReplies = $this->isStaff &&
$this->permissions->delete_ticket_replies;
$this->canDeleteCustomerReplies = $this->isStaff &&
$this->permissions->delete_ticket_replies_customers;
$this->canDeleteStaffReplies = $this->isStaff &&
$this->permissions->delete_ticket_replies_staff;
$this->canAssignTickets = $this->isStaff &&
$this->permissions->assign_tickets;
$this->showAltEmail =
RSTicketsProHelper::getConfig('show_alternative_email');
$this->timeSpentInput =
RSTicketsProHelper::getConfig('enable_time_spent') &&
RSTicketsProHelper::getConfig('time_spent_type') ===
'input';
$this->timeSpentTracking =
RSTicketsProHelper::getConfig('enable_time_spent') &&
RSTicketsProHelper::getConfig('time_spent_type') ===
'tracking';
$this->canDeleteTimeHistory =
$this->get('timeTrackingDeleteStatus');
// time counter
$this->useTimeCounter = false;
$this->ticketTimeData = false;
$this->ticketTimeState = 0;
if ($this->timeSpentTracking &&
isset($this->ticketSections['time']) &&
$this->ticket->status_id != RST_STATUS_CLOSED) {
$this->useTimeCounter = true;
$this->ticketTimeData =
RSTicketsProTicketHelper::getTicketTimeState($this->ticket->id);
$this->ticketTimeState = $this->ticketTimeData ? (int)
$this->ticketTimeData->state : 0;
if ($this->ticketTimeState) {
$this->document->addScriptDeclaration("jQuery(document).ready(function(){RSTicketsPro.timeCounter('".
$this->ticketTimeData->start."');});");
}
}
$this->ticketIntervals =
$this->get('TicketTimeSpentIntervals');
RSTicketsProHelper::addHistory($this->ticket->id);
// JS Strings
JText::script('RST_MAX_UPLOAD_FILES_REACHED');
JText::script('RST_DELETE_TICKET_MESSAGE_CONFIRM');
// load jQuery & plugins
if (RSTicketsProHelper::getConfig('jquery', 1)) {
JHtml::_('jquery.framework');
}
if ($this->allowVoting) {
JHtml::_('script',
'com_rsticketspro/jquery.raty.js', array('relative'
=> true, 'version' => 'auto'));
}
// if trying to print, bring up the print stylesheet
if ($this->isPrint) {
JHtml::_('stylesheet', 'com_rsticketspro/print.css',
array('relative' => true, 'version' =>
'auto'), array('media'=>'print'));
}
if ($this->canAssignTickets) {
$this->document->addScriptDeclaration("jQuery(document).ready(function(){RSTicketsPro.disableStaff();});");
}
parent::display($tpl);
}
public function showTotal($duration)
{
return RSTicketsProHelper::showTotal($duration);
}
protected function addToolbar() {
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
JToolbarHelper::custom('kbconvert.manual', 'upload',
'upload', JText::_('RST_CONVERT_TO_KB'), false);
JToolbarHelper::custom('kbconvert.automatic',
'upload', 'upload',
JText::_('RST_CONVERT_TO_KB_AUTOMATIC'), false);
JToolbarHelper::cancel('ticket.cancel');
}
protected function showDate($date) {
return JHtml::_('date', $date, $this->dateFormat);
}
protected function getAvatar($id) {
return RSTicketsProHelper::getAvatar($id);
}
protected function canEditMessage($message) {
$messageUserId = $message->user_id;
$meId = $this->userId;
return $this->isStaff && (
($this->canUpdateReplies && $messageUserId == $meId) ||
($this->canUpdateCustomerReplies && $messageUserId != $meId
&& !RSTicketsProHelper::isStaff($messageUserId)) ||
($this->canUpdateStaffReplies && $messageUserId != $meId
&& RSTicketsProHelper::isStaff($messageUserId))
);
}
protected function canDeleteMessage($message) {
$messageUserId = $message->user_id;
$meId = $this->userId;
return $this->isStaff && (
($this->canDeleteReplies && $messageUserId == $meId) ||
($this->canDeleteCustomerReplies && $messageUserId != $meId
&& !RSTicketsProHelper::isStaff($messageUserId)) ||
($this->canDeleteStaffReplies && $messageUserId != $meId
&& RSTicketsProHelper::isStaff($messageUserId))
);
}
protected function hasPermission() {
$model = $this->getModel();
// ticket does exist && user can open it
return ($this->ticket && $this->ticket->id &&
$model->hasPermission($this->ticket->id));
}
}PK�(�[�#o,,views/ticketmessage/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�
�ll!views/ticketmessage/tmpl/edit.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
// Load JavaScript message titles
JText::script('ERROR');
JText::script('WARNING');
JText::script('NOTICE');
JText::script('MESSAGE');
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=ticketmessage&tmpl=component&layout=edit&id='
. (int) $this->item->id); ?>" method="post"
name="adminForm" id="adminForm"
class="form-validate form-vertical">
<button type="button" class="btn btn-success"
onclick="Joomla.submitbutton('ticketmessage.apply');"><i
class="icon-apply icon-white"></i> <?php echo
JText::_('JAPPLY'); ?></button>
<?php
foreach ($this->form->getFieldsets() as $fieldset)
{
echo $this->form->renderFieldset($fieldset->name);
}
?>
<?php echo JHtml::_('form.token'); ?>
<input type="hidden" name="task" value=""
/>
</form>PK�(�[�#o,,#views/ticketmessage/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��7!views/ticketmessage/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewTicketmessage extends JViewLegacy
{
protected $form;
protected $item;
public function display($tpl = null)
{
$this->form = $this->get('Form');
$this->item = $this->get('Item');
parent::display($tpl);
}
}PK�(�[�#o,,views/tickets/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[*|�d�!�!views/tickets/tmpl/default.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.keepalive');
JHtml::_('formbehavior.chosen', '.advancedSelect');
JText::script('RST_DELETE_TICKETS_CONFIRM');
JText::script('RST_DELETE_TICKET_CONFIRM');
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
$script = array();
$script[] = 'Joomla.submitbutton = function(task) {';
if (!empty($this->permissions->delete_ticket))
{
$script[] = "if
(document.getElementById('bulk_delete').value == '1'
&&
!confirm(Joomla.JText._('RST_DELETE_TICKETS_CONFIRM'))) {";
$script[] = 'return false;';
$script[] = '}';
}
if (!empty($this->permissions->export_tickets))
{
$script[] = "RSTicketsPro.exportCSV.totalItems =
{$this->totalItems};";
$script[] = "if (task === 'tickets.exportcsv') {";
$script[] = "RSTicketsPro.exportCSV.setCSV(0, '');";
$script[] = "return false;";
$script[] = "}";
JHtml::_('script', 'com_rsticketspro/export.js',
array('relative' => true, 'version' =>
'auto'));
}
$script[] = "Joomla.submitform(task,
document.getElementById('adminForm'));";
$script[] = "}";
JFactory::getDocument()->addScriptDeclaration(implode("\n",
$script));
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=tickets');
?>" method="post" name="adminForm"
id="adminForm">
<?php
echo RsticketsproAdapterGrid::sidebar();
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (!empty($this->permissions->export_tickets))
{
?>
<div class="com-rsticketspro-progress"
id="com-rsticketspro-export-progress"
style="display:none">
<div class="com-rsticketspro-bar" style="width:
0%;">0%</div>
</div>
<?php
}
echo $this->globalMessage;
if ($this->isSearching || ($this->isStaff &&
$this->hasSearches))
{
?>
<div class="well well-small">
<p>
<?php
if ($this->isSearching)
{
if ($this->isStaff)
{
?>
<a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=predefinedsearch.add');
?>" class="btn btn-success rst_search"><?php echo
JText::_('RST_SAVE_SEARCH'); ?></a>
<?php
}
?>
<a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=search.reset');
?>" class="btn btn-danger"><?php echo
JText::_('RST_RESET_SEARCH'); ?></a>
<?php
}
if ($this->isStaff && $this->hasSearches)
{
?>
<a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=predefinedsearches');
?>" class="btn btn-secondary
rst_manage_searches"><?php echo
JText::_('RST_MANAGE_SEARCHES'); ?></a>
|
<?php
foreach ($this->searches as $search)
{
if (!$search->current)
{
?>
<a href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=predefinedsearch.perform&id='.$search->id);
?>" class="btn btn-secondary btn-mini btn-sm <?php echo
RSTicketsProHelper::tooltipClass();?>" title="<?php echo
RSTicketsProHelper::tooltipText(JText::sprintf('RST_SEARCH_CLICK_DESC',
$this->escape($search->name))); ?>"><?php echo
$this->escape($search->name); ?></a>
<?php
}
else
{
echo $this->escape($search->name);
}
}
}
?>
</p>
</div>
<?php
}
?>
<?php
if ($this->isStaff)
{
echo JHtml::_('bootstrap.renderModal',
'rsticketsproBulkModal', array(
'title' => JText::_('RST_BULK_ACTIONS'),
'footer' =>
$this->loadTemplate('bulk_footer'),
'height' => 400,
'backdrop' => 'static'),
$this->loadTemplate('bulk_body'));
}
?>
<table class="adminlist table table-striped"
id="articleList">
<thead>
<tr>
<th class="hidden-phone hidden-tablet"
width="1%" nowrap="nowrap"><?php echo JText::_(
'#' ); ?></th>
<th width="1%" nowrap="nowrap"><?php echo
JHtml::_('grid.checkall'); ?></th>
<th class="hidden-phone" width="140"><?php
echo JHtml::_('searchtools.sort', 'RST_TICKET_DATE',
'date', $listDirn, $listOrder); ?></th>
<th class="hidden-phone hidden-tablet"
width="140"><?php echo
JHtml::_('searchtools.sort', 'RST_TICKET_LAST_REPLY',
'last_reply', $listDirn, $listOrder); ?></th>
<th class="hidden-phone hidden-tablet"
width="1%" nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'RST_FLAGGED',
'flagged', $listDirn, $listOrder); ?></th>
<?php if ($this->permissions->delete_ticket) { ?>
<th width="1%" nowrap="nowrap"><?php echo
JText::_('RST_DELETE'); ?></th>
<?php } ?>
<th><?php echo JHtml::_('searchtools.sort',
'RST_TICKET_CODE', 'code', $listDirn, $listOrder);
?> <?php echo JHtml::_('searchtools.sort',
'RST_TICKET_SUBJECT', 'subject', $listDirn,
$listOrder); ?></th>
<th><?php echo JHtml::_('searchtools.sort',
'RST_TICKET_CUSTOMER', 'customer', $listDirn,
$listOrder); ?></th>
<th class="hidden-phone" width="1%"
nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'RST_TICKET_PRIORITY',
'priority', $listDirn, $listOrder); ?></th>
<th class="hidden-phone" width="1%"
nowrap="nowrap"><?php echo
JHtml::_('searchtools.sort', 'RST_TICKET_STATUS',
'status', $listDirn, $listOrder); ?></th>
<th class="hidden-phone hidden-tablet"><?php echo
JHtml::_('searchtools.sort', 'RST_TICKET_STAFF',
'staff', $listDirn, $listOrder); ?></th>
<?php if
(RSTicketsProHelper::getConfig('enable_time_spent')) { ?>
<th class="hidden-phone hidden-tablet"><?php echo
JHtml::_('searchtools.sort', 'RST_TIME_SPENT',
'time_spent', $listDirn, $listOrder); ?></th>
<?php } ?>
</tr>
</thead>
<?php
foreach ($this->items as $i => $item)
{
$grid = JHtml::_('grid.id', $i, $item->id);
$link =
JRoute::_('index.php?option=com_rsticketspro&view=ticket&id='.$item->id);
?>
<tr class="rst_priority_color_<?php echo
$item->priority_id; ?>">
<td class="hidden-phone hidden-tablet" width="1%"
nowrap="nowrap"><?php echo
$this->pagination->getRowOffset($i); ?></td>
<td width="1%" nowrap="nowrap"><?php echo
$grid; ?></td>
<td class="hidden-phone"><?php echo
$this->escape($this->showDate($item->date)); ?></td>
<td class="hidden-phone hidden-tablet"><?php echo
$this->escape($this->showDate($item->last_reply));
?></td>
<td class="hidden-phone hidden-tablet"
align="center"><button type="button"
class="btn btn-small btn-sm <?php echo $item->flagged ?
'rst_flagged' : 'rst_not_flagged'; ?>"
onclick="RSTicketsPro.flagTicket('index.php', this,
'<?php echo $item->id; ?>');"><i
class="rsticketsproicon-star"></i></button></td>
<?php if ($this->permissions->delete_ticket) { ?>
<td align="center">
<a class="btn btn-small btn-sm btn-danger
rst_button_delete_ticket <?php echo
RSTicketsProHelper::tooltipClass();?>" title="<?php echo
RSTicketsProHelper::tooltipText(JText::_('RST_TICKET_DELETE_DESC'));
?>" href="<?php echo
JRoute::_('index.php?option=com_rsticketspro&task=ticket.delete&cid='
. $item->id); ?>" onclick="return
confirm(Joomla.JText._('RST_DELETE_TICKET_CONFIRM'));">✖</a>
</td>
<?php } ?>
<td>
<?php if ($item->has_files) { ?>
<i class="rsticketsproicon-attach"></i>
<?php } ?>
<a href="<?php echo $link; ?>"><?php echo
$item->code; ?></a> (<?php echo $item->replies; ?>)
<br />
<a href="<?php echo $link; ?>"><?php echo
$this->escape($item->subject); ?></a>
<?php echo $this->notify($item); ?>
</td>
<td><a href="<?php echo
JRoute::_('index.php?option=com_users&view=user&task=user.edit&id='.$item->customer_id);
?>"><?php echo $this->escape($item->customer);
?></a></td>
<td class="rst_priority_cell hidden-phone"><?php echo
JText::_($item->priority); ?></td>
<td class="hidden-phone"><?php echo
JText::_($item->status); ?></td>
<td class="hidden-phone hidden-tablet"><?php echo
$item->staff_id ? $this->escape($item->staff) :
'<em>'.JText::_('RST_UNASSIGNED').'</em>';
?></td>
<?php if
(RSTicketsProHelper::getConfig('enable_time_spent')) { ?>
<td class="hidden-phone hidden-tablet"><?php echo
$this->showTotal($item->time_spent); ?></td>
<?php } ?>
</tr>
<?php
}
?>
<tfoot>
<tr>
<td colspan="12"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>
</tfoot>
</table>
</div>
<?php echo JHtml::_( 'form.token' ); ?>
<input type="hidden" name="boxchecked"
value="0" />
<input type="hidden" name="option"
value="com_rsticketspro" />
<input type="hidden" name="task" value=""
/>
</form>PK�(�[%�Tww(views/tickets/tmpl/default_bulk_body.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die;
?>
<div class="container">
<div class="text-center">
<?php
if ($this->permissions->move_ticket)
{
echo '<div>' .
$this->bulkForm->getField('bulk_department_id')->input .
'</div>';
}
if ($this->permissions->assign_tickets)
{
echo '<div>' .
$this->bulkForm->getField('bulk_staff_id')->input .
'</div>';
}
if ($this->permissions->update_ticket)
{
echo '<div>' .
$this->bulkForm->getField('bulk_priority_id')->input .
'</div>';
}
if ($this->permissions->change_ticket_status)
{
echo '<div>' .
$this->bulkForm->getField('bulk_status_id')->input .
'</div>';
}
if ($this->autocloseEnabled)
{
echo '<div>' .
$this->bulkForm->getField('bulk_notify')->input .
'</div>';
}
if ($this->permissions->delete_ticket)
{
echo '<div>' .
$this->bulkForm->getField('bulk_delete')->input .
'</div>';
}
?>
</div>
</div>
PK�(�[ѐ��%%*views/tickets/tmpl/default_bulk_footer.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die;
?>
<button type="button" class="btn btn-secondary"
data-bs-dismiss="modal" data-dismiss="modal">
<?php echo JText::_('JCANCEL'); ?>
</button>
<button type="button" class="btn btn-success"
onclick="Joomla.submitbutton('ticket.bulkupdate');">
<?php echo JText::_('RST_UPDATE'); ?>
</button>
PK�(�[�#o,,views/tickets/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[-;#<��views/tickets/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewTickets extends JViewLegacy
{
public function display($tpl = null)
{
$this->addToolbar();
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
$this->bulkForm = $this->get('BulkForm');
$this->globalMessage =
JText::_(RSTicketsProHelper::getConfig('global_message'));
$this->dateFormat =
RSTicketsProHelper::getConfig('date_format');
$this->autocloseEnabled =
RSTicketsProHelper::getConfig('autoclose_enabled');
$this->permissions = $this->get('permissions');
$this->isStaff = RSTicketsProHelper::isStaff();
$this->items = $this->get('Items');
$this->limitstart = $this->get('start');
$this->pagination = $this->get('Pagination');
$this->totalItems = $this->get('TotalItems');
$this->isSearching = $this->get('isSearching');
$this->searches = $this->get('searches');
$this->hasSearches = !empty($this->searches);
$this->predefinedSearch =
$this->get('predefinedsearch');
$this->setPriorityColors();
if (RSTicketsProHelper::getConfig('enable_time_spent'))
{
if ($field = $this->filterForm->getField('fullordering',
'list'))
{
$field->addOption('COM_RSTICKETSPRO_TIMESPENT_ORDER_ASC',
array('value' => 'time_spent ASC'));
$field->addOption('COM_RSTICKETSPRO_TIMESPENT_ORDER_DESC',
array('value' => 'time_spent DESC'));
}
}
parent::display($tpl);
}
protected function addToolbar()
{
// set title
JToolbarHelper::title('RSTickets! Pro',
'rsticketspro');
RSTicketsProToolbarHelper::addToolbar('tickets');
$permissions = RSTicketsProHelper::getCurrentPermissions();
if ($permissions)
{
if ($permissions->add_ticket || $permissions->add_ticket_staff ||
$permissions->add_ticket_customers)
{
JToolbarHelper::addNew('submit.showform');
}
if (!empty($permissions->export_tickets))
{
JToolBarHelper::custom('tickets.exportcsv',
'download.png', 'download_f2.png',
'COM_RSTICKETSPRO_EXPORT', false);
}
if ($permissions->move_ticket || $permissions->assign_tickets ||
$permissions->update_ticket || $permissions->change_ticket_status ||
$permissions->delete_ticket ||
RSTicketsProHelper::getConfig('autoclose_enabled'))
{
if (version_compare(JVERSION, '4.0', '>='))
{
$toolbar = JToolbar::getInstance('toolbar');
$toolbar->popupButton('batch')
->text('RST_BULK_ACTIONS')
->selector('rsticketsproBulkModal')
->listCheck(true);
}
else
{
JToolbarHelper::modal('rsticketsproBulkModal',
'icon-move', 'RST_BULK_ACTIONS');
}
}
}
JToolbarHelper::custom('search.advanced', 'search',
'search', JText::_('RST_OPEN_ADVANCED_SEARCH'),
false);
}
protected function showDate($date)
{
return JHtml::_('date', $date, $this->dateFormat);
}
public function showTotal($duration)
{
return RSTicketsProHelper::showTotal($duration, true);
}
public function notify($ticket)
{
return RSTicketsProHelper::showNotifyIcon($ticket);
}
protected function setPriorityColors()
{
if ($priorities = $this->get('Priorities'))
{
$css = '';
$colorize =
RSTicketsProHelper::getConfig('color_whole_ticket');
$class = $colorize ? '' : '.rst_priority_cell';
foreach ($priorities as $priority)
{
if ($priority->bg_color)
{
$css .= 'table.adminlist
tr.rst_priority_color_'.$priority->id.' td'.$class.'
{ background-color: '.$this->escape($priority->bg_color).'
!important; }'."\n";
}
if ($priority->fg_color)
{
$css .= 'table.adminlist
tr.rst_priority_color_'.$priority->id.'
td'.$class.','."\n";
$css .= 'table.adminlist
tr.rst_priority_color_'.$priority->id.' td
a'.$class.' { color:
'.$this->escape($priority->fg_color).' !important;
}'."\n";
}
}
if ($css)
{
JFactory::getDocument()->addStyleDeclaration($css);
}
}
}
}PK�(�[�#o,,views/users/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[�#o,,views/users/tmpl/index.htmlnu�[���<html><body
bgcolor="#FFFFFF"></body></html>PK�(�[��S��views/users/tmpl/modal.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die;
$listOrder =
$this->escape($this->state->get('list.ordering'));
$listDirn =
$this->escape($this->state->get('list.direction'));
JHtml::_('script', 'com_rsticketspro/users.js',
array('relative' => true, 'version' =>
'auto'));
?>
<form action="<?php echo
JRoute::_('index.php?option=com_rsticketspro&view=users&layout=modal&tmpl=component&field='
. $this->escape($this->field)); ?>" method="post"
name="adminForm" id="adminForm">
<?php
echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
if (empty($this->items))
{
?>
<div class="alert alert-info">
<span class="fa fa-info-circle"
aria-hidden="true"></span><span
class="sr-only"><?php echo JText::_('INFO');
?></span>
<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
</div>
<?php
}
else
{
?>
<table class="table table-striped table-condensed">
<thead>
<tr>
<th><?php echo JHtml::_('searchtools.sort',
'RST_NAME', 'name', $listDirn, $listOrder);
?></th>
<th nowrap width="25%"><?php echo
JHtml::_('searchtools.sort', 'JGLOBAL_USERNAME',
'username', $listDirn, $listOrder); ?></th>
<th nowrap width="25%"><?php echo
JHtml::_('searchtools.sort', 'JGLOBAL_EMAIL',
'email', $listDirn, $listOrder); ?></th>
<th nowrap width="1%"><?php echo
JHtml::_('searchtools.sort', 'JGRID_HEADING_ID',
'id', $listDirn, $listOrder); ?></th>
</tr>
</thead>
<tbody>
<?php
foreach ($this->items as $item)
{
$alt_email = RSTicketsProHelper::getAlternativeEmail($item->id);
?>
<tr>
<td><?php echo $this->escape($item->name);
?></td>
<td><a class="pointer button-select"
href="javascript:void(0);" data-user-value="<?php echo
$item->id; ?>" data-user-name="<?php echo
$this->escape($item->name); ?>"
data-user-field="<?php echo
$this->escape($this->field);?>" data-alt-email="<?php
echo $this->escape($alt_email); ?>"
onclick="RSTicketsProSelectUser(this);"><?php echo
$this->escape($item->username); ?></a></td>
<td><a class="pointer button-select"
href="javascript:void(0);" data-user-value="<?php echo
$item->id; ?>" data-user-name="<?php echo
$this->escape($item->name); ?>"
data-user-field="<?php echo
$this->escape($this->field);?>" data-alt-email="<?php
echo $this->escape($alt_email); ?>"
onclick="RSTicketsProSelectUser(this);"><?php echo
$this->escape($item->email); ?></a></td>
<td><?php echo $item->id; ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo $this->pagination->getListFooter();
}
echo JHtml::_('form.token');
?>
<input type="hidden" name="task" value=""
/>
<input type="hidden" name="field"
value="<?php echo $this->escape($this->field); ?>"
/>
</form>PK�(�[���ttviews/users/view.html.phpnu�[���<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class RsticketsproViewUsers extends JViewLegacy
{
protected $items;
protected $pagination;
protected $state;
public function display($tpl = null)
{
$this->checkPermissions();
$this->items = $this->get('Items');
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
$this->field = $this->get('Field');
parent::display($tpl);
}
protected function checkPermissions()
{
$user = JFactory::getUser();
$app = JFactory::getApplication();
// not logged in?
if (!$user->get('id'))
{
$app->redirect(JRoute::_('index.php?option=com_users&view=login&return='
. base64_encode((string) JUri::getInstance()), false));
}
// check permissions
$permissions = RSTicketsProHelper::getCurrentPermissions();
if (!RSTicketsProHelper::isStaff() || !$permissions ||
(!$permissions->add_ticket_customers &&
!$permissions->add_ticket_staff))
{
throw new Exception(JText::_('RST_STAFF_CANNOT_VIEW_USERS'),
403);
}
}
}PK芋[��)���css/admin/dashboard.cssnu�[���PK芋[иI���css/awesomplete.cssnu�[���PK芋[��HF��css/dashboard.cssnu�[���PK芋[��
|�,�,Acss/font/rsticketsproicon.eotnu�[���PK芋[QW"*Q#Q#"Jcss/font/rsticketsproicon.svgnu�[���PK芋[����+�+�mcss/font/rsticketsproicon.ttfnu�[���PK芋[q%&\\ٙcss/font/rsticketsproicon.woffnu�[���PK芋[��,����css/font/rsticketsproicon.woff2nu�[���PK芋[��dd
��css/icons.cssnu�[���PK芋[�#o,,K�css/index.htmlnu�[���PK芋[t��A����css/magnific-popup.cssnu�[���PK芋[�+����css/main.cssnu�[���PK芋[��YT��
css/print.cssnu�[���PK芋[^|'.TT>css/rsticketspro.cssnu�[���PK芋[�ڎ�'css/style30.cssnu�[���PK芋[�L\��0)css/style40.cssnu�[���PK芋[�U%B� � �*images/admin/back.pngnu�[���PK芋[��Jdd
(5images/admin/bg-button-green.gifnu�[���PK芋[9�4����5images/admin/configuration.pngnu�[���PK芋[
My+==Bimages/admin/dashboard/back.pngnu�[���PK芋[��\ovv(�Himages/admin/dashboard/configuration.pngnu�[���PK芋[�д�&xPimages/admin/dashboard/departments.pngnu�[���PK芋[{�5~!�Timages/admin/dashboard/emails.pngnu�[���PK芋[f��!�Yimages/admin/dashboard/groups.pngnu�[���PK芋[�#o,,!cimages/admin/dashboard/index.htmlnu�[���PK芋[/;ƫ33'~cimages/admin/dashboard/kbcategories.pngnu�[���PK芋[.���$iimages/admin/dashboard/kbcontent.pngnu�[���PK芋[�i|;
;
"nimages/admin/dashboard/kbrules.pngnu�[���PK芋[�#����%�ximages/admin/dashboard/kbtemplate.pngnu�[���PK芋[3�:���(�{images/admin/dashboard/knowledgebase.pngnu�[���PK芋[x���%~images/admin/dashboard/priorities.pngnu�[���PK芋[F���DD
!�images/admin/dashboard/staff.pngnu�[���PK芋[��.��#��images/admin/dashboard/statuses.pngnu�[���PK芋[$�� � "�images/admin/dashboard/support.pngnu�[���PK芋[�٩�DD"�images/admin/dashboard/tickets.pngnu�[���PK芋[�$ a
a
"��images/admin/dashboard/updates.pngnu�[���PK芋[�_I�LLL�images/admin/delete.pngnu�[���PK芋[L���
�
߯images/admin/departments.pngnu�[���PK芋[[��Qdd�images/admin/edit.pngnu�[���PK芋[�vw�OO��images/admin/edit_fields.pngnu�[���PK芋[d����T�images/admin/emails.pngnu�[���PK芋[l���tte�images/admin/frontend.pngnu�[���PK芋[���bb"�images/admin/groups.pngnu�[���PK芋[.��5NN��images/admin/icon-32-search.pngnu�[���PK芋[��x} } %h�images/admin/icon-48-rsticketspro.gifnu�[���PK芋[ϱ���%:�images/admin/icon-48-rsticketspro.pngnu�[���PK銋[�#o,,kimages/admin/index.htmlnu�[���PK銋[2ƖЂ��images/admin/kbarticles.pngnu�[���PK銋[ w�CC�images/admin/kbcategories.pngnu�[���PK銋[OYPCC;-images/admin/kbrules.pngnu�[���PK銋[D�S�
�;images/admin/kbtemplate.pngnu�[���PK銋[��(! ! -Iimages/admin/knowledgebase.pngnu�[���PK銋[f�,>LL�Rimages/admin/loading.gifnu�[���PK銋[&[↪�0^images/admin/minus.pngnu�[���PK銋[nQ����
bimages/admin/native16.pngnu�[���PK銋[���V��himages/admin/native17.pngnu�[���PK銋[b�0� � 2qimages/admin/native25.pngnu�[���PK銋[_&�kk<{images/admin/notify.gifnu�[���PK銋[Mȯ�((�|images/admin/plus.pngnu�[���PK銋[�¡?K
K
[�images/admin/priorities.pngnu�[���PK銋[�_I�LL�images/admin/publish_x.pngnu�[���PK銋[1������images/admin/publish_y.pngnu�[���PK銋[� ����$��images/admin/rsfirewall-approved.pngnu�[���PK銋[hͳ����)��images/admin/rstickets-pro-box-legacy.pngnu�[���PK銋[
�_�A|A|"�images/admin/rstickets-pro-box.pngnu�[���PK銋[�
R����$�images/admin/rsticketspro-legacy.pngnu�[���PK銋[�v�RR��images/admin/rsticketspro.gifnu�[���PK銋[��\�n,n,+�images/admin/rsticketspro.pngnu�[���PK銋[z�tMM�images/admin/staff.pngnu�[���PKꊋ[ԲM��y�images/admin/statuses.pngnu�[���PKꊋ[������images/admin/support.pngnu�[���PKꊋ[ػ,����images/admin/tick.pngnu�[���PKꊋ[\���d
d
��images/admin/tickets.pngnu�[���PKꊋ[~�]����images/admin/updates.pngnu�[���PKꊋ[0LO�TT�images/admin/user.pngnu�[���PKꊋ[�@d�##images/arrow-down.pngnu�[���PKꊋ[H�|��'images/arrow-up.pngnu�[���PKꊋ[U{�����5images/attach.pngnu�[���PKꊋ[���mm�8images/audio_icon.gifnu�[���PKꊋ[���II�;images/box-bg-12.gifnu�[���PKꊋ[����Aimages/box-bg-2.gifnu�[���PKꊋ[1kL&&Fimages/box-bg.gifnu�[���PKꊋ[�~����wRimages/browser.pngnu�[���PKꊋ[�~�2���Vimages/close-ticket.gifnu�[���PKꊋ[�pK)�Wimages/close.pngnu�[���PKꊋ[�+JJ(fimages/date.pngnu�[���PKꊋ[��v�
�limages/delete.pngnu�[���PKꊋ[�Փ|uuoimages/display-icon.pngnu�[���PKꊋ[����''�qimages/downarrow.pngnu�[���PKꊋ[�$�TT9simages/dropdownbg.gifnu�[���PKꊋ[*�;CC�yimages/edit.pngnu�[���PKꊋ[�D�33T|images/editor.gifnu�[���PKꊋ[=��ppȖimages/favorite.gifnu�[���PKꊋ[���;��{�images/favorite.pngnu�[���PKꊋ[}Jj�}�images/favoritehover.gifnu�[���PKꊋ[u)P��ߠimages/favoritehover.pngnu�[���PKꊋ[8�,Q�images/filesave.pngnu�[���PKꊋ[|����r�images/history.gifnu�[���PKꊋ[����n�images/history.pngnu�[���PKꊋ[� ��DZimages/icon1.gifnu�[���PKꊋ[Kt����images/icon10.pngnu�[���PKꊋ[��
�����images/icon11.pngnu�[���PKꊋ[>6B--��images/icon12.pngnu�[���PKꊋ[�����J�images/icon13.pngnu�[���PKꊋ[�˻.��d�images/icon14.pngnu�[���PKꊋ[���jj��images/icon15.pngnu�[���PKꊋ[Gj�$��;�images/icon2.gifnu�[���PKꊋ[g�²CC/�images/icon20.pngnu�[���PKꊋ[`�D|::��images/icon3.gifnu�[���PKꊋ[!W�0��-images/icon5.pngnu�[���PKꊋ[%8��images/icon6.pngnu�[���PKꊋ[B���Qimages/icon7.pngnu�[���PKꊋ[��*;;Jimages/icon8.pngnu�[���PKꊋ[wFee�images/icon9.pngnu�[���PKꊋ[%�F��j&images/iconbulk.pngnu�[���PKꊋ[�#o,,�,images/index.htmlnu�[���PKꊋ[�Ls��
-images/ip.pngnu�[���PKꊋ[Īz�II�0images/kb-icon.pngnu�[���PKꊋ[�]v���h<images/loading.gifnu�[���PKꊋ[[;.Yss}?images/lock.pngnu�[���PKꊋ[qS���/Kimages/logged.gifnu�[���PKꊋ[����VLimages/notes.gifnu�[���PK늋[_&�kkhSimages/notify.gifnu�[���PK늋[��$$Uimages/open-ticket.pngnu�[���PK늋[[+Š��~Wimages/open.pngnu�[���PK늋[B�;9���[images/print.gifnu�[���PK늋[��{{�bimages/print.pngnu�[���PK늋[V$�;���dimages/raty/cancel-off.pngnu�[���PK늋[�P���gimages/raty/cancel-on.pngnu�[���PK늋[��d���jimages/raty/star-half.pngnu�[���PK늋[�І���mimages/raty/star-off.pngnu�[���PK늋[,�Owwupimages/raty/star-on.pngnu�[���PK늋[oq4x��3simages/referer.pngnu�[���PK늋[W8�aahyimages/refresh.gifnu�[���PK늋[��v8��}images/replies.pngnu�[���PK늋[`R��πimages/search-button.pngnu�[���PK늋[p�l����images/search-icon.gifnu�[���PK늋[*������images/search-icon.pngnu�[���PK늋[*������images/search.pngnu�[���PK늋['�z����images/searchbg.gifnu�[���PK늋[���:""O�images/searches.pngnu�[���PK늋[�Yu����images/smallicon1.gifnu�[���PK늋[�E-�����images/smallicon2.gifnu�[���PK늋[��k����images/smallicon3.gifnu�[���PK늋[�Gk{{��images/smallicon4.gifnu�[���PK늋[�SoS��h�images/staff-icon.pngnu�[���PK늋[�EXX��images/staff.pngnu�[���PK늋[!룛�+�images/star.gifnu�[���PK늋[��^�kk�images/tabbg.gifnu�[���PK슋[�#o,,��images/ticket/index.htmlnu�[���PK슋[���
$�images/ticket/ip.pngnu�[���PK슋[qZ?9!!j�images/ticket/url.pngnu�[���PK슋[�����images/ticket/user.pngnu�[���PK슋[�E�C��(�images/ticket/useragent.pngnu�[���PK슋[��t����images/title-bg-2.gifnu�[���PK슋[c_�d�images/title-bg.gifnu�[���PK슋[UQ�,,R�images/uparrow.pngnu�[���PK슋[������images/user-icon.pngnu�[���PK슋[�;X�dd��images/user.pngnu�[���PK슋[�#o,,
.index.htmlnu�[���PK슋[R�ݽ``�js/anonymise.jsnu�[���PK슋[!];;3js/awesomplete.min.jsnu�[���PK슋[�~ҥ�
�
�,js/awesomplete.script.jsnu�[���PK슋[)�� �7js/dashboard.jsnu�[���PK슋[8D�YF
F
)Ajs/export.jsnu�[���PK슋[�#o,,
�Kjs/index.htmlnu�[���PK슋[,�Lt�R�RLjs/jquery.magnific-popup.min.jsnu�[���PK슋[��u�9�9�js/jquery.raty.jsnu�[���PK슋[�7�C1C1
��js/kbrules.jsnu�[���PK슋[��9yppN
js/ordertable.jsnu�[���PK슋[�=����js/predefinedsearches.jsnu�[���PK슋[%�u�#E#E�js/rsticketspro.jsnu�[���PK슋[��^�
2Tjs/tickets.jsnu�[���PK슋[Q�f7"7"sVjs/typeahead.jsnu�[���PK슋[��"Ð��xjs/users.jsnu�[���PK�(�[~��
�}access.xmlnu�[���PK�(�[q��FF
��config.xmlnu�[���PK�(�[M�|Fzz�controller.phpnu�[���PK�(�[w��i� � Ζcontrollers/configuration.phpnu�[���PK�(�[�#���controllers/cron.phpnu�[���PK�(�[��{r����controllers/cronlog.phpnu�[���PK�(�[@������controllers/crons.phpnu�[���PK�(�[��uuu��controllers/customfield.phpnu�[���PK�(�[Ty�a�controllers/customfields.phpnu�[���PK�(�[zs�4rr��controllers/department.phpnu�[���PK�(�[��
"{�controllers/departments.phpnu�[���PK�(�[l�����ֱcontrollers/email.phpnu�[���PK�(�[R/����controllers/emails.phpnu�[���PK�(�[�H�6ccF�controllers/group.phpnu�[���PK�(�[�Q���controllers/groups.phpnu�[���PK�(�[�#o,,:�controllers/index.htmlnu�[���PK�(�[D�oo��controllers/kbarticle.phpnu�[���PK�(�[5^#Nd�controllers/kbarticles.phpnu�[���PK�(�[�Q��controllers/kbcategories.phpnu�[���PK�(�[�:6rr�controllers/kbcategory.phpnu�[���PK�(�[o;Ԟ�)�)��controllers/kbconvert.phpnu�[���PK�(�[{ff��controllers/kbrule.phpnu�[���PK�(�[g}\�$$r�controllers/kbrules.phpnu�[���PK�(�[+%��ww�controllers/note.phpnu�[���PK�(�[LaJ ��controllers/notes.phpnu�[���PK�(�[�]���
� controllers/predefinedsearch.phpnu�[���PK�(�[��wJ��" controllers/predefinedsearches.phpnu�[���PK�(�[��N=
�
controllers/priorities.phpnu�[���PK�(�[�L��llF controllers/priority.phpnu�[���PK�(�[L�"UU� controllers/removedata.phpnu�[���PK�(�[�=��]]� controllers/search.phpnu�[���PK�(�[�&�ff< controllers/searches.phpnu�[���PK�(�[�G)<66� controllers/signature.phpnu�[���PK�(�['>F҈�i" controllers/staff.phpnu�[���PK�(�[W�-6% controllers/staffs.phpnu�[���PK�(�[f�S����' controllers/status.phpnu�[���PK�(�[z�j� U* controllers/statuses.phpnu�[���PK�(�[����, controllers/submit.phpnu�[���PK�(�[KTl��[�[5 controllers/ticket.phpnu�[���PK�(�[h1C]�� � controllers/ticketmessage.phpnu�[���PK�(�[b��~~>� controllers/ticketmessages.phpnu�[���PK�(�[��(d��
� controllers/tickets.phpnu�[���PK�(�[~����� helpers/adapter.phpnu�[���PK�(�[vN�:ww*� helpers/adapters/3.0/grid.phpnu�[���PK�(�[s�c�##� helpers/adapters/3.0/plain.phpnu�[���PK�(�[WW�[[_� helpers/adapters/3.0/tabs.phpnu�[���PK�(�[Xg.�""� helpers/adapters/4.0/grid.phpnu�[���PK�(�[H��yyv� helpers/adapters/4.0/plain.phpnu�[���PK�(�[OrKK=� helpers/adapters/4.0/tabs.phpnu�[���PK�(�[H�\\�� helpers/adapters/accordion.phpnu�[���PK�(�[�#o,,� helpers/adapters/index.htmlnu�[���PK�(�[�<{FF�� helpers/adapters/tabs.phpnu�[���PK�(�[5 ����� helpers/captcha/captcha.phpnu�[���PK�(�[�x�{L�L��� helpers/captcha/monofont.ttfnu�[���PK�(�[Ham�
9{
helpers/config.phpnu�[���PK�(�[I/�˄7�7��
helpers/emails.phpnu�[���PK�(�[%̿��F�
helpers/export.phpnu�[���PK�(�[i��T�*�*��
helpers/fields.phpnu�[���PK�(�[�#o,,�helpers/index.htmlnu�[���PK�(�[Ɉ�ȻȻhelpers/rsticketspro.phpnu�[���PK�(�[V�!�����helpers/ticket.phpnu�[���PK�(�[�x�
ehelpers/toolbar.phpnu�[���PK�(�[�3�]��`ohelpers/users.phpnu�[���PK�(�[Ed���;thelpers/version.phpnu�[���PK�(�[4%�`==Avmodels/article.phpnu�[���PK�(�[�4�w�
�
��models/configuration.phpnu�[���PK�(�[L�НSS��models/cron.phpnu�[���PK�(�[��Y�qq!�models/cronlog.phpnu�[���PK�(�[Z?d>))ԛmodels/crons.phpnu�[���PK�(�[�Y���=�models/customfield.phpnu�[���PK�(�[�Yx� � C�models/customfields.phpnu�[���PK�(�[y���B�models/department.phpnu�[���PK�(�[��8�kks�models/departments.phpnu�[���PK�(�[�n�ֿ�$�models/email.phpnu�[���PK�(�[
Yff#�models/emails.phpnu�[���PK�(�[�1�Ag g ��models/fields/article.phpnu�[���PK�(�[v�̪OOz�models/fields/avatars.phpnu�[���PK�(�[�_5``�models/fields/comments.phpnu�[���PK�(�[IrJ� � ��models/fields/departments.phpnu�[���PK�(�[@:~(����models/fields/dummy.phpnu�[���PK�(�[�1r���models/fields/groups.phpnu�[���PK�(�[�#o,,
models/fields/index.htmlnu�[���PK�(�[$��FV V z
models/fields/kbarticle.phpnu�[���PK�(�[�t��NN
models/fields/kbcategories.phpnu�[���PK�(�[���-�%�%�
models/fields/kbconditions.phpnu�[���PK�(�[�)�`�;
models/fields/priorities.phpnu�[���PK�(�[��M��B
models/fields/rscaptcha.phpnu�[���PK�(�[�/�-aa�R
models/fields/rscustomer.phpnu�[���PK�(�[2Jp���U
models/fields/rseditor.phpnu�[���PK�(�[�����-�Y
models/fields/rsticketsproanonymisebutton.phpnu�[���PK�(�[�)� "�]
models/fields/rsticketsprohtml.phpnu�[���PK�(�[�;<R��"O`
models/fields/rsticketsprolang.phpnu�[���PK�(�[:�Mkvv>c
models/fields/rsuploads.phpnu�[���PK�(�[��Vcxx�h
models/fields/rsusergroup.phpnu�[���PK�(�[���jq
q
�x
models/fields/staff.phpnu�[���PK�(�[�Mr��|�
models/fields/statuses.phpnu�[���PK�(�[����q�
models/fields/subject.phpnu�[���PK�(�[/�Dl��a�
models/fields/typeahead.phpnu�[���PK�(�[x���S�SP�
models/forms/configuration.xmlnu�[���PK�(�[�Is�qq'�
models/forms/customfield.xmlnu�[���PK�(�[�^��XX��
models/forms/department.xmlnu�[���PK�(�[��V���models/forms/email.xmlnu�[���PK�(�[���L L $`
models/forms/filter_customfields.xmlnu�[���PK�(�[�{�R��#models/forms/filter_departments.xmlnu�[���PK�(�[0�k�EE?models/forms/filter_emails.xmlnu�[���PK�(�[0*����#models/forms/filter_groups.xmlnu�[���PK�(�[��mR
R
"�(models/forms/filter_kbarticles.xmlnu�[���PK�(�[�z|��$k3models/forms/filter_kbcategories.xmlnu�[���PK�(�[������]<models/forms/filter_kbrules.xmlnu�[���PK�(�[�Y6��*�Cmodels/forms/filter_predefinedsearches.xmlnu�[���PK�(�[h���"�Jmodels/forms/filter_priorities.xmlnu�[���PK�(�[�-6(�Qmodels/forms/filter_staffs.xmlnu�[���PK�(�[.����
gYmodels/forms/filter_statuses.xmlnu�[���PK�(�[��`W�
�
�`models/forms/filter_tickets.xmlnu�[���PK�(�[�ĉ����kmodels/forms/filter_users.xmlnu�[���PK�(�[��!E��rmodels/forms/group.xmlnu�[���PK�(�[�#o,,�models/forms/index.htmlnu�[���PK�(�[ԡ��""[�models/forms/kbarticle.xmlnu�[���PK�(�[j�|A��ǒmodels/forms/kbcategory.xmlnu�[���PK�(�[��HH��models/forms/kbconvert.xmlnu�[���PK�(�[<n���4�models/forms/kbrule.xmlnu�[���PK�(�[��?�FFv�models/forms/note.xmlnu�[���PK�(�[�o����#�models/forms/predefinedsearches.xmlnu�[���PK�(�[D����۩models/forms/priority.xmlnu�[���PK�(�[ԡ��٬models/forms/search.xmlnu�[���PK�(�[L�����models/forms/signature.xmlnu�[���PK�(�[��Y�hhJ�models/forms/staff.xmlnu�[���PK�(�[�=p�����models/forms/status.xmlnu�[���PK�(�[��&���models/forms/submit.xmlnu�[���PK�(�[uC������models/forms/ticket.xmlnu�[���PK�(�[�()]]�models/forms/ticketmessage.xmlnu�[���PK�(�[�ϔ����models/forms/tickets.xmlnu�[���PK�(�[��^��models/group.phpnu�[���PK�(�[\o�R%�models/groups.phpnu�[���PK�(�[��"��y�models/history.phpnu�[���PK�(�[�#o,,j�models/index.htmlnu�[���PK�(�[�'����models/kbarticle.phpnu�[���PK�(�[K��cc�models/kbarticles.phpnu�[���PK�(�[��������models/kbcategories.phpnu�[���PK�(�[O�$�ss�models/kbcategory.phpnu�[���PK�(�[R�^W__�#models/kbconvert.phpnu�[���PK�(�[��)<��6*models/kbresults.phpnu�[���PK�(�[S���qq^/models/kbrule.phpnu�[���PK�(�[��Q�~~7models/kbrules.phpnu�[���PK�(�[6�F�ss�Hmodels/note.phpnu�[���PK�(�[D�����Omodels/notes.phpnu�[���PK�(�[���� � XTmodels/predefinedsearch.phpnu�[���PK�(�[�YY��o^models/predefinedsearches.phpnu�[���PK�(�[HŔ�bblfmodels/priorities.phpnu�[���PK�(�[��e}((nmodels/priority.phpnu�[���PK�(�[\DGj�~�~~umodels/reports.phpnu�[���PK�(�[@���!!��models/rsticketspro.phpnu�[���PK�(�[a�7@n n �models/search.phpnu�[���PK�(�[hhl���models/signature.phpnu�[���PK�(�[f� ))�models/staff.phpnu�[���PK�(�[_)��� � models/staffs.phpnu�[���PK�(�[T�
M���!models/status.phpnu�[���PK�(�[�8�]]�*models/statuses.phpnu�[���PK�(�[$��m[m[g2models/submit.phpnu�[���PK�(�[��������models/ticket.phpnu�[���PK�(�[E:�SS�
models/ticketmessage.phpnu�[���PK�(�[΄#8�@�@�(models/tickets.phpnu�[���PK�(�[�
�e�
�
�imodels/users.phpnu�[���PK�(�[ډ�����wrsticketspro.phpnu�[���PK�(�[�|N`���rsticketspro.xmlnu�[���PK�(�[Y���JJ��script.rsticketspro.phpnu�[���PK�(�[�#o,,��sql/index.htmlnu�[���PK�(�[��'�H�H=�sql/install.sqlnu�[���PK�(�[��7�`
sql/sample.sqlnu�[���PK�(�[f���,sql/uninstall.sqlnu�[���PK�(�[�d:& �/tables/customfields.phpnu�[���PK�(�[����9tables/customfieldsvalues.phpnu�[���PK�(�[���$$f<tables/departments.phpnu�[���PK�(�[Z*!!�Otables/emails.phpnu�[���PK�(�[Y���2Rtables/groups.phpnu�[���PK�(�[�#o,,&[tables/index.htmlnu�[���PK�(�[�����[tables/kbcategories.phpnu�[���PK�(�[��K���htables/kbcontent.phpnu�[���PK�(�[5=�
�mtables/kbrules.phpnu�[���PK�(�[m/W���wtables/priorities.phpnu�[���PK�(�[ �KW���}tables/searches.phpnu�[���PK�(�[k�}����tables/staff.phpnu�[���PK�(�[�M_��tables/stafftodepartment.phpnu�[���PK�(�[M�3�hh��tables/statuses.phpnu�[���PK�(�[�SBnn��tables/ticketfiles.phpnu�[���PK�(�[�ٗ�##W�tables/tickethistory.phpnu�[���PK�(�[�A�hBB tables/ticketmessages.phpnu�[���PK�(�[Wq��**M�tables/ticketnotes.phpnu�[���PK�(�[�@.�����tables/tickets.phpnu�[���PK�(�[�#o,,��views/article/index.htmlnu�[���PK�(�[K�\���views/article/view.json.phpnu�[���PK�(�[�#o,,D�views/configuration/index.htmlnu�[���PK�(�[�r����$��views/configuration/tmpl/default.phpnu�[���PK�(�[.,X�-��views/configuration/tmpl/default_fieldset.phpnu�[���PK�(�[���880\�views/configuration/tmpl/default_permissions.phpnu�[���PK�(�[�#o,,#��views/configuration/tmpl/index.htmlnu�[���PK�(�[YK����!s�views/configuration/view.html.phpnu�[���PK�(�[�#o,,��views/cron/index.htmlnu�[���PK�(�[���L�views/cron/tmpl/edit.phpnu�[���PK�(�[OB���
r�views/cron/tmpl/edit_general.phpnu�[���PK�(�[�#o,,V�views/cron/tmpl/index.htmlnu�[���PK�(�[��������views/cron/view.html.phpnu�[���PK�(�[�#o,,��views/cronlog/index.htmlnu�[���PK�(�[���
�
6�views/cronlog/tmpl/default.phpnu�[���PK�(�[�#o,,�views/cronlog/tmpl/index.htmlnu�[���PK�(�[̀Ẵ���views/cronlog/view.html.phpnu�[���PK�(�[�#o,,��views/crons/index.htmlnu�[���PK�(�[���,���views/crons/tmpl/default.phpnu�[���PK�(�[�#o,,views/crons/tmpl/index.htmlnu�[���PK�(�[4�tpp�views/crons/view.html.phpnu�[���PK�(�[�!n� Dviews/crons/.htaccessnu�[���PK�(�[�#o,,�views/customfield/index.htmlnu�[���PK�(�[Go罸�
views/customfield/tmpl/edit.phpnu�[���PK�(�[�#o,,!views/customfield/tmpl/index.htmlnu�[���PK�(�[��U22�views/customfield/view.html.phpnu�[���PK�(�[�#o,,views/customfields/index.htmlnu�[���PK�(�[n2@���#�views/customfields/tmpl/default.phpnu�[���PK�(�[�#o,,"i/views/customfields/tmpl/index.htmlnu�[���PK�(�[�}ILL
�/views/customfields/view.html.phpnu�[���PK�(�[�#o,,�6views/department/index.htmlnu�[���PK�(�[�Yd��6views/department/tmpl/edit.phpnu�[���PK�(�[�6��%J>views/department/tmpl/edit_emails.phpnu�[���PK�(�[��V���&_Aviews/department/tmpl/edit_general.phpnu�[���PK�(�[ D@�oo&�Dviews/department/tmpl/edit_tickets.phpnu�[���PK�(�[��<��&SGviews/department/tmpl/edit_uploads.phpnu�[���PK�(�[�#o,,
WLviews/department/tmpl/index.htmlnu�[���PK�(�[a�x����Lviews/department/view.html.phpnu�[���PK�(�[�#o,,�Qviews/departments/index.htmlnu�[���PK�(�[�}�B��"9Rviews/departments/tmpl/default.phpnu�[���PK�(�[�#o,,!0dviews/departments/tmpl/index.htmlnu�[���PK�(�[�mENN�dviews/departments/view.html.phpnu�[���PK�(�[�#o,,Jkviews/email/index.htmlnu�[���PK�(�[�C���kviews/email/tmpl/edit.phpnu�[���PK�(�[�#o,,�oviews/email/tmpl/index.htmlnu�[���PK�(�[B��X��0pviews/email/view.html.phpnu�[���PK�(�[�#o,,!tviews/emails/index.htmlnu�[���PK�(�[���
ll�tviews/emails/tmpl/default.phpnu�[���PK�(�[�#o,,M�views/emails/tmpl/index.htmlnu�[���PK�(�[Vk��ŀviews/emails/view.html.phpnu�[���PK�(�[�#o,,�views/group/index.htmlnu�[���PK�(�[�}�HRR��views/group/tmpl/edit.phpnu�[���PK�(�[!���!(�views/group/tmpl/edit_general.phpnu�[���PK�(�[ູ���`�views/group/tmpl/edit_notes.phpnu�[���PK�(�[ູ���"6�views/group/tmpl/edit_replying.phpnu�[���PK�(�[ູ���$�views/group/tmpl/edit_submitting.phpnu�[���PK�(�[ູ���"�views/group/tmpl/edit_updating.phpnu�[���PK�(�[ູ���!Úviews/group/tmpl/edit_viewing.phpnu�[���PK�(�[�#o,,��views/group/tmpl/index.htmlnu�[���PK�(�[T4'0++�views/group/view.html.phpnu�[���PK�(�[�#o,,��views/groups/index.htmlnu�[���PK�(�[��F�����views/groups/tmpl/default.phpnu�[���PK�(�[�#o,,=�views/groups/tmpl/index.htmlnu�[���PK�(�[��ű((��views/groups/view.html.phpnu�[���PK�(�[�#o,,'�views/history/index.htmlnu�[���PK�(�[hE�2����views/history/tmpl/default.phpnu�[���PK�(�[�#o,,��views/history/tmpl/index.htmlnu�[���PK�(�[ǨQ��5�views/history/view.html.phpnu�[���PK�(�[�#o,,�views/index.htmlnu�[���PK�(�[�#o,,w�views/kbarticle/index.htmlnu�[���PK�(�[v�����views/kbarticle/tmpl/edit.phpnu�[���PK�(�[�#o,,��views/kbarticle/tmpl/index.htmlnu�[���PK�(�[��R�RRY�views/kbarticle/view.html.phpnu�[���PK�(�[g��w��views/kbarticle/view.json.phpnu�[���PK�(�[�#o,,W�views/kbarticles/index.htmlnu�[���PK�(�[������!��views/kbarticles/tmpl/default.phpnu�[���PK�(�[o�Y�
�
!
�views/kbarticles/tmpl/element.phpnu�[���PK�(�[�#o,,
>�views/kbarticles/tmpl/index.htmlnu�[���PK�(�[�66��views/kbarticles/view.html.phpnu�[���PK�(�[�#o,,>�views/kbcategories/index.htmlnu�[���PK�(�[��-��#��views/kbcategories/tmpl/default.phpnu�[���PK�(�[�#o,,"�
views/kbcategories/tmpl/index.htmlnu�[���PK�(�[���DD
iviews/kbcategories/view.html.phpnu�[���PK�(�[�#o,,�views/kbcategory/index.htmlnu�[���PK�(�[E�mT,,tviews/kbcategory/tmpl/edit.phpnu�[���PK�(�[�#o,,
�views/kbcategory/tmpl/index.htmlnu�[���PK�(�[ѓ��jviews/kbcategory/view.html.phpnu�[���PK�(�[�#o,,�views/kbconvert/index.htmlnu�[���PK�(�[I5���
Dviews/kbconvert/tmpl/default.phpnu�[���PK�(�[�#o,,$!views/kbconvert/tmpl/index.htmlnu�[���PK�(�[�.=�ff�!views/kbconvert/view.html.phpnu�[���PK�(�[�#o,,R%views/kbresults/index.htmlnu�[���PK�(�[kв�
�%views/kbresults/tmpl/default.phpnu�[���PK�(�[�#o,,('views/kbresults/tmpl/index.htmlnu�[���PK�(�[��0�II�'views/kbresults/view.json.phpnu�[���PK�(�[�#o,,9+views/kbrule/index.htmlnu�[���PK�(�[-��+views/kbrule/tmpl/edit.phpnu�[���PK�(�[�#o,,�1views/kbrule/tmpl/index.htmlnu�[���PK�(�[�ӆ��u2views/kbrule/view.html.phpnu�[���PK�(�[�#o,,�6views/kbrules/index.htmlnu�[���PK�(�[l�$�TT*7views/kbrules/tmpl/default.phpnu�[���PK�(�[�#o,,�Bviews/kbrules/tmpl/index.htmlnu�[���PK�(�[�n�QECviews/kbrules/view.html.phpnu�[���PK�(�[�#o,,�Iviews/note/index.htmlnu�[���PK�(�[YF�MMJviews/note/tmpl/edit.phpnu�[���PK�(�[�#o,,�Oviews/note/tmpl/index.htmlnu�[���PK�(�[��44!Pviews/note/view.html.phpnu�[���PK�(�[�#o,,�Rviews/notes/index.htmlnu�[���PK�(�[)�N���Sviews/notes/tmpl/default.phpnu�[���PK�(�[�#o,,#bviews/notes/tmpl/index.htmlnu�[���PK�(�[�������bviews/notes/view.html.phpnu�[���PK�(�[�#o,,!�iviews/predefinedsearch/index.htmlnu�[���PK�(�[�]��
�
$Kjviews/predefinedsearch/tmpl/edit.phpnu�[���PK�(�[�#o,,&@xviews/predefinedsearch/tmpl/index.htmlnu�[���PK�(�[X��Q��$�xviews/predefinedsearch/view.html.phpnu�[���PK�(�[�#o,,#��views/predefinedsearches/index.htmlnu�[���PK�(�[#�R��)2�views/predefinedsearches/tmpl/default.phpnu�[���PK�(�[�#o,,({�views/predefinedsearches/tmpl/index.htmlnu�[���PK�(�[]����&��views/predefinedsearches/view.html.phpnu�[���PK�(�[�#o,,כviews/priorities/index.htmlnu�[���PK�(�[oƇ��!N�views/priorities/tmpl/default.phpnu�[���PK�(�[�#o,,
R�views/priorities/tmpl/index.htmlnu�[���PK�(�[b��00άviews/priorities/view.html.phpnu�[���PK�(�[�#o,,L�views/priority/index.htmlnu�[���PK�(�[���n����views/priority/tmpl/edit.phpnu�[���PK�(�[�#o,,��views/priority/tmpl/index.htmlnu�[���PK�(�[����
;�views/priority/view.html.phpnu�[���PK�(�[�#o,,��views/reports/index.htmlnu�[���PK�(�[I�x�J J �views/reports/tmpl/default.phpnu�[���PK�(�[|�>>'��views/reports/tmpl/default_customer.phpnu�[���PK�(�[y�'���)��views/reports/tmpl/default_department.phpnu�[���PK�(�[v�UA(.�views/reports/tmpl/default_no_report.phpnu�[���PK�(�[��s##'��views/reports/tmpl/default_priority.phpnu�[���PK�(�[�m��,�views/reports/tmpl/default_select_report.phpnu�[���PK�(�[wf9��$
�views/reports/tmpl/default_staff.phpnu�[���PK�(�[����))*`�views/reports/tmpl/default_time_period.phpnu�[���PK�(�[�#o,,��views/reports/tmpl/index.htmlnu�[���PK�(�[�$S��\�views/reports/tmpl/report_1.phpnu�[���PK�(�[~�466f�views/reports/tmpl/report_2.phpnu�[���PK�(�[_ep����views/reports/tmpl/report_3.phpnu�[���PK�(�[�ܣ.����views/reports/tmpl/report_4.phpnu�[���PK�(�[1�66��views/reports/tmpl/report_5.phpnu�[���PK�(�[��y^�views/reports/tmpl/report_6.phpnu�[���PK�(�[�*(���views/reports/view.html.phpnu�[���PK�(�[$�[E�views/reports/view.raw.phpnu�[���PK�(�[�#o,,Hviews/rsticketspro/index.htmlnu�[���PK�(�[�V����#�views/rsticketspro/tmpl/default.phpnu�[���PK�(�[�#o,,"�views/rsticketspro/tmpl/index.htmlnu�[���PK�(�[���8
=views/rsticketspro/view.html.phpnu�[���PK�(�[�#o,,�views/search/index.htmlnu�[���PK�(�[���n..
views/search/tmpl/default.phpnu�[���PK�(�[�#o,,�$views/search/tmpl/index.htmlnu�[���PK�(�[��Mmm�$views/search/view.html.phpnu�[���PK�(�[�#o,,�(views/signature/index.htmlnu�[���PK�(�[һO�~~
()views/signature/tmpl/default.phpnu�[���PK�(�[�#o,,�,views/signature/tmpl/index.htmlnu�[���PK�(�[�҇:ffq-views/signature/view.html.phpnu�[���PK�(�[�#o,,$2views/staff/index.htmlnu�[���PK�(�[𒐰���2views/staff/tmpl/edit.phpnu�[���PK�(�[�#o,,�6views/staff/tmpl/index.htmlnu�[���PK�(�[m2����7views/staff/view.html.phpnu�[���PK�(�[�#o,,(;views/staffs/index.htmlnu�[���PK�(�[��G}}�;views/staffs/tmpl/default.phpnu�[���PK�(�[�#o,,eHviews/staffs/tmpl/index.htmlnu�[���PK�(�[O��%%�Hviews/staffs/view.html.phpnu�[���PK�(�[�#o,,LNviews/status/index.htmlnu�[���PK�(�[�-����Nviews/status/tmpl/edit.phpnu�[���PK�(�[�#o,,�Rviews/status/tmpl/index.htmlnu�[���PK�(�[��{��4Sviews/status/view.html.phpnu�[���PK�(�[�#o,,zWviews/statuses/index.htmlnu�[���PK�(�[ph����Wviews/statuses/tmpl/default.phpnu�[���PK�(�[�#o,,�gviews/statuses/tmpl/index.htmlnu�[���PK�(�[3��^nhviews/statuses/view.html.phpnu�[���PK�(�[�#o,,�nviews/submit/index.htmlnu�[���PK�(�[�Ş�XXGoviews/submit/tmpl/default.phpnu�[���PK�(�[�#o,,�}views/submit/tmpl/index.htmlnu�[���PK�(�[D�=���d~views/submit/view.html.phpnu�[���PK�(�[�#o,,p�views/ticket/index.htmlnu�[���PK�(�[��,%�
�
�views/ticket/tmpl/default.phpnu�[���PK�(�[���
��+-�views/ticket/tmpl/default_custom_fields.phpnu�[���PK�(�[�wťqq%-�views/ticket/tmpl/default_history.phpnu�[���PK�(�[����NN"�views/ticket/tmpl/default_info.phpnu�[���PK�(�[�"�j��&��views/ticket/tmpl/default_messages.phpnu�[���PK�(�[<�U"&
&
#Ҹviews/ticket/tmpl/default_reply.phpnu�[���PK�(�[r�j??'K�views/ticket/tmpl/default_submitter.phpnu�[���PK�(�[����"��views/ticket/tmpl/default_time.phpnu�[���PK�(�[�#o,,��views/ticket/tmpl/index.htmlnu�[���PK�(�[���Rh!h!a�views/ticket/view.html.phpnu�[���PK�(�[�#o,,views/ticketmessage/index.htmlnu�[���PK�(�[�
�ll!�views/ticketmessage/tmpl/edit.phpnu�[���PK�(�[�#o,,#Jviews/ticketmessage/tmpl/index.htmlnu�[���PK�(�[��7!�views/ticketmessage/view.html.phpnu�[���PK�(�[�#o,,) views/tickets/index.htmlnu�[���PK�(�[*|�d�!�!� views/tickets/tmpl/default.phpnu�[���PK�(�[%�Tww(�+views/tickets/tmpl/default_bulk_body.phpnu�[���PK�(�[ѐ��%%*�0views/tickets/tmpl/default_bulk_footer.phpnu�[���PK�(�[�#o,,$3views/tickets/tmpl/index.htmlnu�[���PK�(�[-;#<���3views/tickets/view.html.phpnu�[���PK�(�[�#o,,�Dviews/users/index.htmlnu�[���PK�(�[�#o,,IEviews/users/tmpl/index.htmlnu�[���PK�(�[��S���Eviews/users/tmpl/modal.phpnu�[���PK�(�[���tt�Qviews/users/view.html.phpnu�[���PK66��jW