4108 lines
189 KiB
HTML
4108 lines
189 KiB
HTML
<html xmlns:o="urn:schemas-microsoft-com:office:office"
|
||
xmlns:w="urn:schemas-microsoft-com:office:word"
|
||
xmlns="http://www.w3.org/TR/REC-html40">
|
||
|
||
<head>
|
||
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
|
||
<meta name=ProgId content=Word.Document>
|
||
<meta name=Generator content="Microsoft Word 9">
|
||
<meta name=Originator content="Microsoft Word 9">
|
||
<link rel=File-List href="./README_files/filelist.xml">
|
||
<title>ZoneMinder v0.9.11</title>
|
||
<!--[if gte mso 9]><xml>
|
||
<o:DocumentProperties>
|
||
<o:Author>Philip Coombes</o:Author>
|
||
<o:LastAuthor>Philip Coombes</o:LastAuthor>
|
||
<o:Revision>2</o:Revision>
|
||
<o:TotalTime>490</o:TotalTime>
|
||
<o:Created>2003-04-23T12:47:00Z</o:Created>
|
||
<o:LastSaved>2003-04-23T12:47:00Z</o:LastSaved>
|
||
<o:Pages>26</o:Pages>
|
||
<o:Words>11646</o:Words>
|
||
<o:Characters>-32766</o:Characters>
|
||
<o:Company>Triornis</o:Company>
|
||
<o:Version>9.2720</o:Version>
|
||
</o:DocumentProperties>
|
||
</xml><![endif]--><!--[if gte mso 9]><xml>
|
||
<w:WordDocument>
|
||
<w:View>Print</w:View>
|
||
<w:Zoom>90</w:Zoom>
|
||
<w:DoNotHyphenateCaps/>
|
||
<w:PunctuationKerning/>
|
||
<w:DocumentVariables>
|
||
<w:dgnword-docGUID>{EE1F7E29-843F-4EEE-90F5-BC0B80599480}</w:dgnword-docGUID>
|
||
<w:dgnword-eventsink>29938712</w:dgnword-eventsink>
|
||
</w:DocumentVariables>
|
||
</w:WordDocument>
|
||
</xml><![endif]-->
|
||
<style>
|
||
<!--
|
||
/* Font Definitions */
|
||
@font-face
|
||
{font-family:Wingdings;
|
||
panose-1:5 0 0 0 0 0 0 0 0 0;
|
||
mso-font-charset:2;
|
||
mso-generic-font-family:auto;
|
||
mso-font-pitch:variable;
|
||
mso-font-signature:0 268435456 0 0 -2147483648 0;}
|
||
/* Style Definitions */
|
||
p.MsoNormal, li.MsoNormal, div.MsoNormal
|
||
{mso-style-parent:"";
|
||
margin:0mm;
|
||
margin-bottom:.0001pt;
|
||
mso-pagination:widow-orphan;
|
||
font-size:12.0pt;
|
||
font-family:"Times New Roman";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-ansi-language:EN-GB;
|
||
mso-fareast-language:EN-GB;}
|
||
h1
|
||
{mso-style-next:Normal;
|
||
margin-top:12.0pt;
|
||
margin-right:0mm;
|
||
margin-bottom:12.0pt;
|
||
margin-left:22.7pt;
|
||
text-indent:-22.7pt;
|
||
page-break-before:always;
|
||
mso-pagination:widow-orphan;
|
||
page-break-after:avoid;
|
||
mso-outline-level:1;
|
||
mso-list:l16 level1 lfo8;
|
||
tab-stops:list 22.7pt;
|
||
font-size:14.0pt;
|
||
font-family:Arial;
|
||
mso-font-kerning:16.0pt;
|
||
mso-ansi-language:EN-GB;
|
||
mso-fareast-language:EN-GB;
|
||
text-decoration:underline;
|
||
text-underline:thick;}
|
||
h2
|
||
{mso-style-next:Normal;
|
||
margin-top:12.0pt;
|
||
margin-right:0mm;
|
||
margin-bottom:6.0pt;
|
||
margin-left:21.75pt;
|
||
text-indent:-21.6pt;
|
||
mso-pagination:widow-orphan;
|
||
page-break-after:avoid;
|
||
mso-outline-level:2;
|
||
mso-list:l16 level2 lfo8;
|
||
tab-stops:list 36.15pt;
|
||
font-size:12.0pt;
|
||
font-family:Arial;
|
||
mso-ansi-language:EN-GB;
|
||
mso-fareast-language:EN-GB;
|
||
text-decoration:underline;
|
||
text-underline:single;}
|
||
p.MsoTitle, li.MsoTitle, div.MsoTitle
|
||
{margin-top:12.0pt;
|
||
margin-right:0mm;
|
||
margin-bottom:3.0pt;
|
||
margin-left:0mm;
|
||
text-align:center;
|
||
mso-pagination:widow-orphan;
|
||
mso-outline-level:1;
|
||
font-size:16.0pt;
|
||
font-family:Arial;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-font-kerning:14.0pt;
|
||
mso-ansi-language:EN-GB;
|
||
mso-fareast-language:EN-GB;
|
||
font-weight:bold;
|
||
text-decoration:underline;
|
||
text-underline:double;}
|
||
a:link, span.MsoHyperlink
|
||
{color:blue;
|
||
text-decoration:underline;
|
||
text-underline:single;}
|
||
a:visited, span.MsoHyperlinkFollowed
|
||
{color:purple;
|
||
text-decoration:underline;
|
||
text-underline:single;}
|
||
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
|
||
{margin-top:0mm;
|
||
margin-right:0mm;
|
||
margin-bottom:9.0pt;
|
||
margin-left:0mm;
|
||
text-align:justify;
|
||
mso-pagination:widow-orphan;
|
||
font-size:10.0pt;
|
||
font-family:Arial;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-ansi-language:EN-GB;
|
||
mso-fareast-language:EN-GB;}
|
||
pre
|
||
{margin:0mm;
|
||
margin-bottom:.0001pt;
|
||
mso-pagination:widow-orphan;
|
||
font-size:10.0pt;
|
||
font-family:"Courier New";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-bidi-font-family:"Times New Roman";
|
||
color:black;}
|
||
@page Section1
|
||
{size:595.3pt 841.9pt;
|
||
margin:72.0pt 57.6pt 72.0pt 57.6pt;
|
||
mso-header-margin:35.4pt;
|
||
mso-footer-margin:35.4pt;
|
||
mso-paper-source:0;}
|
||
div.Section1
|
||
{page:Section1;}
|
||
/* List Definitions */
|
||
@list l0
|
||
{mso-list-id:33651922;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:1386529980 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l0:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l0:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l0:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l0:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l0:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l0:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l0:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l0:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l0:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l1
|
||
{mso-list-id:38554491;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:16669238 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l1:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l1:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l1:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l1:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l1:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l1:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l1:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l1:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l1:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l2
|
||
{mso-list-id:213347980;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:-1589062752 278397530 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
|
||
@list l2:level1
|
||
{mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l2:level2
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l2:level3
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l2:level4
|
||
{mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l2:level5
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l2:level6
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l2:level7
|
||
{mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l2:level8
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l2:level9
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l3
|
||
{mso-list-id:244655531;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:1982658052 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l3:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l3:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l3:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l3:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l3:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l3:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l3:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l3:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l3:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l4
|
||
{mso-list-id:284505362;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:777000994 -1343301464 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l4:level1
|
||
{mso-level-start-at:17;
|
||
mso-level-number-format:bullet;
|
||
mso-level-text:-;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Arial;
|
||
mso-fareast-font-family:"Times New Roman";}
|
||
@list l4:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l4:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l4:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l4:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l4:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l4:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l4:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l4:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l5
|
||
{mso-list-id:362874733;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:1821699786 -1422092430 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l5:level1
|
||
{mso-level-start-at:17;
|
||
mso-level-number-format:bullet;
|
||
mso-level-text:-;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Arial;
|
||
mso-fareast-font-family:"Times New Roman";}
|
||
@list l5:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l5:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l5:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l5:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l5:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l5:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l5:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l5:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l6
|
||
{mso-list-id:369378158;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:2126906364 1284394224 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l6:level1
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:bullet;
|
||
mso-level-text:-;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Times New Roman";
|
||
mso-fareast-font-family:"Times New Roman";}
|
||
@list l6:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l6:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l6:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l6:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l6:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l6:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l6:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l6:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l7
|
||
{mso-list-id:542638787;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:1239064078 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l7:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l7:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l7:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l7:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l7:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l7:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l7:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l7:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l7:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l8
|
||
{mso-list-id:593510658;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:1841981750 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l8:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l8:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l8:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l8:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l8:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l8:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l8:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l8:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l8:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l9
|
||
{mso-list-id:648556373;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:1087674314 1284394224 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l9:level1
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:bullet;
|
||
mso-level-text:-;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Times New Roman";
|
||
mso-fareast-font-family:"Times New Roman";}
|
||
@list l9:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l9:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l9:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l9:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l9:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l9:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l9:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l9:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l10
|
||
{mso-list-id:728111319;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:1497161928 921070896 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
|
||
@list l10:level1
|
||
{mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l10:level2
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l10:level3
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l10:level4
|
||
{mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l10:level5
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l10:level6
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l10:level7
|
||
{mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l10:level8
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l10:level9
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l11
|
||
{mso-list-id:821702224;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:-239544898 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l11:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l11:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l11:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l11:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l11:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l11:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l11:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l11:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l11:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l12
|
||
{mso-list-id:833178757;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:-687046962 -1932634610 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l12:level1
|
||
{mso-level-start-at:17;
|
||
mso-level-number-format:bullet;
|
||
mso-level-text:-;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Arial;
|
||
mso-fareast-font-family:"Times New Roman";}
|
||
@list l12:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l12:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l12:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l12:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l12:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l12:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l12:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l12:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l13
|
||
{mso-list-id:939720998;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:2041722336 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l13:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l13:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l13:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l13:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l13:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l13:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l13:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l13:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l13:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l14
|
||
{mso-list-id:947156927;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:1386529980 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l14:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l14:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l14:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l14:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l14:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l14:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l14:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l14:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l14:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l15
|
||
{mso-list-id:1018462143;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:-1750326926 -1230595170 134807577 134807579 134807567 134807577 134807579 134807567 134807577 134807579;}
|
||
@list l15:level1
|
||
{mso-level-tab-stop:51.75pt;
|
||
mso-level-number-position:left;
|
||
margin-left:51.75pt;
|
||
text-indent:-33.75pt;}
|
||
@list l15:level2
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l15:level3
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l15:level4
|
||
{mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l15:level5
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l15:level6
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l15:level7
|
||
{mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l15:level8
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l15:level9
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l16
|
||
{mso-list-id:1049647595;
|
||
mso-list-template-ids:96079340;}
|
||
@list l16:level1
|
||
{mso-level-style-link:"Heading 1";
|
||
mso-level-tab-stop:22.7pt;
|
||
mso-level-number-position:left;
|
||
margin-left:22.7pt;
|
||
text-indent:-22.7pt;}
|
||
@list l16:level2
|
||
{mso-level-style-link:"Heading 2";
|
||
mso-level-text:"%1\.%2\.";
|
||
mso-level-tab-stop:36.15pt;
|
||
mso-level-number-position:left;
|
||
margin-left:21.75pt;
|
||
text-indent:-21.6pt;}
|
||
@list l16:level3
|
||
{mso-level-text:"%1\.%2\.%3\.";
|
||
mso-level-tab-stop:54.15pt;
|
||
mso-level-number-position:left;
|
||
margin-left:43.35pt;
|
||
text-indent:-25.2pt;}
|
||
@list l16:level4
|
||
{mso-level-text:"%1\.%2\.%3\.%4\.";
|
||
mso-level-tab-stop:90.15pt;
|
||
mso-level-number-position:left;
|
||
margin-left:68.55pt;
|
||
text-indent:-32.4pt;}
|
||
@list l16:level5
|
||
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
|
||
mso-level-tab-stop:126.15pt;
|
||
mso-level-number-position:left;
|
||
margin-left:93.75pt;
|
||
text-indent:-39.6pt;}
|
||
@list l16:level6
|
||
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
|
||
mso-level-tab-stop:144.15pt;
|
||
mso-level-number-position:left;
|
||
margin-left:118.95pt;
|
||
text-indent:-46.8pt;}
|
||
@list l16:level7
|
||
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
|
||
mso-level-tab-stop:180.15pt;
|
||
mso-level-number-position:left;
|
||
margin-left:144.15pt;
|
||
text-indent:-54.0pt;}
|
||
@list l16:level8
|
||
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
|
||
mso-level-tab-stop:216.15pt;
|
||
mso-level-number-position:left;
|
||
margin-left:169.35pt;
|
||
text-indent:-61.2pt;}
|
||
@list l16:level9
|
||
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
|
||
mso-level-tab-stop:234.15pt;
|
||
mso-level-number-position:left;
|
||
margin-left:198.15pt;
|
||
text-indent:-72.0pt;}
|
||
@list l17
|
||
{mso-list-id:1250654822;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:1578805184 -724901632 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l17:level1
|
||
{mso-level-start-at:17;
|
||
mso-level-number-format:bullet;
|
||
mso-level-text:-;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Arial;
|
||
mso-fareast-font-family:"Times New Roman";}
|
||
@list l17:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l17:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l17:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l17:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l17:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l17:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l17:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l17:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l18
|
||
{mso-list-id:1319650511;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:1386529980 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l18:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l18:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l18:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l18:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l18:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l18:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l18:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l18:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l18:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l19
|
||
{mso-list-id:1384870598;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:1902658530 1284394224 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l19:level1
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:bullet;
|
||
mso-level-text:-;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Times New Roman";
|
||
mso-fareast-font-family:"Times New Roman";}
|
||
@list l19:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l19:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l19:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l19:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l19:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l19:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l19:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l19:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l20
|
||
{mso-list-id:1457866578;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:2056436186 1284394224 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l20:level1
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:bullet;
|
||
mso-level-text:-;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Times New Roman";
|
||
mso-fareast-font-family:"Times New Roman";}
|
||
@list l20:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l20:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l20:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l20:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l20:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l20:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l20:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l20:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l21
|
||
{mso-list-id:1500653936;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:-961795120 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l21:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l21:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l21:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l21:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l21:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l21:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l21:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l21:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l21:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l22
|
||
{mso-list-id:1549877389;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:1810383004 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l22:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l22:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l22:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l22:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l22:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l22:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l22:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l22:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l22:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l23
|
||
{mso-list-id:1645697949;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:-164224078 -1302528992 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
|
||
@list l23:level1
|
||
{mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l23:level2
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l23:level3
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l23:level4
|
||
{mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l23:level5
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l23:level6
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l23:level7
|
||
{mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l23:level8
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l23:level9
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l24
|
||
{mso-list-id:1783259188;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:155197542 -1491403064 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l24:level1
|
||
{mso-level-start-at:17;
|
||
mso-level-number-format:bullet;
|
||
mso-level-text:-;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Arial;
|
||
mso-fareast-font-family:"Times New Roman";}
|
||
@list l24:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l24:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l24:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l24:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l24:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l24:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l24:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l24:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l25
|
||
{mso-list-id:1837912042;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:-910136818 1284394224 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l25:level1
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:bullet;
|
||
mso-level-text:-;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Times New Roman";
|
||
mso-fareast-font-family:"Times New Roman";}
|
||
@list l25:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l25:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l25:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l25:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l25:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l25:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l25:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l25:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l26
|
||
{mso-list-id:1854879109;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:-1128526326 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l26:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l26:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l26:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l26:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l26:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l26:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l26:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l26:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l26:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l27
|
||
{mso-list-id:1927223204;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:261902230 1284394224 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
|
||
@list l27:level1
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:bullet;
|
||
mso-level-text:-;
|
||
mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Times New Roman";
|
||
mso-fareast-font-family:"Times New Roman";}
|
||
@list l27:level2
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l27:level3
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l27:level4
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l27:level5
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l27:level6
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l27:level7
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l27:level8
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l27:level9
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l28
|
||
{mso-list-id:2123767725;
|
||
mso-list-type:hybrid;
|
||
mso-list-template-ids:728815586 1653494972 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
|
||
@list l28:level1
|
||
{mso-level-tab-stop:36.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l28:level2
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:72.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l28:level3
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:108.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l28:level4
|
||
{mso-level-tab-stop:144.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l28:level5
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:180.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l28:level6
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:216.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
@list l28:level7
|
||
{mso-level-tab-stop:252.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l28:level8
|
||
{mso-level-number-format:alpha-lower;
|
||
mso-level-tab-stop:288.0pt;
|
||
mso-level-number-position:left;
|
||
text-indent:-18.0pt;}
|
||
@list l28:level9
|
||
{mso-level-number-format:roman-lower;
|
||
mso-level-tab-stop:324.0pt;
|
||
mso-level-number-position:right;
|
||
text-indent:-9.0pt;}
|
||
ol
|
||
{margin-bottom:0mm;}
|
||
ul
|
||
{margin-bottom:0mm;}
|
||
-->
|
||
</style>
|
||
</head>
|
||
|
||
<body lang=EN-US link=blue vlink=purple style='tab-interval:36.0pt'>
|
||
|
||
<div class=Section1>
|
||
|
||
<p class=MsoTitle><u><span lang=EN-GB>ZoneMinder v0.9.11<o:p></o:p></span></u></p>
|
||
|
||
<h1 style='page-break-before:auto'><![if !supportLists]><span lang=EN-GB
|
||
style='text-decoration:none;text-underline:none'>1.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Introduction<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Welcome to ZoneMinder, the new
|
||
all-in-one Linux GPL'd security camera solution. A few months back my garage
|
||
was burgled and all my wine and power tools were nicked! I realised shortly
|
||
after that if I'd just had a camera overlooking the door then at least I'd have
|
||
know exactly when and who did the dirty deed. And so ZoneMinder was born. It's
|
||
still a baby but hopefully it can grow up to be something that can be genuinely
|
||
useful and maybe one day either prevent similar incidents or perhaps bring some
|
||
perpetrators to justice.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder is designed around a series
|
||
of independent components that only function when necessary limiting any wasted
|
||
resource and maximising the efficiency of your machine. A fairly ancient
|
||
Pentium PC should be able to track one camera per device at up to 25 frames per
|
||
second with this dropping by half approximately for each additional camera on
|
||
he same device, additional cameras on other devices do not interact so can
|
||
maintain this frame rate. Even monitoring several cameras still will not
|
||
overload the CPU as frame processing is designed to synchronise with capture
|
||
and not stall it.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>As well as being fast ZoneMinder is
|
||
designed to be friendly and even more than that, actually useful. As well as
|
||
the fast video interface core it also comes with a user friendly and
|
||
comprehensive PHP based web interface allowing you to control and monitor your
|
||
cameras from home or even at work or on the road. It supports variable web
|
||
capabilities based on available bandwidth. The web interface also allows you to
|
||
view events that your cameras have captured and archive them or review them
|
||
time and again, or delete the ones you no longer wish to keep. The web pages
|
||
directly interact with the core daemons ensuring full co-operation at all
|
||
times. ZoneMinder can even be installed as a system service ensuring it is
|
||
right there if your computer has to reboot for any reason.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The core of ZoneMinder is the capture
|
||
and analysis of images and there is a highly configurable set of parameters
|
||
that allow you to ensure that you can eliminate false positives whilst ensuring
|
||
that anything you don't want to miss will be captured and saved. ZoneMinder
|
||
allows you to define a set of 'zones' for each camera of varying sensitivity
|
||
and functionality. This allows you to eliminate regions that you don't wish to
|
||
track or define areas that will alarm if various thresholds are exceeded in
|
||
conjunction with other zones.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder is fresh off the keyboard and
|
||
so comes with no warranty whatsoever, please try it, send your feedback and if
|
||
you get anything useful out of it please let me know.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>2.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Requirements<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder needs a couple of things to
|
||
work.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Firstly, it uses MySQL so you'll need
|
||
that. In order to compile you need to make sure you have a development
|
||
installation and not just a runtime, this is because it needs to use the MySQL
|
||
header files.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Next it does things with JPEGs so you'll
|
||
need at least libjpeg.a which I think come as standard nowadays with most
|
||
distributions. It also uses the netpbm utilities in a very limited way to
|
||
generate thumbnails under certain circumstances though this can be modified.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder can generate MPEG videos if
|
||
necessary, for this you'll need the Berkeley MPEG encoder, if you don't have it
|
||
don't worry the options will be hidden and you'll not miss much really. The web
|
||
interface uses PHP and so you need that in your apache or other web server as
|
||
well. There are also various perl modules that you may need that vary depending
|
||
on which options you choose on installation.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Finally, there is quite a bit of image
|
||
streaming in the package so if you don't have Netscape or other browser that
|
||
supports image streaming natively I recommend you get the excellent Cambozola
|
||
java applet from <span class=MsoHyperlink>http://www.charliemouse.com/code/cambozola/</span>
|
||
which will let you view the image stream in Internet Explorer and others.
|
||
Otherwise you're limited to just refreshing still images.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Hardware-wise, ZoneMinder has been used
|
||
with BTTV cards and USB cameras with the V4L interface. I don't have a lot of
|
||
cameras myself so I've not had change to test it much. There will soon be a
|
||
list of devices that are definitely known to work on the web site. Please let
|
||
me know if your camera works or not. You do need to have Video 4 Linux
|
||
installed. I've not got many machines so I've only really used it on RedHat,
|
||
which does have everything there by default I think. SlackWare does need a bit
|
||
more tinkering than other distributions; there will be document on the web site
|
||
describing what users have had to do to get it working with very soon, though I
|
||
can email additional information if requested. Please give me feedback on other
|
||
distributions.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>3.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Building<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The first thing you need to do is run
|
||
the included configure script to define some initial configuration, just type</span></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>./configure --with-mysql=<your
|
||
MySQL root> --with-webdir=<your web directory> --with-cgidir=<your
|
||
cgi directory><o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>where --with-mysql identifies where you
|
||
have installed MySQL (usually /usr), --with-webdir is the directory to which
|
||
you want to install the PHP files, and --with-cgidir is the directory to which
|
||
you want to install CGI files. These directories could be /var/www/html/zm and
|
||
/var/www/cgi-bin for example. There are also two further arguments you can add
|
||
if your web user and group are not both 'apache'. These are --with-webuser and
|
||
--with-webgroup. Type</span></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>./configure <20>help<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>for details.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>That's the build configuration sorted
|
||
out. The next thing you have to do is do a little more runtime specific
|
||
configuration. ZoneMinder config is scattered around various files in the
|
||
distribution so to make things easier for you there is a ZoneMinder
|
||
configuration utility included. Type</span></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>perl ./zmconfig.pl<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>to get it started. It is an interactive
|
||
utility and will prompt you by asking you various questions. For most questions
|
||
typing '?' will give you additional help if you need it. Once you've answered
|
||
all the questions it will write out a configuration file called 'zmconfig.txt'
|
||
and then process various files to substitute the information in them. If you
|
||
run it again it will remember your answers from before by reading 'zmconfig.txt'
|
||
before it starts. You can also edit this file directly to change values. If you
|
||
do you can run zmconfig.pl in non-interactive mode by typing</span></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>perl ./zmconfig.pl -noi<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>which will just read your file and do
|
||
the substations with no questions asked. Also if you are upgrading from version
|
||
0.9.7 (or later) you can copy your old zmconfig*.txt files into the current
|
||
build directory before you run zmconfig.pl and it will use your preferences as
|
||
a basis for generating the new ones.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>If you get errors such as 'Can't locate
|
||
Term::ReadKey.pm' when trying to run zmconfig.pl then this module is missing
|
||
from your system. See the troubleshooting section for details of how to install
|
||
it.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Among the first questions zmconfig.pl
|
||
asks you are to do with the database and the next thing you should do is create
|
||
it and the associated database users. You may notice that there are two sets of
|
||
users and passwords. This is because the streaming server and utility binaries
|
||
require only read access to the database so you may wish to create both a full
|
||
access user and a limited access user. You can of course set both to the full
|
||
access user. The included schema (zmschema.sql) can be used to actually create
|
||
the tables required. The database is usually called just 'zm'.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>If you are upgrading from a previous
|
||
version you can use zmalter-x.y.z.sql to upgrade your database and make the
|
||
necessary changes where x.y.z identifies the version of ZoneMinder you had
|
||
installed previously. So if you are going from version 0.9.7 to version 0.9.11
|
||
you would run the scripts for all intervening versions to get to the current
|
||
one. For a new installation the simplest way to create your database and users
|
||
is as follows,</span></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>mysql mysql < zmschema.sql<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>mysql mysql<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>grant select,insert,update,delete on
|
||
<your database name>.* to '<your first <o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>username>' identified by '<your
|
||
first password>';<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>grant select on <your database
|
||
name>.* to '<your second username>' identified by <o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>'<your second password>'<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>quit<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>mysqladmin reload<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>You may need to supply a username and
|
||
password to the mysql commands in the first place to give yourself sufficient
|
||
privileges to perform the required commands.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Then just type <i>'make'</i> and off you
|
||
go.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>4.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Installation<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Once the build has completed you should have
|
||
several shiny new binaries. I will now briefly describe what each of them does.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b><span lang=EN-GB>zmc</span></b><span
|
||
lang=EN-GB> - This is the ZoneMinder Capture daemon. This binary's job is to
|
||
sit on a video device and such frames off it as fast as possible, this should
|
||
run<span style="mso-spacerun: yes"><EFBFBD> </span>at more or less constant speed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b><span lang=EN-GB>zma</span></b><span
|
||
lang=EN-GB> - This is the ZoneMinder Analysis daemon. This is the component
|
||
that goes through the captured frames and checks them for alarming events. It
|
||
generally keeps up with the zmc but if very busy may skip some frames to
|
||
prevent it falling behind.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b><span lang=EN-GB>zms</span></b><span
|
||
lang=EN-GB> - This is the ZoneMinder Streaming server. The web interface
|
||
connects with this to get real-time or historical streamed images.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b><span lang=EN-GB>zmu</span></b><span
|
||
lang=EN-GB> - This is the ZoneMinder Utility. It's basically a handy command
|
||
line interface to several useful functions. Not really meant to be used by
|
||
anyone except the web page (there's only limited 'help' in it so far) but can
|
||
be if necessary, especially for debugging video problems.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b><span lang=EN-GB>zmfix</span></b><span
|
||
lang=EN-GB> - This is a small binary that exists only to ensure that the video
|
||
device files can be read by the main capture daemons. It is often the case that
|
||
these device files are set to be accessible by root only on boot. This binary
|
||
runs setuid and ensures that they have appropriate permissions. This is not a
|
||
daemon and runs only on system start and then exits.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>As well as this there are the web PHP
|
||
files in the web directory and some perl scripts in the scripts directory, only
|
||
one of which may actually be used in a minimal installation. These scripts all
|
||
have some configuration at the top of the files which should be viewed and
|
||
amended if necessary and are as follows.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b><span lang=EN-GB>zmpkg.pl</span></b><span
|
||
lang=EN-GB> - This is the ZoneMinder Package Control script. This is used by
|
||
the web interface and service scripts to control the execution of the system as
|
||
a whole.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b><span lang=EN-GB>zmdc.pl</span></b><span
|
||
lang=EN-GB> - This is the ZoneMinder Daemon Control script. This is used by the
|
||
web interface and the zmpkg.pl script to control and maintain the execution of
|
||
the capture and analysis daemons amongst others. You should not need to run
|
||
this script yourself.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b><span lang=EN-GB>zmfilter.pl</span></b><span
|
||
lang=EN-GB> - This script controsl the execution of saved filters and will
|
||
be<span style="mso-spacerun: yes"><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span>started and stopped by the web
|
||
interface based on whether there are filters that have been defined to be
|
||
autonomous. This script is also responsible for the automatic uploading of
|
||
events to a 3rd party server.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b><span lang=EN-GB>zmaudit.pl</span></b><span
|
||
lang=EN-GB> - This script is used to check the consistency of the event file
|
||
system and database. It can delete orphaned events, i.e. ones that appear in
|
||
one location and not the other as well as checking that all the various event
|
||
related tables are in line. It can be run interactively or in batch mode either
|
||
from the command line or a cron job or similar. In the zmconfig.pl there is an
|
||
option to specify fast event deletes where the web interface only deletes the
|
||
event entry from the database itself. If this is set then it is this script
|
||
that tidies up the rest.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b><span lang=EN-GB>zmx10.pl</span></b><span
|
||
lang=EN-GB> - This is an option script that can be used to initiate and monitor
|
||
X10 Home Automation style events and interface with an alarm system either by
|
||
the generation of X10 signals on ZoneMinder events or by initiating ZoneMinder
|
||
monitoring and capture on receipt of X10 signals from elsewhere, for instance
|
||
the triggering of an X10 PIR.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b><span lang=EN-GB>zmwatch.pl</span></b><span
|
||
lang=EN-GB> - This is a simple script purely designed to keep an eye on the
|
||
capture daemons and restart them if they lockup. It has been known for sync
|
||
problems in the video drivers to cause this so this script makes sure that
|
||
nothing important gets missed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b><span lang=EN-GB>zm</span></b><span
|
||
lang=EN-GB> - This is the (optional) ZoneMinder init script, see below for
|
||
details.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Finally, check zm_config.php in the web
|
||
directory and amend any configuration necessary in there. Most will have
|
||
already been done by the configuration utilities.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>At this stage typing 'make install' will
|
||
install everything to the desired locations, you may to su to root first
|
||
though. The installation routine will copy the binaries and scripts to your
|
||
chosen install location, usually /usr/local/bin and then move zms to your
|
||
cgi-bin area. It will then copy the web files to your chosen directory and
|
||
ensure they have the right permissions. Finally it tries to link zm.php to
|
||
index.php but will not overwrite an existing file if it exists.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The 'zm' script does not get installed
|
||
automatically as it is not necessary for the operation of the ZoneMinder setup
|
||
per se. However if you want to ensure that the ZoneMinder daemons are started
|
||
on reboot etc copy it to your init.d directory, usually something like
|
||
/etc/rc.d/init.d and then add it by doing</span></p>
|
||
|
||
<p class=MsoPlainText><i><span lang=EN-GB>/sbin/chkconfig --add zm<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>or similar command. ZoneMinder will then
|
||
start up when your machine reboots and can be controlled (by the root user) by
|
||
doing <i>'service zm start'</i> or <i>'service zm stop'</i> etc.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Now start your web browser and point it
|
||
at your zm.php and off you go.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Tutorial<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>To start with you should see the
|
||
ZoneMinder Console window, this will resize itself to avoid being too intrusive
|
||
on your desktop. Along the top there are several informational entries like the
|
||
time of the last update and the current server load. There will also be a
|
||
<EFBFBD>start<EFBFBD> or <20>stop<6F> link depending on the current state. Below that are various
|
||
other links including a set allowing you to configure your bandwidth. This
|
||
enables you to optimise your settings depending on where you are, the actual
|
||
values relating to this are defined at the op of the zm_config.php file. If you
|
||
are using a browser on the same machine or network then choose high, over a
|
||
cable or DSL link maybe choose medium and over a dialup choose low. You can
|
||
experiment to see which is best. This setting is retained on a per machine
|
||
basis with a persistent cookie. Also on this line is a <20>Report Bug<75> email link
|
||
which you can use to easily report any problems (or successes!) and a couple of
|
||
other links to the left which will be covered below.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.1.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Defining Monitors</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>To use ZoneMinder properly you need to
|
||
define at least one Monitor. Essentially a monitor is associated with a camera
|
||
and will continually check it for motion detection and such like. So, next
|
||
click 'Add New Monitor' to bring up the dialog. You will see a bunch of things
|
||
you have to fill in.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>To help you get started on the video
|
||
configuration the best thing is to us a tool like 'xawtv' to get a picture
|
||
you're happy with, and to check your camera works and then run 'zmu -d
|
||
<device_no> -q -v' to get a dump of the settings. You can then enter
|
||
these values into the video related options of the monitor configuration panel.
|
||
Note that 'device_no' here is a number corresponding to the digit at the end of
|
||
your device file, so /dev/video0 has a 'device_no' of 0 etc. If 'zmu' gives you
|
||
an error related to permissions run 'zmfix -a' to make sure you can access all
|
||
the video devices.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The options explained in a little more
|
||
detail are as follows,</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Name</span></b><span
|
||
lang=EN-GB> - First choose a name for it, anything you like. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Function</span></b><span
|
||
lang=EN-GB> - This essentially defines what the monitor is doing. This can be
|
||
'None' meaning the monitor is currently disabled, 'Passive' meaning you can
|
||
watch the streams coming from the camera but no alarms or events will be
|
||
generated, or 'Active' meaning all the images will be analysed as well as the
|
||
stream being available to watch. If you have specified X10 support then X10 is
|
||
also available as an option which means that the monitor is generally passive
|
||
but may go active on receipt of X10 commands. Generally you'll want 'Active'
|
||
but for now leave this at 'None'. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Source
|
||
Type</span></b><span lang=EN-GB> <20> This determines whether the camera is a
|
||
local one attached to a physical video or USB port on your machine or a remote
|
||
network camera or similar. Choosing one or the other affects which set of three
|
||
options are show next.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Device
|
||
Number/Channel</span></b><span lang=EN-GB> <20> For a local camera enter the
|
||
device number that your camera is attached to. If it is /dev/video0 enter '0'
|
||
etc. Some video devices, e.g. BTTV cards support multiple cameras so in the
|
||
Channel box choose the appropriate channel, or leave it at zero if you're using
|
||
a USB camera or one without channels. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Device
|
||
Format</span></b><span lang=EN-GB> <20> For a local camera enter the video format
|
||
of the video stream. This is defined in various system files (e.g.
|
||
/usr/include/linux/videodev.h) but the two most common are 0 for PAL and 1 for
|
||
NTSC.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Remote
|
||
Host/Port/Path</span></b><span lang=EN-GB> <20> For remote cameras use these
|
||
fields to enter the full URL of the camera. Basically if your camera is at <a
|
||
href="http://camserver.home.net:8192/cameras/camera1.jpg">http://camserver.home.net:8192/cameras/camera1.jpg</a>
|
||
then these fields will be camserver.home.net, 8192 and /cameras/camera1.jopg
|
||
respectively. Leave the port at 80 if there is no special port required.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Capture
|
||
Width/Height</span></b><span lang=EN-GB> - The dimensions of the video stream
|
||
your camera will supply. If your camera supports several just enter the one
|
||
you'll want to use for this application, you can always change it later.
|
||
However I would recommend starting with no larger than 352x288 and then perhaps
|
||
increasing and seeing how performance is affected. This size should be adequate
|
||
in most cases.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Capture
|
||
Palette</span></b><span lang=EN-GB> - Finally for the video part of the
|
||
configuration enter the colour depth. ZoneMinder supports a handful of the most
|
||
common palettes, so choose one here. If in doubt try grey scale first, and then
|
||
24 bit colour. If neither of these work very well then YUV420P probably will.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Timestamp
|
||
Label Format</span></b><span lang=EN-GB> - This relates to the timestamp that
|
||
is applied to each frame. It is a sprintf style string. It is actually passed
|
||
through sprintf and then through print to add the monitor name so a format of
|
||
'%%s - %y/%m/%d %H:%M:%S' would be recommended though you can modify it if
|
||
necessary. If you don<6F>t want a timestamp or have a camera that puts one on
|
||
itself then leave this field blank.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Timestamp
|
||
Label X/Y</span></b><span lang=EN-GB> - The X and Y values determine where to
|
||
put the timestamp a value of 0 for the X value will put it on the left side of
|
||
the image and a Y value of 0 will place it at the top of the image. A Y value
|
||
of the height you supplied earlier minus 8 will place it on the bottom of the
|
||
image.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Image
|
||
Buffer Size</span></b><span lang=EN-GB> - This option determines how many
|
||
frames are held in the ring buffer at any one time. The ring buffer is the
|
||
storage space where the last <20>n<EFBFBD> images are kept, ready to be resurrected on an
|
||
alarm or just kept waiting to be analysed. It can be any value you like with a
|
||
couple of provisos, (see next options). However it is stored in shared memory
|
||
and making it too large especially for large images with a high colour depth
|
||
can use a lot of memory. A value of no more than 100 is usually ok.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Warm-up
|
||
Frames </span></b><span lang=EN-GB>- This specifies how many frames the
|
||
analysis daemon should process but not examine when it starts. This allows it
|
||
to generate an accurate reference image from a series of images before looking
|
||
too carefully for any changes. I use a value of 25 here, too high and it will
|
||
take a long time to start, too low and you will get false alarms when the
|
||
analysis daemon starts up.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Pre/Post
|
||
Event Image Buffer</span></b><span lang=EN-GB> - These options determine how
|
||
many frames from before and after an event should be preserved with it. This
|
||
allows you to view what happened immediately prior and subsequent to the event.
|
||
A value of 10 for both of these will get you started but if you get a lot of
|
||
short events and would prefer them to run together to form fewer longer ones
|
||
then increase the Post Event buffer size. Both of these values added together
|
||
should not exceed the ring buffer size.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Maximum
|
||
FPS</span></b><span lang=EN-GB> <20> On some occasions you may have one or more
|
||
cameras capable of high capture rates but find that you generally do not
|
||
require this performance at all times and would prefer to lighten the load on
|
||
your server. This option permits you to limit the maximum capture rate to a
|
||
specified value. This may allow you to have more cameras supported on your
|
||
system by reducing the CPU load or to allocate video bandwidth unevenly between
|
||
cameras sharing the same video device. This value is only a rough guide and the
|
||
lower the value you set the less close the actual FPS may approach it
|
||
especially on shared devices where it is difficult to synchronise two different
|
||
capture rates precisely. There is a global option in zmconfig.pl that allows
|
||
you to turn this limiting off in the event of an alarm.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>FPS Report
|
||
Interval</span></b><span lang=EN-GB> - How often the current performance in
|
||
terms of Frames Per Second is output to the system log. Not used in any
|
||
functional way so set it to maybe 1000 for now. If you watch /var/log/messages
|
||
(normally) you will see this value being emitted at the frequency you specify
|
||
both for video capture and processing.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Reference
|
||
Image Blend %ge</span></b><span lang=EN-GB> - Each analysed image in ZoneMinder
|
||
is a composite of previous images and is formed by applying the current image
|
||
as a certain percentage of the previous reference image. Thus, if we entered
|
||
the recommended value of 10 here, each images part in the reference image will
|
||
diminish by a factor of 0.9 each time round. So a typical reference image will
|
||
be 10% the previous image, 9% the one before that and then 8.1%, 7.2%, 6.5% and
|
||
so on of the rest of the way. An image will effectively vanish around 25 images
|
||
later than when it was added. This blend value is what is specified here and if
|
||
higher will make slower progressing events less detectable as the reference
|
||
image would change more quickly. Similarly events will be deemed to be over
|
||
much sooner as the reference image adapts to the new images more quickly. In
|
||
signal processing terms the higher this value the steeper the event attack and
|
||
decay of the signal. It depends on your particular requirements what the
|
||
appropriate value would be for you but start with 10 here and adjust it later
|
||
if necessary.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>X10
|
||
Activation String</span></b><span lang=EN-GB> - This option is only available
|
||
if you have specified X10 support in the configuration. If you have then this
|
||
contents of this field determine when a monitor starts and stops being Active
|
||
if its function is set to X10. Basically what this means is that a monitor with
|
||
a Function of X10 normally acts as it is Passive, i.e. you can watch the video
|
||
stream but no analysis is done. On receipt of the appropriate X10 signal
|
||
however it effectively changes to Active mode and starts to analyse images
|
||
until an X10 signal changes it back to Passive again. The format of this string
|
||
is as follows,</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>n</span></u><span
|
||
lang=EN-GB> : If you simply enter a number then the monitor will be activated
|
||
when an X10 ON signal for that unit code is detected and will be deactivated
|
||
when an OFF signal is detected.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>!n</span></u><span
|
||
lang=EN-GB> : This inverts the previous mode, e.g. !5 means that the monitor is
|
||
activated when an OFF signal for unit code 5 is detected and deactivated by an
|
||
ON.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>n+</span></u><span
|
||
lang=EN-GB> : Entering a unit code followed by + means that the monitor is
|
||
activated on receipt of a ON signal for that unit code but will ignore the OFF
|
||
signal and as such will not be deactivated by this instruction. If you prepend
|
||
a '!' as per the previous definition it similarly inverts the mode, i.e. the ON
|
||
signal deactivates the monitor.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>n+<seconds></span></u><span
|
||
lang=EN-GB> : As per the previous mode except that the monitor will deactivate
|
||
itself after the given number of seconds.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>n-</span></u><span
|
||
lang=EN-GB> : Entering a unit code followed by - means that the monitor is
|
||
deactivated on receipt of a OFF signal for that unit code but will ignore the
|
||
ON signal and as such will not be activated by this instruction. If you prepend
|
||
a '!' as per the previous definition it similarly inverts the mode, i.e. the
|
||
OFF signal activates the monitor.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>n+<seconds></span></u><span
|
||
lang=EN-GB> : As per the previous mode except that the monitor will activate
|
||
itself after the given number of seconds.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><span lang=EN-GB>You can also
|
||
combine several of these expressions to by separating them with a comma to
|
||
create multiple circumstances of activation. However for now leave this blank.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>X10 Input
|
||
Alarm String</span></b><span lang=EN-GB> - This has the same format as the
|
||
previous field but instead of activating the monitor with will cause a forced
|
||
alarm to be generated and an event recorded if the monitor is Active. The same
|
||
definition as above apply except that for activated read alarmed and for
|
||
deactivated read unalarmed(!). Again leave this blank for now.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>X10 Output
|
||
Alarm String</span></b><span lang=EN-GB> - This X10 string also has the same
|
||
format as the two above options. However it works in a slightly different way.
|
||
Instead of ZoneMinder reacting to X10 events this option controls how
|
||
ZoneMinder emits X10 signals when the current monitor goes into or comes out of
|
||
the alarm state. Thus just entering a number will cause the ON signal for that
|
||
unit code to be sent when going into alarm state and the OFF signal when coming
|
||
out of alarm state. Similarly 7+30 will send the unit code 7 ON signal when
|
||
going into alarm state and the OFF signal 30 seconds later regardless of state.
|
||
The combination of the X10 instruction allows ZoneMinder to react intelligently
|
||
to, and also assume control of, other devices when necessary. However the
|
||
indiscriminate use of the Input Alarm and Output Alarm signals can cause some
|
||
horrendous race conditions such as a light going on in response to an alarm
|
||
which then causes an alarm itself and so on. Thus some circumspection is
|
||
required here. Leave this blank for now anyway.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Finally, click 'Save' to add your
|
||
monitor.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>On the main console listing you will now
|
||
see your monitor and some of its vital statistics. Each column is also a link
|
||
and you get to other functions of ZoneMinder by choosing the appropriate one.
|
||
Describing them left to right, they are as follows.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The first column is the Id, clicking on
|
||
this gives you the opportunity to edit any of the settings you have just
|
||
defined your monitor to have.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The next column is the Name column,
|
||
clicking on this will give you the watch window where you can view a live feed
|
||
from your camera. This is described more fully below.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Following that are the Function and
|
||
Source columns, which may be represented in various colours. Initially both
|
||
will be showing red. This means that that monitor is not configured for any
|
||
function and as a consequence has no zmc (capture) daemon running on it. If it
|
||
were orange it would mean that a zmc daemon was running but no zma (analysis)
|
||
daemon and green means both are running. In our case it is red because we
|
||
defined the Monitor to have a Function of None so no daemons are required. To
|
||
get the daemons up and running you can either click on the source listed in the
|
||
Source column and edit the monitor properties or click on the Function listed
|
||
and change it to <20>Passive<76> or 'Active', which will ensure that one or more
|
||
appropriate daemons are started automatically.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Having a device status of red or orange
|
||
does not necessarily constitute an error if you have deliberately disabled a
|
||
monitor or have just put it into Passive mode.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>If you have several cameras (and thus
|
||
monitors) on a device the device status colour reflects all of them for the
|
||
capture daemon. So if just one monitor is active then the daemon is active for
|
||
both even if all the other monitors are switched off.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Once you have changed the function of
|
||
your monitor, the main console window will be updated to reflect this change.
|
||
If your device status does not go green then check your system and web server
|
||
logs to see if it's something obvious.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>You can now add further monitors if you
|
||
have cameras set up to support them. Once you have one or more monitors you may
|
||
notice the '<n> Monitors' title becomes a link which allows you to cycle
|
||
through a shot from each of your monitors (unless they are switched off) and
|
||
get a streamed or still image from each in turn. There may also be a link
|
||
titled <20>Montage<67> which allows you view all your enabled cameras simultaneously.
|
||
Be aware however that this can consume large amounts of bandwidth and CPU so
|
||
should not be used continuously unless you have resource to burn. </span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.2.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Defining Zones</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The next important thing to do with a
|
||
new monitor is set up Zones for it to use. By default you'll already have one
|
||
created for you when you created your monitor but you might want to modify it
|
||
or add others. Click on the Zones column for your monitor and you should see a
|
||
small popup window appear which contains an image from your camera overlain
|
||
with a stippled pattern representing your zone. In the default case this will
|
||
cover the whole image and will be red. Beneath that will be a table containing
|
||
a listing of your zones. Clicking on either the relevant bit of the image or on
|
||
the Id or Name in the table will bring up another window where you can edit the
|
||
particulars for your Zones. As you can see there are quite a few, so now is a
|
||
good time to go through them. The options are as follows.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Name</span></b><span
|
||
lang=EN-GB> <20> This is just a label to identify the zone by. You can change this
|
||
to be more representative if you like, though it isn't used much except for
|
||
logging and debugging.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Type</span></b><span
|
||
lang=EN-GB> - This is one of the more important concepts in ZoneMinder and
|
||
there are five to choose from.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>Active</span></u><span
|
||
lang=EN-GB> : This is the zone type you'll use most often, and which will be
|
||
set for your default zone. This means that this zone will trigger an alarm on
|
||
any events that occur within it that meet the selection criteria. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>Inclusive</span></u><span
|
||
lang=EN-GB> : This zone type can be used for any zones that you want to trigger
|
||
an alarm only if at least one other Active zone has already triggered one. This
|
||
might be for example to cover an area of the image like a plant or tree which
|
||
moves a lot and which would trigger lots of alarms. Perhaps this is behind an
|
||
area you'd like to monitor though, in this case you'd create an active zone
|
||
covering the non-moving parts and an inclusive zone covering the tree perhaps
|
||
with less sensitive detection settings also. If something triggered an alarm in
|
||
the Active zone and also in the Inclusive zone they would both be registered
|
||
and the resulting alarm would be that much bigger than if you had blanked it
|
||
out altogether.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>Exclusive</span></u><span
|
||
lang=EN-GB> : The next zone Type is Exclusive. This means that alarms will only
|
||
be triggered in this zone if no alarms have already been triggered in Active
|
||
zones. This is the most specialised of the zone types and you may never use it
|
||
but in its place it is very useful. For instance in the camera covering my
|
||
garden I keep watch for a hedgehog that visits most nights and scoffs the food
|
||
out of my cats bowls. By creating a sensitive Exclusive zone in that area I can
|
||
ensure that a hedgehog alarm will only trigger if there is activity in that
|
||
small area. If something much bigger occurs, like someone walking by it will
|
||
trigger a regular alarm and not one from the Exclusive zone. Thus I can ensure
|
||
I get alarms for big events and also special small events but not the noise in
|
||
between.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>Preclusive</span></u><span
|
||
lang=EN-GB> : This zone type is relatively recent. It is called a Preclusive
|
||
zone because if it is triggered it actually precludes an alarm being generated
|
||
for that image frame. So motion or other changes that occur in a Preclusive zone
|
||
will have the effect of ensuring that no alarm occurs at all. The application
|
||
for this zone type is primarily as a shortcut for detecting general large-scale
|
||
lighting or other changes. Generally this may be achieved by limiting the
|
||
maximum number of alarm pixels or other measure in an Active zone. However in
|
||
some cases that zone may cover an area where the area of variable illumination
|
||
occurs in different places as the sun and/or shadows move and it thus may be
|
||
difficult to come up with general values. Additionally, if the sun comes out
|
||
rapidly then although the initial change may be ignored in this way as the
|
||
reference image catches up an alarm may ultimately be triggered as the image
|
||
becomes less different. Using one or more Preclusive zones offers a different
|
||
approach. Preclusive zones are designed to be fairly small, even just a few
|
||
pixels across, with quite low alarm thresholds. They should be situated in
|
||
areas of the image that are less likely to have motion occur such as high on a
|
||
wall or in a corner. Should a general illumination change occur they would be
|
||
triggered at least as early as any Active zones and prevent any other zones
|
||
from generating an alarm. Obviously careful placement is required to ensure
|
||
that they do not cancel any genuine alarms or that they are not so close
|
||
together that any motion just hops from one Preclusive zone to another. As
|
||
always, the best way is to experiment a little and see what works for you.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>Inactive </span></u><span
|
||
lang=EN-GB>: This final zone type is the opposite of Active. In this zone type
|
||
no alarms will ever be reported. You can create an Inactive zone to cover any
|
||
areas in which nothing notable will ever happen or where you get constant false
|
||
alarms that don't relate to what you are trying to monitor. An Inactive zone
|
||
can overlay other zone types and will be processed first.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><span lang=EN-GB>I mentioned
|
||
above that Inactive zones may be overlaid on other zones to blank out areas
|
||
however as a general principle you should try and make zones abut each other as
|
||
much as possible and not overlap. This helps avoid repeated duplicate
|
||
processing of the same area. For instance an Inclusive zone overlaying an
|
||
Active zone when all other settings are the same will always trigger when the
|
||
Active zone does which somewhat defeats the object of the exercise. One
|
||
exception to this is Preclusive zones. These may be situated within Active
|
||
areas are they are processed first and if small may actually save processing
|
||
time by preventing full analysis of the image.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Units</span></b><span
|
||
lang=EN-GB> - This setting which details whether certain of the following settings
|
||
are in Pixels or Percent of the frame. In general pixels is more precise
|
||
whereas percentages are easier to use to start with. If you change this setting
|
||
all appropriate values below are redisplayed in the correct context. A good tip
|
||
would be to initially enter the settings in Percent and then change to Pixels
|
||
and refine any gaps. Repeated flipping between the settings will cause rounding
|
||
errors, as ZoneMinder in general is not at home to Mr Floating Point for
|
||
reasons of performance. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Min/Maximum
|
||
X/Y</span></b><span lang=EN-GB> - Following the units the next four settings
|
||
define the bounds of the Zone in the monitor frame and are self-explanatory
|
||
with the exception of the fact that the minima are at the top left of the frame
|
||
and the maxima are at the bottom right rather than in a Cartesian style.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Alarm
|
||
Colour </span></b><span lang=EN-GB>- The option after that allows you to
|
||
specify what colour you'd like any alarms this zone generates to be highlighted
|
||
on images, pick anything you like that will show up against your normal image
|
||
background. This option is irrelevant for Preclusive and Inactive zones and
|
||
will be disabled For Inactive zones all subsequent options are likewise
|
||
disabled.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Alarm
|
||
Threshold</span></b><span lang=EN-GB> - This represents the difference in value
|
||
between a pixel and its predecessor in the reference image. For greyscale
|
||
images this is simple but for colour images the colours are averaged first,
|
||
originally this used an RMS (root mean squared) algorithm but calculating
|
||
square roots mugs performance and does not seem to improve detection. Using an
|
||
average does means that subtle colour changes without any brightness change may
|
||
go undetected but this is not the normal circumstance. There is also the option
|
||
to use a more sophisticated integer algorithm to calculate a Y (or brightness)
|
||
value from the colours themselves.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Min/Maximum
|
||
Alarmed Area</span></b><span lang=EN-GB> - The following two settings define
|
||
the minimum and maximum number of pixels that exceed this threshold that would
|
||
cause an alarm. If the units are Percent this (and following options) refers to
|
||
the percentage of the frame and not the zone, this is so these values can be
|
||
related between zones. The minimum value must be matched or exceeded for an
|
||
alarm to be generated whereas the maximum must not be exceeded or the alarm
|
||
will be cancelled. This is to allow for sudden changes such as lights coming on
|
||
etc, which you may wish to disregard. In general a value of zero for any of
|
||
these settings causes that value to be ignored, so you can safely set a maximum
|
||
to zero and it will not be used. The use of just a number of pixels is however
|
||
a very brute force method of detection as many small events dispersed widely
|
||
are not distinguished from a compact one.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Filter
|
||
Width/Height</span></b><span lang=EN-GB> <20> To improve detection of valid event
|
||
ZoneMinder applies several other functions to the data to improve its ability
|
||
to distinguish interesting signals from uninteresting noise. The first of these
|
||
is a filter that removes any pixels that do not participate in a contiguous
|
||
block of pixels above a certain size. These options are always pixels and
|
||
should be fairly small, and an odd number. Application of this filter removes
|
||
any tiny or discontinuous pixels that don't form part of a discrete block. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Min/Maximum
|
||
Filtered Area</span></b><span lang=EN-GB> <20> These are two additional bounds
|
||
that specify the limits of pixels that would cause an alarm after this filtering
|
||
process. As the filtering process can only remove alarmed pixels it makes no
|
||
sense for the Minimum and Maximum Filtered Area to be larger than the
|
||
equivalent Alarmed Area and in general they should be smaller or the same.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Min/Maximum
|
||
Blob Area</span></b><span lang=EN-GB> - The next step in the analysis phase is
|
||
the collation of any remaining alarmed areas into contiguous blobs. This
|
||
process parses the image and forms any pixels that adjoin other alarmed pixels
|
||
into one or more larger blobs. These blobs may be any shape and can be as large
|
||
as the zone itself or as small as the filtered size. The Minimum and Maximum
|
||
Blob Size settings allow you to define limits within which an alarm will be
|
||
generated. Of these only the Minimum is likely to be very useful.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b><span lang=EN-GB>Min/Maximum
|
||
Blobs </span></b><span lang=EN-GB>- Finally the Minimum and Maximum Blobs
|
||
settings specify the limits of the actual number of blobs detected. If an image
|
||
change satisfies all these requirements it becomes an alarm event.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.3.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Viewing Monitors</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>As this point you should have one or
|
||
more Monitors running with one or more Zones each. Returning to the main
|
||
Console window you will see your monitors listed once more. The columns not
|
||
explored so far are the Monitor name, and various event totals for certain
|
||
periods of time. Clicking on any of the event totals will bring up a variation
|
||
on the same window but click on the Monitor name for now. On doing so up will
|
||
pop another window which should be scaled to contain a heading, an image from
|
||
your monitor, a status and a list of events if any have been generated. Depending
|
||
on whether you are able to view a streamed image or not the image frame will
|
||
either be this stream or a series of stills. You have the option to change from
|
||
one to the other (if available) at the centre of the top heading.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The image should be self-explanatory but
|
||
if it looks like garbage it is possible that the video configuration is wrong
|
||
so look in your system error log and check for or report anything unusual. The
|
||
centre of the window will have a tiny frame that just contains a status; this will
|
||
be 'Idle', 'Alarm' or 'Alert' depending on the function of the Monitor and
|
||
what's going on in the field of view. Idle means nothing is happening, Alarm
|
||
means there is an alarm in progress and Alert means that an alarm has happened
|
||
and the monitor is cooling down, if another alarm is generated in this time it
|
||
will just become part of the same event. These indicators are colour coded in
|
||
green, red and amber.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>By default if you have minimised this
|
||
window or opened other windows in front it will pop up to the front if it goes
|
||
to Alarm state. This behaviour can be turned off in configuration if required.
|
||
You can also specify a sound file in the configuration, which will be played
|
||
when an alarm occurs to alert you to the fact if you are not in front of your
|
||
computer. This should be a short sound of only a couple of seconds ideally.
|
||
Note that as the status is refreshed every few seconds it is possible for this
|
||
not to alert you to every event that takes place, so you shouldn't rely on it
|
||
for this purpose if you expect very brief events. Alternatively you can
|
||
decrease the refresh interval for this window in the configuration though
|
||
having too frequently refreshing may impact on performance.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Below the status is a list of recent
|
||
events that have occurred, by default this<span style="mso-spacerun: yes"><EFBFBD>
|
||
</span>is a listing of just the last 10 but clicking on 'All' will give you a
|
||
full list<span style="mso-spacerun: yes"><EFBFBD> </span>and 'Archive' will take you
|
||
to the event archive for this monitor, more on this<span style="mso-spacerun:
|
||
yes"><EFBFBD> </span>later. Clicking on any of the column headings will sort the
|
||
events appropriately.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>From here you can also delete events if
|
||
you wish. The events themselves are listed with the event id, and event name
|
||
(which you can change), the time that the event occurred, the length of the
|
||
event including any preamble and postamble frames, the number of frames
|
||
comprising the event with the number that actually contain an alarm in brackets
|
||
and finally a score. This column lists the average score per alarm frame as
|
||
well as the maximum score that any alarm frame had.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The score is an arbitrary value that
|
||
essentially represents the percentage of pixels in the zone that are in blobs
|
||
divided by the square root of the number of blobs and then divided by the size
|
||
of the zone. This gives a nominal maximum of 100 for a zone and the totals for
|
||
each zone are added together, Active zones scores are added unchanged,
|
||
Inclusive zones are halved first and Exclusive zones are doubled. In reality
|
||
values are likely to be much less than 100 but it does give a simple indication
|
||
of how major the event was.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.4.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Filtering Events</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The other columns on the main console
|
||
window contain various event totals for your monitor over the last hour, day,
|
||
week and month as well as a grand total and a total for events that you may
|
||
have archived for safekeeping. Clicking on one of these totals or on the 'All'
|
||
or 'Archive' links from the monitor window described above will present you
|
||
with a new display. This is the full event window and contains a list of events
|
||
selected according to a filter which will also pop up in its own window. Thus
|
||
if you clicked on a 'day' total the filter will indicate that this is the
|
||
period for which events are being filtered. The event listing window contains a
|
||
similar listing to the recent events in the monitor window. The primary
|
||
differences are that the frames and alarm frames and the score and maximum
|
||
score are now broken out into their own columns, all of which can be sorted by
|
||
clicking on the heading. Also this window will not refresh automatically,
|
||
rather only on request. Other than that, you can choose to view events here or
|
||
delete them as before.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The other window that appeared is a
|
||
filter window. You can use this window to create your own filters or to modify
|
||
existing ones. You can even save your favourite filters to re-use at a future
|
||
date. Filtering itself is fairly simple; you first choose how many expressions
|
||
you'd like your filter to contain. Changing this value will cause the window to
|
||
redraw with a corresponding row for each expression. You then select what you
|
||
want to filter on and how the expressions relate by choosing whether they are
|
||
'and' or 'or' relationships. For filters comprised of many expressions you will
|
||
also get the option to bracket parts of the filter to ensure you can express it
|
||
as desired.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>There are several different elements to
|
||
an event that you can filter on, some of which require further explanation.
|
||
These are as follows, 'Date/Time' which must evaluate to a date and a time
|
||
together, 'Date' and 'Time' which are variants which may only contain the
|
||
relevant subsets of this, 'Weekday' which as expected is a day of the week. All
|
||
of the preceding elements take a very flexible free format of dates and time
|
||
based on the PHP strtotime function
|
||
(http://www.zend.com/manual/function.strtotime.php). This allows values such as
|
||
'last Wednesday' etc to be entered. I recommend acquainting yourself with this
|
||
function to see what the allowed formats are.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The other elements you can filter on are
|
||
all fairly self explanatory except perhaps for 'Archived' which you can use to
|
||
include or exclude Archived events. In general you'll probably do most
|
||
filtering on un-archived events. Once your filter is specified, clicking
|
||
'submit' will filter the events according to your specification. If you have
|
||
created a filter you want to keep, you can name it and save it by clicking 'Save'.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>If you do this then the subsequent
|
||
dialog will also allow you specify whether you want this filter automatically
|
||
applied in order to delete events or upload events via ftp to another server
|
||
and mail notifications of events to one or more email accounts. In most cases
|
||
you can specify your preferences for upload formats and email content during
|
||
configuration time (make sure you type '?' to get help on options). Emails and
|
||
messages (essentially small emails intended for mobile phones or pagers) have a
|
||
variety of tokens that can be substituted for various details of the event that
|
||
caused them. This includes links to the event view or the filter as well as the
|
||
option of attaching images or videos to the email itself. See the included
|
||
templates zmconfig_eml.txt and zmconfig_msg.txt for a fuller explanation of the
|
||
availability and meaning of these tokens.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Filtering is a powerful mechanism you
|
||
can use to eliminate events that fit a certain pattern however in many cases
|
||
modifying the zone settings will better address this. Where it really comes
|
||
into its own is generally in applying time filters, so for instance events that
|
||
happen during weekdays or at certain times of the day are highlighted, uploaded
|
||
or deleted.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.5.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Viewing Events</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>From the monitor or filtered events
|
||
listing you can now click on an event to view it in more detail. If you have
|
||
streaming capability you will see a series of images that make up the event.
|
||
You will also see a link to allow you to view the still images themselves. If
|
||
you don't have streaming then you will be taken directly to this page. The
|
||
images themselves are thumbnail size and depending on the configuration and
|
||
bandwidth you have chosen will either be the full images scaled in your browser
|
||
of actual scaled images. If it is the latter, if you have low bandwidth for
|
||
example, it may take a few seconds to generate the images. If thumbnail images
|
||
are required to be generated, they will be kept and not re-generated in future.
|
||
Once the images appear you can mouse over them to get the image sequence number
|
||
and the image score.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>You will notice for the first time that
|
||
alarm images now contain an overlay outlining the blobs that represent the
|
||
alarmed area. This outline is in the colour defined for that zone and lets you
|
||
see what it was that caused the alarm. Clicking on one of the thumbnails will
|
||
take you to a full size window where you can see the image in all its detail
|
||
and scroll through the various images that make up the event. If you have the
|
||
ZM_RECORD_EVENT_STATS option on, you will be able to click the 'Stats' link
|
||
here and get some analysis of the cause of the event. Should you determine that
|
||
you don't wish to keep the event, clicking on Delete will erase it from the
|
||
database and file system. Returning to the event window, other options here are
|
||
renaming the event to something more meaningful, refreshing the window to
|
||
replay the event stream, deleting the event, switching between streamed and
|
||
still versions of the event (if supported) and generating an MPEG video of the
|
||
event (if supported).</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>These last two options require further
|
||
explanation. Archiving an event means that it is kept to one side and not
|
||
displayed in the normal event listings unless you specifically ask to view the
|
||
archived events. This is useful for keeping events that you think may be
|
||
important or just wish to protect. Once an event is archived it can be deleted
|
||
or unarchived but you cannot accidentally delete it when viewing normal
|
||
unarchived events.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The final option of generating an MPEG
|
||
video is still somewhat experimental and it's usefulness may vary. It can use
|
||
either the Berkeley MPEG encoder or the faster and new ffmpeg encoder. Either
|
||
of these will generate a short video, which will be downloaded to your browsing
|
||
machine to view. Due to the relatively slow frame rate that ZoneMinder will
|
||
capture at and the high minimum frame rate that the Berkeley encoder uses
|
||
videos created by this method will be very quick. However when using the ffmpeg
|
||
encoder, ZoneMinder will attempt to match the duration of the video with the
|
||
duration of the event. This has the useful effect of making the video watchable
|
||
and not too quick while having the unfortunate side effect of increasing file
|
||
size and generation time. Ffmpeg in particular has a particularly rich set of
|
||
options and you can specify during configuration which additional options you
|
||
may wish to include to suit your preferences.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Building an MPEG video, especially for a
|
||
large event, can take some time and should not be undertaken lightly as the
|
||
effect on your host box of many CPU intensive encoders will not be good.
|
||
However once a video has been created for an event it will be kept so
|
||
subsequent viewing will not incur the generation overhead. I will be the first
|
||
to admit that this area of the package is not particularly well implemented and
|
||
needs work, and probably a better encoder. Videos can also be included in
|
||
notification emails however care should be taken when using this option as for
|
||
many frequent events the penalty in CPU and disk space can quickly mount up.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>That pretty much is it for the tour. You
|
||
should experiment with the various setting to get the results you think are
|
||
right for your. Naturally letting thousands of events build up is not good for
|
||
the database or your file system so you should endeavour to either prevent
|
||
spurious events from being generated in the first place or ensure that you
|
||
housekeep them strictly.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Have fun, please report any bugs or
|
||
features you'd like to see and hopefully ZoneMinder can be your camera
|
||
monitoring friend!</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Philip Coombes (philip.coombes@zoneminder.com)
|
||
- April 2003</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>6.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Troubleshooting<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Life eh? Nothing ever works first time
|
||
does it? In case you are having problems here are some things to try. If these
|
||
don't work then feel free to get in touch and I'll see if I can suggest something
|
||
else. The best places to look for errors are in your system error log (probably
|
||
/var/log/messages on RedHat) and your web server log
|
||
(/var/log/httpd/error_log). There should be something in one of those that
|
||
gives you some kind of tip off.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Some things to check.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l8 level1 lfo27;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Device configuration. If you can't get
|
||
your cameras to work in ZoneMinder, firstly make sure that you have the correct
|
||
settings. Use xawtv or something like that to check for settings that work and
|
||
then run zmu -d <device_no> -q -v to get the settings. If you can't get
|
||
them to work with that then the likelihood is they won't work with ZoneMinder.
|
||
Also check the system logs (usually /var/log/messages) for any video
|
||
configuration errors. If you get some and you're sure they're not a problem then
|
||
switch off ZM_STRICT_VIDEO_CONFIG in zmconfig.pl and recompile and reinstall.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l8 level1 lfo27;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Start simple. Begin with a single
|
||
monitor and single zone. You can run the zmc capture daemon from the command
|
||
line as 'zmc --device 0' (or whatever your video device is). If it returns
|
||
immediately there's a problem so check the logs, if it stays up then your video
|
||
configuration is probably ok. To get more information out of it use debug as
|
||
specified below. Also check that the shared memory segment has been created by
|
||
doing 'ipcs -m'. Finally, beware of doing tests as root and then trying to run
|
||
as another user as some files may not be accessible. If you're checking things
|
||
as root make sure that you clean up afterwards!</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l8 level1 lfo27;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Web server. Ensure that your web
|
||
server can serve PHP files. It's also possible that your php.ini file may have
|
||
some settings which break ZoneMinder, I'm not a PHP guru but setting safe mode
|
||
may prevent your PHP files from running certain programs. You may have to set
|
||
configuration to allow this. Also since the daemons are started by your web
|
||
server, if it dies or is shut down then the daemons may disappear. In this
|
||
version the daemons are run under the control of a script which should trap
|
||
expected signals but it is possible this doesn't cover all circumstances.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l8 level1 lfo27;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>One of the more common errors you can
|
||
see in the log files is of the form 'Can't shmget: Invalid argument'. Generally
|
||
speaking this is caused by an attempt to allocate an amount of shared memory
|
||
greater than your system can handle. The size it requests is base on the
|
||
following formula, ring buffer size x image width x image height x 3 (for 24
|
||
bits images) + a bit of overhead. So if for instance you were using 24bit
|
||
640x480 then this would come to about 92Mb if you are using the default buffer
|
||
size of 100. If this is too large then you can either reduce the image or
|
||
buffer sizes or increase the maximum amount of shared memory available. If you
|
||
are using RedHat then you can get details on how to change these settings at</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l8 level1 lfo27;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>http://www.redhat.com/docs/manuals/database/RHDB-2.1-Manual/admin_user/kernel-resources.html</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l8 level1 lfo27;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>You should be able to use a similar
|
||
process with other distributions to modify the shared memory pool without
|
||
kernel recompilations though in some cases this may be necessary. Note, this
|
||
error also sometime occurs if you have an old shared memory segment lying
|
||
around from a previous run that is too small. Use the ipcs and ipcrm commands
|
||
to check and remove it if necessary.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l8 level1 lfo27;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>If you get odd javascript errors and
|
||
your web console or other screens come up with bits missing then it's possible
|
||
that there is a problem with the PHP configuration. Since version 0.9.8
|
||
ZoneMinder has used short PHP open tags to output information, so instead of
|
||
something like this '<?php echo $value ?>', it will be something like
|
||
this '<?= $value ?>' which is easier and quicker to write as well as
|
||
being neater. More information about this directive can be seen at the
|
||
following location, <a
|
||
href="http://www.php.net/manual/en/configuration.directives.php#ini.short-open-tag">http://www.php.net/manual/en/configuration.directives.php#ini.short-open-tag</a>.
|
||
However although by default most PHP installations support this form, some will
|
||
need to have it switched on explicitly. To do this you will first need to find
|
||
your php.ini file (do a 'locate php.ini' or 'find / -name php.ini'. Be aware
|
||
however that sometimes you might find more than one, so ensure you identify the
|
||
one that is actually being used. You will then need to find the line that
|
||
starts 'short_open_tag = ' and change the Off value to On. This wil correct the
|
||
problem. However in some cases you may have explicitly switched it off, so that
|
||
XML compliant documents can be more easily served, or you may even not have
|
||
permission to edit the file. In this case you can go into the web directory of
|
||
ZoneMinder and run 'sh retag.sh' which will replace all the short open tags in
|
||
the files themselves with the longer variant. You will obviously have to
|
||
remember to do this for each subsequent version of ZoneMinder that you install
|
||
as well.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l8 level1 lfo27;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Use debug. ZoneMinder has various
|
||
debug in it that by default will go into your system log (via syslog). These
|
||
will be of the form of</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><span lang=EN-GB>"Sep 14
|
||
14:50:11 localhost zma-0[1975]: INF [Front: 221000 - Processing at 4.26 fps
|
||
]"</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><span lang=EN-GB>where the
|
||
zma-0 part identifies the daemon and the device it is running on. Entries with
|
||
INF in are informational and not an error, if you see ERR then it is one,
|
||
though not all are fatal. You can prevent this information from being emitted
|
||
by setting the DLVL_zmc environment variable to -1 or less once things are
|
||
working. If you want to run any of the daemons from the command line to test,
|
||
setting DBG_PRINT to 1 will output the debug on the console and setting
|
||
DLVL_zmc (or DLVL_zma etc) to a number between 0 and 9 will emit progressively
|
||
more debug though there's not a lot in there at present.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l8 level1 lfo27;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>6. Paths. I admit it, the various
|
||
paths in ZoneMinder are a bit of a nightmare. Make sure that they are all
|
||
correct and that permissions are such that the various parts of ZoneMinder can
|
||
actually run.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l8 level1 lfo27;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New";mso-bidi-font-style:italic'>o<span
|
||
style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Missing perl modules. There are
|
||
various perl modules used by the various scripts. If you get errors about
|
||
missing ones, the easiest way to install them is to type the following (you
|
||
will probably need to be root),<i><o:p></o:p></i></span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><i><span lang=EN-GB>perl
|
||
-MCPAN -eshell<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><span lang=EN-GB>this will then
|
||
(eventually, after some configuration if it<69>s your first time) present you with
|
||
a prompt. From there you can type install module, e.g. Term::ReadKey and the
|
||
rest should be more or less automatic as it will chase any dependencies for
|
||
you. There may be some initial configuration questions it might ask you on
|
||
startup if you've never run it before and to speed things up I would not
|
||
install a new Bundle at this point (it can end up building you a whole new perl
|
||
if you<6F>re not careful) if it asks you but everything else should be quite
|
||
straightforward.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l21 level1 lfo29;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Unsupported palettes. ZoneMinder
|
||
currently is designed to use the simple palettes of greyscale and 24 bit as
|
||
well as now the YUV420P palette. This should cover most cameras but it's
|
||
possible that there are ones out there that might want to use more esoteric
|
||
formats that ZoneMinder doesn<73>t support. This will often show up as the capture
|
||
daemon being unable to set picture attributes. If this occurs try using
|
||
different palettes starting with greyscale and if you can't get anything to
|
||
work let me know and I'll try and add it.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l21 level1 lfo29;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>USB bus problems. If you have multiple
|
||
USB cameras on one bus then it can appear as if ZoneMinder is causing your
|
||
cameras to fail. This is because the bandwidth available to cameras is limited
|
||
by the fairly low USB speed. In order to use more than one USB camera with
|
||
ZoneMinder (or any application) you will need to inform the driver that there
|
||
are other cameras requiring bandwidth. This is usually done with a simple
|
||
module option. Examples are usb_alt=<n> for the OV511 driver and
|
||
cams=<n> for CPIA etc. Check your driver documentation for more details.
|
||
Be aware however that sharing cameras in this way on one bus will also limit
|
||
the capture rate due to the reduced bandwidth.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Also, if you are using IE under Windows
|
||
and get lots of annoying clicks when various windows refresh then you'll need
|
||
to edit your registry and remove the value for
|
||
HKEY_CURRENT_USER\AppEvents\Schemes\Apps\Explorer\Navigating\.current or
|
||
download the registry script to do it for you from
|
||
http://www.zoneminder.com/downloads/noIEClick.reg</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Change Log<o:p></o:p></span></u></h1>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.1.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.11</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Various new features and fixes.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added stats view <20> If you have the
|
||
RECORD_EVENT_STATS directive set and are viewing a still image from an event
|
||
you can now view the statistics recorded for that frame. This tells you why
|
||
that frame triggered or participated in an alarm. This can be useful in tuning
|
||
the various motion detection parameters and seeing why events occurred.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Tabulated events <20> The main events
|
||
view is now tabulated to look a bit nicer.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>New video palette support <20> As well as
|
||
the existing greyscale and 24 bit RGB palettes, you can now choose YUV420P and
|
||
RGB565. Rewrote the palette/colours area a bit to enable support for other
|
||
palettes in the future if requested. Bear in mind though that YUV palettes are
|
||
converted into RGB internally so if you have the choice RGB24 may be faster as
|
||
it's the 'native' format used within. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added preclusive zones <20> Added a new
|
||
zone type, the preclusive zone. For full details see the relevant section above
|
||
but in brief this is a zone type that if alarmed will actually prevent an
|
||
alarm. This completes the pantheon of zone types I think.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed Mozilla JavaScript <20> Various
|
||
JavaScript functionality did not function on Mozilla, Netscape and other
|
||
browsers. This is now (hopefully) fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Allow image and mpegs to be attached
|
||
to emails <20> Added new tokens (%EI1%, %EIM% and %EV%) to the filter emails. This
|
||
allows the first alarm image, most highly scored alarm image and an alarm MPEG
|
||
to be attached to alarm notification emails. Use %EV% especially with care!</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed possible motion detection bug <20>
|
||
I found a few double declared local variables left over from the rewrite. This
|
||
may have affected the motion detection algorithm. Fixed now anyway.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Modified scoring <20> Alarm scoring has
|
||
been modified to give more granularity for smaller events. This will have the
|
||
effect of raising the scores for small events while large ones will still be
|
||
about the same.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed /cgi-bin path problem <20>
|
||
Previously you could specify the real path to you cgi-bin directory if you have
|
||
one but not the web path. You can now do both.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Improved video handling in browser <20>
|
||
The MPEG/video area of the web GUI had been a bit neglected and looked somewhat
|
||
ugly. This has now been improved to a degree and looks a bit nicer.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added ffmpeg support <20> Historically
|
||
ZoneMinder has only supported the Berkeley mpeg encoder which was slow and
|
||
rather limited. ZoneMinder now supports the ffmpeg encoder as well which is
|
||
much much faster and makes generation of MPEG videos at realistic frame rates more
|
||
of a reality. As ffmpeg has so many options and everyone will probably want a
|
||
different emphasis you can now also specify additional ffmpeg options via
|
||
zmconfig.pl.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Colourise greyscale image files <20> In
|
||
past versions, captured greyscale images were stored as JPEG files with a
|
||
corresponding greyscale colourspace. This saved a small amount of space but
|
||
meant that mpeg_encode had to do a conversion to encode them, and ffmpeg just
|
||
fell in a heap. Now you can optionally opt to have greyscale images saved as full
|
||
24 bit colourspace images (they still look the same) at the price of a small
|
||
penalty in CPU and disk but allowing you to easily and quickly create MPEG
|
||
files. This option is one by default but can be switched off if you do not
|
||
require any MPEG encoding.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fast RGB diffs <20> Previously ZoneMinder
|
||
used quite a loose method for calculating the differences between two colour
|
||
images. This was basically averaging the differences between each of the RGB
|
||
components to get an overall difference. This is still the default but by
|
||
setting ZM_FAST_RGB_DIFFS to 'no' you can now make it calculate the Y (or
|
||
brightness value) of the pixels and use the difference between those instead.
|
||
This will be more accurate and responsive to changes but is may be slower
|
||
especially on old machines. There is a slight double whammy here if you have a
|
||
YUV palette for capture and set this option off as the image will be converted
|
||
to RGB and then partially converted back to get the Y value. This is currently
|
||
very inefficient and needs to be optimised.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed STRICT_VIDEO_CONFIG <20> Previously
|
||
this actually behaved the opposite of what it was supposed to, ie. if you
|
||
wanted it strict it wasn't and vice versa. Thanks to Dan Merillat for pointing
|
||
this one out.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo25;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Web colour change <20> I thought the old
|
||
red, green and amber text colours were just a bit too gaudy so I've toned them
|
||
down a bit. Hope you like them!</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.2.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.10</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Many bug-fixes and major feature
|
||
enhancements.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Configure <20>round<6E> bug - Fixed a
|
||
problem with the configure script that didn't<span style="mso-spacerun: yes"><EFBFBD>
|
||
</span>detect if the 'round' function was already declared before try to do it
|
||
itself.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Low event id bug - Fixed bug where
|
||
events with an id of < 1000 were being cleaned up by zmaudit.pl by mistake.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Source file restructuring - The source
|
||
files have been broken up and renamed extensively to support the first stage of
|
||
the code being straightened out. Likewise the class structure has been
|
||
rationalised somewhat. The php file names have also changed in some cases so it
|
||
might be best to delete all your php and css files from the zone minder install
|
||
directory first as the old ones won't be overwritten and will be left behind.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Streamed cycle view -<span
|
||
style="mso-spacerun: yes"><EFBFBD> </span>The monitor cycle view (the one where each
|
||
monitor is displayed sequentially) now supports streams as well as stills.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>New <20>montage<67> view - Added a montage
|
||
view showing all your cameras simultaneously either streaming or stills. The
|
||
width of this window (in terms of number of monitors) is a configuration
|
||
option.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Network camera support - A major
|
||
change in this version is support for remote or network cameras. This is
|
||
currently implemented as series of http grabs of stills rather than being able
|
||
to break up motion jpeg streams. However frame rates of from 2-10 should be
|
||
achievable depending on your network proximity to the cameras.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Option BGR->RGB swap - Added the
|
||
option to switch on or off the inversion of RGB to BGR for local cameras. It is
|
||
on by default to maintain compatibility with previous releases.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>zmu suspend alarm option - Added new
|
||
-n option to zmu to effectively suspend alarm detection for a monitor. This is
|
||
intended for short term use and to support PTZ cameras where alarm detection is
|
||
desired to be suspended while the camera changes orientation or zoom level.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>FPS limiting - Added a new option to
|
||
monitors to add a maximum capture rate. This allows you to limit the amount of
|
||
hits a network camera gets or to reduce the system load with many cameras. It
|
||
also works with multi-port cards and limiting the capture rate on one camera
|
||
allows the spare FPS to be allocated to other devices. For instance with two
|
||
cameras and no throttle, I get about 4FPS each. Throttling one to 2FPS allows
|
||
the other to operate at 6FPS so you can allocate your capture resources
|
||
accordingly. This limiting can be disabled while alarms are occurring as a
|
||
global option in zmconfig.pl.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Alarm reference update - Added option
|
||
to not blend alarmed images into the reference image. See the help in
|
||
zmconfig.pl for caveats.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Disappearing monitors - Fixed the
|
||
disappearing monitor problem in the console view where monitors with no events
|
||
were randomly not being shown.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Clean and tidy - Cleaned up a load of
|
||
compiler warnings and miscellanea to ensure a cleaner happier build.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Streamed image headers - Made all
|
||
headers in streamed images have full CRLF termination which will hopefully now
|
||
prevent the problems with broken streams that had existed mostly with Mozilla
|
||
(and hopefully won't break anything else).</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Expire streams - Added expiry headers
|
||
to streamed images so they will always display fully.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Event navigation - Added next, prev,
|
||
delete & next, delete & prev navigation to events to allow you to
|
||
quickly review events in sequence as had been requested by a number of people.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>USR blocking <20> The debug USR signals
|
||
were not being blocked properly leading to nasty effects in zmc mostly.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>zmfilter execution <20> Previously
|
||
zmfilter execution was not synchronised with the monitor state or the analysis
|
||
daemon leading to it sometimes being run unnecessarily. From now on the
|
||
zmfilter process will only run when a monitor is active and so actually
|
||
potentially generating alarms.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>zmdc short statuses <20> Removed the
|
||
logging of the short status values that zmdc.pl returns to it<69>s clients which had
|
||
been clogging up the log file.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l13 level1 lfo23;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Bugs and pieces - Fixed various
|
||
bug(ettes) that I came across that that I don't think had been reported or
|
||
noticed so I don<6F>t think we need to talk about them here do we.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.3.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.9</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Mainly bug-fixes and minor feature
|
||
enhancements.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l26 level1 lfo21;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added zmu -q/--query option - There is
|
||
now a new query option for zmu. When combined with -d it gives the config of
|
||
the device and when used with -m it dumps the current settings for the monitor
|
||
and zones. Mostly useful for bug reporting. The previous version of zmu used
|
||
with just -d gave this information for a video device by default. This now
|
||
requires the -q option also to bring into line with it's -m equivalent.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l26 level1 lfo21;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added creation of events directory -
|
||
Previously the 'events' directory was not created on install, this has been
|
||
fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l26 level1 lfo21;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Can now retag PHP files if necessary -
|
||
Version 0.9.8 was the first version to use short_open_tags in the PHP files.
|
||
This caused grief to some people so this script will put them back to the long
|
||
verion.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l26 level1 lfo21;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Frame and event lengths fractional - A
|
||
new field has been added to the Frames table. This is 'Delta' and is a
|
||
fractional number of seconds relative to the event start time. This is intended
|
||
to support the real-time playback of events rather than just 'as fast as
|
||
possible' or with a configured delay as at present. The event length is now
|
||
also fractional.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l26 level1 lfo21;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Corrected extraneous Width to be
|
||
Height - The last version of zmu included a Width comment which should have
|
||
been height.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l26 level1 lfo21;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Changed colour depth to bits - Having
|
||
colour depths expressed in bytes has caused no end of problems. This is now
|
||
changed to be bits and can be changed via a dropdown to limit what can be
|
||
entered. Don't forget to run the zmalter script to update your DB.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l26 level1 lfo21;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Renamed terminate to zm_terminate -
|
||
The use of 'terminate' in zmc.cpp caused a conflict on some systems so renamed
|
||
it to something more specific.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l26 level1 lfo21;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Zone deletion problem - A problem was
|
||
found such that when deleting zones the appropriate daemons were not being
|
||
asked to restart daemons correctly.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l26 level1 lfo21;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Console changes - The current version
|
||
number is now displayed in the console. A refresh button has also been added
|
||
along with a minor reorg.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l26 level1 lfo21;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added delete button enable to checkAll
|
||
- Using the 'Check All' button in the main monitor window previously did not
|
||
enable the delete button. This is now fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l26 level1 lfo21;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Reload on click - In previous versions
|
||
the console window would reload if a monitor window for example was clicked.
|
||
Thsi was removed in the last version which meant that sometimes the console
|
||
never go refreshed as it's timing loop was broken. This functionality has now
|
||
been reinstated.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.4.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.8</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Several new features and bug-fixes</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Upgrade note - If you have installed
|
||
0.9.7 and wish to save your configuration then copy your existing zmconfig.txt
|
||
file over to your 0.9.8 directory and before running zmconfig.pl.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added multiple options to zmu - You
|
||
can now give multiple options to zmu and get all the responses at once. However
|
||
this is currently in a deterministic order and not related to the order you
|
||
give them.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added -v/--verbose option to zmu - Zmu
|
||
has been made more human friendly though it still remains primarily for daemon
|
||
use. Giving the -v or --verbose option prints out a bit more as a response to
|
||
each command.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Add -d/--device to zmu - This option
|
||
is designed to allow you to get your video device working with another
|
||
application such as xawtv and then use zmu -d to print out the settings it<69>s
|
||
using</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>(especially with the -v option). These
|
||
options can then be used as a starting point for your ZoneMinder configuration.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added FPS in status field - The status
|
||
field in the web monitor views now contains an FPS setting as well as the
|
||
status.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Zmconfig changes - zmconfig handles
|
||
missing options better and rewrites config file even in non-interactive mode.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed config problems in zmcfg.h -
|
||
Some config was not being set up correctly in zmcfg.h.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Zmwatch now works on image delay and
|
||
not fps - Previously the zmwatch daemon detected capture daemon failure by
|
||
trying to use the FPS setting. This was imprecise and prone to false readings.
|
||
It now uses the time delay since the last captured image.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added zmpkg.pl and zm scripts - There
|
||
are now two new scripts. zmpkg.pl is in charge of starting and stopping
|
||
ZoneMinder as a whole package and zm is designed to be (optionally) installed
|
||
into your init.d directory to use ZoneMinder as a service.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed bug in Scan mode - The monitor
|
||
cycle or scan mode had stopped working properly due to images not being
|
||
generated. This is now fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Revamped the console window slightly -
|
||
The console window has now been reformatted slightly to give more and better
|
||
information including server load.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added email and messaging to filters -
|
||
Filters now allow you to send emails or messages (basically just short emails
|
||
intended for mobile devices) on alarms. The format and possible content for
|
||
these emails is in zmconfig_eml.txt and zmconfig_msg.txt.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Made zmdc more aggresive in killing old
|
||
processes - The zmdc.pl daeamon will now kill any ZoneMinder processes it finds
|
||
on startup or shutdown to prevent orphans from being left around.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Configuration changes - Previously
|
||
there were a lot of files generated by configure. Now only zmconfig.pl is
|
||
generated this way and all the other configuration files are created by
|
||
zmconfig.pl (from .z files) to centralise configuration more.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed cambolzola opt bug - There was a
|
||
bug in the Cambozola options, I can't remember what it was but it's fixed!</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Retaint arguments in zmdc.pl - In some
|
||
installations zmdc was complaining about tainted arguments from the socket.
|
||
These are now detainted prior to sending and after receiving.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Forced alarms - You can now force
|
||
alarms when looking at the monitor window should anything catch your attention.
|
||
You have to remember to switch them off as well though.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Looser video configuration - Some
|
||
video configuration errors can now be ignored via the STRICT_VIDEO_CONFIG
|
||
option.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo19;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Monitor window refresh on alarm - When
|
||
the monitor window is active and an alarm has occurred the most recent alarms
|
||
list is immediately refreshed to show it.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.5.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.7</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Yes, a big jump in release number but a
|
||
lot of changes too. Now somewhat more mature, not really an alpha any more, and
|
||
a lot of bugs fixed too. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added zmconfig.pl script to help with
|
||
configuration.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Revamped to work better with configure
|
||
scripts</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Monitors now have more configuration
|
||
options, including some that were statically defined before such as location
|
||
and format of the image timestamps.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Removed Alarms table from schema as
|
||
not required, never was actually...</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added a number of new scripts, see the
|
||
scripts directory</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added Fast delete to PHP files. This
|
||
allows the web interface to only delete the event entries themselves for speed
|
||
and then have the zmaudit script periodically tidy up the rest.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added event filter to enable bulk
|
||
viewing, upload or deletion of events according to various attributes. Filter
|
||
can be saved and edited.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added last event id to shared memory
|
||
for auto-filtering etc.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Changed zmu -i option to write to
|
||
monitor named image file.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Made shared memory management somewhat
|
||
more sensible.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Now stores DB times as localtime
|
||
rather than UTC avoiding daylight saving related bugs.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed bug with inactive zones and
|
||
added more debug.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Changed main functions to return int.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added help and usage to zmu.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed browser acceptance problem, more
|
||
easily defaults to HTML.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Split out the PHP files into a bunch
|
||
with specific functions rather than one monolithic one.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed NetPBM paths and changed _SERVER
|
||
to HTTP_SERVER_VARS.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added HUP signal on zone deletion.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added NETPBM_DIR and conditional
|
||
netpbm stuff.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Removed hard coded window sizes, all
|
||
popup window dimensions can be specified in zmconfig.php</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Changed form methods to 'get' from
|
||
'post' to avoid resubmit warnings all the time.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added conditional sound to alarm on
|
||
web interface.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed syntax error when adding default
|
||
monitor.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Some of the web views have changed
|
||
slightly to accommodate the separate events view.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo17;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>And much much more, probably...</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.6.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.0.1</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Initial release, therefore nothing new.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>8.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>To Do<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Seeing as ZoneMinder is so young and has
|
||
kind of evolved rather than being planned there are a bunch of improvements and
|
||
enhancements still to do, here is just a sample.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Perhaps split out devices - I think
|
||
devices should probably be a separate table and class from monitors. Not
|
||
critical but would represent a better model.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Comments - Needs many more, but that's
|
||
just me I'm hopeless at commenting things out. I'll get round to it soon though
|
||
honest! You're lucky to even get this document.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Optimised zones - The zones could do
|
||
with being sorted out a bit to optimise the processing of overlapping ones, at
|
||
the moment you can waste resource unless your zones are kept very tidy.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Create zones using server side image
|
||
maps - This would make it easier to precisely define and see where your zone is
|
||
going to go. Not critical but handy but a bugger to do.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Zone Definitions - Allow zones to be
|
||
defined according to a colour coded bitmap or as polygons. Currently all zones
|
||
are rectangular this would add a bit of flexibility. Would need a bit of a
|
||
rewrite though. This will incur a slight penalty on startup and a very slight
|
||
one on processing for all reasonably shaped zones.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Security - I think I need to give the
|
||
php file a bit of a good going over as I'm sure it's not done in the most
|
||
secure way regarding passing things onto command line, exposing file paths and
|
||
other stuff. I'm a bit of a PHP novice, as I'm sure you can tell so might need
|
||
help here. I should have done it in perl!</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Mouseover help - A bit more help popping
|
||
up when you mouseover things would be handy. A bit more help full stop
|
||
actually.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>WAP interface - A bit of a crusade of
|
||
mine I'm afraid. I'd like to put a WML interface on to allow you to view event
|
||
listing and perhaps the most significant image from each event on your phone.
|
||
Also simple management. From version 0.9.7 there is a very basic crude initial
|
||
version that probably won't work with your phone but its there as a testbed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Automatic device configuration - Video
|
||
4 Linux supports various device queries, it should be possible to get most of
|
||
the device capability information from the device itself. The zmu utility does
|
||
this now but it's not yet integrated into the web pages.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Extend the API. Well ok it's not
|
||
really got an API yet but the image data is held in shared memory in a very
|
||
simple format. In theory you could use the capture daemon to gab the images and
|
||
other things could read them from memory or the analysis daemon could read
|
||
images from elsewhere. Either way this should be done through an API, and would
|
||
need a library I think. Also the zmu utility could probably do a whole lot more
|
||
to enable other things to manage when the daemons become active etc.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Access control should probably be
|
||
built in rather than relying on .htaccess etc. This is a frequently requested
|
||
feature (FRF) and must be done soon.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Create .rpm packages (as there can be
|
||
several dependencies) and maybe other types of packages also, e.g. for Debian
|
||
distributions.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Allow ZoneMinder to 'train' itself by
|
||
allowing the user to select events that are considered important and to discard
|
||
those that should be ignored. ZoneMinder will interpolate, add a bit of magic,
|
||
and recommend settings that will support this selection automatically
|
||
thereafter. The hooks for this are already in to some extent.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Add quotes to all PHP array
|
||
references. I should have done it in the first place but I'm a perl person
|
||
really and it kind of bugs me that you have to.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo15;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Add sound support to allow a captured
|
||
audio channel to be associated with a video device.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>9.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Bugs<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l22 level1 lfo13;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>I'm not sure if this is a bug or by
|
||
design but the timestamp is added to the image by the capture daemon. I _think_
|
||
this isn't necessary as it may contribute to alarms, plus the time is
|
||
associated with the image anyway. So I think this should be moved to the
|
||
analysis daemon.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l22 level1 lfo13;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>I suspect there may be a bug in
|
||
zmaudit.pl if your monitor names have spaces in them. I've not been able to
|
||
reproduce it but to be on the safe side don't put spaces in your Monitor names.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l22 level1 lfo13;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>When opening a link to an event etc
|
||
from a notification email the window that is opened is just a regular browser
|
||
window and not in the context of a proper ZoneMinder web interface. Thus it
|
||
comes up too big usually (not a major issue) and also things like 'Delete'
|
||
don't work as it wants to do things to its parent (which is more of a major
|
||
issue).</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l22 level1 lfo13;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>The .sock files used by the *nix
|
||
sockets I suspect may have the odd permission issue now and again. I think
|
||
everything recovers from it but it needs checking out.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Probably bucket loads more, just fire
|
||
them at me.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>10.<span style='font:7.0pt "Times New Roman"'> </span></span><![endif]><u><span
|
||
lang=EN-GB>Non-Bugs<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l0 level1 lfo12;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Yes, those are tabs in the indents; I
|
||
like tabs so don't go changing them to spaces or else. Also yes I also like my
|
||
opening braces on their own line most of the time, what's the point of brackets
|
||
that don't line up?</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Everything else that isn't definitely
|
||
broken is probably deliberate, or was once anyway.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>11.<span style='font:7.0pt "Times New Roman"'> </span></span><![endif]><u><span
|
||
lang=EN-GB>License<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder is released under the GPL,
|
||
see below.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder README, $Date: 2003/03/11 16:04:54
|
||
$, $Revision$</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Copyright (C) 2003<span
|
||
style="mso-spacerun: yes"><EFBFBD> </span>Philip Coombes</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>This program is free software; you can
|
||
redistribute it and/or modify it under the terms of the GNU General Public
|
||
License as published by the Free Software Foundation; either version 2 of the License,
|
||
or (at your option) any later version.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>This program is distributed in the hope
|
||
that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.<span
|
||
style="mso-spacerun: yes"><EFBFBD> </span>See the GNU General Public License for more
|
||
details.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>You should have received a copy of the
|
||
GNU General Public License along with this program; if not, write to the Free
|
||
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA<span
|
||
style="mso-spacerun: yes"><EFBFBD> </span>02111-1307, USA.</span></p>
|
||
|
||
</div>
|
||
|
||
</body>
|
||
|
||
</html>
|