Auto-fix line endings
Showing
14 changed files
with
4497 additions
and
4497 deletions
| 1 | <?php | 1 | <?php |
| 2 | // core font definition file for TCPDF (www.tcpdf.org) | 2 | // core font definition file for TCPDF (www.tcpdf.org) |
| 3 | $type='core'; | 3 | $type='core'; |
| 4 | $dw=500; | 4 | $dw=500; |
| 5 | $cw=array(0=>250,1=>250,2=>250,3=>250,4=>250,5=>250,6=>250,7=>250,8=>250,9=>250, | 5 | $cw=array(0=>250,1=>250,2=>250,3=>250,4=>250,5=>250,6=>250,7=>250,8=>250,9=>250, |
| 6 | 10=>250,11=>250,12=>250,13=>250,14=>250,15=>250,16=>250,17=>250,18=>250,19=>250, | 6 | 10=>250,11=>250,12=>250,13=>250,14=>250,15=>250,16=>250,17=>250,18=>250,19=>250, |
| 7 | 20=>250,21=>250,22=>250,23=>250,24=>250,25=>250,26=>250,27=>250,28=>250,29=>250, | 7 | 20=>250,21=>250,22=>250,23=>250,24=>250,25=>250,26=>250,27=>250,28=>250,29=>250, |
| 8 | 30=>250,31=>250,32=>250,33=>333,34=>713,35=>500,36=>549,37=>833,38=>778,39=>439, | 8 | 30=>250,31=>250,32=>250,33=>333,34=>713,35=>500,36=>549,37=>833,38=>778,39=>439, |
| 9 | 40=>333,41=>333,42=>500,43=>549,44=>250,45=>549,46=>250,47=>278,48=>500,49=>500, | 9 | 40=>333,41=>333,42=>500,43=>549,44=>250,45=>549,46=>250,47=>278,48=>500,49=>500, |
| 10 | 50=>500,51=>500,52=>500,53=>500,54=>500,55=>500,56=>500,57=>500,58=>278,59=>278, | 10 | 50=>500,51=>500,52=>500,53=>500,54=>500,55=>500,56=>500,57=>500,58=>278,59=>278, |
| 11 | 60=>549,61=>549,62=>549,63=>444,64=>549,65=>722,66=>667,67=>722,68=>612,69=>611, | 11 | 60=>549,61=>549,62=>549,63=>444,64=>549,65=>722,66=>667,67=>722,68=>612,69=>611, |
| 12 | 70=>763,71=>603,72=>722,73=>333,74=>631,75=>722,76=>686,77=>889,78=>722,79=>722, | 12 | 70=>763,71=>603,72=>722,73=>333,74=>631,75=>722,76=>686,77=>889,78=>722,79=>722, |
| 13 | 80=>768,81=>741,82=>556,83=>592,84=>611,85=>690,86=>439,87=>768,88=>645,89=>795, | 13 | 80=>768,81=>741,82=>556,83=>592,84=>611,85=>690,86=>439,87=>768,88=>645,89=>795, |
| 14 | 90=>611,91=>333,92=>863,93=>333,94=>658,95=>500,96=>500,97=>631,98=>549,99=>549, | 14 | 90=>611,91=>333,92=>863,93=>333,94=>658,95=>500,96=>500,97=>631,98=>549,99=>549, |
| 15 | 100=>494,101=>439,102=>521,103=>411,104=>603,105=>329,106=>603,107=>549,108=>549, | 15 | 100=>494,101=>439,102=>521,103=>411,104=>603,105=>329,106=>603,107=>549,108=>549, |
| 16 | 109=>576,110=>521,111=>549,112=>549,113=>521,114=>549,115=>603,116=>439,117=>576, | 16 | 109=>576,110=>521,111=>549,112=>549,113=>521,114=>549,115=>603,116=>439,117=>576, |
| 17 | 118=>713,119=>686,120=>493,121=>686,122=>494,123=>480,124=>200,125=>480,126=>549, | 17 | 118=>713,119=>686,120=>493,121=>686,122=>494,123=>480,124=>200,125=>480,126=>549, |
| 18 | 127=>0,128=>0,129=>0,130=>0,131=>0,132=>0,133=>0,134=>0,135=>0,136=>0,137=>0, | 18 | 127=>0,128=>0,129=>0,130=>0,131=>0,132=>0,133=>0,134=>0,135=>0,136=>0,137=>0, |
| 19 | 138=>0,139=>0,140=>0,141=>0,142=>0,143=>0,144=>0,145=>0,146=>0,147=>0,148=>0, | 19 | 138=>0,139=>0,140=>0,141=>0,142=>0,143=>0,144=>0,145=>0,146=>0,147=>0,148=>0, |
| 20 | 149=>0,150=>0,151=>0,152=>0,153=>0,154=>0,155=>0,156=>0,157=>0,158=>0,159=>0, | 20 | 149=>0,150=>0,151=>0,152=>0,153=>0,154=>0,155=>0,156=>0,157=>0,158=>0,159=>0, |
| 21 | 160=>750,161=>620,162=>247,163=>549,164=>167,165=>713,166=>500,167=>753,168=>753, | 21 | 160=>750,161=>620,162=>247,163=>549,164=>167,165=>713,166=>500,167=>753,168=>753, |
| 22 | 169=>753,170=>753,171=>1042,172=>987,173=>603,174=>987,175=>603,176=>400,177=>549, | 22 | 169=>753,170=>753,171=>1042,172=>987,173=>603,174=>987,175=>603,176=>400,177=>549, |
| 23 | 178=>411,179=>549,180=>549,181=>713,182=>494,183=>460,184=>549,185=>549,186=>549, | 23 | 178=>411,179=>549,180=>549,181=>713,182=>494,183=>460,184=>549,185=>549,186=>549, |
| 24 | 187=>549,188=>1000,189=>603,190=>1000,191=>658,192=>823,193=>686,194=>795,195=>987, | 24 | 187=>549,188=>1000,189=>603,190=>1000,191=>658,192=>823,193=>686,194=>795,195=>987, |
| 25 | 196=>768,197=>768,198=>823,199=>768,200=>768,201=>713,202=>713,203=>713,204=>713, | 25 | 196=>768,197=>768,198=>823,199=>768,200=>768,201=>713,202=>713,203=>713,204=>713, |
| 26 | 205=>713,206=>713,207=>713,208=>768,209=>713,210=>790,211=>790,212=>890,213=>823, | 26 | 205=>713,206=>713,207=>713,208=>768,209=>713,210=>790,211=>790,212=>890,213=>823, |
| 27 | 214=>549,215=>250,216=>713,217=>603,218=>603,219=>1042,220=>987,221=>603,222=>987, | 27 | 214=>549,215=>250,216=>713,217=>603,218=>603,219=>1042,220=>987,221=>603,222=>987, |
| 28 | 223=>603,224=>494,225=>329,226=>790,227=>790,228=>786,229=>713,230=>384,231=>384, | 28 | 223=>603,224=>494,225=>329,226=>790,227=>790,228=>786,229=>713,230=>384,231=>384, |
| 29 | 232=>384,233=>384,234=>384,235=>384,236=>494,237=>494,238=>494,239=>494,240=>0, | 29 | 232=>384,233=>384,234=>384,235=>384,236=>494,237=>494,238=>494,239=>494,240=>0, |
| 30 | 241=>329,242=>274,243=>686,244=>686,245=>686,246=>384,247=>384,248=>384,249=>384, | 30 | 241=>329,242=>274,243=>686,244=>686,245=>686,246=>384,247=>384,248=>384,249=>384, |
| 31 | 250=>384,251=>384,252=>494,253=>494,254=>494,255=>0); | 31 | 250=>384,251=>384,252=>494,253=>494,254=>494,255=>0); |
| 32 | // --- EOF --- | 32 | // --- EOF --- | ... | ... |
| 1 | <?php | 1 | <?php |
| 2 | //============================================================+ | 2 | //============================================================+ |
| 3 | // File name : makeallttffonts.php | 3 | // File name : makeallttffonts.php |
| 4 | // Begin : 2008-12-07 | 4 | // Begin : 2008-12-07 |
| 5 | // Last Update : 2010-08-08 | 5 | // Last Update : 2010-08-08 |
| 6 | // | 6 | // |
| 7 | // Description : Process all TTF files on current directory to | 7 | // Description : Process all TTF files on current directory to |
| 8 | // build TCPDF compatible font files. | 8 | // build TCPDF compatible font files. |
| 9 | // | 9 | // |
| 10 | // Author: Nicola Asuni | 10 | // Author: Nicola Asuni |
| 11 | // | 11 | // |
| 12 | // (c) Copyright: | 12 | // (c) Copyright: |
| 13 | // Nicola Asuni | 13 | // Nicola Asuni |
| 14 | // Tecnick.com S.r.l. | 14 | // Tecnick.com S.r.l. |
| 15 | // Via della Pace, 11 | 15 | // Via della Pace, 11 |
| 16 | // 09044 Quartucciu (CA) | 16 | // 09044 Quartucciu (CA) |
| 17 | // ITALY | 17 | // ITALY |
| 18 | // www.tecnick.com | 18 | // www.tecnick.com |
| 19 | // info@tecnick.com | 19 | // info@tecnick.com |
| 20 | // | 20 | // |
| 21 | // License: | 21 | // License: |
| 22 | // Copyright (C) 2004-2010 Nicola Asuni - Tecnick.com S.r.l. | 22 | // Copyright (C) 2004-2010 Nicola Asuni - Tecnick.com S.r.l. |
| 23 | // | 23 | // |
| 24 | // This file is part of TCPDF software library. | 24 | // This file is part of TCPDF software library. |
| 25 | // | 25 | // |
| 26 | // TCPDF is free software: you can redistribute it and/or modify it | 26 | // TCPDF is free software: you can redistribute it and/or modify it |
| 27 | // under the terms of the GNU Lesser General Public License as | 27 | // under the terms of the GNU Lesser General Public License as |
| 28 | // published by the Free Software Foundation, either version 3 of the | 28 | // published by the Free Software Foundation, either version 3 of the |
| 29 | // License, or (at your option) any later version. | 29 | // License, or (at your option) any later version. |
| 30 | // | 30 | // |
| 31 | // TCPDF is distributed in the hope that it will be useful, but | 31 | // TCPDF is distributed in the hope that it will be useful, but |
| 32 | // WITHOUT ANY WARRANTY; without even the implied warranty of | 32 | // WITHOUT ANY WARRANTY; without even the implied warranty of |
| 33 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 33 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| 34 | // See the GNU Lesser General Public License for more details. | 34 | // See the GNU Lesser General Public License for more details. |
| 35 | // | 35 | // |
| 36 | // You should have received a copy of the GNU Lesser General Public License | 36 | // You should have received a copy of the GNU Lesser General Public License |
| 37 | // along with TCPDF. If not, see <http://www.gnu.org/licenses/>. | 37 | // along with TCPDF. If not, see <http://www.gnu.org/licenses/>. |
| 38 | // | 38 | // |
| 39 | // See LICENSE.TXT file for more information. | 39 | // See LICENSE.TXT file for more information. |
| 40 | //============================================================+ | 40 | //============================================================+ |
| 41 | 41 | ||
| 42 | /** | 42 | /** |
| 43 | * Process all TTF files on current directory to build TCPDF compatible font files. | 43 | * Process all TTF files on current directory to build TCPDF compatible font files. |
| 44 | * @package com.tecnick.tcpdf | 44 | * @package com.tecnick.tcpdf |
| 45 | * @author Nicola Asuni | 45 | * @author Nicola Asuni |
| 46 | * @copyright Copyright © 2004-2009, Nicola Asuni - Tecnick.com S.r.l. - ITALY - www.tecnick.com - info@tecnick.com | 46 | * @copyright Copyright © 2004-2009, Nicola Asuni - Tecnick.com S.r.l. - ITALY - www.tecnick.com - info@tecnick.com |
| 47 | * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License | 47 | * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License |
| 48 | * @link www.tecnick.com | 48 | * @link www.tecnick.com |
| 49 | * @since 2008-12-07 | 49 | * @since 2008-12-07 |
| 50 | */ | 50 | */ |
| 51 | 51 | ||
| 52 | /** | 52 | /** |
| 53 | */ | 53 | */ |
| 54 | 54 | ||
| 55 | // read directory for files (only graphics files). | 55 | // read directory for files (only graphics files). |
| 56 | $handle = opendir('.'); | 56 | $handle = opendir('.'); |
| 57 | while($file = readdir($handle)) { | 57 | while($file = readdir($handle)) { |
| 58 | $path_parts = pathinfo($file); | 58 | $path_parts = pathinfo($file); |
| 59 | $file_ext = strtolower($path_parts['extension']); | 59 | $file_ext = strtolower($path_parts['extension']); |
| 60 | if ($file_ext == 'ttf') { | 60 | if ($file_ext == 'ttf') { |
| 61 | exec('./ttf2ufm -a -F '.$path_parts['basename'].''); | 61 | exec('./ttf2ufm -a -F '.$path_parts['basename'].''); |
| 62 | exec('php -q makefont.php '.$path_parts['basename'].' '.$path_parts['filename'].'.ufm'); | 62 | exec('php -q makefont.php '.$path_parts['basename'].' '.$path_parts['filename'].'.ufm'); |
| 63 | } | 63 | } |
| 64 | } | 64 | } |
| 65 | closedir($handle); | 65 | closedir($handle); |
| 66 | 66 | ||
| 67 | //============================================================+ | 67 | //============================================================+ |
| 68 | // END OF FILE | 68 | // END OF FILE |
| 69 | //============================================================+ | 69 | //============================================================+ | ... | ... |
| 1 | To embed TrueType and OpenType font files, you need to extract the | 1 | To embed TrueType and OpenType font files, you need to extract the |
| 2 | font metrics from the font files and build the required tables using | 2 | font metrics from the font files and build the required tables using |
| 3 | the utility TTF2UFM. | 3 | the utility TTF2UFM. |
| 4 | 4 | ||
| 5 | TTF2UFM is a modified version of Mark Heath's TTF 2 PT1 converter | 5 | TTF2UFM is a modified version of Mark Heath's TTF 2 PT1 converter |
| 6 | (http://ttf2pt1.sourceforge.net/) by Steven Wittens <steven@acko.net> | 6 | (http://ttf2pt1.sourceforge.net/) by Steven Wittens <steven@acko.net> |
| 7 | (http://www.acko.net/blog/ufpdf). That version has been further | 7 | (http://www.acko.net/blog/ufpdf). That version has been further |
| 8 | modified by Ulrich Telle for use with the wxWidgets component | 8 | modified by Ulrich Telle for use with the wxWidgets component |
| 9 | wxPdfDocument. | 9 | wxPdfDocument. |
| 10 | 10 | ||
| 11 | Following changes where made: | 11 | Following changes where made: |
| 12 | 12 | ||
| 13 | 1) Generated AFM files contain the glyph number for each character. | 13 | 1) Generated AFM files contain the glyph number for each character. |
| 14 | 2) Generated UFM files contain the bounding box for each character. | 14 | 2) Generated UFM files contain the bounding box for each character. |
| 15 | 3) OpenType support has been activated for the Windows binary, | 15 | 3) OpenType support has been activated for the Windows binary, |
| 16 | and the generated AFM/UFM files contain the associated | 16 | and the generated AFM/UFM files contain the associated |
| 17 | original Unicode codes for each character. | 17 | original Unicode codes for each character. | ... | ... |
| 1 | <?php | 1 | <?php |
| 2 | // core font definition file for TCPDF (www.tcpdf.org) | 2 | // core font definition file for TCPDF (www.tcpdf.org) |
| 3 | $type='core'; | 3 | $type='core'; |
| 4 | $dw=788; | 4 | $dw=788; |
| 5 | $cw=array(0=>0,1=>0,2=>0,3=>0,4=>0,5=>0,6=>0,7=>0,8=>0,9=>0,10=>0,11=>0,12=>0, | 5 | $cw=array(0=>0,1=>0,2=>0,3=>0,4=>0,5=>0,6=>0,7=>0,8=>0,9=>0,10=>0,11=>0,12=>0, |
| 6 | 13=>0,14=>0,15=>0,16=>0,17=>0,18=>0,19=>0,20=>0,21=>0,22=>0,23=>0,24=>0,25=>0, | 6 | 13=>0,14=>0,15=>0,16=>0,17=>0,18=>0,19=>0,20=>0,21=>0,22=>0,23=>0,24=>0,25=>0, |
| 7 | 26=>0,27=>0,28=>0,29=>0,30=>0,31=>0,32=>278,33=>974,34=>961,35=>974,36=>980, | 7 | 26=>0,27=>0,28=>0,29=>0,30=>0,31=>0,32=>278,33=>974,34=>961,35=>974,36=>980, |
| 8 | 37=>719,38=>789,39=>790,40=>791,41=>690,42=>960,43=>939,44=>549,45=>855,46=>911, | 8 | 37=>719,38=>789,39=>790,40=>791,41=>690,42=>960,43=>939,44=>549,45=>855,46=>911, |
| 9 | 47=>933,48=>911,49=>945,50=>974,51=>755,52=>846,53=>762,54=>761,55=>571,56=>677, | 9 | 47=>933,48=>911,49=>945,50=>974,51=>755,52=>846,53=>762,54=>761,55=>571,56=>677, |
| 10 | 57=>763,58=>760,59=>759,60=>754,61=>494,62=>552,63=>537,64=>577,65=>692,66=>786, | 10 | 57=>763,58=>760,59=>759,60=>754,61=>494,62=>552,63=>537,64=>577,65=>692,66=>786, |
| 11 | 67=>788,68=>788,69=>790,70=>793,71=>794,72=>816,73=>823,74=>789,75=>841,76=>823, | 11 | 67=>788,68=>788,69=>790,70=>793,71=>794,72=>816,73=>823,74=>789,75=>841,76=>823, |
| 12 | 77=>833,78=>816,79=>831,80=>923,81=>744,82=>723,83=>749,84=>790,85=>792,86=>695, | 12 | 77=>833,78=>816,79=>831,80=>923,81=>744,82=>723,83=>749,84=>790,85=>792,86=>695, |
| 13 | 87=>776,88=>768,89=>792,90=>759,91=>707,92=>708,93=>682,94=>701,95=>826,96=>815, | 13 | 87=>776,88=>768,89=>792,90=>759,91=>707,92=>708,93=>682,94=>701,95=>826,96=>815, |
| 14 | 97=>789,98=>789,99=>707,100=>687,101=>696,102=>689,103=>786,104=>787,105=>713, | 14 | 97=>789,98=>789,99=>707,100=>687,101=>696,102=>689,103=>786,104=>787,105=>713, |
| 15 | 106=>791,107=>785,108=>791,109=>873,110=>761,111=>762,112=>762,113=>759,114=>759, | 15 | 106=>791,107=>785,108=>791,109=>873,110=>761,111=>762,112=>762,113=>759,114=>759, |
| 16 | 115=>892,116=>892,117=>788,118=>784,119=>438,120=>138,121=>277,122=>415,123=>392, | 16 | 115=>892,116=>892,117=>788,118=>784,119=>438,120=>138,121=>277,122=>415,123=>392, |
| 17 | 124=>392,125=>668,126=>668,127=>0,128=>390,129=>390,130=>317,131=>317,132=>276, | 17 | 124=>392,125=>668,126=>668,127=>0,128=>390,129=>390,130=>317,131=>317,132=>276, |
| 18 | 133=>276,134=>509,135=>509,136=>410,137=>410,138=>234,139=>234,140=>334,141=>334, | 18 | 133=>276,134=>509,135=>509,136=>410,137=>410,138=>234,139=>234,140=>334,141=>334, |
| 19 | 142=>0,143=>0,144=>0,145=>0,146=>0,147=>0,148=>0,149=>0,150=>0,151=>0,152=>0, | 19 | 142=>0,143=>0,144=>0,145=>0,146=>0,147=>0,148=>0,149=>0,150=>0,151=>0,152=>0, |
| 20 | 153=>0,154=>0,155=>0,156=>0,157=>0,158=>0,159=>0,160=>0,161=>732,162=>544,163=>544, | 20 | 153=>0,154=>0,155=>0,156=>0,157=>0,158=>0,159=>0,160=>0,161=>732,162=>544,163=>544, |
| 21 | 164=>910,165=>667,166=>760,167=>760,168=>776,169=>595,170=>694,171=>626,172=>788, | 21 | 164=>910,165=>667,166=>760,167=>760,168=>776,169=>595,170=>694,171=>626,172=>788, |
| 22 | 173=>788,174=>788,175=>788,176=>788,177=>788,178=>788,179=>788,180=>788,181=>788, | 22 | 173=>788,174=>788,175=>788,176=>788,177=>788,178=>788,179=>788,180=>788,181=>788, |
| 23 | 182=>788,183=>788,184=>788,185=>788,186=>788,187=>788,188=>788,189=>788,190=>788, | 23 | 182=>788,183=>788,184=>788,185=>788,186=>788,187=>788,188=>788,189=>788,190=>788, |
| 24 | 191=>788,192=>788,193=>788,194=>788,195=>788,196=>788,197=>788,198=>788,199=>788, | 24 | 191=>788,192=>788,193=>788,194=>788,195=>788,196=>788,197=>788,198=>788,199=>788, |
| 25 | 200=>788,201=>788,202=>788,203=>788,204=>788,205=>788,206=>788,207=>788,208=>788, | 25 | 200=>788,201=>788,202=>788,203=>788,204=>788,205=>788,206=>788,207=>788,208=>788, |
| 26 | 209=>788,210=>788,211=>788,212=>894,213=>838,214=>1016,215=>458,216=>748,217=>924, | 26 | 209=>788,210=>788,211=>788,212=>894,213=>838,214=>1016,215=>458,216=>748,217=>924, |
| 27 | 218=>748,219=>918,220=>927,221=>928,222=>928,223=>834,224=>873,225=>828,226=>924, | 27 | 218=>748,219=>918,220=>927,221=>928,222=>928,223=>834,224=>873,225=>828,226=>924, |
| 28 | 227=>924,228=>917,229=>930,230=>931,231=>463,232=>883,233=>836,234=>836,235=>867, | 28 | 227=>924,228=>917,229=>930,230=>931,231=>463,232=>883,233=>836,234=>836,235=>867, |
| 29 | 236=>867,237=>696,238=>696,239=>874,240=>0,241=>874,242=>760,243=>946,244=>771, | 29 | 236=>867,237=>696,238=>696,239=>874,240=>0,241=>874,242=>760,243=>946,244=>771, |
| 30 | 245=>865,246=>771,247=>888,248=>967,249=>888,250=>831,251=>873,252=>927,253=>970, | 30 | 245=>865,246=>771,247=>888,248=>967,249=>888,250=>831,251=>873,252=>927,253=>970, |
| 31 | 254=>918,255=>0); | 31 | 254=>918,255=>0); |
| 32 | // --- EOF --- | 32 | // --- EOF --- | ... | ... |
| 1 | <?php | 1 | <?php |
| 2 | /* Mohammad Ali Golkar | 2 | /* Mohammad Ali Golkar |
| 3 | m.a.golkar@gmail.com | 3 | m.a.golkar@gmail.com |
| 4 | http://www.30minonline.com | 4 | http://www.30minonline.com |
| 5 | LICENSE : GPLv2 */ | 5 | LICENSE : GPLv2 */ |
| 6 | $type='TrueTypeUnicode'; | 6 | $type='TrueTypeUnicode'; |
| 7 | $name='ZarBold'; | 7 | $name='ZarBold'; |
| 8 | $desc=array('Ascent'=>733,'Descent'=>-317,'CapHeight'=>733,'Flags'=>32,'FontBBox'=>'[-126 -535 1164 1046]','ItalicAngle'=>0,'StemV'=>120,'MissingWidth'=>600); | 8 | $desc=array('Ascent'=>733,'Descent'=>-317,'CapHeight'=>733,'Flags'=>32,'FontBBox'=>'[-126 -535 1164 1046]','ItalicAngle'=>0,'StemV'=>120,'MissingWidth'=>600); |
| 9 | $up=-356; | 9 | $up=-356; |
| 10 | $ut=49; | 10 | $ut=49; |
| 11 | $dw=600; | 11 | $dw=600; |
| 12 | $cw=array( | 12 | $cw=array( |
| 13 | 0=>0,32=>227,33=>235,34=>282,35=>667,36=>458,37=>493,38=>635,39=>156,40=>303,41=>303,42=>489,43=>489,44=>237,45=>489,46=>231,47=>277, | 13 | 0=>0,32=>227,33=>235,34=>282,35=>667,36=>458,37=>493,38=>635,39=>156,40=>303,41=>303,42=>489,43=>489,44=>237,45=>489,46=>231,47=>277, |
| 14 | 48=>552,49=>552,50=>552,51=>552,52=>552,53=>552,54=>552,55=>552,56=>552,57=>552,58=>231,59=>237,60=>667,61=>489,62=>667,63=>448, | 14 | 48=>552,49=>552,50=>552,51=>552,52=>552,53=>552,54=>552,55=>552,56=>552,57=>552,58=>231,59=>237,60=>667,61=>489,62=>667,63=>448, |
| 15 | 64=>917,65=>604,66=>542,67=>615,68=>708,69=>479,70=>427,71=>667,72=>688,73=>302,74=>292,75=>583,76=>469,77=>885,78=>677,79=>729, | 15 | 64=>917,65=>604,66=>542,67=>615,68=>708,69=>479,70=>427,71=>667,72=>688,73=>302,74=>292,75=>583,76=>469,77=>885,78=>677,79=>729, |
| 16 | 80=>479,81=>729,82=>542,83=>448,84=>521,85=>677,86=>615,87=>969,88=>604,89=>583,90=>594,91=>208,92=>510,93=>208,94=>469,95=>500, | 16 | 80=>479,81=>729,82=>542,83=>448,84=>521,85=>677,86=>615,87=>969,88=>604,89=>583,90=>594,91=>208,92=>510,93=>208,94=>469,95=>500, |
| 17 | 96=>333,97=>469,98=>510,99=>448,100=>521,101=>438,102=>313,103=>500,104=>552,105=>271,106=>260,107=>500,108=>271,109=>802,110=>552,111=>490, | 17 | 96=>333,97=>469,98=>510,99=>448,100=>521,101=>438,102=>313,103=>500,104=>552,105=>271,106=>260,107=>500,108=>271,109=>802,110=>552,111=>490, |
| 18 | 112=>531,113=>521,114=>396,115=>365,116=>292,117=>552,118=>479,119=>750,120=>521,121=>469,122=>448,123=>479,124=>510,125=>479,126=>667,8218=>240, | 18 | 112=>531,113=>521,114=>396,115=>365,116=>292,117=>552,118=>479,119=>750,120=>521,121=>469,122=>448,123=>479,124=>510,125=>479,126=>667,8218=>240, |
| 19 | 402=>531,8222=>458,8230=>1000,8224=>438,8225=>438,710=>333,8240=>1010,352=>448,8249=>250,338=>865,8216=>240,8217=>240,8220=>317,8221=>317,8226=>281,8211=>500, | 19 | 402=>531,8222=>458,8230=>1000,8224=>438,8225=>438,710=>333,8240=>1010,352=>448,8249=>250,338=>865,8216=>240,8217=>240,8220=>317,8221=>317,8226=>281,8211=>500, |
| 20 | 8212=>1000,8482=>906,353=>365,8250=>250,339=>823,376=>583,160=>244,161=>317,162=>448,163=>583,164=>500,165=>583,166=>200,167=>417,168=>333,169=>765, | 20 | 8212=>1000,8482=>906,353=>365,8250=>250,339=>823,376=>583,160=>244,161=>317,162=>448,163=>583,164=>500,165=>583,166=>200,167=>417,168=>333,169=>765, |
| 21 | 170=>313,171=>417,172=>667,173=>564,174=>765,175=>333,176=>375,177=>462,178=>354,179=>354,180=>333,181=>510,182=>438,183=>198,184=>333,185=>354, | 21 | 170=>313,171=>417,172=>667,173=>564,174=>765,175=>333,176=>375,177=>462,178=>354,179=>354,180=>333,181=>510,182=>438,183=>198,184=>333,185=>354, |
| 22 | 186=>323,187=>417,188=>854,189=>854,190=>854,191=>448,192=>604,711=>333,215=>462,224=>469,226=>469,231=>448,232=>438,233=>438,234=>438,235=>438, | 22 | 186=>323,187=>417,188=>854,189=>854,190=>854,191=>448,192=>604,711=>333,215=>462,224=>469,226=>469,231=>448,232=>438,233=>438,234=>438,235=>438, |
| 23 | 238=>271,239=>271,244=>490,305=>271,247=>483,249=>552,251=>552,252=>552,255=>469,9249=>781,1548=>237,1563=>237,1567=>340,1569=>426,1570=>416,1571=>238, | 23 | 238=>271,239=>271,244=>490,305=>271,247=>483,249=>552,251=>552,252=>552,255=>469,9249=>781,1548=>237,1563=>237,1567=>340,1569=>426,1570=>416,1571=>238, |
| 24 | 1572=>429,1573=>260,1574=>817,1575=>238,1576=>853,1577=>439,1578=>853,1579=>853,1580=>720,1581=>720,1582=>720,1583=>485,1584=>485,1585=>423,1586=>423,1587=>1016, | 24 | 1572=>429,1573=>260,1574=>817,1575=>238,1576=>853,1577=>439,1578=>853,1579=>853,1580=>720,1581=>720,1582=>720,1583=>485,1584=>485,1585=>423,1586=>423,1587=>1016, |
| 25 | 1588=>1016,1589=>1128,1590=>1128,1591=>794,1592=>794,1593=>685,1594=>685,1600=>371,1601=>840,1602=>696,1603=>1148,1604=>744,1605=>514,1606=>686,1607=>439,1608=>429, | 25 | 1588=>1016,1589=>1128,1590=>1128,1591=>794,1592=>794,1593=>685,1594=>685,1600=>371,1601=>840,1602=>696,1603=>1148,1604=>744,1605=>514,1606=>686,1607=>439,1608=>429, |
| 26 | 1609=>817,1610=>817,1611=>0,1612=>0,1613=>0,1614=>0,1615=>0,1616=>0,1617=>0,1618=>0,1632=>479,1633=>479,1634=>479,1635=>479,1636=>479,1637=>479, | 26 | 1609=>817,1610=>817,1611=>0,1612=>0,1613=>0,1614=>0,1615=>0,1616=>0,1617=>0,1618=>0,1632=>479,1633=>479,1634=>479,1635=>479,1636=>479,1637=>479, |
| 27 | 1638=>479,1639=>479,1640=>479,1641=>483,1642=>493,1645=>563,1648=>227,1649=>363,1652=>227,1662=>853,1670=>720,1688=>423,1700=>840,1705=>1148,1711=>1149,1740=>817, | 27 | 1638=>479,1639=>479,1640=>479,1641=>483,1642=>493,1645=>563,1648=>227,1649=>363,1652=>227,1662=>853,1670=>720,1688=>423,1700=>840,1705=>1148,1711=>1149,1740=>817, |
| 28 | 1749=>439,1764=>227,1776=>479,1777=>479,1778=>479,1779=>479,1780=>479,1781=>479,1782=>479,1783=>479,1784=>479,1785=>483,8204=>22,8205=>22,8206=>22,8207=>22, | 28 | 1749=>439,1764=>227,1776=>479,1777=>479,1778=>479,1779=>479,1780=>479,1781=>479,1782=>479,1783=>479,1784=>479,1785=>483,8204=>22,8205=>22,8206=>22,8207=>22, |
| 29 | 59424=>227,59425=>227,59426=>227,59427=>227,59428=>227,59429=>227,59430=>227,59431=>227,59432=>227,59433=>227,59434=>227,59435=>227,59436=>227,59416=>227,59437=>227,59442=>227, | 29 | 59424=>227,59425=>227,59426=>227,59427=>227,59428=>227,59429=>227,59430=>227,59431=>227,59432=>227,59433=>227,59434=>227,59435=>227,59436=>227,59416=>227,59437=>227,59442=>227, |
| 30 | 59443=>227,59444=>227,59445=>227,59446=>227,64336=>363,64337=>263,64342=>853,64343=>967,64344=>267,64345=>271,64362=>840,64363=>959,64364=>305,64365=>341,64378=>720,64379=>725, | 30 | 59443=>227,59444=>227,59445=>227,59446=>227,64336=>363,64337=>263,64342=>853,64343=>967,64344=>267,64345=>271,64362=>840,64363=>959,64364=>305,64365=>341,64378=>720,64379=>725, |
| 31 | 64380=>630,64381=>652,64394=>423,64395=>450,64398=>1148,64399=>1089,64400=>522,64401=>461,64402=>1149,64403=>1084,64404=>525,64405=>462,64508=>817,64509=>784,64606=>227,64607=>227, | 31 | 64380=>630,64381=>652,64394=>423,64395=>450,64398=>1148,64399=>1089,64400=>522,64401=>461,64402=>1149,64403=>1084,64404=>525,64405=>462,64508=>817,64509=>784,64606=>227,64607=>227, |
| 32 | 64608=>227,64609=>227,64610=>227,64754=>371,64755=>371,64756=>371,64828=>331,64829=>276,64830=>303,64831=>303,65010=>866,65136=>227,65137=>371,65138=>227,65140=>227,65142=>227, | 32 | 64608=>227,64609=>227,64610=>227,64754=>371,64755=>371,64756=>371,64828=>331,64829=>276,64830=>303,64831=>303,65010=>866,65136=>227,65137=>371,65138=>227,65140=>227,65142=>227, |
| 33 | 65143=>371,65144=>227,65145=>371,65146=>227,65147=>371,65148=>227,65149=>371,65150=>227,65151=>371,65152=>426,65153=>416,65154=>354,65155=>238,65156=>282,65157=>429,65158=>507, | 33 | 65143=>371,65144=>227,65145=>371,65146=>227,65147=>371,65148=>227,65149=>371,65150=>227,65151=>371,65152=>426,65153=>416,65154=>354,65155=>238,65156=>282,65157=>429,65158=>507, |
| 34 | 65159=>260,65160=>286,65161=>817,65162=>784,65163=>190,65164=>276,65165=>238,65166=>263,65167=>853,65168=>967,65169=>186,65170=>271,65171=>439,65172=>452,65173=>853,65174=>967, | 34 | 65159=>260,65160=>286,65161=>817,65162=>784,65163=>190,65164=>276,65165=>238,65166=>263,65167=>853,65168=>967,65169=>186,65170=>271,65171=>439,65172=>452,65173=>853,65174=>967, |
| 35 | 65175=>256,65176=>271,65177=>853,65178=>967,65179=>267,65180=>271,65181=>720,65182=>725,65183=>630,65184=>652,65185=>720,65186=>725,65187=>630,65188=>652,65189=>720,65190=>725, | 35 | 65175=>256,65176=>271,65177=>853,65178=>967,65179=>267,65180=>271,65181=>720,65182=>725,65183=>630,65184=>652,65185=>720,65186=>725,65187=>630,65188=>652,65189=>720,65190=>725, |
| 36 | 65191=>630,65192=>652,65193=>485,65194=>608,65195=>485,65196=>608,65197=>423,65198=>450,65199=>423,65200=>450,65201=>1016,65202=>1041,65203=>498,65204=>475,65205=>1016,65206=>1041, | 36 | 65191=>630,65192=>652,65193=>485,65194=>608,65195=>485,65196=>608,65197=>423,65198=>450,65199=>423,65200=>450,65201=>1016,65202=>1041,65203=>498,65204=>475,65205=>1016,65206=>1041, |
| 37 | 65207=>498,65208=>475,65209=>1128,65210=>1150,65211=>633,65212=>655,65213=>1128,65214=>1150,65215=>633,65216=>655,65217=>794,65218=>814,65219=>566,65220=>588,65221=>794,65222=>814, | 37 | 65207=>498,65208=>475,65209=>1128,65210=>1150,65211=>633,65212=>655,65213=>1128,65214=>1150,65215=>633,65216=>655,65217=>794,65218=>814,65219=>566,65220=>588,65221=>794,65222=>814, |
| 38 | 65223=>566,65224=>588,65225=>685,65226=>655,65227=>414,65228=>330,65229=>685,65230=>655,65231=>414,65232=>330,65233=>840,65234=>959,65235=>305,65236=>341,65237=>696,65238=>780, | 38 | 65223=>566,65224=>588,65225=>685,65226=>655,65227=>414,65228=>330,65229=>685,65230=>655,65231=>414,65232=>330,65233=>840,65234=>959,65235=>305,65236=>341,65237=>696,65238=>780, |
| 39 | 65239=>305,65240=>341,65241=>1148,65242=>1089,65243=>522,65244=>461,65245=>744,65246=>741,65247=>202,65248=>259,65249=>514,65250=>585,65251=>345,65252=>477,65253=>686,65254=>764, | 39 | 65239=>305,65240=>341,65241=>1148,65242=>1089,65243=>522,65244=>461,65245=>744,65246=>741,65247=>202,65248=>259,65249=>514,65250=>585,65251=>345,65252=>477,65253=>686,65254=>764, |
| 40 | 65255=>186,65256=>271,65257=>439,65258=>452,65259=>501,65260=>381,65261=>429,65262=>507,65263=>817,65264=>784,65265=>817,65266=>784,64510=>265,64511=>271,65269=>610,65270=>652, | 40 | 65255=>186,65256=>271,65257=>439,65258=>452,65259=>501,65260=>381,65261=>429,65262=>507,65263=>817,65264=>784,65265=>817,65266=>784,64510=>265,64511=>271,65269=>610,65270=>652, |
| 41 | 65271=>539,65272=>611,65273=>539,65274=>611,65275=>539,65276=>611,65279=>0,64486=>408,64487=>408); | 41 | 65271=>539,65272=>611,65273=>539,65274=>611,65275=>539,65276=>611,65279=>0,64486=>408,64487=>408); |
| 42 | $enc=''; | 42 | $enc=''; |
| 43 | $diff=''; | 43 | $diff=''; |
| 44 | $file='zarbold.z'; | 44 | $file='zarbold.z'; |
| 45 | $ctg='zarbold.ctg.z'; | 45 | $ctg='zarbold.ctg.z'; |
| 46 | $originalsize=73296; | 46 | $originalsize=73296; |
| 47 | // --- EOF --- | 47 | // --- EOF --- | ... | ... |
| 1 | %!PS-Adobe-3.0 EPSF-3.0 | 1 | %!PS-Adobe-3.0 EPSF-3.0 |
| 2 | %%Creator: Adobe Illustrator(TM) 3.2 | 2 | %%Creator: Adobe Illustrator(TM) 3.2 |
| 3 | %%AI8_CreatorVersion: 12.0.0 | 3 | %%AI8_CreatorVersion: 12.0.0 |
| 4 | %%For: (fluxus) (x) | 4 | %%For: (fluxus) (x) |
| 5 | %%Title: (bug.eps) | 5 | %%Title: (bug.eps) |
| 6 | %%CreationDate: 4/15/2006 11:11 PM | 6 | %%CreationDate: 4/15/2006 11:11 PM |
| 7 | %%BoundingBox: -2 747 53 843 | 7 | %%BoundingBox: -2 747 53 843 |
| 8 | % -2 747 53 843 | 8 | % -2 747 53 843 |
| 9 | %%DocumentProcessColors: Cyan Magenta Yellow Black | 9 | %%DocumentProcessColors: Cyan Magenta Yellow Black |
| 10 | %%DocumentSuppliedResources: procset Adobe_packedarray 2.0 0 | 10 | %%DocumentSuppliedResources: procset Adobe_packedarray 2.0 0 |
| 11 | %%+ procset Adobe_cmykcolor 1.1 0 | 11 | %%+ procset Adobe_cmykcolor 1.1 0 |
| 12 | %%+ procset Adobe_cshow 1.1 0 | 12 | %%+ procset Adobe_cshow 1.1 0 |
| 13 | %%+ procset Adobe_customcolor 1.0 0 | 13 | %%+ procset Adobe_customcolor 1.0 0 |
| 14 | %%+ procset Adobe_pattern_AI3 1.0 0 | 14 | %%+ procset Adobe_pattern_AI3 1.0 0 |
| 15 | %%+ procset Adobe_Illustrator_AI3 1.0 1 | 15 | %%+ procset Adobe_Illustrator_AI3 1.0 1 |
| 16 | %AI3_ColorUsage: Color | 16 | %AI3_ColorUsage: Color |
| 17 | %AI3_IncludePlacedImages | 17 | %AI3_IncludePlacedImages |
| 18 | %%CMYKCustomColor: 1 1 1 1 ([Registration]) | 18 | %%CMYKCustomColor: 1 1 1 1 ([Registration]) |
| 19 | %AI3_TemplateBox: 298.5 420.3896 298.5 420.3896 | 19 | %AI3_TemplateBox: 298.5 420.3896 298.5 420.3896 |
| 20 | %AI3_TileBox: 0.157715 0.044861 595.1177 841.9648 | 20 | %AI3_TileBox: 0.157715 0.044861 595.1177 841.9648 |
| 21 | %AI3_DocumentPreview: Header | 21 | %AI3_DocumentPreview: Header |
| 22 | %%PageOrigin:-32 11.8896 | 22 | %%PageOrigin:-32 11.8896 |
| 23 | %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 | 23 | %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 |
| 24 | %AI9_Flatten: 1 | 24 | %AI9_Flatten: 1 |
| 25 | %AI12_CMSettings: 00.MS | 25 | %AI12_CMSettings: 00.MS |
| 26 | %%EndComments | 26 | %%EndComments |
| 27 | %%BeginProlog | 27 | %%BeginProlog |
| 28 | %%BeginResource: procset Adobe_packedarray 2.0 0 | 28 | %%BeginResource: procset Adobe_packedarray 2.0 0 |
| 29 | %%Title: (Packed Array Operators) | 29 | %%Title: (Packed Array Operators) |
| 30 | %%Version: 2.0 0 | 30 | %%Version: 2.0 0 |
| 31 | %%CreationDate: (8/2/90) () | 31 | %%CreationDate: (8/2/90) () |
| 32 | %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) | 32 | %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) |
| 33 | userdict /Adobe_packedarray 5 dict dup begin put | 33 | userdict /Adobe_packedarray 5 dict dup begin put |
| 34 | /initialize | 34 | /initialize |
| 35 | { | 35 | { |
| 36 | /packedarray where | 36 | /packedarray where |
| 37 | { | 37 | { |
| 38 | pop | 38 | pop |
| 39 | } | 39 | } |
| 40 | { | 40 | { |
| 41 | Adobe_packedarray begin | 41 | Adobe_packedarray begin |
| 42 | Adobe_packedarray | 42 | Adobe_packedarray |
| 43 | { | 43 | { |
| 44 | dup xcheck | 44 | dup xcheck |
| 45 | { | 45 | { |
| 46 | bind | 46 | bind |
| 47 | } if | 47 | } if |
| 48 | userdict 3 1 roll put | 48 | userdict 3 1 roll put |
| 49 | } forall | 49 | } forall |
| 50 | end | 50 | end |
| 51 | } ifelse | 51 | } ifelse |
| 52 | } def | 52 | } def |
| 53 | /terminate | 53 | /terminate |
| 54 | { | 54 | { |
| 55 | } def | 55 | } def |
| 56 | /packedarray | 56 | /packedarray |
| 57 | { | 57 | { |
| 58 | array astore readonly | 58 | array astore readonly |
| 59 | } def | 59 | } def |
| 60 | /setpacking | 60 | /setpacking |
| 61 | { | 61 | { |
| 62 | pop | 62 | pop |
| 63 | } def | 63 | } def |
| 64 | /currentpacking | 64 | /currentpacking |
| 65 | { | 65 | { |
| 66 | false | 66 | false |
| 67 | } def | 67 | } def |
| 68 | currentdict readonly pop end | 68 | currentdict readonly pop end |
| 69 | %%EndResource | 69 | %%EndResource |
| 70 | Adobe_packedarray /initialize get exec | 70 | Adobe_packedarray /initialize get exec |
| 71 | %%BeginResource: procset Adobe_cmykcolor 1.1 0 | 71 | %%BeginResource: procset Adobe_cmykcolor 1.1 0 |
| 72 | %%Title: (CMYK Color Operators) | 72 | %%Title: (CMYK Color Operators) |
| 73 | %%Version: 1.1 0 | 73 | %%Version: 1.1 0 |
| 74 | %%CreationDate: (1/23/89) () | 74 | %%CreationDate: (1/23/89) () |
| 75 | %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) | 75 | %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) |
| 76 | currentpacking true setpacking | 76 | currentpacking true setpacking |
| 77 | userdict /Adobe_cmykcolor 4 dict dup begin put | 77 | userdict /Adobe_cmykcolor 4 dict dup begin put |
| 78 | /initialize | 78 | /initialize |
| 79 | { | 79 | { |
| 80 | /setcmykcolor where | 80 | /setcmykcolor where |
| 81 | { | 81 | { |
| 82 | pop | 82 | pop |
| 83 | } | 83 | } |
| 84 | { | 84 | { |
| 85 | userdict /Adobe_cmykcolor_vars 2 dict dup begin put | 85 | userdict /Adobe_cmykcolor_vars 2 dict dup begin put |
| 86 | /_setrgbcolor | 86 | /_setrgbcolor |
| 87 | /setrgbcolor load def | 87 | /setrgbcolor load def |
| 88 | /_currentrgbcolor | 88 | /_currentrgbcolor |
| 89 | /currentrgbcolor load def | 89 | /currentrgbcolor load def |
| 90 | Adobe_cmykcolor begin | 90 | Adobe_cmykcolor begin |
| 91 | Adobe_cmykcolor | 91 | Adobe_cmykcolor |
| 92 | { | 92 | { |
| 93 | dup xcheck | 93 | dup xcheck |
| 94 | { | 94 | { |
| 95 | bind | 95 | bind |
| 96 | } if | 96 | } if |
| 97 | pop pop | 97 | pop pop |
| 98 | } forall | 98 | } forall |
| 99 | end | 99 | end |
| 100 | end | 100 | end |
| 101 | Adobe_cmykcolor begin | 101 | Adobe_cmykcolor begin |
| 102 | } ifelse | 102 | } ifelse |
| 103 | } def | 103 | } def |
| 104 | /terminate | 104 | /terminate |
| 105 | { | 105 | { |
| 106 | currentdict Adobe_cmykcolor eq | 106 | currentdict Adobe_cmykcolor eq |
| 107 | { | 107 | { |
| 108 | end | 108 | end |
| 109 | } if | 109 | } if |
| 110 | } def | 110 | } def |
| 111 | /setcmykcolor | 111 | /setcmykcolor |
| 112 | { | 112 | { |
| 113 | 1 sub 4 1 roll | 113 | 1 sub 4 1 roll |
| 114 | 3 | 114 | 3 |
| 115 | { | 115 | { |
| 116 | 3 index add neg dup 0 lt | 116 | 3 index add neg dup 0 lt |
| 117 | { | 117 | { |
| 118 | pop 0 | 118 | pop 0 |
| 119 | } if | 119 | } if |
| 120 | 3 1 roll | 120 | 3 1 roll |
| 121 | } repeat | 121 | } repeat |
| 122 | Adobe_cmykcolor_vars /_setrgbcolor get exec | 122 | Adobe_cmykcolor_vars /_setrgbcolor get exec |
| 123 | pop | 123 | pop |
| 124 | } def | 124 | } def |
| 125 | /currentcmykcolor | 125 | /currentcmykcolor |
| 126 | { | 126 | { |
| 127 | Adobe_cmykcolor_vars /_currentrgbcolor get exec | 127 | Adobe_cmykcolor_vars /_currentrgbcolor get exec |
| 128 | 3 | 128 | 3 |
| 129 | { | 129 | { |
| 130 | 1 sub neg 3 1 roll | 130 | 1 sub neg 3 1 roll |
| 131 | } repeat | 131 | } repeat |
| 132 | 0 | 132 | 0 |
| 133 | } def | 133 | } def |
| 134 | currentdict readonly pop end | 134 | currentdict readonly pop end |
| 135 | setpacking | 135 | setpacking |
| 136 | %%EndResource | 136 | %%EndResource |
| 137 | %%BeginResource: procset Adobe_cshow 1.1 0 | 137 | %%BeginResource: procset Adobe_cshow 1.1 0 |
| 138 | %%Title: (cshow Operator) | 138 | %%Title: (cshow Operator) |
| 139 | %%Version: 1.1 0 | 139 | %%Version: 1.1 0 |
| 140 | %%CreationDate: (1/23/89) () | 140 | %%CreationDate: (1/23/89) () |
| 141 | %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) | 141 | %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) |
| 142 | currentpacking true setpacking | 142 | currentpacking true setpacking |
| 143 | userdict /Adobe_cshow 3 dict dup begin put | 143 | userdict /Adobe_cshow 3 dict dup begin put |
| 144 | /initialize | 144 | /initialize |
| 145 | { | 145 | { |
| 146 | /cshow where | 146 | /cshow where |
| 147 | { | 147 | { |
| 148 | pop | 148 | pop |
| 149 | } | 149 | } |
| 150 | { | 150 | { |
| 151 | userdict /Adobe_cshow_vars 1 dict dup begin put | 151 | userdict /Adobe_cshow_vars 1 dict dup begin put |
| 152 | /_cshow | 152 | /_cshow |
| 153 | {} def | 153 | {} def |
| 154 | Adobe_cshow begin | 154 | Adobe_cshow begin |
| 155 | Adobe_cshow | 155 | Adobe_cshow |
| 156 | { | 156 | { |
| 157 | dup xcheck | 157 | dup xcheck |
| 158 | { | 158 | { |
| 159 | bind | 159 | bind |
| 160 | } if | 160 | } if |
| 161 | userdict 3 1 roll put | 161 | userdict 3 1 roll put |
| 162 | } forall | 162 | } forall |
| 163 | end | 163 | end |
| 164 | end | 164 | end |
| 165 | } ifelse | 165 | } ifelse |
| 166 | } def | 166 | } def |
| 167 | /terminate | 167 | /terminate |
| 168 | { | 168 | { |
| 169 | } def | 169 | } def |
| 170 | /cshow | 170 | /cshow |
| 171 | { | 171 | { |
| 172 | exch | 172 | exch |
| 173 | Adobe_cshow_vars | 173 | Adobe_cshow_vars |
| 174 | exch /_cshow | 174 | exch /_cshow |
| 175 | exch put | 175 | exch put |
| 176 | { | 176 | { |
| 177 | 0 0 Adobe_cshow_vars /_cshow get exec | 177 | 0 0 Adobe_cshow_vars /_cshow get exec |
| 178 | } forall | 178 | } forall |
| 179 | } def | 179 | } def |
| 180 | currentdict readonly pop end | 180 | currentdict readonly pop end |
| 181 | setpacking | 181 | setpacking |
| 182 | %%EndResource | 182 | %%EndResource |
| 183 | %%BeginResource: procset Adobe_customcolor 1.0 0 | 183 | %%BeginResource: procset Adobe_customcolor 1.0 0 |
| 184 | %%Title: (Custom Color Operators) | 184 | %%Title: (Custom Color Operators) |
| 185 | %%Version: 1.0 0 | 185 | %%Version: 1.0 0 |
| 186 | %%CreationDate: (5/9/88) () | 186 | %%CreationDate: (5/9/88) () |
| 187 | %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) | 187 | %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) |
| 188 | currentpacking true setpacking | 188 | currentpacking true setpacking |
| 189 | userdict /Adobe_customcolor 5 dict dup begin put | 189 | userdict /Adobe_customcolor 5 dict dup begin put |
| 190 | /initialize | 190 | /initialize |
| 191 | { | 191 | { |
| 192 | /setcustomcolor where | 192 | /setcustomcolor where |
| 193 | { | 193 | { |
| 194 | pop | 194 | pop |
| 195 | } | 195 | } |
| 196 | { | 196 | { |
| 197 | Adobe_customcolor begin | 197 | Adobe_customcolor begin |
| 198 | Adobe_customcolor | 198 | Adobe_customcolor |
| 199 | { | 199 | { |
| 200 | dup xcheck | 200 | dup xcheck |
| 201 | { | 201 | { |
| 202 | bind | 202 | bind |
| 203 | } if | 203 | } if |
| 204 | pop pop | 204 | pop pop |
| 205 | } forall | 205 | } forall |
| 206 | end | 206 | end |
| 207 | Adobe_customcolor begin | 207 | Adobe_customcolor begin |
| 208 | } ifelse | 208 | } ifelse |
| 209 | } def | 209 | } def |
| 210 | /terminate | 210 | /terminate |
| 211 | { | 211 | { |
| 212 | currentdict Adobe_customcolor eq | 212 | currentdict Adobe_customcolor eq |
| 213 | { | 213 | { |
| 214 | end | 214 | end |
| 215 | } if | 215 | } if |
| 216 | } def | 216 | } def |
| 217 | /findcmykcustomcolor | 217 | /findcmykcustomcolor |
| 218 | { | 218 | { |
| 219 | 5 packedarray | 219 | 5 packedarray |
| 220 | } def | 220 | } def |
| 221 | /setcustomcolor | 221 | /setcustomcolor |
| 222 | { | 222 | { |
| 223 | exch | 223 | exch |
| 224 | aload pop pop | 224 | aload pop pop |
| 225 | 4 | 225 | 4 |
| 226 | { | 226 | { |
| 227 | 4 index mul 4 1 roll | 227 | 4 index mul 4 1 roll |
| 228 | } repeat | 228 | } repeat |
| 229 | 5 -1 roll pop | 229 | 5 -1 roll pop |
| 230 | setcmykcolor | 230 | setcmykcolor |
| 231 | } def | 231 | } def |
| 232 | /setoverprint | 232 | /setoverprint |
| 233 | { | 233 | { |
| 234 | pop | 234 | pop |
| 235 | } def | 235 | } def |
| 236 | currentdict readonly pop end | 236 | currentdict readonly pop end |
| 237 | setpacking | 237 | setpacking |
| 238 | %%EndResource | 238 | %%EndResource |
| 239 | %%BeginResource: procset Adobe_pattern_AI3 1.1 0 | 239 | %%BeginResource: procset Adobe_pattern_AI3 1.1 0 |
| 240 | %%Title: (Adobe Illustrator (R) Version 3.0 Pattern Operators) | 240 | %%Title: (Adobe Illustrator (R) Version 3.0 Pattern Operators) |
| 241 | %%Version: 1.1 0 | 241 | %%Version: 1.1 0 |
| 242 | %%CreationDate: (7/21/89) () | 242 | %%CreationDate: (7/21/89) () |
| 243 | %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) | 243 | %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) |
| 244 | currentpacking true setpacking | 244 | currentpacking true setpacking |
| 245 | userdict /Adobe_pattern_AI3 16 dict dup begin put | 245 | userdict /Adobe_pattern_AI3 16 dict dup begin put |
| 246 | /initialize | 246 | /initialize |
| 247 | { | 247 | { |
| 248 | /definepattern where | 248 | /definepattern where |
| 249 | { | 249 | { |
| 250 | pop | 250 | pop |
| 251 | } | 251 | } |
| 252 | { | 252 | { |
| 253 | Adobe_pattern_AI3 begin | 253 | Adobe_pattern_AI3 begin |
| 254 | Adobe_pattern_AI3 | 254 | Adobe_pattern_AI3 |
| 255 | { | 255 | { |
| 256 | dup xcheck | 256 | dup xcheck |
| 257 | { | 257 | { |
| 258 | bind | 258 | bind |
| 259 | } if | 259 | } if |
| 260 | pop pop | 260 | pop pop |
| 261 | } forall | 261 | } forall |
| 262 | mark | 262 | mark |
| 263 | cachestatus 7 1 roll pop pop pop pop exch pop exch | 263 | cachestatus 7 1 roll pop pop pop pop exch pop exch |
| 264 | { | 264 | { |
| 265 | { | 265 | { |
| 266 | 10000 add | 266 | 10000 add |
| 267 | dup 2 index gt | 267 | dup 2 index gt |
| 268 | { | 268 | { |
| 269 | exit | 269 | exit |
| 270 | } if | 270 | } if |
| 271 | dup setcachelimit | 271 | dup setcachelimit |
| 272 | } loop | 272 | } loop |
| 273 | } stopped | 273 | } stopped |
| 274 | cleartomark | 274 | cleartomark |
| 275 | } ifelse | 275 | } ifelse |
| 276 | } def | 276 | } def |
| 277 | /terminate | 277 | /terminate |
| 278 | { | 278 | { |
| 279 | currentdict Adobe_pattern_AI3 eq | 279 | currentdict Adobe_pattern_AI3 eq |
| 280 | { | 280 | { |
| 281 | end | 281 | end |
| 282 | } if | 282 | } if |
| 283 | } def | 283 | } def |
| 284 | errordict | 284 | errordict |
| 285 | /nocurrentpoint | 285 | /nocurrentpoint |
| 286 | { | 286 | { |
| 287 | pop | 287 | pop |
| 288 | stop | 288 | stop |
| 289 | } put | 289 | } put |
| 290 | errordict | 290 | errordict |
| 291 | /invalidaccess | 291 | /invalidaccess |
| 292 | { | 292 | { |
| 293 | pop | 293 | pop |
| 294 | stop | 294 | stop |
| 295 | } put | 295 | } put |
| 296 | /patternencoding | 296 | /patternencoding |
| 297 | 256 array def | 297 | 256 array def |
| 298 | 0 1 255 | 298 | 0 1 255 |
| 299 | { | 299 | { |
| 300 | patternencoding exch ( ) 2 copy exch 0 exch put cvn put | 300 | patternencoding exch ( ) 2 copy exch 0 exch put cvn put |
| 301 | } for | 301 | } for |
| 302 | /definepattern | 302 | /definepattern |
| 303 | { | 303 | { |
| 304 | 17 dict begin | 304 | 17 dict begin |
| 305 | /uniform exch def | 305 | /uniform exch def |
| 306 | /cache exch def | 306 | /cache exch def |
| 307 | /key exch def | 307 | /key exch def |
| 308 | /procarray exch def | 308 | /procarray exch def |
| 309 | /mtx exch matrix invertmatrix def | 309 | /mtx exch matrix invertmatrix def |
| 310 | /height exch def | 310 | /height exch def |
| 311 | /width exch def | 311 | /width exch def |
| 312 | /ctm matrix currentmatrix def | 312 | /ctm matrix currentmatrix def |
| 313 | /ptm matrix def | 313 | /ptm matrix def |
| 314 | /str 32 string def | 314 | /str 32 string def |
| 315 | /slice 9 dict def | 315 | /slice 9 dict def |
| 316 | slice /s 1 put | 316 | slice /s 1 put |
| 317 | slice /q 256 procarray length div sqrt floor cvi put | 317 | slice /q 256 procarray length div sqrt floor cvi put |
| 318 | slice /b 0 put | 318 | slice /b 0 put |
| 319 | /FontBBox [0 0 0 0] def | 319 | /FontBBox [0 0 0 0] def |
| 320 | /FontMatrix mtx matrix copy def | 320 | /FontMatrix mtx matrix copy def |
| 321 | /Encoding patternencoding def | 321 | /Encoding patternencoding def |
| 322 | /FontType 3 def | 322 | /FontType 3 def |
| 323 | /BuildChar | 323 | /BuildChar |
| 324 | { | 324 | { |
| 325 | exch | 325 | exch |
| 326 | begin | 326 | begin |
| 327 | /setstrokeadjust where {pop true setstrokeadjust} if | 327 | /setstrokeadjust where {pop true setstrokeadjust} if |
| 328 | slice begin | 328 | slice begin |
| 329 | dup q dup mul mod s idiv /i exch def | 329 | dup q dup mul mod s idiv /i exch def |
| 330 | dup q dup mul mod s mod /j exch def | 330 | dup q dup mul mod s mod /j exch def |
| 331 | q dup mul idiv procarray exch get | 331 | q dup mul idiv procarray exch get |
| 332 | /xl j width s div mul def | 332 | /xl j width s div mul def |
| 333 | /xg j 1 add width s div mul def | 333 | /xg j 1 add width s div mul def |
| 334 | /yl i height s div mul def | 334 | /yl i height s div mul def |
| 335 | /yg i 1 add height s div mul def | 335 | /yg i 1 add height s div mul def |
| 336 | uniform | 336 | uniform |
| 337 | { | 337 | { |
| 338 | 1 1 | 338 | 1 1 |
| 339 | } | 339 | } |
| 340 | { | 340 | { |
| 341 | width 0 dtransform | 341 | width 0 dtransform |
| 342 | dup mul exch dup mul add sqrt dup 1 add exch div | 342 | dup mul exch dup mul add sqrt dup 1 add exch div |
| 343 | 0 height dtransform | 343 | 0 height dtransform |
| 344 | dup mul exch dup mul add sqrt dup 1 add exch div | 344 | dup mul exch dup mul add sqrt dup 1 add exch div |
| 345 | } ifelse | 345 | } ifelse |
| 346 | width 0 cache | 346 | width 0 cache |
| 347 | { | 347 | { |
| 348 | xl 4 index mul yl 4 index mul xg 6 index mul yg 6 index mul | 348 | xl 4 index mul yl 4 index mul xg 6 index mul yg 6 index mul |
| 349 | setcachedevice | 349 | setcachedevice |
| 350 | } | 350 | } |
| 351 | { | 351 | { |
| 352 | setcharwidth | 352 | setcharwidth |
| 353 | } ifelse | 353 | } ifelse |
| 354 | gsave | 354 | gsave |
| 355 | scale | 355 | scale |
| 356 | newpath | 356 | newpath |
| 357 | xl yl moveto | 357 | xl yl moveto |
| 358 | xg yl lineto | 358 | xg yl lineto |
| 359 | xg yg lineto | 359 | xg yg lineto |
| 360 | xl yg lineto | 360 | xl yg lineto |
| 361 | closepath | 361 | closepath |
| 362 | clip | 362 | clip |
| 363 | newpath | 363 | newpath |
| 364 | end | 364 | end |
| 365 | end | 365 | end |
| 366 | exec | 366 | exec |
| 367 | grestore | 367 | grestore |
| 368 | } def | 368 | } def |
| 369 | key currentdict definefont | 369 | key currentdict definefont |
| 370 | end | 370 | end |
| 371 | } def | 371 | } def |
| 372 | /patterncachesize | 372 | /patterncachesize |
| 373 | { | 373 | { |
| 374 | gsave | 374 | gsave |
| 375 | newpath | 375 | newpath |
| 376 | 0 0 moveto | 376 | 0 0 moveto |
| 377 | width 0 lineto | 377 | width 0 lineto |
| 378 | width height lineto | 378 | width height lineto |
| 379 | 0 height lineto | 379 | 0 height lineto |
| 380 | closepath | 380 | closepath |
| 381 | patternmatrix setmatrix | 381 | patternmatrix setmatrix |
| 382 | pathbbox | 382 | pathbbox |
| 383 | exch ceiling 4 -1 roll floor sub 3 1 roll | 383 | exch ceiling 4 -1 roll floor sub 3 1 roll |
| 384 | ceiling exch floor sub | 384 | ceiling exch floor sub |
| 385 | mul 1 add | 385 | mul 1 add |
| 386 | grestore | 386 | grestore |
| 387 | } def | 387 | } def |
| 388 | /patterncachelimit | 388 | /patterncachelimit |
| 389 | { | 389 | { |
| 390 | cachestatus 7 1 roll 6 npop 8 mul | 390 | cachestatus 7 1 roll 6 npop 8 mul |
| 391 | } def | 391 | } def |
| 392 | /patternpath | 392 | /patternpath |
| 393 | { | 393 | { |
| 394 | exch dup begin setfont | 394 | exch dup begin setfont |
| 395 | ctm setmatrix | 395 | ctm setmatrix |
| 396 | concat | 396 | concat |
| 397 | slice exch /b exch slice /q get dup mul mul put | 397 | slice exch /b exch slice /q get dup mul mul put |
| 398 | FontMatrix concat | 398 | FontMatrix concat |
| 399 | uniform | 399 | uniform |
| 400 | { | 400 | { |
| 401 | width 0 dtransform round width div exch round width div exch | 401 | width 0 dtransform round width div exch round width div exch |
| 402 | 0 height dtransform round height div exch height div exch | 402 | 0 height dtransform round height div exch height div exch |
| 403 | 0 0 transform round exch round exch | 403 | 0 0 transform round exch round exch |
| 404 | ptm astore setmatrix | 404 | ptm astore setmatrix |
| 405 | } | 405 | } |
| 406 | { | 406 | { |
| 407 | ptm currentmatrix pop | 407 | ptm currentmatrix pop |
| 408 | } ifelse | 408 | } ifelse |
| 409 | {currentpoint} stopped not | 409 | {currentpoint} stopped not |
| 410 | { | 410 | { |
| 411 | 2 npop | 411 | 2 npop |
| 412 | pathbbox | 412 | pathbbox |
| 413 | true | 413 | true |
| 414 | 4 index 3 index eq | 414 | 4 index 3 index eq |
| 415 | 4 index 3 index eq | 415 | 4 index 3 index eq |
| 416 | and | 416 | and |
| 417 | { | 417 | { |
| 418 | pop false | 418 | pop false |
| 419 | { | 419 | { |
| 420 | {2 npop} | 420 | {2 npop} |
| 421 | {3 npop true} | 421 | {3 npop true} |
| 422 | {7 npop true} | 422 | {7 npop true} |
| 423 | {pop true} | 423 | {pop true} |
| 424 | pathforall | 424 | pathforall |
| 425 | } stopped | 425 | } stopped |
| 426 | { | 426 | { |
| 427 | 5 npop true | 427 | 5 npop true |
| 428 | } if | 428 | } if |
| 429 | } if | 429 | } if |
| 430 | { | 430 | { |
| 431 | height div ceiling height mul 4 1 roll | 431 | height div ceiling height mul 4 1 roll |
| 432 | width div ceiling width mul 4 1 roll | 432 | width div ceiling width mul 4 1 roll |
| 433 | height div floor height mul 4 1 roll | 433 | height div floor height mul 4 1 roll |
| 434 | width div floor width mul 4 1 roll | 434 | width div floor width mul 4 1 roll |
| 435 | 2 index sub height div ceiling cvi exch | 435 | 2 index sub height div ceiling cvi exch |
| 436 | 3 index sub width div ceiling cvi exch | 436 | 3 index sub width div ceiling cvi exch |
| 437 | 4 2 roll moveto | 437 | 4 2 roll moveto |
| 438 | FontMatrix mtx invertmatrix | 438 | FontMatrix mtx invertmatrix |
| 439 | dup dup 4 get exch 5 get rmoveto | 439 | dup dup 4 get exch 5 get rmoveto |
| 440 | ptm ptm concatmatrix pop | 440 | ptm ptm concatmatrix pop |
| 441 | slice /s | 441 | slice /s |
| 442 | patterncachesize patterncachelimit div ceiling sqrt ceiling cvi | 442 | patterncachesize patterncachelimit div ceiling sqrt ceiling cvi |
| 443 | dup slice /q get gt | 443 | dup slice /q get gt |
| 444 | { | 444 | { |
| 445 | pop slice /q get | 445 | pop slice /q get |
| 446 | } if | 446 | } if |
| 447 | put | 447 | put |
| 448 | 0 1 slice /s get dup mul 1 sub | 448 | 0 1 slice /s get dup mul 1 sub |
| 449 | { | 449 | { |
| 450 | slice /b get add | 450 | slice /b get add |
| 451 | gsave | 451 | gsave |
| 452 | 0 1 str length 1 sub | 452 | 0 1 str length 1 sub |
| 453 | { | 453 | { |
| 454 | str exch 2 index put | 454 | str exch 2 index put |
| 455 | } for | 455 | } for |
| 456 | pop | 456 | pop |
| 457 | dup | 457 | dup |
| 458 | { | 458 | { |
| 459 | gsave | 459 | gsave |
| 460 | ptm setmatrix | 460 | ptm setmatrix |
| 461 | 1 index str length idiv {str show} repeat | 461 | 1 index str length idiv {str show} repeat |
| 462 | 1 index str length mod str exch 0 exch getinterval show | 462 | 1 index str length mod str exch 0 exch getinterval show |
| 463 | grestore | 463 | grestore |
| 464 | 0 height rmoveto | 464 | 0 height rmoveto |
| 465 | } repeat | 465 | } repeat |
| 466 | grestore | 466 | grestore |
| 467 | } for | 467 | } for |
| 468 | 2 npop | 468 | 2 npop |
| 469 | } | 469 | } |
| 470 | { | 470 | { |
| 471 | 4 npop | 471 | 4 npop |
| 472 | } ifelse | 472 | } ifelse |
| 473 | } if | 473 | } if |
| 474 | end | 474 | end |
| 475 | } def | 475 | } def |
| 476 | /patternclip | 476 | /patternclip |
| 477 | { | 477 | { |
| 478 | clip | 478 | clip |
| 479 | } def | 479 | } def |
| 480 | /patternstrokepath | 480 | /patternstrokepath |
| 481 | { | 481 | { |
| 482 | strokepath | 482 | strokepath |
| 483 | } def | 483 | } def |
| 484 | /patternmatrix | 484 | /patternmatrix |
| 485 | matrix def | 485 | matrix def |
| 486 | /patternfill | 486 | /patternfill |
| 487 | { | 487 | { |
| 488 | dup type /dicttype eq | 488 | dup type /dicttype eq |
| 489 | { | 489 | { |
| 490 | Adobe_pattern_AI3 /patternmatrix get | 490 | Adobe_pattern_AI3 /patternmatrix get |
| 491 | } if | 491 | } if |
| 492 | gsave | 492 | gsave |
| 493 | patternclip | 493 | patternclip |
| 494 | Adobe_pattern_AI3 /patternpath get exec | 494 | Adobe_pattern_AI3 /patternpath get exec |
| 495 | grestore | 495 | grestore |
| 496 | newpath | 496 | newpath |
| 497 | } def | 497 | } def |
| 498 | /patternstroke | 498 | /patternstroke |
| 499 | { | 499 | { |
| 500 | dup type /dicttype eq | 500 | dup type /dicttype eq |
| 501 | { | 501 | { |
| 502 | Adobe_pattern_AI3 /patternmatrix get | 502 | Adobe_pattern_AI3 /patternmatrix get |
| 503 | } if | 503 | } if |
| 504 | gsave | 504 | gsave |
| 505 | patternstrokepath | 505 | patternstrokepath |
| 506 | true | 506 | true |
| 507 | { | 507 | { |
| 508 | { | 508 | { |
| 509 | { | 509 | { |
| 510 | newpath | 510 | newpath |
| 511 | moveto | 511 | moveto |
| 512 | } | 512 | } |
| 513 | { | 513 | { |
| 514 | lineto | 514 | lineto |
| 515 | } | 515 | } |
| 516 | { | 516 | { |
| 517 | curveto | 517 | curveto |
| 518 | } | 518 | } |
| 519 | { | 519 | { |
| 520 | closepath | 520 | closepath |
| 521 | 3 copy | 521 | 3 copy |
| 522 | Adobe_pattern_AI3 /patternfill get exec | 522 | Adobe_pattern_AI3 /patternfill get exec |
| 523 | } pathforall | 523 | } pathforall |
| 524 | 3 npop | 524 | 3 npop |
| 525 | } stopped | 525 | } stopped |
| 526 | { | 526 | { |
| 527 | 5 npop | 527 | 5 npop |
| 528 | patternclip | 528 | patternclip |
| 529 | Adobe_pattern_AI3 /patternfill get exec | 529 | Adobe_pattern_AI3 /patternfill get exec |
| 530 | } if | 530 | } if |
| 531 | } | 531 | } |
| 532 | { | 532 | { |
| 533 | patternclip | 533 | patternclip |
| 534 | Adobe_pattern_AI3 /patternfill get exec | 534 | Adobe_pattern_AI3 /patternfill get exec |
| 535 | } ifelse | 535 | } ifelse |
| 536 | grestore | 536 | grestore |
| 537 | newpath | 537 | newpath |
| 538 | } def | 538 | } def |
| 539 | /patternashow | 539 | /patternashow |
| 540 | { | 540 | { |
| 541 | 3 index type /dicttype eq | 541 | 3 index type /dicttype eq |
| 542 | { | 542 | { |
| 543 | Adobe_pattern_AI3 /patternmatrix get 4 1 roll | 543 | Adobe_pattern_AI3 /patternmatrix get 4 1 roll |
| 544 | } if | 544 | } if |
| 545 | { | 545 | { |
| 546 | 2 npop (0) exch | 546 | 2 npop (0) exch |
| 547 | 2 copy 0 exch put pop | 547 | 2 copy 0 exch put pop |
| 548 | gsave | 548 | gsave |
| 549 | false charpath currentpoint | 549 | false charpath currentpoint |
| 550 | 6 index 6 index 6 index | 550 | 6 index 6 index 6 index |
| 551 | Adobe_pattern_AI3 /patternfill get exec | 551 | Adobe_pattern_AI3 /patternfill get exec |
| 552 | grestore | 552 | grestore |
| 553 | newpath moveto | 553 | newpath moveto |
| 554 | 2 copy rmoveto | 554 | 2 copy rmoveto |
| 555 | } exch cshow | 555 | } exch cshow |
| 556 | 5 npop | 556 | 5 npop |
| 557 | } def | 557 | } def |
| 558 | /patternawidthshow | 558 | /patternawidthshow |
| 559 | { | 559 | { |
| 560 | 6 index type /dicttype eq | 560 | 6 index type /dicttype eq |
| 561 | { | 561 | { |
| 562 | Adobe_pattern_AI3 /patternmatrix get 7 1 roll | 562 | Adobe_pattern_AI3 /patternmatrix get 7 1 roll |
| 563 | } if | 563 | } if |
| 564 | { | 564 | { |
| 565 | 2 npop (0) exch | 565 | 2 npop (0) exch |
| 566 | 2 copy 0 exch put | 566 | 2 copy 0 exch put |
| 567 | gsave | 567 | gsave |
| 568 | _sp eq {5 index 5 index rmoveto} if | 568 | _sp eq {5 index 5 index rmoveto} if |
| 569 | false charpath currentpoint | 569 | false charpath currentpoint |
| 570 | 9 index 9 index 9 index | 570 | 9 index 9 index 9 index |
| 571 | Adobe_pattern_AI3 /patternfill get exec | 571 | Adobe_pattern_AI3 /patternfill get exec |
| 572 | grestore | 572 | grestore |
| 573 | newpath moveto | 573 | newpath moveto |
| 574 | 2 copy rmoveto | 574 | 2 copy rmoveto |
| 575 | } exch cshow | 575 | } exch cshow |
| 576 | 8 npop | 576 | 8 npop |
| 577 | } def | 577 | } def |
| 578 | /patternashowstroke | 578 | /patternashowstroke |
| 579 | { | 579 | { |
| 580 | 4 index type /dicttype eq | 580 | 4 index type /dicttype eq |
| 581 | { | 581 | { |
| 582 | patternmatrix /patternmatrix get 5 1 roll | 582 | patternmatrix /patternmatrix get 5 1 roll |
| 583 | } if | 583 | } if |
| 584 | 4 1 roll | 584 | 4 1 roll |
| 585 | { | 585 | { |
| 586 | 2 npop (0) exch | 586 | 2 npop (0) exch |
| 587 | 2 copy 0 exch put pop | 587 | 2 copy 0 exch put pop |
| 588 | gsave | 588 | gsave |
| 589 | false charpath | 589 | false charpath |
| 590 | currentpoint | 590 | currentpoint |
| 591 | 4 index setmatrix | 591 | 4 index setmatrix |
| 592 | 7 index 7 index 7 index | 592 | 7 index 7 index 7 index |
| 593 | Adobe_pattern_AI3 /patternstroke get exec | 593 | Adobe_pattern_AI3 /patternstroke get exec |
| 594 | grestore | 594 | grestore |
| 595 | newpath moveto | 595 | newpath moveto |
| 596 | 2 copy rmoveto | 596 | 2 copy rmoveto |
| 597 | } exch cshow | 597 | } exch cshow |
| 598 | 6 npop | 598 | 6 npop |
| 599 | } def | 599 | } def |
| 600 | /patternawidthshowstroke | 600 | /patternawidthshowstroke |
| 601 | { | 601 | { |
| 602 | 7 index type /dicttype eq | 602 | 7 index type /dicttype eq |
| 603 | { | 603 | { |
| 604 | patternmatrix /patternmatrix get 8 1 roll | 604 | patternmatrix /patternmatrix get 8 1 roll |
| 605 | } if | 605 | } if |
| 606 | 7 1 roll | 606 | 7 1 roll |
| 607 | { | 607 | { |
| 608 | 2 npop (0) exch | 608 | 2 npop (0) exch |
| 609 | 2 copy 0 exch put | 609 | 2 copy 0 exch put |
| 610 | gsave | 610 | gsave |
| 611 | _sp eq {5 index 5 index rmoveto} if | 611 | _sp eq {5 index 5 index rmoveto} if |
| 612 | false charpath currentpoint | 612 | false charpath currentpoint |
| 613 | 7 index setmatrix | 613 | 7 index setmatrix |
| 614 | 10 index 10 index 10 index | 614 | 10 index 10 index 10 index |
| 615 | Adobe_pattern_AI3 /patternstroke get exec | 615 | Adobe_pattern_AI3 /patternstroke get exec |
| 616 | grestore | 616 | grestore |
| 617 | newpath moveto | 617 | newpath moveto |
| 618 | 2 copy rmoveto | 618 | 2 copy rmoveto |
| 619 | } exch cshow | 619 | } exch cshow |
| 620 | 9 npop | 620 | 9 npop |
| 621 | } def | 621 | } def |
| 622 | currentdict readonly pop end | 622 | currentdict readonly pop end |
| 623 | setpacking | 623 | setpacking |
| 624 | %%EndResource | 624 | %%EndResource |
| 625 | %%BeginResource: procset Adobe_Illustrator_AI3 1.1 0 | 625 | %%BeginResource: procset Adobe_Illustrator_AI3 1.1 0 |
| 626 | %%Title: (Adobe Illustrator (R) Version 3.0 Full Prolog) | 626 | %%Title: (Adobe Illustrator (R) Version 3.0 Full Prolog) |
| 627 | %%Version: 1.1 0 | 627 | %%Version: 1.1 0 |
| 628 | %%CreationDate: (3/7/1994) () | 628 | %%CreationDate: (3/7/1994) () |
| 629 | %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) | 629 | %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) |
| 630 | currentpacking true setpacking | 630 | currentpacking true setpacking |
| 631 | userdict /Adobe_Illustrator_AI3 71 dict dup begin put | 631 | userdict /Adobe_Illustrator_AI3 71 dict dup begin put |
| 632 | /initialize | 632 | /initialize |
| 633 | { | 633 | { |
| 634 | userdict /Adobe_Illustrator_AI3_vars 67 dict dup begin put | 634 | userdict /Adobe_Illustrator_AI3_vars 67 dict dup begin put |
| 635 | /_lp /none def | 635 | /_lp /none def |
| 636 | /_pf {} def | 636 | /_pf {} def |
| 637 | /_ps {} def | 637 | /_ps {} def |
| 638 | /_psf {} def | 638 | /_psf {} def |
| 639 | /_pss {} def | 639 | /_pss {} def |
| 640 | /_pjsf {} def | 640 | /_pjsf {} def |
| 641 | /_pjss {} def | 641 | /_pjss {} def |
| 642 | /_pola 0 def | 642 | /_pola 0 def |
| 643 | /_doClip 0 def | 643 | /_doClip 0 def |
| 644 | /cf currentflat def | 644 | /cf currentflat def |
| 645 | /_tm matrix def | 645 | /_tm matrix def |
| 646 | /_renderStart [/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0] def | 646 | /_renderStart [/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0] def |
| 647 | /_renderEnd [null null null null /i1 /i1 /i1 /i1] def | 647 | /_renderEnd [null null null null /i1 /i1 /i1 /i1] def |
| 648 | /_render -1 def | 648 | /_render -1 def |
| 649 | /_rise 0 def | 649 | /_rise 0 def |
| 650 | /_ax 0 def | 650 | /_ax 0 def |
| 651 | /_ay 0 def | 651 | /_ay 0 def |
| 652 | /_cx 0 def | 652 | /_cx 0 def |
| 653 | /_cy 0 def | 653 | /_cy 0 def |
| 654 | /_leading [0 0] def | 654 | /_leading [0 0] def |
| 655 | /_ctm matrix def | 655 | /_ctm matrix def |
| 656 | /_mtx matrix def | 656 | /_mtx matrix def |
| 657 | /_sp 16#020 def | 657 | /_sp 16#020 def |
| 658 | /_hyphen (-) def | 658 | /_hyphen (-) def |
| 659 | /_fScl 0 def | 659 | /_fScl 0 def |
| 660 | /_cnt 0 def | 660 | /_cnt 0 def |
| 661 | /_hs 1 def | 661 | /_hs 1 def |
| 662 | /_nativeEncoding 0 def | 662 | /_nativeEncoding 0 def |
| 663 | /_useNativeEncoding 0 def | 663 | /_useNativeEncoding 0 def |
| 664 | /_tempEncode 0 def | 664 | /_tempEncode 0 def |
| 665 | /_pntr 0 def | 665 | /_pntr 0 def |
| 666 | /_tDict 2 dict def | 666 | /_tDict 2 dict def |
| 667 | /_wv 0 def | 667 | /_wv 0 def |
| 668 | /Tx {} def | 668 | /Tx {} def |
| 669 | /Tj {} def | 669 | /Tj {} def |
| 670 | /CRender {} def | 670 | /CRender {} def |
| 671 | /_AI3_savepage {} def | 671 | /_AI3_savepage {} def |
| 672 | /_gf null def | 672 | /_gf null def |
| 673 | /_cf 4 array def | 673 | /_cf 4 array def |
| 674 | /_if null def | 674 | /_if null def |
| 675 | /_of false def | 675 | /_of false def |
| 676 | /_fc {} def | 676 | /_fc {} def |
| 677 | /_gs null def | 677 | /_gs null def |
| 678 | /_cs 4 array def | 678 | /_cs 4 array def |
| 679 | /_is null def | 679 | /_is null def |
| 680 | /_os false def | 680 | /_os false def |
| 681 | /_sc {} def | 681 | /_sc {} def |
| 682 | /_pd 1 dict def | 682 | /_pd 1 dict def |
| 683 | /_ed 15 dict def | 683 | /_ed 15 dict def |
| 684 | /_pm matrix def | 684 | /_pm matrix def |
| 685 | /_fm null def | 685 | /_fm null def |
| 686 | /_fd null def | 686 | /_fd null def |
| 687 | /_fdd null def | 687 | /_fdd null def |
| 688 | /_sm null def | 688 | /_sm null def |
| 689 | /_sd null def | 689 | /_sd null def |
| 690 | /_sdd null def | 690 | /_sdd null def |
| 691 | /_i null def | 691 | /_i null def |
| 692 | Adobe_Illustrator_AI3 begin | 692 | Adobe_Illustrator_AI3 begin |
| 693 | Adobe_Illustrator_AI3 dup /nc get begin | 693 | Adobe_Illustrator_AI3 dup /nc get begin |
| 694 | { | 694 | { |
| 695 | dup xcheck | 695 | dup xcheck |
| 696 | { | 696 | { |
| 697 | bind | 697 | bind |
| 698 | } if | 698 | } if |
| 699 | pop pop | 699 | pop pop |
| 700 | } forall | 700 | } forall |
| 701 | end | 701 | end |
| 702 | end | 702 | end |
| 703 | end | 703 | end |
| 704 | Adobe_Illustrator_AI3 begin | 704 | Adobe_Illustrator_AI3 begin |
| 705 | Adobe_Illustrator_AI3_vars begin | 705 | Adobe_Illustrator_AI3_vars begin |
| 706 | newpath | 706 | newpath |
| 707 | } def | 707 | } def |
| 708 | /terminate | 708 | /terminate |
| 709 | { | 709 | { |
| 710 | end | 710 | end |
| 711 | end | 711 | end |
| 712 | } def | 712 | } def |
| 713 | /_ | 713 | /_ |
| 714 | null def | 714 | null def |
| 715 | /ddef | 715 | /ddef |
| 716 | { | 716 | { |
| 717 | Adobe_Illustrator_AI3_vars 3 1 roll put | 717 | Adobe_Illustrator_AI3_vars 3 1 roll put |
| 718 | } def | 718 | } def |
| 719 | /xput | 719 | /xput |
| 720 | { | 720 | { |
| 721 | dup load dup length exch maxlength eq | 721 | dup load dup length exch maxlength eq |
| 722 | { | 722 | { |
| 723 | dup dup load dup | 723 | dup dup load dup |
| 724 | length 2 mul dict copy def | 724 | length 2 mul dict copy def |
| 725 | } if | 725 | } if |
| 726 | load begin def end | 726 | load begin def end |
| 727 | } def | 727 | } def |
| 728 | /npop | 728 | /npop |
| 729 | { | 729 | { |
| 730 | { | 730 | { |
| 731 | pop | 731 | pop |
| 732 | } repeat | 732 | } repeat |
| 733 | } def | 733 | } def |
| 734 | /sw | 734 | /sw |
| 735 | { | 735 | { |
| 736 | dup length exch stringwidth | 736 | dup length exch stringwidth |
| 737 | exch 5 -1 roll 3 index mul add | 737 | exch 5 -1 roll 3 index mul add |
| 738 | 4 1 roll 3 1 roll mul add | 738 | 4 1 roll 3 1 roll mul add |
| 739 | } def | 739 | } def |
| 740 | /swj | 740 | /swj |
| 741 | { | 741 | { |
| 742 | dup 4 1 roll | 742 | dup 4 1 roll |
| 743 | dup length exch stringwidth | 743 | dup length exch stringwidth |
| 744 | exch 5 -1 roll 3 index mul add | 744 | exch 5 -1 roll 3 index mul add |
| 745 | 4 1 roll 3 1 roll mul add | 745 | 4 1 roll 3 1 roll mul add |
| 746 | 6 2 roll /_cnt 0 ddef | 746 | 6 2 roll /_cnt 0 ddef |
| 747 | {1 index eq {/_cnt _cnt 1 add ddef} if} forall pop | 747 | {1 index eq {/_cnt _cnt 1 add ddef} if} forall pop |
| 748 | exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop | 748 | exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop |
| 749 | } def | 749 | } def |
| 750 | /ss | 750 | /ss |
| 751 | { | 751 | { |
| 752 | 4 1 roll | 752 | 4 1 roll |
| 753 | { | 753 | { |
| 754 | 2 npop | 754 | 2 npop |
| 755 | (0) exch 2 copy 0 exch put pop | 755 | (0) exch 2 copy 0 exch put pop |
| 756 | gsave | 756 | gsave |
| 757 | false charpath currentpoint | 757 | false charpath currentpoint |
| 758 | 4 index setmatrix | 758 | 4 index setmatrix |
| 759 | stroke | 759 | stroke |
| 760 | grestore | 760 | grestore |
| 761 | moveto | 761 | moveto |
| 762 | 2 copy rmoveto | 762 | 2 copy rmoveto |
| 763 | } exch cshow | 763 | } exch cshow |
| 764 | 3 npop | 764 | 3 npop |
| 765 | } def | 765 | } def |
| 766 | /jss | 766 | /jss |
| 767 | { | 767 | { |
| 768 | 4 1 roll | 768 | 4 1 roll |
| 769 | { | 769 | { |
| 770 | 2 npop | 770 | 2 npop |
| 771 | (0) exch 2 copy 0 exch put | 771 | (0) exch 2 copy 0 exch put |
| 772 | gsave | 772 | gsave |
| 773 | _sp eq | 773 | _sp eq |
| 774 | { | 774 | { |
| 775 | exch 6 index 6 index 6 index 5 -1 roll widthshow | 775 | exch 6 index 6 index 6 index 5 -1 roll widthshow |
| 776 | currentpoint | 776 | currentpoint |
| 777 | } | 777 | } |
| 778 | { | 778 | { |
| 779 | false charpath currentpoint | 779 | false charpath currentpoint |
| 780 | 4 index setmatrix stroke | 780 | 4 index setmatrix stroke |
| 781 | }ifelse | 781 | }ifelse |
| 782 | grestore | 782 | grestore |
| 783 | moveto | 783 | moveto |
| 784 | 2 copy rmoveto | 784 | 2 copy rmoveto |
| 785 | } exch cshow | 785 | } exch cshow |
| 786 | 6 npop | 786 | 6 npop |
| 787 | } def | 787 | } def |
| 788 | /sp | 788 | /sp |
| 789 | { | 789 | { |
| 790 | { | 790 | { |
| 791 | 2 npop (0) exch | 791 | 2 npop (0) exch |
| 792 | 2 copy 0 exch put pop | 792 | 2 copy 0 exch put pop |
| 793 | false charpath | 793 | false charpath |
| 794 | 2 copy rmoveto | 794 | 2 copy rmoveto |
| 795 | } exch cshow | 795 | } exch cshow |
| 796 | 2 npop | 796 | 2 npop |
| 797 | } def | 797 | } def |
| 798 | /jsp | 798 | /jsp |
| 799 | { | 799 | { |
| 800 | { | 800 | { |
| 801 | 2 npop | 801 | 2 npop |
| 802 | (0) exch 2 copy 0 exch put | 802 | (0) exch 2 copy 0 exch put |
| 803 | _sp eq | 803 | _sp eq |
| 804 | { | 804 | { |
| 805 | exch 5 index 5 index 5 index 5 -1 roll widthshow | 805 | exch 5 index 5 index 5 index 5 -1 roll widthshow |
| 806 | } | 806 | } |
| 807 | { | 807 | { |
| 808 | false charpath | 808 | false charpath |
| 809 | }ifelse | 809 | }ifelse |
| 810 | 2 copy rmoveto | 810 | 2 copy rmoveto |
| 811 | } exch cshow | 811 | } exch cshow |
| 812 | 5 npop | 812 | 5 npop |
| 813 | } def | 813 | } def |
| 814 | /pl | 814 | /pl |
| 815 | { | 815 | { |
| 816 | transform | 816 | transform |
| 817 | 0.25 sub round 0.25 add exch | 817 | 0.25 sub round 0.25 add exch |
| 818 | 0.25 sub round 0.25 add exch | 818 | 0.25 sub round 0.25 add exch |
| 819 | itransform | 819 | itransform |
| 820 | } def | 820 | } def |
| 821 | /setstrokeadjust where | 821 | /setstrokeadjust where |
| 822 | { | 822 | { |
| 823 | pop true setstrokeadjust | 823 | pop true setstrokeadjust |
| 824 | /c | 824 | /c |
| 825 | { | 825 | { |
| 826 | curveto | 826 | curveto |
| 827 | } def | 827 | } def |
| 828 | /C | 828 | /C |
| 829 | /c load def | 829 | /c load def |
| 830 | /v | 830 | /v |
| 831 | { | 831 | { |
| 832 | currentpoint 6 2 roll curveto | 832 | currentpoint 6 2 roll curveto |
| 833 | } def | 833 | } def |
| 834 | /V | 834 | /V |
| 835 | /v load def | 835 | /v load def |
| 836 | /y | 836 | /y |
| 837 | { | 837 | { |
| 838 | 2 copy curveto | 838 | 2 copy curveto |
| 839 | } def | 839 | } def |
| 840 | /Y | 840 | /Y |
| 841 | /y load def | 841 | /y load def |
| 842 | /l | 842 | /l |
| 843 | { | 843 | { |
| 844 | lineto | 844 | lineto |
| 845 | } def | 845 | } def |
| 846 | /L | 846 | /L |
| 847 | /l load def | 847 | /l load def |
| 848 | /m | 848 | /m |
| 849 | { | 849 | { |
| 850 | moveto | 850 | moveto |
| 851 | } def | 851 | } def |
| 852 | } | 852 | } |
| 853 | { | 853 | { |
| 854 | /c | 854 | /c |
| 855 | { | 855 | { |
| 856 | pl curveto | 856 | pl curveto |
| 857 | } def | 857 | } def |
| 858 | /C | 858 | /C |
| 859 | /c load def | 859 | /c load def |
| 860 | /v | 860 | /v |
| 861 | { | 861 | { |
| 862 | currentpoint 6 2 roll pl curveto | 862 | currentpoint 6 2 roll pl curveto |
| 863 | } def | 863 | } def |
| 864 | /V | 864 | /V |
| 865 | /v load def | 865 | /v load def |
| 866 | /y | 866 | /y |
| 867 | { | 867 | { |
| 868 | pl 2 copy curveto | 868 | pl 2 copy curveto |
| 869 | } def | 869 | } def |
| 870 | /Y | 870 | /Y |
| 871 | /y load def | 871 | /y load def |
| 872 | /l | 872 | /l |
| 873 | { | 873 | { |
| 874 | pl lineto | 874 | pl lineto |
| 875 | } def | 875 | } def |
| 876 | /L | 876 | /L |
| 877 | /l load def | 877 | /l load def |
| 878 | /m | 878 | /m |
| 879 | { | 879 | { |
| 880 | pl moveto | 880 | pl moveto |
| 881 | } def | 881 | } def |
| 882 | } ifelse | 882 | } ifelse |
| 883 | /d | 883 | /d |
| 884 | { | 884 | { |
| 885 | setdash | 885 | setdash |
| 886 | } def | 886 | } def |
| 887 | /cf {} def | 887 | /cf {} def |
| 888 | /i | 888 | /i |
| 889 | { | 889 | { |
| 890 | dup 0 eq | 890 | dup 0 eq |
| 891 | { | 891 | { |
| 892 | pop cf | 892 | pop cf |
| 893 | } if | 893 | } if |
| 894 | setflat | 894 | setflat |
| 895 | } def | 895 | } def |
| 896 | /j | 896 | /j |
| 897 | { | 897 | { |
| 898 | setlinejoin | 898 | setlinejoin |
| 899 | } def | 899 | } def |
| 900 | /J | 900 | /J |
| 901 | { | 901 | { |
| 902 | setlinecap | 902 | setlinecap |
| 903 | } def | 903 | } def |
| 904 | /M | 904 | /M |
| 905 | { | 905 | { |
| 906 | setmiterlimit | 906 | setmiterlimit |
| 907 | } def | 907 | } def |
| 908 | /w | 908 | /w |
| 909 | { | 909 | { |
| 910 | setlinewidth | 910 | setlinewidth |
| 911 | } def | 911 | } def |
| 912 | /H | 912 | /H |
| 913 | {} def | 913 | {} def |
| 914 | /h | 914 | /h |
| 915 | { | 915 | { |
| 916 | closepath | 916 | closepath |
| 917 | } def | 917 | } def |
| 918 | /N | 918 | /N |
| 919 | { | 919 | { |
| 920 | _pola 0 eq | 920 | _pola 0 eq |
| 921 | { | 921 | { |
| 922 | _doClip 1 eq {clip /_doClip 0 ddef} if | 922 | _doClip 1 eq {clip /_doClip 0 ddef} if |
| 923 | newpath | 923 | newpath |
| 924 | } | 924 | } |
| 925 | { | 925 | { |
| 926 | /CRender {N} ddef | 926 | /CRender {N} ddef |
| 927 | }ifelse | 927 | }ifelse |
| 928 | } def | 928 | } def |
| 929 | /n | 929 | /n |
| 930 | {N} def | 930 | {N} def |
| 931 | /F | 931 | /F |
| 932 | { | 932 | { |
| 933 | _pola 0 eq | 933 | _pola 0 eq |
| 934 | { | 934 | { |
| 935 | _doClip 1 eq | 935 | _doClip 1 eq |
| 936 | { | 936 | { |
| 937 | gsave _pf grestore clip newpath /_lp /none ddef _fc | 937 | gsave _pf grestore clip newpath /_lp /none ddef _fc |
| 938 | /_doClip 0 ddef | 938 | /_doClip 0 ddef |
| 939 | } | 939 | } |
| 940 | { | 940 | { |
| 941 | _pf | 941 | _pf |
| 942 | }ifelse | 942 | }ifelse |
| 943 | } | 943 | } |
| 944 | { | 944 | { |
| 945 | /CRender {F} ddef | 945 | /CRender {F} ddef |
| 946 | }ifelse | 946 | }ifelse |
| 947 | } def | 947 | } def |
| 948 | /f | 948 | /f |
| 949 | { | 949 | { |
| 950 | closepath | 950 | closepath |
| 951 | F | 951 | F |
| 952 | } def | 952 | } def |
| 953 | /S | 953 | /S |
| 954 | { | 954 | { |
| 955 | _pola 0 eq | 955 | _pola 0 eq |
| 956 | { | 956 | { |
| 957 | _doClip 1 eq | 957 | _doClip 1 eq |
| 958 | { | 958 | { |
| 959 | gsave _ps grestore clip newpath /_lp /none ddef _sc | 959 | gsave _ps grestore clip newpath /_lp /none ddef _sc |
| 960 | /_doClip 0 ddef | 960 | /_doClip 0 ddef |
| 961 | } | 961 | } |
| 962 | { | 962 | { |
| 963 | _ps | 963 | _ps |
| 964 | }ifelse | 964 | }ifelse |
| 965 | } | 965 | } |
| 966 | { | 966 | { |
| 967 | /CRender {S} ddef | 967 | /CRender {S} ddef |
| 968 | }ifelse | 968 | }ifelse |
| 969 | } def | 969 | } def |
| 970 | /s | 970 | /s |
| 971 | { | 971 | { |
| 972 | closepath | 972 | closepath |
| 973 | S | 973 | S |
| 974 | } def | 974 | } def |
| 975 | /B | 975 | /B |
| 976 | { | 976 | { |
| 977 | _pola 0 eq | 977 | _pola 0 eq |
| 978 | { | 978 | { |
| 979 | _doClip 1 eq | 979 | _doClip 1 eq |
| 980 | gsave F grestore | 980 | gsave F grestore |
| 981 | { | 981 | { |
| 982 | gsave S grestore clip newpath /_lp /none ddef _sc | 982 | gsave S grestore clip newpath /_lp /none ddef _sc |
| 983 | /_doClip 0 ddef | 983 | /_doClip 0 ddef |
| 984 | } | 984 | } |
| 985 | { | 985 | { |
| 986 | S | 986 | S |
| 987 | }ifelse | 987 | }ifelse |
| 988 | } | 988 | } |
| 989 | { | 989 | { |
| 990 | /CRender {B} ddef | 990 | /CRender {B} ddef |
| 991 | }ifelse | 991 | }ifelse |
| 992 | } def | 992 | } def |
| 993 | /b | 993 | /b |
| 994 | { | 994 | { |
| 995 | closepath | 995 | closepath |
| 996 | B | 996 | B |
| 997 | } def | 997 | } def |
| 998 | /W | 998 | /W |
| 999 | { | 999 | { |
| 1000 | /_doClip 1 ddef | 1000 | /_doClip 1 ddef |
| 1001 | } def | 1001 | } def |
| 1002 | /* | 1002 | /* |
| 1003 | { | 1003 | { |
| 1004 | count 0 ne | 1004 | count 0 ne |
| 1005 | { | 1005 | { |
| 1006 | dup type (stringtype) eq {pop} if | 1006 | dup type (stringtype) eq {pop} if |
| 1007 | } if | 1007 | } if |
| 1008 | _pola 0 eq {newpath} if | 1008 | _pola 0 eq {newpath} if |
| 1009 | } def | 1009 | } def |
| 1010 | /u | 1010 | /u |
| 1011 | {} def | 1011 | {} def |
| 1012 | /U | 1012 | /U |
| 1013 | {} def | 1013 | {} def |
| 1014 | /q | 1014 | /q |
| 1015 | { | 1015 | { |
| 1016 | _pola 0 eq {gsave} if | 1016 | _pola 0 eq {gsave} if |
| 1017 | } def | 1017 | } def |
| 1018 | /Q | 1018 | /Q |
| 1019 | { | 1019 | { |
| 1020 | _pola 0 eq {grestore} if | 1020 | _pola 0 eq {grestore} if |
| 1021 | } def | 1021 | } def |
| 1022 | /*u | 1022 | /*u |
| 1023 | { | 1023 | { |
| 1024 | _pola 1 add /_pola exch ddef | 1024 | _pola 1 add /_pola exch ddef |
| 1025 | } def | 1025 | } def |
| 1026 | /*U | 1026 | /*U |
| 1027 | { | 1027 | { |
| 1028 | _pola 1 sub /_pola exch ddef | 1028 | _pola 1 sub /_pola exch ddef |
| 1029 | _pola 0 eq {CRender} if | 1029 | _pola 0 eq {CRender} if |
| 1030 | } def | 1030 | } def |
| 1031 | /D | 1031 | /D |
| 1032 | {pop} def | 1032 | {pop} def |
| 1033 | /*w | 1033 | /*w |
| 1034 | {} def | 1034 | {} def |
| 1035 | /*W | 1035 | /*W |
| 1036 | {} def | 1036 | {} def |
| 1037 | /` | 1037 | /` |
| 1038 | { | 1038 | { |
| 1039 | /_i save ddef | 1039 | /_i save ddef |
| 1040 | 6 1 roll 4 npop | 1040 | 6 1 roll 4 npop |
| 1041 | concat pop | 1041 | concat pop |
| 1042 | userdict begin | 1042 | userdict begin |
| 1043 | /showpage {} def | 1043 | /showpage {} def |
| 1044 | 0 setgray | 1044 | 0 setgray |
| 1045 | 0 setlinecap | 1045 | 0 setlinecap |
| 1046 | 1 setlinewidth | 1046 | 1 setlinewidth |
| 1047 | 0 setlinejoin | 1047 | 0 setlinejoin |
| 1048 | 10 setmiterlimit | 1048 | 10 setmiterlimit |
| 1049 | [] 0 setdash | 1049 | [] 0 setdash |
| 1050 | /setstrokeadjust where {pop false setstrokeadjust} if | 1050 | /setstrokeadjust where {pop false setstrokeadjust} if |
| 1051 | newpath | 1051 | newpath |
| 1052 | 0 setgray | 1052 | 0 setgray |
| 1053 | false setoverprint | 1053 | false setoverprint |
| 1054 | } def | 1054 | } def |
| 1055 | /~ | 1055 | /~ |
| 1056 | { | 1056 | { |
| 1057 | end | 1057 | end |
| 1058 | _i restore | 1058 | _i restore |
| 1059 | } def | 1059 | } def |
| 1060 | /@ | 1060 | /@ |
| 1061 | {} def | 1061 | {} def |
| 1062 | /& | 1062 | /& |
| 1063 | {} def | 1063 | {} def |
| 1064 | /O | 1064 | /O |
| 1065 | { | 1065 | { |
| 1066 | 0 ne | 1066 | 0 ne |
| 1067 | /_of exch ddef | 1067 | /_of exch ddef |
| 1068 | /_lp /none ddef | 1068 | /_lp /none ddef |
| 1069 | } def | 1069 | } def |
| 1070 | /R | 1070 | /R |
| 1071 | { | 1071 | { |
| 1072 | 0 ne | 1072 | 0 ne |
| 1073 | /_os exch ddef | 1073 | /_os exch ddef |
| 1074 | /_lp /none ddef | 1074 | /_lp /none ddef |
| 1075 | } def | 1075 | } def |
| 1076 | /g | 1076 | /g |
| 1077 | { | 1077 | { |
| 1078 | /_gf exch ddef | 1078 | /_gf exch ddef |
| 1079 | /_fc | 1079 | /_fc |
| 1080 | { | 1080 | { |
| 1081 | _lp /fill ne | 1081 | _lp /fill ne |
| 1082 | { | 1082 | { |
| 1083 | _of setoverprint | 1083 | _of setoverprint |
| 1084 | _gf setgray | 1084 | _gf setgray |
| 1085 | /_lp /fill ddef | 1085 | /_lp /fill ddef |
| 1086 | } if | 1086 | } if |
| 1087 | } ddef | 1087 | } ddef |
| 1088 | /_pf | 1088 | /_pf |
| 1089 | { | 1089 | { |
| 1090 | _fc | 1090 | _fc |
| 1091 | fill | 1091 | fill |
| 1092 | } ddef | 1092 | } ddef |
| 1093 | /_psf | 1093 | /_psf |
| 1094 | { | 1094 | { |
| 1095 | _fc | 1095 | _fc |
| 1096 | ashow | 1096 | ashow |
| 1097 | } ddef | 1097 | } ddef |
| 1098 | /_pjsf | 1098 | /_pjsf |
| 1099 | { | 1099 | { |
| 1100 | _fc | 1100 | _fc |
| 1101 | awidthshow | 1101 | awidthshow |
| 1102 | } ddef | 1102 | } ddef |
| 1103 | /_lp /none ddef | 1103 | /_lp /none ddef |
| 1104 | } def | 1104 | } def |
| 1105 | /G | 1105 | /G |
| 1106 | { | 1106 | { |
| 1107 | /_gs exch ddef | 1107 | /_gs exch ddef |
| 1108 | /_sc | 1108 | /_sc |
| 1109 | { | 1109 | { |
| 1110 | _lp /stroke ne | 1110 | _lp /stroke ne |
| 1111 | { | 1111 | { |
| 1112 | _os setoverprint | 1112 | _os setoverprint |
| 1113 | _gs setgray | 1113 | _gs setgray |
| 1114 | /_lp /stroke ddef | 1114 | /_lp /stroke ddef |
| 1115 | } if | 1115 | } if |
| 1116 | } ddef | 1116 | } ddef |
| 1117 | /_ps | 1117 | /_ps |
| 1118 | { | 1118 | { |
| 1119 | _sc | 1119 | _sc |
| 1120 | stroke | 1120 | stroke |
| 1121 | } ddef | 1121 | } ddef |
| 1122 | /_pss | 1122 | /_pss |
| 1123 | { | 1123 | { |
| 1124 | _sc | 1124 | _sc |
| 1125 | ss | 1125 | ss |
| 1126 | } ddef | 1126 | } ddef |
| 1127 | /_pjss | 1127 | /_pjss |
| 1128 | { | 1128 | { |
| 1129 | _sc | 1129 | _sc |
| 1130 | jss | 1130 | jss |
| 1131 | } ddef | 1131 | } ddef |
| 1132 | /_lp /none ddef | 1132 | /_lp /none ddef |
| 1133 | } def | 1133 | } def |
| 1134 | /k | 1134 | /k |
| 1135 | { | 1135 | { |
| 1136 | _cf astore pop | 1136 | _cf astore pop |
| 1137 | /_fc | 1137 | /_fc |
| 1138 | { | 1138 | { |
| 1139 | _lp /fill ne | 1139 | _lp /fill ne |
| 1140 | { | 1140 | { |
| 1141 | _of setoverprint | 1141 | _of setoverprint |
| 1142 | _cf aload pop setcmykcolor | 1142 | _cf aload pop setcmykcolor |
| 1143 | /_lp /fill ddef | 1143 | /_lp /fill ddef |
| 1144 | } if | 1144 | } if |
| 1145 | } ddef | 1145 | } ddef |
| 1146 | /_pf | 1146 | /_pf |
| 1147 | { | 1147 | { |
| 1148 | _fc | 1148 | _fc |
| 1149 | fill | 1149 | fill |
| 1150 | } ddef | 1150 | } ddef |
| 1151 | /_psf | 1151 | /_psf |
| 1152 | { | 1152 | { |
| 1153 | _fc | 1153 | _fc |
| 1154 | ashow | 1154 | ashow |
| 1155 | } ddef | 1155 | } ddef |
| 1156 | /_pjsf | 1156 | /_pjsf |
| 1157 | { | 1157 | { |
| 1158 | _fc | 1158 | _fc |
| 1159 | awidthshow | 1159 | awidthshow |
| 1160 | } ddef | 1160 | } ddef |
| 1161 | /_lp /none ddef | 1161 | /_lp /none ddef |
| 1162 | } def | 1162 | } def |
| 1163 | /K | 1163 | /K |
| 1164 | { | 1164 | { |
| 1165 | _cs astore pop | 1165 | _cs astore pop |
| 1166 | /_sc | 1166 | /_sc |
| 1167 | { | 1167 | { |
| 1168 | _lp /stroke ne | 1168 | _lp /stroke ne |
| 1169 | { | 1169 | { |
| 1170 | _os setoverprint | 1170 | _os setoverprint |
| 1171 | _cs aload pop setcmykcolor | 1171 | _cs aload pop setcmykcolor |
| 1172 | /_lp /stroke ddef | 1172 | /_lp /stroke ddef |
| 1173 | } if | 1173 | } if |
| 1174 | } ddef | 1174 | } ddef |
| 1175 | /_ps | 1175 | /_ps |
| 1176 | { | 1176 | { |
| 1177 | _sc | 1177 | _sc |
| 1178 | stroke | 1178 | stroke |
| 1179 | } ddef | 1179 | } ddef |
| 1180 | /_pss | 1180 | /_pss |
| 1181 | { | 1181 | { |
| 1182 | _sc | 1182 | _sc |
| 1183 | ss | 1183 | ss |
| 1184 | } ddef | 1184 | } ddef |
| 1185 | /_pjss | 1185 | /_pjss |
| 1186 | { | 1186 | { |
| 1187 | _sc | 1187 | _sc |
| 1188 | jss | 1188 | jss |
| 1189 | } ddef | 1189 | } ddef |
| 1190 | /_lp /none ddef | 1190 | /_lp /none ddef |
| 1191 | } def | 1191 | } def |
| 1192 | /x | 1192 | /x |
| 1193 | { | 1193 | { |
| 1194 | /_gf exch ddef | 1194 | /_gf exch ddef |
| 1195 | findcmykcustomcolor | 1195 | findcmykcustomcolor |
| 1196 | /_if exch ddef | 1196 | /_if exch ddef |
| 1197 | /_fc | 1197 | /_fc |
| 1198 | { | 1198 | { |
| 1199 | _lp /fill ne | 1199 | _lp /fill ne |
| 1200 | { | 1200 | { |
| 1201 | _of setoverprint | 1201 | _of setoverprint |
| 1202 | _if _gf 1 exch sub setcustomcolor | 1202 | _if _gf 1 exch sub setcustomcolor |
| 1203 | /_lp /fill ddef | 1203 | /_lp /fill ddef |
| 1204 | } if | 1204 | } if |
| 1205 | } ddef | 1205 | } ddef |
| 1206 | /_pf | 1206 | /_pf |
| 1207 | { | 1207 | { |
| 1208 | _fc | 1208 | _fc |
| 1209 | fill | 1209 | fill |
| 1210 | } ddef | 1210 | } ddef |
| 1211 | /_psf | 1211 | /_psf |
| 1212 | { | 1212 | { |
| 1213 | _fc | 1213 | _fc |
| 1214 | ashow | 1214 | ashow |
| 1215 | } ddef | 1215 | } ddef |
| 1216 | /_pjsf | 1216 | /_pjsf |
| 1217 | { | 1217 | { |
| 1218 | _fc | 1218 | _fc |
| 1219 | awidthshow | 1219 | awidthshow |
| 1220 | } ddef | 1220 | } ddef |
| 1221 | /_lp /none ddef | 1221 | /_lp /none ddef |
| 1222 | } def | 1222 | } def |
| 1223 | /X | 1223 | /X |
| 1224 | { | 1224 | { |
| 1225 | /_gs exch ddef | 1225 | /_gs exch ddef |
| 1226 | findcmykcustomcolor | 1226 | findcmykcustomcolor |
| 1227 | /_is exch ddef | 1227 | /_is exch ddef |
| 1228 | /_sc | 1228 | /_sc |
| 1229 | { | 1229 | { |
| 1230 | _lp /stroke ne | 1230 | _lp /stroke ne |
| 1231 | { | 1231 | { |
| 1232 | _os setoverprint | 1232 | _os setoverprint |
| 1233 | _is _gs 1 exch sub setcustomcolor | 1233 | _is _gs 1 exch sub setcustomcolor |
| 1234 | /_lp /stroke ddef | 1234 | /_lp /stroke ddef |
| 1235 | } if | 1235 | } if |
| 1236 | } ddef | 1236 | } ddef |
| 1237 | /_ps | 1237 | /_ps |
| 1238 | { | 1238 | { |
| 1239 | _sc | 1239 | _sc |
| 1240 | stroke | 1240 | stroke |
| 1241 | } ddef | 1241 | } ddef |
| 1242 | /_pss | 1242 | /_pss |
| 1243 | { | 1243 | { |
| 1244 | _sc | 1244 | _sc |
| 1245 | ss | 1245 | ss |
| 1246 | } ddef | 1246 | } ddef |
| 1247 | /_pjss | 1247 | /_pjss |
| 1248 | { | 1248 | { |
| 1249 | _sc | 1249 | _sc |
| 1250 | jss | 1250 | jss |
| 1251 | } ddef | 1251 | } ddef |
| 1252 | /_lp /none ddef | 1252 | /_lp /none ddef |
| 1253 | } def | 1253 | } def |
| 1254 | /dp | 1254 | /dp |
| 1255 | { | 1255 | { |
| 1256 | dup null eq | 1256 | dup null eq |
| 1257 | { | 1257 | { |
| 1258 | pop | 1258 | pop |
| 1259 | _dp 0 ne | 1259 | _dp 0 ne |
| 1260 | { | 1260 | { |
| 1261 | 0 1 _dp 1 sub _dl mod | 1261 | 0 1 _dp 1 sub _dl mod |
| 1262 | { | 1262 | { |
| 1263 | _da exch get 3 get | 1263 | _da exch get 3 get |
| 1264 | } for | 1264 | } for |
| 1265 | _dp 1 sub _dl mod 1 add packedarray | 1265 | _dp 1 sub _dl mod 1 add packedarray |
| 1266 | _da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll | 1266 | _da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll |
| 1267 | definepattern pop | 1267 | definepattern pop |
| 1268 | } if | 1268 | } if |
| 1269 | } | 1269 | } |
| 1270 | { | 1270 | { |
| 1271 | _dp 0 ne _dp _dl mod 0 eq and | 1271 | _dp 0 ne _dp _dl mod 0 eq and |
| 1272 | { | 1272 | { |
| 1273 | null dp | 1273 | null dp |
| 1274 | } if | 1274 | } if |
| 1275 | 7 packedarray _da exch _dp _dl mod exch put | 1275 | 7 packedarray _da exch _dp _dl mod exch put |
| 1276 | _dp _dl mod _da 0 get 4 get 2 packedarray | 1276 | _dp _dl mod _da 0 get 4 get 2 packedarray |
| 1277 | /_dp _dp 1 add def | 1277 | /_dp _dp 1 add def |
| 1278 | } ifelse | 1278 | } ifelse |
| 1279 | } def | 1279 | } def |
| 1280 | /E | 1280 | /E |
| 1281 | { | 1281 | { |
| 1282 | _ed begin | 1282 | _ed begin |
| 1283 | dup 0 get type /arraytype ne | 1283 | dup 0 get type /arraytype ne |
| 1284 | { | 1284 | { |
| 1285 | 0 | 1285 | 0 |
| 1286 | { | 1286 | { |
| 1287 | dup 1 add index type /arraytype eq | 1287 | dup 1 add index type /arraytype eq |
| 1288 | { | 1288 | { |
| 1289 | 1 add | 1289 | 1 add |
| 1290 | } | 1290 | } |
| 1291 | { | 1291 | { |
| 1292 | exit | 1292 | exit |
| 1293 | } ifelse | 1293 | } ifelse |
| 1294 | } loop | 1294 | } loop |
| 1295 | array astore | 1295 | array astore |
| 1296 | } if | 1296 | } if |
| 1297 | /_dd exch def | 1297 | /_dd exch def |
| 1298 | /_ury exch def | 1298 | /_ury exch def |
| 1299 | /_urx exch def | 1299 | /_urx exch def |
| 1300 | /_lly exch def | 1300 | /_lly exch def |
| 1301 | /_llx exch def | 1301 | /_llx exch def |
| 1302 | /_n exch def | 1302 | /_n exch def |
| 1303 | /_y 0 def | 1303 | /_y 0 def |
| 1304 | /_dl 4 def | 1304 | /_dl 4 def |
| 1305 | /_dp 0 def | 1305 | /_dp 0 def |
| 1306 | /_da _dl array def | 1306 | /_da _dl array def |
| 1307 | 0 1 _dd length 1 sub | 1307 | 0 1 _dd length 1 sub |
| 1308 | { | 1308 | { |
| 1309 | /_d exch _dd exch get def | 1309 | /_d exch _dd exch get def |
| 1310 | 0 2 _d length 2 sub | 1310 | 0 2 _d length 2 sub |
| 1311 | { | 1311 | { |
| 1312 | /_x exch def | 1312 | /_x exch def |
| 1313 | /_c _d _x get _ ne def | 1313 | /_c _d _x get _ ne def |
| 1314 | /_r _d _x 1 add get cvlit def | 1314 | /_r _d _x 1 add get cvlit def |
| 1315 | _r _ ne | 1315 | _r _ ne |
| 1316 | { | 1316 | { |
| 1317 | _urx _llx sub _ury _lly sub [1 0 0 1 0 0] | 1317 | _urx _llx sub _ury _lly sub [1 0 0 1 0 0] |
| 1318 | [ | 1318 | [ |
| 1319 | /save cvx | 1319 | /save cvx |
| 1320 | _llx neg _lly neg /translate cvx | 1320 | _llx neg _lly neg /translate cvx |
| 1321 | _c | 1321 | _c |
| 1322 | { | 1322 | { |
| 1323 | nc /begin cvx | 1323 | nc /begin cvx |
| 1324 | } if | 1324 | } if |
| 1325 | _r dup type /stringtype eq | 1325 | _r dup type /stringtype eq |
| 1326 | { | 1326 | { |
| 1327 | cvx | 1327 | cvx |
| 1328 | } | 1328 | } |
| 1329 | { | 1329 | { |
| 1330 | {exec} /forall cvx | 1330 | {exec} /forall cvx |
| 1331 | } ifelse | 1331 | } ifelse |
| 1332 | _c | 1332 | _c |
| 1333 | { | 1333 | { |
| 1334 | /end cvx | 1334 | /end cvx |
| 1335 | } if | 1335 | } if |
| 1336 | /restore cvx | 1336 | /restore cvx |
| 1337 | ] cvx | 1337 | ] cvx |
| 1338 | /_fn 12 _n length add string def | 1338 | /_fn 12 _n length add string def |
| 1339 | _y _fn cvs pop | 1339 | _y _fn cvs pop |
| 1340 | /_y _y 1 add def | 1340 | /_y _y 1 add def |
| 1341 | _fn 12 _n putinterval | 1341 | _fn 12 _n putinterval |
| 1342 | _fn _c false dp | 1342 | _fn _c false dp |
| 1343 | _d exch _x 1 add exch put | 1343 | _d exch _x 1 add exch put |
| 1344 | } if | 1344 | } if |
| 1345 | } for | 1345 | } for |
| 1346 | } for | 1346 | } for |
| 1347 | null dp | 1347 | null dp |
| 1348 | _n _dd /_pd | 1348 | _n _dd /_pd |
| 1349 | end xput | 1349 | end xput |
| 1350 | } def | 1350 | } def |
| 1351 | /fc | 1351 | /fc |
| 1352 | { | 1352 | { |
| 1353 | _fm dup concatmatrix pop | 1353 | _fm dup concatmatrix pop |
| 1354 | } def | 1354 | } def |
| 1355 | /p | 1355 | /p |
| 1356 | { | 1356 | { |
| 1357 | /_fm exch ddef | 1357 | /_fm exch ddef |
| 1358 | 9 -2 roll _pm translate fc | 1358 | 9 -2 roll _pm translate fc |
| 1359 | 7 -2 roll _pm scale fc | 1359 | 7 -2 roll _pm scale fc |
| 1360 | 5 -1 roll _pm rotate fc | 1360 | 5 -1 roll _pm rotate fc |
| 1361 | 4 -2 roll exch 0 ne | 1361 | 4 -2 roll exch 0 ne |
| 1362 | { | 1362 | { |
| 1363 | dup _pm rotate fc | 1363 | dup _pm rotate fc |
| 1364 | 1 -1 _pm scale fc | 1364 | 1 -1 _pm scale fc |
| 1365 | neg _pm rotate fc | 1365 | neg _pm rotate fc |
| 1366 | } | 1366 | } |
| 1367 | { | 1367 | { |
| 1368 | pop | 1368 | pop |
| 1369 | } ifelse | 1369 | } ifelse |
| 1370 | dup _pm rotate fc | 1370 | dup _pm rotate fc |
| 1371 | exch dup sin exch cos div 1 0 0 1 0 6 2 roll | 1371 | exch dup sin exch cos div 1 0 0 1 0 6 2 roll |
| 1372 | _pm astore fc | 1372 | _pm astore fc |
| 1373 | neg _pm rotate fc | 1373 | neg _pm rotate fc |
| 1374 | _pd exch get /_fdd exch ddef | 1374 | _pd exch get /_fdd exch ddef |
| 1375 | /_pf | 1375 | /_pf |
| 1376 | { | 1376 | { |
| 1377 | save | 1377 | save |
| 1378 | /_doClip 0 ddef | 1378 | /_doClip 0 ddef |
| 1379 | 0 1 _fdd length 1 sub | 1379 | 0 1 _fdd length 1 sub |
| 1380 | { | 1380 | { |
| 1381 | /_fd exch _fdd exch get ddef | 1381 | /_fd exch _fdd exch get ddef |
| 1382 | _fd | 1382 | _fd |
| 1383 | 0 2 _fd length 2 sub | 1383 | 0 2 _fd length 2 sub |
| 1384 | { | 1384 | { |
| 1385 | gsave | 1385 | gsave |
| 1386 | 2 copy get dup _ ne | 1386 | 2 copy get dup _ ne |
| 1387 | { | 1387 | { |
| 1388 | cvx exec _fc | 1388 | cvx exec _fc |
| 1389 | } | 1389 | } |
| 1390 | { | 1390 | { |
| 1391 | pop | 1391 | pop |
| 1392 | } ifelse | 1392 | } ifelse |
| 1393 | 2 copy 1 add get dup _ ne | 1393 | 2 copy 1 add get dup _ ne |
| 1394 | { | 1394 | { |
| 1395 | aload pop findfont _fm | 1395 | aload pop findfont _fm |
| 1396 | patternfill | 1396 | patternfill |
| 1397 | } | 1397 | } |
| 1398 | { | 1398 | { |
| 1399 | pop | 1399 | pop |
| 1400 | fill | 1400 | fill |
| 1401 | } ifelse | 1401 | } ifelse |
| 1402 | grestore | 1402 | grestore |
| 1403 | pop | 1403 | pop |
| 1404 | } for | 1404 | } for |
| 1405 | pop | 1405 | pop |
| 1406 | } for | 1406 | } for |
| 1407 | restore | 1407 | restore |
| 1408 | newpath | 1408 | newpath |
| 1409 | } ddef | 1409 | } ddef |
| 1410 | /_psf | 1410 | /_psf |
| 1411 | { | 1411 | { |
| 1412 | save | 1412 | save |
| 1413 | /_doClip 0 ddef | 1413 | /_doClip 0 ddef |
| 1414 | 0 1 _fdd length 1 sub | 1414 | 0 1 _fdd length 1 sub |
| 1415 | { | 1415 | { |
| 1416 | /_fd exch _fdd exch get ddef | 1416 | /_fd exch _fdd exch get ddef |
| 1417 | _fd | 1417 | _fd |
| 1418 | 0 2 _fd length 2 sub | 1418 | 0 2 _fd length 2 sub |
| 1419 | { | 1419 | { |
| 1420 | gsave | 1420 | gsave |
| 1421 | 2 copy get dup _ ne | 1421 | 2 copy get dup _ ne |
| 1422 | { | 1422 | { |
| 1423 | cvx exec _fc | 1423 | cvx exec _fc |
| 1424 | } | 1424 | } |
| 1425 | { | 1425 | { |
| 1426 | pop | 1426 | pop |
| 1427 | } ifelse | 1427 | } ifelse |
| 1428 | 2 copy 1 add get dup _ ne | 1428 | 2 copy 1 add get dup _ ne |
| 1429 | { | 1429 | { |
| 1430 | aload pop findfont _fm | 1430 | aload pop findfont _fm |
| 1431 | 9 copy 6 npop patternashow | 1431 | 9 copy 6 npop patternashow |
| 1432 | } | 1432 | } |
| 1433 | { | 1433 | { |
| 1434 | pop | 1434 | pop |
| 1435 | 6 copy 3 npop ashow | 1435 | 6 copy 3 npop ashow |
| 1436 | } ifelse | 1436 | } ifelse |
| 1437 | grestore | 1437 | grestore |
| 1438 | pop | 1438 | pop |
| 1439 | } for | 1439 | } for |
| 1440 | pop | 1440 | pop |
| 1441 | } for | 1441 | } for |
| 1442 | restore | 1442 | restore |
| 1443 | %3 npop newpath | 1443 | %3 npop newpath |
| 1444 | sw rmoveto | 1444 | sw rmoveto |
| 1445 | } ddef | 1445 | } ddef |
| 1446 | /_pjsf | 1446 | /_pjsf |
| 1447 | { | 1447 | { |
| 1448 | save | 1448 | save |
| 1449 | /_doClip 0 ddef | 1449 | /_doClip 0 ddef |
| 1450 | 0 1 _fdd length 1 sub | 1450 | 0 1 _fdd length 1 sub |
| 1451 | { | 1451 | { |
| 1452 | /_fd exch _fdd exch get ddef | 1452 | /_fd exch _fdd exch get ddef |
| 1453 | _fd | 1453 | _fd |
| 1454 | 0 2 _fd length 2 sub | 1454 | 0 2 _fd length 2 sub |
| 1455 | { | 1455 | { |
| 1456 | gsave | 1456 | gsave |
| 1457 | 2 copy get dup _ ne | 1457 | 2 copy get dup _ ne |
| 1458 | { | 1458 | { |
| 1459 | cvx exec _fc | 1459 | cvx exec _fc |
| 1460 | } | 1460 | } |
| 1461 | { | 1461 | { |
| 1462 | pop | 1462 | pop |
| 1463 | } ifelse | 1463 | } ifelse |
| 1464 | 2 copy 1 add get dup _ ne | 1464 | 2 copy 1 add get dup _ ne |
| 1465 | { | 1465 | { |
| 1466 | aload pop findfont _fm | 1466 | aload pop findfont _fm |
| 1467 | 12 copy 6 npop patternawidthshow | 1467 | 12 copy 6 npop patternawidthshow |
| 1468 | } | 1468 | } |
| 1469 | { | 1469 | { |
| 1470 | pop 9 copy 3 npop awidthshow | 1470 | pop 9 copy 3 npop awidthshow |
| 1471 | } ifelse | 1471 | } ifelse |
| 1472 | grestore | 1472 | grestore |
| 1473 | pop | 1473 | pop |
| 1474 | } for | 1474 | } for |
| 1475 | pop | 1475 | pop |
| 1476 | } for | 1476 | } for |
| 1477 | restore | 1477 | restore |
| 1478 | swj rmoveto | 1478 | swj rmoveto |
| 1479 | } ddef | 1479 | } ddef |
| 1480 | /_lp /none ddef | 1480 | /_lp /none ddef |
| 1481 | } def | 1481 | } def |
| 1482 | /sc | 1482 | /sc |
| 1483 | { | 1483 | { |
| 1484 | _sm dup concatmatrix pop | 1484 | _sm dup concatmatrix pop |
| 1485 | } def | 1485 | } def |
| 1486 | /P | 1486 | /P |
| 1487 | { | 1487 | { |
| 1488 | /_sm exch ddef | 1488 | /_sm exch ddef |
| 1489 | 9 -2 roll _pm translate sc | 1489 | 9 -2 roll _pm translate sc |
| 1490 | 7 -2 roll _pm scale sc | 1490 | 7 -2 roll _pm scale sc |
| 1491 | 5 -1 roll _pm rotate sc | 1491 | 5 -1 roll _pm rotate sc |
| 1492 | 4 -2 roll exch 0 ne | 1492 | 4 -2 roll exch 0 ne |
| 1493 | { | 1493 | { |
| 1494 | dup _pm rotate sc | 1494 | dup _pm rotate sc |
| 1495 | 1 -1 _pm scale sc | 1495 | 1 -1 _pm scale sc |
| 1496 | neg _pm rotate sc | 1496 | neg _pm rotate sc |
| 1497 | } | 1497 | } |
| 1498 | { | 1498 | { |
| 1499 | pop | 1499 | pop |
| 1500 | } ifelse | 1500 | } ifelse |
| 1501 | dup _pm rotate sc | 1501 | dup _pm rotate sc |
| 1502 | exch dup sin exch cos div 1 0 0 1 0 6 2 roll | 1502 | exch dup sin exch cos div 1 0 0 1 0 6 2 roll |
| 1503 | _pm astore sc | 1503 | _pm astore sc |
| 1504 | neg _pm rotate sc | 1504 | neg _pm rotate sc |
| 1505 | _pd exch get /_sdd exch ddef | 1505 | _pd exch get /_sdd exch ddef |
| 1506 | /_ps | 1506 | /_ps |
| 1507 | { | 1507 | { |
| 1508 | save | 1508 | save |
| 1509 | /_doClip 0 ddef | 1509 | /_doClip 0 ddef |
| 1510 | 0 1 _sdd length 1 sub | 1510 | 0 1 _sdd length 1 sub |
| 1511 | { | 1511 | { |
| 1512 | /_sd exch _sdd exch get ddef | 1512 | /_sd exch _sdd exch get ddef |
| 1513 | _sd | 1513 | _sd |
| 1514 | 0 2 _sd length 2 sub | 1514 | 0 2 _sd length 2 sub |
| 1515 | { | 1515 | { |
| 1516 | gsave | 1516 | gsave |
| 1517 | 2 copy get dup _ ne | 1517 | 2 copy get dup _ ne |
| 1518 | { | 1518 | { |
| 1519 | cvx exec _sc | 1519 | cvx exec _sc |
| 1520 | } | 1520 | } |
| 1521 | { | 1521 | { |
| 1522 | pop | 1522 | pop |
| 1523 | } ifelse | 1523 | } ifelse |
| 1524 | 2 copy 1 add get dup _ ne | 1524 | 2 copy 1 add get dup _ ne |
| 1525 | { | 1525 | { |
| 1526 | aload pop findfont _sm | 1526 | aload pop findfont _sm |
| 1527 | patternstroke | 1527 | patternstroke |
| 1528 | } | 1528 | } |
| 1529 | { | 1529 | { |
| 1530 | pop stroke | 1530 | pop stroke |
| 1531 | } ifelse | 1531 | } ifelse |
| 1532 | grestore | 1532 | grestore |
| 1533 | pop | 1533 | pop |
| 1534 | } for | 1534 | } for |
| 1535 | pop | 1535 | pop |
| 1536 | } for | 1536 | } for |
| 1537 | restore | 1537 | restore |
| 1538 | newpath | 1538 | newpath |
| 1539 | } ddef | 1539 | } ddef |
| 1540 | /_pss | 1540 | /_pss |
| 1541 | { | 1541 | { |
| 1542 | save | 1542 | save |
| 1543 | /_doClip 0 ddef | 1543 | /_doClip 0 ddef |
| 1544 | 0 1 _sdd length 1 sub | 1544 | 0 1 _sdd length 1 sub |
| 1545 | { | 1545 | { |
| 1546 | /_sd exch _sdd exch get ddef | 1546 | /_sd exch _sdd exch get ddef |
| 1547 | _sd | 1547 | _sd |
| 1548 | 0 2 _sd length 2 sub | 1548 | 0 2 _sd length 2 sub |
| 1549 | { | 1549 | { |
| 1550 | gsave | 1550 | gsave |
| 1551 | 2 copy get dup _ ne | 1551 | 2 copy get dup _ ne |
| 1552 | { | 1552 | { |
| 1553 | cvx exec _sc | 1553 | cvx exec _sc |
| 1554 | } | 1554 | } |
| 1555 | { | 1555 | { |
| 1556 | pop | 1556 | pop |
| 1557 | } ifelse | 1557 | } ifelse |
| 1558 | 2 copy 1 add get dup _ ne | 1558 | 2 copy 1 add get dup _ ne |
| 1559 | { | 1559 | { |
| 1560 | aload pop findfont _sm | 1560 | aload pop findfont _sm |
| 1561 | 10 copy 6 npop patternashowstroke | 1561 | 10 copy 6 npop patternashowstroke |
| 1562 | } | 1562 | } |
| 1563 | { | 1563 | { |
| 1564 | pop 7 copy 3 npop ss | 1564 | pop 7 copy 3 npop ss |
| 1565 | } ifelse | 1565 | } ifelse |
| 1566 | grestore | 1566 | grestore |
| 1567 | pop | 1567 | pop |
| 1568 | } for | 1568 | } for |
| 1569 | pop | 1569 | pop |
| 1570 | } for | 1570 | } for |
| 1571 | restore | 1571 | restore |
| 1572 | pop sw rmoveto | 1572 | pop sw rmoveto |
| 1573 | } ddef | 1573 | } ddef |
| 1574 | /_pjss | 1574 | /_pjss |
| 1575 | { | 1575 | { |
| 1576 | save | 1576 | save |
| 1577 | /_doClip 0 ddef | 1577 | /_doClip 0 ddef |
| 1578 | 0 1 _sdd length 1 sub | 1578 | 0 1 _sdd length 1 sub |
| 1579 | { | 1579 | { |
| 1580 | /_sd exch _sdd exch get ddef | 1580 | /_sd exch _sdd exch get ddef |
| 1581 | _sd | 1581 | _sd |
| 1582 | 0 2 _sd length 2 sub | 1582 | 0 2 _sd length 2 sub |
| 1583 | { | 1583 | { |
| 1584 | gsave | 1584 | gsave |
| 1585 | 2 copy get dup _ ne | 1585 | 2 copy get dup _ ne |
| 1586 | { | 1586 | { |
| 1587 | cvx exec _sc | 1587 | cvx exec _sc |
| 1588 | } | 1588 | } |
| 1589 | { | 1589 | { |
| 1590 | pop | 1590 | pop |
| 1591 | } ifelse | 1591 | } ifelse |
| 1592 | 2 copy 1 add get dup _ ne | 1592 | 2 copy 1 add get dup _ ne |
| 1593 | { | 1593 | { |
| 1594 | aload pop findfont _sm | 1594 | aload pop findfont _sm |
| 1595 | 13 copy 6 npop patternawidthshowstroke | 1595 | 13 copy 6 npop patternawidthshowstroke |
| 1596 | } | 1596 | } |
| 1597 | { | 1597 | { |
| 1598 | pop 10 copy 3 npop jss | 1598 | pop 10 copy 3 npop jss |
| 1599 | } ifelse | 1599 | } ifelse |
| 1600 | grestore | 1600 | grestore |
| 1601 | pop | 1601 | pop |
| 1602 | } for | 1602 | } for |
| 1603 | pop | 1603 | pop |
| 1604 | } for | 1604 | } for |
| 1605 | restore | 1605 | restore |
| 1606 | pop swj rmoveto | 1606 | pop swj rmoveto |
| 1607 | } ddef | 1607 | } ddef |
| 1608 | /_lp /none ddef | 1608 | /_lp /none ddef |
| 1609 | } def | 1609 | } def |
| 1610 | /A | 1610 | /A |
| 1611 | { | 1611 | { |
| 1612 | pop | 1612 | pop |
| 1613 | } def | 1613 | } def |
| 1614 | /nc 3 dict def | 1614 | /nc 3 dict def |
| 1615 | nc begin | 1615 | nc begin |
| 1616 | /setgray | 1616 | /setgray |
| 1617 | { | 1617 | { |
| 1618 | pop | 1618 | pop |
| 1619 | } bind def | 1619 | } bind def |
| 1620 | /setcmykcolor | 1620 | /setcmykcolor |
| 1621 | { | 1621 | { |
| 1622 | 4 npop | 1622 | 4 npop |
| 1623 | } bind def | 1623 | } bind def |
| 1624 | /setcustomcolor | 1624 | /setcustomcolor |
| 1625 | { | 1625 | { |
| 1626 | 2 npop | 1626 | 2 npop |
| 1627 | } bind def | 1627 | } bind def |
| 1628 | currentdict readonly pop end | 1628 | currentdict readonly pop end |
| 1629 | currentdict readonly pop end | 1629 | currentdict readonly pop end |
| 1630 | setpacking | 1630 | setpacking |
| 1631 | /annotatepage | 1631 | /annotatepage |
| 1632 | { | 1632 | { |
| 1633 | } def | 1633 | } def |
| 1634 | %%EndResource | 1634 | %%EndResource |
| 1635 | %%EndProlog | 1635 | %%EndProlog |
| 1636 | %%BeginSetup | 1636 | %%BeginSetup |
| 1637 | Adobe_cmykcolor /initialize get exec | 1637 | Adobe_cmykcolor /initialize get exec |
| 1638 | Adobe_cshow /initialize get exec | 1638 | Adobe_cshow /initialize get exec |
| 1639 | Adobe_customcolor /initialize get exec | 1639 | Adobe_customcolor /initialize get exec |
| 1640 | Adobe_pattern_AI3 /initialize get exec | 1640 | Adobe_pattern_AI3 /initialize get exec |
| 1641 | Adobe_Illustrator_AI3 /initialize get exec | 1641 | Adobe_Illustrator_AI3 /initialize get exec |
| 1642 | %%EndSetup | 1642 | %%EndSetup |
| 1643 | 0 A | 1643 | 0 A |
| 1644 | 0 O | 1644 | 0 O |
| 1645 | 0.25 1 1 0.25 k | 1645 | 0.25 1 1 0.25 k |
| 1646 | 0 R | 1646 | 0 R |
| 1647 | 0 0 0 1 K | 1647 | 0 0 0 1 K |
| 1648 | 0 J 0 j 0.2 w 4 M []0 d | 1648 | 0 J 0 j 0.2 w 4 M []0 d |
| 1649 | 9.19971 841.8735 m | 1649 | 9.19971 841.8735 m |
| 1650 | 10.3311 842.1226 8.4126 839.4165 8 839.2729 c | 1650 | 10.3311 842.1226 8.4126 839.4165 8 839.2729 c |
| 1651 | 9.57471 839.1421 9.3999 839.0728 v | 1651 | 9.57471 839.1421 9.3999 839.0728 v |
| 1652 | 9 838.9233 8.8623 838.561 8.6001 838.2729 c | 1652 | 9 838.9233 8.8623 838.561 8.6001 838.2729 c |
| 1653 | 7.39355 836.9985 6.49365 836.7915 7.3999 834.8735 C | 1653 | 7.39355 836.9985 6.49365 836.7915 7.3999 834.8735 C |
| 1654 | 8.03125 834.9233 8.1626 835.1919 8.6001 834.8735 c | 1654 | 8.03125 834.9233 8.1626 835.1919 8.6001 834.8735 c |
| 1655 | 9.32471 834.3423 7.78125 832.979 10 832.0728 c | 1655 | 9.32471 834.3423 7.78125 832.979 10 832.0728 c |
| 1656 | 11.356 831.5229 14.1997 832.1792 15.7998 832.2729 C | 1656 | 11.356 831.5229 14.1997 832.1792 15.7998 832.2729 C |
| 1657 | 15.1997 831.8481 12.5186 830.4546 12.3999 829.6733 c | 1657 | 15.1997 831.8481 12.5186 830.4546 12.3999 829.6733 c |
| 1658 | 12.1812 828.2612 12.9434 828.686 13.5996 828.4731 C | 1658 | 12.1812 828.2612 12.9434 828.686 13.5996 828.4731 C |
| 1659 | 13.2998 827.2544 13.106 827.5854 14.1997 827.0737 C | 1659 | 13.2998 827.2544 13.106 827.5854 14.1997 827.0737 C |
| 1660 | 13.9058 825.7485 14.3687 824.8296 15.3999 824.0737 C | 1660 | 13.9058 825.7485 14.3687 824.8296 15.3999 824.0737 C |
| 1661 | 15.1309 824.0229 15.0996 823.2983 15.1997 823.4731 C | 1661 | 15.1309 824.0229 15.0996 823.2983 15.1997 823.4731 C |
| 1662 | 16.7246 820.23 19.1123 818.5229 21.9995 816.6733 C | 1662 | 16.7246 820.23 19.1123 818.5229 21.9995 816.6733 C |
| 1663 | 21.6309 816.3979 20.6558 815.2925 20.5996 815.2739 C | 1663 | 21.6309 816.3979 20.6558 815.2925 20.5996 815.2739 C |
| 1664 | 21.5811 815.061 22.6807 814.1675 23.1997 814.0737 c | 1664 | 21.5811 815.061 22.6807 814.1675 23.1997 814.0737 c |
| 1665 | 25.1621 813.7358 24.1309 815.5171 25.7998 814.2739 C | 1665 | 25.1621 813.7358 24.1309 815.5171 25.7998 814.2739 C |
| 1666 | 26.6689 815.0239 26.7061 815.8735 25.9995 816.2729 C | 1666 | 26.6689 815.0239 26.7061 815.8735 25.9995 816.2729 C |
| 1667 | 28.0439 816.4048 32.4873 820.0112 33.7998 821.6733 c | 1667 | 28.0439 816.4048 32.4873 820.0112 33.7998 821.6733 c |
| 1668 | 34.6494 822.7612 35.0557 823.9985 34.999 825.4731 C | 1668 | 34.6494 822.7612 35.0557 823.9985 34.999 825.4731 C |
| 1669 | 36.499 826.3667 36.6807 826.5669 35.999 828.0737 C | 1669 | 36.499 826.3667 36.6807 826.5669 35.999 828.0737 C |
| 1670 | 38.5498 828.7544 34.6494 830.9604 33.5996 831.6733 C | 1670 | 38.5498 828.7544 34.6494 830.9604 33.5996 831.6733 C |
| 1671 | 35.2559 831.6235 37.4619 830.6421 39.3994 831.0728 c | 1671 | 35.2559 831.6235 37.4619 830.6421 39.3994 831.0728 c |
| 1672 | 40.8428 831.4048 40.2432 832.3169 40.5996 833.2729 c | 1672 | 40.8428 831.4048 40.2432 832.3169 40.5996 833.2729 c |
| 1673 | 41.0186 834.4165 42.5557 833.5415 42.999 834.4731 c | 1673 | 41.0186 834.4165 42.5557 833.5415 42.999 834.4731 c |
| 1674 | 43.1182 834.7417 42.999 836.0728 Y | 1674 | 43.1182 834.7417 42.999 836.0728 Y |
| 1675 | 42.3311 836.8979 41.6055 837.5981 40.7998 838.2729 c | 1675 | 42.3311 836.8979 41.6055 837.5981 40.7998 838.2729 c |
| 1676 | 40.0811 838.8794 42.4736 838.6919 41.999 838.8735 c | 1676 | 40.0811 838.8794 42.4736 838.6919 41.999 838.8735 c |
| 1677 | 41.293 839.1479 40.9424 840.7671 40.5996 841.4731 C | 1677 | 41.293 839.1479 40.9424 840.7671 40.5996 841.4731 C |
| 1678 | 42.5557 840.1978 45.3623 837.6665 44.5986 833.8735 c | 1678 | 42.5557 840.1978 45.3623 837.6665 44.5986 833.8735 c |
| 1679 | 44.124 831.5298 41.2871 829.8423 40.1992 827.8735 c | 1679 | 44.124 831.5298 41.2871 829.8423 40.1992 827.8735 c |
| 1680 | 37.6934 823.3608 36.5117 817.7612 33.3994 813.8735 c | 1680 | 37.6934 823.3608 36.5117 817.7612 33.3994 813.8735 c |
| 1681 | 33.2178 813.6548 33.1182 813.3608 32.7998 813.2739 c | 1681 | 33.2178 813.6548 33.1182 813.3608 32.7998 813.2739 c |
| 1682 | 32.3496 813.1606 33.4121 812.8677 33.5996 812.8735 c | 1682 | 32.3496 813.1606 33.4121 812.8677 33.5996 812.8735 c |
| 1683 | 38.4121 813.0864 39.874 811.2544 40.7998 816.0737 C | 1683 | 38.4121 813.0864 39.874 811.2544 40.7998 816.0737 C |
| 1684 | 40.8428 815.8169 40.4053 818.0737 42.1992 818.6733 C | 1684 | 40.8428 815.8169 40.4053 818.0737 42.1992 818.6733 C |
| 1685 | 42.5557 815.4302 40.749 813.4673 39.3994 811.2739 C | 1685 | 42.5557 815.4302 40.749 813.4673 39.3994 811.2739 C |
| 1686 | 37.5996 811.7231 36.3115 812.2739 33.7998 812.2739 C | 1686 | 37.5996 811.7231 36.3115 812.2739 33.7998 812.2739 C |
| 1687 | 33.7998 810.0112 33.793 805.686 33.1992 804.4731 c | 1687 | 33.7998 810.0112 33.793 805.686 33.1992 804.4731 c |
| 1688 | 33.168 804.4233 32.6182 803.5981 32.7998 803.4731 c | 1688 | 33.168 804.4233 32.6182 803.5981 32.7998 803.4731 c |
| 1689 | 33.9248 802.7231 34.6367 801.4048 34.1992 800.0737 c | 1689 | 33.9248 802.7231 34.6367 801.4048 34.1992 800.0737 c |
| 1690 | 33.9365 799.3052 32.999 797.7427 33.7998 797.2739 c | 1690 | 33.9365 799.3052 32.999 797.7427 33.7998 797.2739 c |
| 1691 | 35.624 796.2114 37.168 797.3052 38.7998 796.8735 C | 1691 | 35.624 796.2114 37.168 797.3052 38.7998 796.8735 C |
| 1692 | 40.0742 800.6548 40.874 803.8608 42.1992 807.8735 C | 1692 | 40.0742 800.6548 40.874 803.8608 42.1992 807.8735 C |
| 1693 | 42.624 807.6987 42.6924 807.5425 42.999 807.2739 C | 1693 | 42.624 807.6987 42.6924 807.5425 42.999 807.2739 C |
| 1694 | 44.7861 810.73 46.999 812.7485 47.999 817.0737 C | 1694 | 44.7861 810.73 46.999 812.7485 47.999 817.0737 C |
| 1695 | 48.3994 815.8735 L | 1695 | 48.3994 815.8735 L |
| 1696 | 49.7373 815.98 49.999 816.0737 V | 1696 | 49.7373 815.98 49.999 816.0737 V |
| 1697 | 48.4678 814.7856 47.0674 812.6235 46.999 812.4731 c | 1697 | 48.4678 814.7856 47.0674 812.6235 46.999 812.4731 c |
| 1698 | 44.9561 809.3237 44.4111 808.8481 43.999 807.2739 C | 1698 | 44.9561 809.3237 44.4111 808.8481 43.999 807.2739 C |
| 1699 | 44.9932 807.2427 44.6494 807.5552 45.5986 806.6733 C | 1699 | 44.9932 807.2427 44.6494 807.5552 45.5986 806.6733 C |
| 1700 | 44.6436 805.8989 45.2686 805.9048 44.7998 805.0737 c | 1700 | 44.6436 805.8989 45.2686 805.9048 44.7998 805.0737 c |
| 1701 | 44.7617 805.0171 44.0742 805.0737 43.999 805.0737 C | 1701 | 44.7617 805.0171 44.0742 805.0737 43.999 805.0737 C |
| 1702 | 43.624 803.2427 42.4307 802.436 41.999 801.0737 c | 1702 | 43.624 803.2427 42.4307 802.436 41.999 801.0737 c |
| 1703 | 41.3994 799.2046 41.5557 798.2983 40.3994 796.4741 c | 1703 | 41.3994 799.2046 41.5557 798.2983 40.3994 796.4741 c |
| 1704 | 38.4561 793.4302 38.249 794.9546 34.5996 793.8745 c | 1704 | 38.4561 793.4302 38.249 794.9546 34.5996 793.8745 c |
| 1705 | 33.7686 792.7495 33.5996 792.6733 v | 1705 | 33.7686 792.7495 33.5996 792.6733 v |
| 1706 | 32.6748 792.2983 31.1309 792.1987 30.1992 792.0737 C | 1706 | 32.6748 792.2983 31.1309 792.1987 30.1992 792.0737 C |
| 1707 | 30.9619 790.1802 31.7998 790.4741 34.3994 790.4741 C | 1707 | 30.9619 790.1802 31.7998 790.4741 34.3994 790.4741 C |
| 1708 | 35.0371 788.0308 35.1934 789.2681 37.1992 788.2739 c | 1708 | 35.0371 788.0308 35.1934 789.2681 37.1992 788.2739 c |
| 1709 | 38.0742 787.8433 38.793 786.0991 39.3994 785.2739 c | 1709 | 38.0742 787.8433 38.793 786.0991 39.3994 785.2739 c |
| 1710 | 39.999 784.4614 41.499 783.8433 41.999 783.0737 c | 1710 | 39.999 784.4614 41.499 783.8433 41.999 783.0737 c |
| 1711 | 42.1807 782.7866 41.668 782.5308 41.5996 782.4741 C | 1711 | 42.1807 782.7866 41.668 782.5308 41.5996 782.4741 C |
| 1712 | 44.5049 779.7056 47.499 773.8804 51.1992 772.0737 c | 1712 | 44.5049 779.7056 47.499 773.8804 51.1992 772.0737 c |
| 1713 | 51.3242 772.0181 51.7803 771.8862 51.7998 771.8745 c | 1713 | 51.3242 772.0181 51.7803 771.8862 51.7998 771.8745 c |
| 1714 | 52.1436 771.6929 52.2178 771.3745 52.3994 771.2749 C | 1714 | 52.1436 771.6929 52.2178 771.3745 52.3994 771.2749 C |
| 1715 | 50.8682 771.6245 51.3057 771.1558 50.999 771.2749 C | 1715 | 50.8682 771.6245 51.3057 771.1558 50.999 771.2749 C |
| 1716 | 51.2178 769.8745 50.5986 769.8745 V | 1716 | 51.2178 769.8745 50.5986 769.8745 V |
| 1717 | 49.4561 774.1743 45.3369 775.1304 43.5986 778.8745 C | 1717 | 49.4561 774.1743 45.3369 775.1304 43.5986 778.8745 C |
| 1718 | 43.3555 778.4624 42.8369 778.3179 42.7998 778.2749 C | 1718 | 43.3555 778.4624 42.8369 778.3179 42.7998 778.2749 C |
| 1719 | 40.999 780.8931 38.7305 783.2056 37.3994 786.0737 C | 1719 | 40.999 780.8931 38.7305 783.2056 37.3994 786.0737 C |
| 1720 | 36.4248 785.9429 35.9678 785.9429 34.999 786.0737 C | 1720 | 36.4248 785.9429 35.9678 785.9429 34.999 786.0737 C |
| 1721 | 35.1553 784.6245 35.5244 783.0181 35.3994 781.2749 c | 1721 | 35.1553 784.6245 35.5244 783.0181 35.3994 781.2749 c |
| 1722 | 35.2432 779.2612 34.8623 776.6558 34.5996 774.6743 C | 1722 | 35.2432 779.2612 34.8623 776.6558 34.5996 774.6743 C |
| 1723 | 35.3623 774.3237 36.1309 773.9556 36.7998 773.4741 c | 1723 | 35.3623 774.3237 36.1309 773.9556 36.7998 773.4741 c |
| 1724 | 37.2559 773.1499 38.1992 772.437 38.3994 771.8745 c | 1724 | 37.2559 773.1499 38.1992 772.437 38.3994 771.8745 c |
| 1725 | 39.1621 769.6929 38.1992 765.2183 38.5996 762.0747 c | 1725 | 39.1621 769.6929 38.1992 765.2183 38.5996 762.0747 c |
| 1726 | 38.6748 761.437 39.2871 760.2368 39.1992 759.4741 c | 1726 | 38.6748 761.437 39.2871 760.2368 39.1992 759.4741 c |
| 1727 | 39.1494 759.0991 38.4619 758.9116 38.5996 758.0747 c | 1727 | 39.1494 759.0991 38.4619 758.9116 38.5996 758.0747 c |
| 1728 | 38.7686 757.0122 39.7549 755.5435 40.1992 754.6753 c | 1728 | 38.7686 757.0122 39.7549 755.5435 40.1992 754.6753 c |
| 1729 | 41.0811 752.9253 41.6924 751.1128 41.999 748.8745 C | 1729 | 41.0811 752.9253 41.6924 751.1128 41.999 748.8745 C |
| 1730 | 40.3496 749.8628 41.7373 748.5815 40.1992 748.0747 c | 1730 | 40.3496 749.8628 41.7373 748.5815 40.1992 748.0747 c |
| 1731 | 39.7061 747.9185 40.1992 748.8745 Y | 1731 | 39.7061 747.9185 40.1992 748.8745 Y |
| 1732 | 40.3115 751.7866 39.9424 753.1685 38.999 755.2749 c | 1732 | 40.3115 751.7866 39.9424 753.1685 38.999 755.2749 c |
| 1733 | 38.9492 755.3804 38.0498 756.2866 37.999 756.4741 c | 1733 | 38.9492 755.3804 38.0498 756.2866 37.999 756.4741 c |
| 1734 | 37.2178 759.269 36.6367 763.4556 36.999 767.4741 c | 1734 | 37.2178 759.269 36.6367 763.4556 36.999 767.4741 c |
| 1735 | 37.1992 769.7495 37.5303 770.1245 35.999 770.8745 c | 1735 | 37.1992 769.7495 37.5303 770.1245 35.999 770.8745 c |
| 1736 | 35.3311 771.2056 34.8994 771.2437 33.999 771.4741 C | 1736 | 35.3311 771.2056 34.8994 771.2437 33.999 771.4741 C |
| 1737 | 33.3057 768.7056 32.5557 766.3491 30.999 764.4741 c | 1737 | 33.3057 768.7056 32.5557 766.3491 30.999 764.4741 c |
| 1738 | 27.2686 759.9995 20.481 761.3491 17.9995 766.0737 c | 1738 | 27.2686 759.9995 20.481 761.3491 17.9995 766.0737 c |
| 1739 | 17.1621 767.6675 16.3745 769.3179 15.7998 771.2749 C | 1739 | 17.1621 767.6675 16.3745 769.3179 15.7998 771.2749 C |
| 1740 | 14.7061 770.8745 14.106 770.73 13 770.2749 C | 1740 | 14.7061 770.8745 14.106 770.73 13 770.2749 C |
| 1741 | 13.5308 766.6675 12.6812 763.0366 12.7998 760.0747 C | 1741 | 13.5308 766.6675 12.6812 763.0366 12.7998 760.0747 C |
| 1742 | 12.5308 760.4312 12.0562 760.731 11.7998 761.0747 C | 1742 | 12.5308 760.4312 12.0562 760.731 11.7998 761.0747 C |
| 1743 | 10.4248 756.4253 6.0376 755.6304 5 750.2749 C | 1743 | 10.4248 756.4253 6.0376 755.6304 5 750.2749 C |
| 1744 | 4.7998 752.7437 4 751.8745 Y | 1744 | 4.7998 752.7437 4 751.8745 Y |
| 1745 | 3.20605 751.9312 3.625 752.4683 3.6001 752.4741 C | 1745 | 3.20605 751.9312 3.625 752.4683 3.6001 752.4741 C |
| 1746 | 5.65625 753.9116 9.43115 757.1304 10.3999 759.4741 c | 1746 | 5.65625 753.9116 9.43115 757.1304 10.3999 759.4741 c |
| 1747 | 11.6875 762.606 10.7437 769.3433 12 771.8745 c | 1747 | 11.6875 762.606 10.7437 769.3433 12 771.8745 c |
| 1748 | 12.4497 772.7993 14.3062 773.5366 15.1997 774.0737 C | 1748 | 12.4497 772.7993 14.3062 773.5366 15.1997 774.0737 C |
| 1749 | 14.7124 777.6558 14.1436 781.7925 14.5996 785.8745 C | 1749 | 14.7124 777.6558 14.1436 781.7925 14.5996 785.8745 C |
| 1750 | 13.8184 785.8745 12.9746 785.8745 12.1997 785.8745 C | 1750 | 13.8184 785.8745 12.9746 785.8745 12.1997 785.8745 C |
| 1751 | 11.6997 783.9868 10.1812 779.5679 9.19971 778.0737 c | 1751 | 11.6997 783.9868 10.1812 779.5679 9.19971 778.0737 c |
| 1752 | 9.125 777.9683 8.5376 778.2368 8.3999 778.2749 C | 1752 | 9.125 777.9683 8.5376 778.2368 8.3999 778.2749 C |
| 1753 | 8.10596 777.1675 8.2876 776.6616 7.7998 775.6743 c | 1753 | 8.10596 777.1675 8.2876 776.6616 7.7998 775.6743 c |
| 1754 | 7.79346 775.6675 7.2251 775.6743 7.19971 775.6743 C | 1754 | 7.79346 775.6675 7.2251 775.6743 7.19971 775.6743 C |
| 1755 | 6.08105 773.3062 2.625 770.9116 4.19971 767.8745 C | 1755 | 6.08105 773.3062 2.625 770.9116 4.19971 767.8745 C |
| 1756 | 3.88721 768.0425 3.49365 768.4312 3.3999 768.4741 C | 1756 | 3.88721 768.0425 3.49365 768.4312 3.3999 768.4741 C |
| 1757 | 3.33105 768.4741 3.26855 768.4741 3.19971 768.4741 C | 1757 | 3.33105 768.4741 3.26855 768.4741 3.19971 768.4741 C |
| 1758 | 3 768.6675 3.08105 769.1304 3 769.4741 C | 1758 | 3 768.6675 3.08105 769.1304 3 769.4741 C |
| 1759 | 0.90625 769.6245 1.65625 769.6187 2.6001 770.4741 c | 1759 | 0.90625 769.6245 1.65625 769.6187 2.6001 770.4741 c |
| 1760 | 3.94971 771.7124 5.19385 773.7368 6.19971 775.2749 c | 1760 | 3.94971 771.7124 5.19385 773.7368 6.19971 775.2749 c |
| 1761 | 4.34375 772.1187 8.3125 778.4487 7 778.4741 C | 1761 | 4.34375 772.1187 8.3125 778.4487 7 778.4741 C |
| 1762 | 7.51855 779.5181 8.44336 780.4995 9 781.4741 C | 1762 | 7.51855 779.5181 8.44336 780.4995 9 781.4741 C |
| 1763 | 8.78125 781.5181 9.19971 782.2749 Y | 1763 | 8.78125 781.5181 9.19971 782.2749 Y |
| 1764 | 8.9751 782.2241 8.8999 782.1812 8.6001 782.0737 C | 1764 | 8.9751 782.2241 8.8999 782.1812 8.6001 782.0737 C |
| 1765 | 10.2813 783.4116 10.3062 786.6304 12 787.8745 c | 1765 | 10.2813 783.4116 10.3062 786.6304 12 787.8745 c |
| 1766 | 14.1748 789.48 14.7935 787.48 15.5996 790.6733 C | 1766 | 14.1748 789.48 14.7935 787.48 15.5996 790.6733 C |
| 1767 | 18.1558 790.6733 19.1245 790.0806 19.7998 792.0737 C | 1767 | 18.1558 790.6733 19.1245 790.0806 19.7998 792.0737 C |
| 1768 | 19.8496 792.0864 18.7998 792.0737 Y | 1768 | 19.8496 792.0864 18.7998 792.0737 Y |
| 1769 | 18.0435 792.2983 16.062 792.2495 15.1997 792.6733 c | 1769 | 18.0435 792.2983 16.062 792.2495 15.1997 792.6733 c |
| 1770 | 14.9434 792.8052 14.6685 793.7808 14.3999 793.8745 c | 1770 | 14.9434 792.8052 14.6685 793.7808 14.3999 793.8745 c |
| 1771 | 10.856 795.1489 10.5747 792.9116 8.6001 796.6733 c | 1771 | 10.856 795.1489 10.5747 792.9116 8.6001 796.6733 c |
| 1772 | 6.70605 800.2739 6.4126 803.3481 4.19971 806.0737 C | 1772 | 6.70605 800.2739 6.4126 803.3481 4.19971 806.0737 C |
| 1773 | 4.76855 806.9175 4.86865 806.7544 5.3999 807.0737 C | 1773 | 4.76855 806.9175 4.86865 806.7544 5.3999 807.0737 C |
| 1774 | 3.6626 809.73 2.69385 813.2114 0 814.2739 C | 1774 | 3.6626 809.73 2.69385 813.2114 0 814.2739 C |
| 1775 | 0 814.3481 0.037598 815.0552 0 815.0737 C | 1775 | 0 814.3481 0.037598 815.0552 0 815.0737 C |
| 1776 | 1.2251 815.4106 1.44385 815.311 2.3999 815.8735 C | 1776 | 1.2251 815.4106 1.44385 815.311 2.3999 815.8735 C |
| 1777 | 1.44385 813.9487 5.23096 809.1489 6.3999 806.6733 C | 1777 | 1.44385 813.9487 5.23096 809.1489 6.3999 806.6733 C |
| 1778 | 7.1748 807.186 7.13721 807.6177 7.7998 806.2739 C | 1778 | 7.1748 807.186 7.13721 807.6177 7.7998 806.2739 C |
| 1779 | 7.70605 806.2173 7.5874 805.2612 7.6001 805.0737 c | 1779 | 7.70605 806.2173 7.5874 805.2612 7.6001 805.0737 c |
| 1780 | 7.75 802.3608 9.5625 799.7358 10.1997 796.6733 C | 1780 | 7.75 802.3608 9.5625 799.7358 10.1997 796.6733 C |
| 1781 | 12.1748 797.1802 13.3999 796.6304 15.5996 797.2739 C | 1781 | 12.1748 797.1802 13.3999 796.6304 15.5996 797.2739 C |
| 1782 | 15.2061 799.3921 14.6309 800.1548 14.1997 802.2739 C | 1782 | 15.2061 799.3921 14.6309 800.1548 14.1997 802.2739 C |
| 1783 | 15.4873 802.5171 15.231 802.6548 16.1997 803.4731 c | 1783 | 15.4873 802.5171 15.231 802.6548 16.1997 803.4731 c |
| 1784 | 16.437 803.6802 15.8184 804.23 15.7998 804.2739 c | 1784 | 16.437 803.6802 15.8184 804.23 15.7998 804.2739 c |
| 1785 | 15.2749 805.3735 15.1875 810.2046 15.3999 812.0737 C | 1785 | 15.2749 805.3735 15.1875 810.2046 15.3999 812.0737 C |
| 1786 | 13.7124 811.73 12.3311 810.6606 11.1997 810.4731 c | 1786 | 13.7124 811.73 12.3311 810.6606 11.1997 810.4731 c |
| 1787 | 10.7749 810.4106 10.4248 810.4731 10 810.4731 C | 1787 | 10.7749 810.4106 10.4248 810.4731 10 810.4731 C |
| 1788 | 9.2749 812.2671 6.80615 814.355 6.6001 815.4731 c | 1788 | 9.2749 812.2671 6.80615 814.355 6.6001 815.4731 c |
| 1789 | 6.4375 816.3481 6.875 816.7856 7 817.2729 C | 1789 | 6.4375 816.3481 6.875 816.7856 7 817.2729 C |
| 1790 | 7.1499 817.1733 7.94336 817.0854 8 817.0737 C | 1790 | 7.1499 817.1733 7.94336 817.0854 8 817.0737 C |
| 1791 | 8.44336 814.0796 9.2373 813.8921 10.5996 811.4731 C | 1791 | 8.44336 814.0796 9.2373 813.8921 10.5996 811.4731 C |
| 1792 | 12.6558 811.8794 14.0186 812.7231 16.3999 813.0737 C | 1792 | 12.6558 811.8794 14.0186 812.7231 16.3999 813.0737 C |
| 1793 | 13.4497 817.5854 12.0747 823.5542 9.3999 828.4731 c | 1793 | 13.4497 817.5854 12.0747 823.5542 9.3999 828.4731 c |
| 1794 | 8.1875 830.6978 5.5249 832.2856 5.19971 835.2729 c | 1794 | 8.1875 830.6978 5.5249 832.2856 5.19971 835.2729 c |
| 1795 | 5.16846 835.5103 5.38086 836.1919 5.3999 836.0728 C | 1795 | 5.16846 835.5103 5.38086 836.1919 5.3999 836.0728 C |
| 1796 | 5.79346 838.0298 6.21875 838.8296 7.19971 840.0728 c | 1796 | 5.79346 838.0298 6.21875 838.8296 7.19971 840.0728 c |
| 1797 | 7.50586 840.4731 7.81836 840.9673 8.19971 841.2729 c | 1797 | 7.50586 840.4731 7.81836 840.9673 8.19971 841.2729 c |
| 1798 | 8.3999 841.4419 8.9624 841.8228 9.19971 841.8735 c | 1798 | 8.3999 841.4419 8.9624 841.8228 9.19971 841.8735 c |
| 1799 | b | 1799 | b |
| 1800 | %%PageTrailer | 1800 | %%PageTrailer |
| 1801 | gsave annotatepage grestore showpage | 1801 | gsave annotatepage grestore showpage |
| 1802 | %%Trailer | 1802 | %%Trailer |
| 1803 | Adobe_Illustrator_AI3 /terminate get exec | 1803 | Adobe_Illustrator_AI3 /terminate get exec |
| 1804 | Adobe_pattern_AI3 /terminate get exec | 1804 | Adobe_pattern_AI3 /terminate get exec |
| 1805 | Adobe_customcolor /terminate get exec | 1805 | Adobe_customcolor /terminate get exec |
| 1806 | Adobe_cshow /terminate get exec | 1806 | Adobe_cshow /terminate get exec |
| 1807 | Adobe_cmykcolor /terminate get exec | 1807 | Adobe_cmykcolor /terminate get exec |
| 1808 | Adobe_packedarray /terminate get exec | 1808 | Adobe_packedarray /terminate get exec |
| 1809 | %%EOF | 1809 | %%EOF | ... | ... |
| 1 | %!PS-Adobe-3.0 | 1 | %!PS-Adobe-3.0 |
| 2 | %%Creator: Adobe Illustrator(TM) 3.2 | 2 | %%Creator: Adobe Illustrator(TM) 3.2 |
| 3 | %%AI8_CreatorVersion: 12.0.0 | 3 | %%AI8_CreatorVersion: 12.0.0 |
| 4 | %%For: (fluxus) (x) | 4 | %%For: (fluxus) (x) |
| 5 | %%Title: (pelican.ai) | 5 | %%Title: (pelican.ai) |
| 6 | %%CreationDate: 4/15/2006 11:28 PM | 6 | %%CreationDate: 4/15/2006 11:28 PM |
| 7 | %%BoundingBox: 38 221 564 654 | 7 | %%BoundingBox: 38 221 564 654 |
| 8 | %%DocumentProcessColors: Black | 8 | %%DocumentProcessColors: Black |
| 9 | %%DocumentNeededResources: procset Adobe_packedarray 2.0 0 | 9 | %%DocumentNeededResources: procset Adobe_packedarray 2.0 0 |
| 10 | %%+ procset Adobe_cshow 1.1 0 | 10 | %%+ procset Adobe_cshow 1.1 0 |
| 11 | %%+ procset Adobe_customcolor 1.0 0 | 11 | %%+ procset Adobe_customcolor 1.0 0 |
| 12 | %%+ procset Adobe_pattern_AI3 1.0 0 | 12 | %%+ procset Adobe_pattern_AI3 1.0 0 |
| 13 | %%+ procset Adobe_Illustrator_AI3 1.0 1 | 13 | %%+ procset Adobe_Illustrator_AI3 1.0 1 |
| 14 | %AI3_ColorUsage: Color | 14 | %AI3_ColorUsage: Color |
| 15 | %%CMYKCustomColor: 1 1 1 1 ([Registration]) | 15 | %%CMYKCustomColor: 1 1 1 1 ([Registration]) |
| 16 | %AI3_TemplateBox: 298.5 420.3896 298.5 420.3896 | 16 | %AI3_TemplateBox: 298.5 420.3896 298.5 420.3896 |
| 17 | %AI3_TileBox: 0.157715 0.044861 595.1177 841.9648 | 17 | %AI3_TileBox: 0.157715 0.044861 595.1177 841.9648 |
| 18 | %AI3_DocumentPreview: None | 18 | %AI3_DocumentPreview: None |
| 19 | %%PageOrigin:-32 11.8896 | 19 | %%PageOrigin:-32 11.8896 |
| 20 | %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 | 20 | %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 |
| 21 | %AI9_Flatten: 1 | 21 | %AI9_Flatten: 1 |
| 22 | %AI12_CMSettings: 00.MS | 22 | %AI12_CMSettings: 00.MS |
| 23 | %%EndComments | 23 | %%EndComments |
| 24 | %%BeginProlog | 24 | %%BeginProlog |
| 25 | %%IncludeResource: procset Adobe_packedarray 2.0 0 | 25 | %%IncludeResource: procset Adobe_packedarray 2.0 0 |
| 26 | Adobe_packedarray /initialize get exec | 26 | Adobe_packedarray /initialize get exec |
| 27 | %%IncludeResource: procset Adobe_cshow 1.1 0 | 27 | %%IncludeResource: procset Adobe_cshow 1.1 0 |
| 28 | %%IncludeResource: procset Adobe_customcolor 1.0 0 | 28 | %%IncludeResource: procset Adobe_customcolor 1.0 0 |
| 29 | %%IncludeResource: procset Adobe_pattern_AI3 1.0 0 | 29 | %%IncludeResource: procset Adobe_pattern_AI3 1.0 0 |
| 30 | %%IncludeResource: procset Adobe_Illustrator_AI3 1.0 1 | 30 | %%IncludeResource: procset Adobe_Illustrator_AI3 1.0 1 |
| 31 | %%EndProlog | 31 | %%EndProlog |
| 32 | %%BeginSetup | 32 | %%BeginSetup |
| 33 | Adobe_cshow /initialize get exec | 33 | Adobe_cshow /initialize get exec |
| 34 | Adobe_customcolor /initialize get exec | 34 | Adobe_customcolor /initialize get exec |
| 35 | Adobe_pattern_AI3 /initialize get exec | 35 | Adobe_pattern_AI3 /initialize get exec |
| 36 | Adobe_Illustrator_AI3 /initialize get exec | 36 | Adobe_Illustrator_AI3 /initialize get exec |
| 37 | %%EndSetup | 37 | %%EndSetup |
| 38 | 0 A | 38 | 0 A |
| 39 | 0 O | 39 | 0 O |
| 40 | 0.823529 g | 40 | 0.823529 g |
| 41 | 0 J 0 j 1 w 4 M []0 d | 41 | 0 J 0 j 1 w 4 M []0 d |
| 42 | 406.3574 653.9336 m | 42 | 406.3574 653.9336 m |
| 43 | 464.8369 654.4839 476.1016 604.7227 506.8555 577.2656 c | 43 | 464.8369 654.4839 476.1016 604.7227 506.8555 577.2656 c |
| 44 | 518.2334 567.1074 538.876 556.4058 541.0449 537.8945 C | 44 | 518.2334 567.1074 538.876 556.4058 541.0449 537.8945 C |
| 45 | 525.793 545.1372 515.3398 557.5967 502.1924 566.9033 c | 45 | 525.793 545.1372 515.3398 557.5967 502.1924 566.9033 c |
| 46 | 492.1299 574.0298 478.9131 577.0991 467.4844 582.9634 c | 46 | 492.1299 574.0298 478.9131 577.0991 467.4844 582.9634 c |
| 47 | 454.5439 589.603 441.3213 599.4785 424.4873 589.1792 c | 47 | 454.5439 589.603 441.3213 599.4785 424.4873 589.1792 c |
| 48 | 413.7012 582.5776 412.9746 565.8579 406.3574 554.9893 c | 48 | 413.7012 582.5776 412.9746 565.8579 406.3574 554.9893 c |
| 49 | 401.2715 546.6338 390.2637 539.4668 382.0098 534.269 c | 49 | 401.2715 546.6338 390.2637 539.4668 382.0098 534.269 c |
| 50 | 370.5801 527.0684 326.3232 509.3872 322.4365 499.042 C | 50 | 370.5801 527.0684 326.3232 509.3872 322.4365 499.042 C |
| 51 | 331.416 493.8628 340.3955 488.6816 349.375 483.5005 C | 51 | 331.416 493.8628 340.3955 488.6816 349.375 483.5005 C |
| 52 | 370.4541 474.8203 420.0293 453.8994 428.1152 435.3247 C | 52 | 370.4541 474.8203 420.0293 453.8994 428.1152 435.3247 C |
| 53 | 427.9424 435.3247 427.7695 435.3247 427.5967 435.3247 C | 53 | 427.9424 435.3247 427.7695 435.3247 427.5967 435.3247 C |
| 54 | 422.0781 438.2988 418.0566 441.834 411.0205 443.6128 C | 54 | 422.0781 438.2988 418.0566 441.834 411.0205 443.6128 C |
| 55 | 411.0205 442.9214 411.0205 442.2324 411.0205 441.541 C | 55 | 411.0205 442.9214 411.0205 442.2324 411.0205 441.541 C |
| 56 | 415.6807 438.0884 420.3457 434.6333 425.0059 431.1807 C | 56 | 415.6807 438.0884 420.3457 434.6333 425.0059 431.1807 C |
| 57 | 426.5615 431.6968 428.1152 432.2153 429.6689 432.7339 C | 57 | 426.5615 431.6968 428.1152 432.2153 429.6689 432.7339 C |
| 58 | 436.3252 429.1694 440.0146 421.5771 446.2451 417.1924 c | 58 | 436.3252 429.1694 440.0146 421.5771 446.2451 417.1924 c |
| 59 | 468.749 401.3643 540.2861 360.04 557.624 408.9043 C | 59 | 468.749 401.3643 540.2861 360.04 557.624 408.9043 C |
| 60 | 559.6963 408.7314 561.7676 408.5586 563.8398 408.3857 C | 60 | 559.6963 408.7314 561.7676 408.5586 563.8398 408.3857 C |
| 61 | 564.2002 369.6592 525.0967 377.3896 496.4951 382.4844 c | 61 | 564.2002 369.6592 525.0967 377.3896 496.4951 382.4844 c |
| 62 | 485.8457 384.3838 476.0742 379.3203 465.4141 380.9307 c | 62 | 485.8457 384.3838 476.0742 379.3203 465.4141 380.9307 c |
| 63 | 458.0371 382.0459 454.999 385.5068 447.8008 386.1123 C | 63 | 458.0371 382.0459 454.999 385.5068 447.8008 386.1123 C |
| 64 | 444.6514 384.4326 443.9072 382.2314 441.583 379.8955 C | 64 | 444.6514 384.4326 443.9072 382.2314 441.583 379.8955 C |
| 65 | 441.7559 379.5498 441.9287 379.2041 442.1016 378.8584 C | 65 | 441.7559 379.5498 441.9287 379.2041 442.1016 378.8584 C |
| 66 | 453.1211 376.5439 474.8496 358.7158 485.6162 352.4404 c | 66 | 453.1211 376.5439 474.8496 358.7158 485.6162 352.4404 c |
| 67 | 499.0371 344.6182 513.7188 346.8398 528.6133 341.043 C | 67 | 499.0371 344.6182 513.7188 346.8398 528.6133 341.043 C |
| 68 | 531.0205 346.2412 546.2559 365.248 551.9258 365.9072 C | 68 | 531.0205 346.2412 546.2559 365.248 551.9258 365.9072 C |
| 69 | 552.0986 365.3896 552.2715 364.8721 552.4424 364.3545 C | 69 | 552.0986 365.3896 552.2715 364.8721 552.4424 364.3545 C |
| 70 | 553.4883 360.7607 550.0078 356.1338 548.2988 353.4756 c | 70 | 553.4883 360.7607 550.0078 356.1338 548.2988 353.4756 c |
| 71 | 539.4346 339.6855 527.2559 336.8584 503.748 337.415 C | 71 | 539.4346 339.6855 527.2559 336.8584 503.748 337.415 C |
| 72 | 507.8379 329.7158 516.5977 331.1191 522.3965 325.501 C | 72 | 507.8379 329.7158 516.5977 331.1191 522.3965 325.501 C |
| 73 | 510.8311 324.9131 495.6875 323.7822 486.6533 327.5732 C | 73 | 510.8311 324.9131 495.6875 323.7822 486.6533 327.5732 C |
| 74 | 483.0273 329.6455 479.4004 331.7178 475.7744 333.79 C | 74 | 483.0273 329.6455 479.4004 331.7178 475.7744 333.79 C |
| 75 | 468.749 335.082 467.1133 328.6885 461.7891 327.5732 c | 75 | 468.749 335.082 467.1133 328.6885 461.7891 327.5732 c |
| 76 | 451.8096 325.4854 442.6299 328.9424 433.8125 329.6455 C | 76 | 451.8096 325.4854 442.6299 328.9424 433.8125 329.6455 C |
| 77 | 427.6152 314.2881 411.4697 330.1348 399.1045 326.5381 C | 77 | 427.6152 314.2881 411.4697 330.1348 399.1045 326.5381 C |
| 78 | 395.1328 323.6025 391.1621 320.666 387.1904 317.7314 C | 78 | 395.1328 323.6025 391.1621 320.666 387.1904 317.7314 C |
| 79 | 380.2559 315.4561 375.2725 320.9756 368.0234 319.2861 C | 79 | 380.2559 315.4561 375.2725 320.9756 368.0234 319.2861 C |
| 80 | 363.707 316.8682 359.3877 314.4502 355.0732 312.0322 C | 80 | 363.707 316.8682 359.3877 314.4502 355.0732 312.0322 C |
| 81 | 346.0449 325.4189 337.3516 308.3584 325.0264 313.0693 c | 81 | 346.0449 325.4189 337.3516 308.3584 325.0264 313.0693 c |
| 82 | 319.249 315.2764 317.3877 322.9951 312.0762 324.9834 c | 82 | 319.249 315.2764 317.3877 322.9951 312.0762 324.9834 c |
| 83 | 302.3477 328.626 290.0044 321.8848 280.4756 325.501 c | 83 | 302.3477 328.626 290.0044 321.8848 280.4756 325.501 c |
| 84 | 275.7075 327.3125 274.5767 334.043 270.1157 335.8623 C | 84 | 275.7075 327.3125 274.5767 334.043 270.1157 335.8623 C |
| 85 | 266.6616 335.6885 263.208 335.5166 259.7544 335.3428 C | 85 | 266.6616 335.6885 263.208 335.5166 259.7544 335.3428 C |
| 86 | 254.7881 336.4834 253.1904 341.9092 248.8755 343.6338 C | 86 | 254.7881 336.4834 253.1904 341.9092 248.8755 343.6338 C |
| 87 | 245.7686 343.8066 242.6592 343.9775 239.5513 344.1494 C | 87 | 245.7686 343.8066 242.6592 343.9775 239.5513 344.1494 C |
| 88 | 236.9614 347.4326 234.3711 350.7119 231.7803 353.9941 C | 88 | 236.9614 347.4326 234.3711 350.7119 231.7803 353.9941 C |
| 89 | 227.1187 356.2158 222.1738 353.7666 218.312 356.0654 C | 89 | 227.1187 356.2158 222.1738 353.7666 218.312 356.0654 C |
| 90 | 217.707 358.9385 216.9556 361.4961 214.6855 362.8008 C | 90 | 217.707 358.9385 216.9556 361.4961 214.6855 362.8008 C |
| 91 | 210.5415 362.9736 206.396 363.1465 202.2529 363.3174 C | 91 | 210.5415 362.9736 206.396 363.1465 202.2529 363.3174 C |
| 92 | 200.6987 365.3896 199.145 367.4639 197.5903 369.5332 C | 92 | 200.6987 365.3896 199.145 367.4639 197.5903 369.5332 C |
| 93 | 193.9648 370.2246 190.3384 370.916 186.7119 371.6074 C | 93 | 193.9648 370.2246 190.3384 370.916 186.7119 371.6074 C |
| 94 | 183.0776 383.6631 179.9097 377.1084 172.7246 383.0029 C | 94 | 183.0776 383.6631 179.9097 377.1084 172.7246 383.0029 C |
| 95 | 172.0347 384.5557 171.3433 386.1123 170.6528 387.665 C | 95 | 172.0347 384.5557 171.3433 386.1123 170.6528 387.665 C |
| 96 | 167.4033 390.2705 160.396 389.1025 157.1846 391.291 C | 96 | 167.4033 390.2705 160.396 389.1025 157.1846 391.291 C |
| 97 | 150.2778 399.2334 143.3691 407.1787 136.4629 415.1201 C | 97 | 150.2778 399.2334 143.3691 407.1787 136.4629 415.1201 C |
| 98 | 135.7725 415.1201 135.0811 415.1201 134.3906 415.1201 C | 98 | 135.7725 415.1201 135.0811 415.1201 134.3906 415.1201 C |
| 99 | 129.8872 408.9912 123.022 405.2783 118.332 399.5791 c | 99 | 129.8872 408.9912 123.022 405.2783 118.332 399.5791 c |
| 100 | 109.856 389.2803 103.8877 376.3271 98.6465 362.8008 c | 100 | 109.856 389.2803 103.8877 376.3271 98.6465 362.8008 c |
| 101 | 91.7344 344.96 87.7056 323.8467 83.6235 304.2627 c | 101 | 91.7344 344.96 87.7056 323.8467 83.6235 304.2627 c |
| 102 | 81.5273 294.2061 81.9316 284.2168 78.4434 275.7705 c | 102 | 81.5273 294.2061 81.9316 284.2168 78.4434 275.7705 c |
| 103 | 74.5234 266.2822 66.5 259.7139 60.8296 251.9404 c | 103 | 74.5234 266.2822 66.5 259.7139 60.8296 251.9404 c |
| 104 | 54.7129 243.5557 51.2388 224.7588 40.627 221.3779 C | 104 | 54.7129 243.5557 51.2388 224.7588 40.627 221.3779 C |
| 105 | 40.7998 221.7217 40.9727 222.0674 41.144 222.4131 C | 105 | 40.7998 221.7217 40.9727 222.0674 41.144 222.4131 C |
| 106 | 39.79 227.2139 42.2383 230.333 43.2163 234.3291 C | 106 | 39.79 227.2139 42.2383 230.333 43.2163 234.3291 C |
| 107 | 41.1147 235.4502 39.3652 235.8232 38.5547 238.4736 C | 107 | 41.1147 235.4502 39.3652 235.8232 38.5547 238.4736 C |
| 108 | 40.1084 244.3438 41.6626 250.2139 43.2163 256.085 C | 108 | 40.1084 244.3438 41.6626 250.2139 43.2163 256.085 C |
| 109 | 42.6357 258.7764 38.5103 262.4824 40.1084 267.4814 c | 109 | 42.6357 258.7764 38.5103 262.4824 40.1084 267.4814 c |
| 110 | 41.354 271.3818 44.9365 271.5908 45.2896 277.3262 C | 110 | 41.354 271.3818 44.9365 271.5908 45.2896 277.3262 C |
| 111 | 43.8086 279.5244 41.9907 280.7529 40.1084 282.5049 C | 111 | 43.8086 279.5244 41.9907 280.7529 40.1084 282.5049 C |
| 112 | 40.1084 282.6777 40.1084 282.8506 40.1084 283.0234 C | 112 | 40.1084 282.6777 40.1084 282.8506 40.1084 283.0234 C |
| 113 | 52.8052 283.6553 57.1475 290.5166 61.3481 299.6006 C | 113 | 52.8052 283.6553 57.1475 290.5166 61.3481 299.6006 C |
| 114 | 53.7988 301.8721 41.7808 303.3838 38.5547 309.96 C | 114 | 53.7988 301.8721 41.7808 303.3838 38.5547 309.96 C |
| 115 | 46.126 307.9092 59.4692 305.3623 67.0459 307.3721 C | 115 | 46.126 307.9092 59.4692 305.3623 67.0459 307.3721 C |
| 116 | 69.4639 315.3115 71.8813 323.2568 74.2993 331.1992 C | 116 | 69.4639 315.3115 71.8813 323.2568 74.2993 331.1992 C |
| 117 | 77.9248 347.085 81.5513 362.9736 85.1777 378.8584 C | 117 | 77.9248 347.085 81.5513 362.9736 85.1777 378.8584 C |
| 118 | 87.957 392.2158 84.7827 409.2002 90.3579 419.7832 C | 118 | 87.957 392.2158 84.7827 409.2002 90.3579 419.7832 C |
| 119 | 92.7749 421.6826 95.1934 423.5815 97.6104 425.481 C | 119 | 92.7749 421.6826 95.1934 423.5815 97.6104 425.481 C |
| 120 | 99.3364 431.1782 101.064 436.8784 102.7905 442.5757 C | 120 | 99.3364 431.1782 101.064 436.8784 102.7905 442.5757 C |
| 121 | 107.7554 450.8428 114.814 456.6777 119.3677 465.8892 C | 121 | 107.7554 450.8428 114.814 456.6777 119.3677 465.8892 C |
| 122 | 115.0508 468.8232 110.7329 471.7593 106.417 474.6938 C | 122 | 115.0508 468.8232 110.7329 471.7593 106.417 474.6938 C |
| 123 | 106.7617 476.2495 107.1074 477.8027 107.4531 479.3564 C | 123 | 106.7617 476.2495 107.1074 477.8027 107.4531 479.3564 C |
| 124 | 93.3389 475.1343 85.5649 470.4336 75.8525 462.7798 C | 124 | 93.3389 475.1343 85.5649 470.4336 75.8525 462.7798 C |
| 125 | 65.6665 462.7798 55.4756 462.7798 45.2896 462.7798 C | 125 | 65.6665 462.7798 55.4756 462.7798 45.2896 462.7798 C |
| 126 | 45.4609 463.1255 45.6338 463.4712 45.8066 463.8169 C | 126 | 45.4609 463.1255 45.6338 463.4712 45.8066 463.8169 C |
| 127 | 74.2612 470.5581 82.3726 479.2275 102.7905 491.7886 C | 127 | 74.2612 470.5581 82.3726 479.2275 102.7905 491.7886 C |
| 128 | 114.7041 497.832 126.6211 503.8774 138.5347 509.9204 C | 128 | 114.7041 497.832 126.6211 503.8774 138.5347 509.9204 C |
| 129 | 142.1606 513.2007 145.7881 516.4824 149.4136 519.7622 C | 129 | 142.1606 513.2007 145.7881 516.4824 149.4136 519.7622 C |
| 130 | 168.4629 531.9883 188.5562 540.2256 210.5415 549.8081 c | 130 | 168.4629 531.9883 188.5562 540.2256 210.5415 549.8081 c |
| 131 | 217.877 553.0059 224.0391 558.6489 232.2988 561.2056 c | 131 | 217.877 553.0059 224.0391 558.6489 232.2988 561.2056 c |
| 132 | 245.8008 565.3853 266.6577 569.8081 284.1025 566.3867 C | 132 | 245.8008 565.3853 266.6577 569.8081 284.1025 566.3867 C |
| 133 | 292.7354 563.4507 301.3701 560.5142 310.0039 557.5801 C | 133 | 292.7354 563.4507 301.3701 560.5142 310.0039 557.5801 C |
| 134 | 324.5254 553.9165 346.2764 558.8447 355.0732 564.3149 c | 134 | 324.5254 553.9165 346.2764 558.8447 355.0732 564.3149 c |
| 135 | 369.0625 573.0098 372.4688 593.5171 375.793 613.0088 C | 135 | 369.0625 573.0098 372.4688 593.5171 375.793 613.0088 C |
| 136 | 376.6572 620.606 377.5195 628.2046 378.3838 635.8013 C | 136 | 376.6572 620.606 377.5195 628.2046 378.3838 635.8013 C |
| 137 | 383.2783 647.8481 394.3535 648.647 406.3574 653.9336 C | 137 | 383.2783 647.8481 394.3535 648.647 406.3574 653.9336 C |
| 138 | f | 138 | f |
| 139 | %%PageTrailer | 139 | %%PageTrailer |
| 140 | gsave annotatepage grestore showpage | 140 | gsave annotatepage grestore showpage |
| 141 | %%Trailer | 141 | %%Trailer |
| 142 | Adobe_Illustrator_AI3 /terminate get exec | 142 | Adobe_Illustrator_AI3 /terminate get exec |
| 143 | Adobe_pattern_AI3 /terminate get exec | 143 | Adobe_pattern_AI3 /terminate get exec |
| 144 | Adobe_customcolor /terminate get exec | 144 | Adobe_customcolor /terminate get exec |
| 145 | Adobe_cshow /terminate get exec | 145 | Adobe_cshow /terminate get exec |
| 146 | Adobe_packedarray /terminate get exec | 146 | Adobe_packedarray /terminate get exec |
| 147 | %%EOF | 147 | %%EOF | ... | ... |
This diff could not be displayed because it is too large.
| 1 | ## | 1 | ## |
| 2 | ## Add-in and Automation functions Funções Suplemento e Automação | 2 | ## Add-in and Automation functions Funções Suplemento e Automação |
| 3 | ## | 3 | ## |
| 4 | GETPIVOTDATA = INFODADOSTABELADINÂMICA ## Retorna os dados armazenados em um relatório de tabela dinâmica | 4 | GETPIVOTDATA = INFODADOSTABELADINÂMICA ## Retorna os dados armazenados em um relatório de tabela dinâmica |
| 5 | 5 | ||
| 6 | 6 | ||
| 7 | ## | 7 | ## |
| 8 | ## Cube functions Funções de Cubo | 8 | ## Cube functions Funções de Cubo |
| 9 | ## | 9 | ## |
| 10 | CUBEKPIMEMBER = MEMBROKPICUBO ## Retorna o nome de um KPI (indicador de desempenho-chave), uma propriedade e uma medida e exibe o nome e a propriedade na célula. Um KPI é uma medida quantificável, como o lucro bruto mensal ou a rotatividade trimestral dos funcionários, usada para monitorar o desempenho de uma organização. | 10 | CUBEKPIMEMBER = MEMBROKPICUBO ## Retorna o nome de um KPI (indicador de desempenho-chave), uma propriedade e uma medida e exibe o nome e a propriedade na célula. Um KPI é uma medida quantificável, como o lucro bruto mensal ou a rotatividade trimestral dos funcionários, usada para monitorar o desempenho de uma organização. |
| 11 | CUBEMEMBER = MEMBROCUBO ## Retorna um membro ou tupla em uma hierarquia de cubo. Use para validar se o membro ou tupla existe no cubo. | 11 | CUBEMEMBER = MEMBROCUBO ## Retorna um membro ou tupla em uma hierarquia de cubo. Use para validar se o membro ou tupla existe no cubo. |
| 12 | CUBEMEMBERPROPERTY = PROPRIEDADEMEMBROCUBO ## Retorna o valor da propriedade de um membro no cubo. Usada para validar a existência do nome do membro no cubo e para retornar a propriedade especificada para esse membro. | 12 | CUBEMEMBERPROPERTY = PROPRIEDADEMEMBROCUBO ## Retorna o valor da propriedade de um membro no cubo. Usada para validar a existência do nome do membro no cubo e para retornar a propriedade especificada para esse membro. |
| 13 | CUBERANKEDMEMBER = MEMBROCLASSIFICADOCUBO ## Retorna o enésimo membro, ou o membro ordenado, em um conjunto. Use para retornar um ou mais elementos em um conjunto, assim como o melhor vendedor ou os dez melhores alunos. | 13 | CUBERANKEDMEMBER = MEMBROCLASSIFICADOCUBO ## Retorna o enésimo membro, ou o membro ordenado, em um conjunto. Use para retornar um ou mais elementos em um conjunto, assim como o melhor vendedor ou os dez melhores alunos. |
| 14 | CUBESET = CONJUNTOCUBO ## Define um conjunto calculado de membros ou tuplas enviando uma expressão do conjunto para o cubo no servidor, que cria o conjunto e o retorna para o Microsoft Office Excel. | 14 | CUBESET = CONJUNTOCUBO ## Define um conjunto calculado de membros ou tuplas enviando uma expressão do conjunto para o cubo no servidor, que cria o conjunto e o retorna para o Microsoft Office Excel. |
| 15 | CUBESETCOUNT = CONTAGEMCONJUNTOCUBO ## Retorna o número de itens em um conjunto. | 15 | CUBESETCOUNT = CONTAGEMCONJUNTOCUBO ## Retorna o número de itens em um conjunto. |
| 16 | CUBEVALUE = VALORCUBO ## Retorna um valor agregado de um cubo. | 16 | CUBEVALUE = VALORCUBO ## Retorna um valor agregado de um cubo. |
| 17 | 17 | ||
| 18 | 18 | ||
| 19 | ## | 19 | ## |
| 20 | ## Database functions Funções de banco de dados | 20 | ## Database functions Funções de banco de dados |
| 21 | ## | 21 | ## |
| 22 | DAVERAGE = BDMÉDIA ## Retorna a média das entradas selecionadas de um banco de dados | 22 | DAVERAGE = BDMÉDIA ## Retorna a média das entradas selecionadas de um banco de dados |
| 23 | DCOUNT = BDCONTAR ## Conta as células que contêm números em um banco de dados | 23 | DCOUNT = BDCONTAR ## Conta as células que contêm números em um banco de dados |
| 24 | DCOUNTA = BDCONTARA ## Conta células não vazias em um banco de dados | 24 | DCOUNTA = BDCONTARA ## Conta células não vazias em um banco de dados |
| 25 | DGET = BDEXTRAIR ## Extrai de um banco de dados um único registro que corresponde a um critério específico | 25 | DGET = BDEXTRAIR ## Extrai de um banco de dados um único registro que corresponde a um critério específico |
| 26 | DMAX = BDMÁX ## Retorna o valor máximo de entradas selecionadas de um banco de dados | 26 | DMAX = BDMÁX ## Retorna o valor máximo de entradas selecionadas de um banco de dados |
| 27 | DMIN = BDMÍN ## Retorna o valor mínimo de entradas selecionadas de um banco de dados | 27 | DMIN = BDMÍN ## Retorna o valor mínimo de entradas selecionadas de um banco de dados |
| 28 | DPRODUCT = BDMULTIPL ## Multiplica os valores em um campo específico de registros que correspondem ao critério em um banco de dados | 28 | DPRODUCT = BDMULTIPL ## Multiplica os valores em um campo específico de registros que correspondem ao critério em um banco de dados |
| 29 | DSTDEV = BDEST ## Estima o desvio padrão com base em uma amostra de entradas selecionadas de um banco de dados | 29 | DSTDEV = BDEST ## Estima o desvio padrão com base em uma amostra de entradas selecionadas de um banco de dados |
| 30 | DSTDEVP = BDDESVPA ## Calcula o desvio padrão com base na população inteira de entradas selecionadas de um banco de dados | 30 | DSTDEVP = BDDESVPA ## Calcula o desvio padrão com base na população inteira de entradas selecionadas de um banco de dados |
| 31 | DSUM = BDSOMA ## Adiciona os números à coluna de campos de registros do banco de dados que correspondem ao critério | 31 | DSUM = BDSOMA ## Adiciona os números à coluna de campos de registros do banco de dados que correspondem ao critério |
| 32 | DVAR = BDVAREST ## Estima a variância com base em uma amostra de entradas selecionadas de um banco de dados | 32 | DVAR = BDVAREST ## Estima a variância com base em uma amostra de entradas selecionadas de um banco de dados |
| 33 | DVARP = BDVARP ## Calcula a variância com base na população inteira de entradas selecionadas de um banco de dados | 33 | DVARP = BDVARP ## Calcula a variância com base na população inteira de entradas selecionadas de um banco de dados |
| 34 | 34 | ||
| 35 | 35 | ||
| 36 | ## | 36 | ## |
| 37 | ## Date and time functions Funções de data e hora | 37 | ## Date and time functions Funções de data e hora |
| 38 | ## | 38 | ## |
| 39 | DATE = DATA ## Retorna o número de série de uma data específica | 39 | DATE = DATA ## Retorna o número de série de uma data específica |
| 40 | DATEVALUE = DATA.VALOR ## Converte uma data na forma de texto para um número de série | 40 | DATEVALUE = DATA.VALOR ## Converte uma data na forma de texto para um número de série |
| 41 | DAY = DIA ## Converte um número de série em um dia do mês | 41 | DAY = DIA ## Converte um número de série em um dia do mês |
| 42 | DAYS360 = DIAS360 ## Calcula o número de dias entre duas datas com base em um ano de 360 dias | 42 | DAYS360 = DIAS360 ## Calcula o número de dias entre duas datas com base em um ano de 360 dias |
| 43 | EDATE = DATAM ## Retorna o número de série da data que é o número indicado de meses antes ou depois da data inicial | 43 | EDATE = DATAM ## Retorna o número de série da data que é o número indicado de meses antes ou depois da data inicial |
| 44 | EOMONTH = FIMMÊS ## Retorna o número de série do último dia do mês antes ou depois de um número especificado de meses | 44 | EOMONTH = FIMMÊS ## Retorna o número de série do último dia do mês antes ou depois de um número especificado de meses |
| 45 | HOUR = HORA ## Converte um número de série em uma hora | 45 | HOUR = HORA ## Converte um número de série em uma hora |
| 46 | MINUTE = MINUTO ## Converte um número de série em um minuto | 46 | MINUTE = MINUTO ## Converte um número de série em um minuto |
| 47 | MONTH = MÊS ## Converte um número de série em um mês | 47 | MONTH = MÊS ## Converte um número de série em um mês |
| 48 | NETWORKDAYS = DIATRABALHOTOTAL ## Retorna o número de dias úteis inteiros entre duas datas | 48 | NETWORKDAYS = DIATRABALHOTOTAL ## Retorna o número de dias úteis inteiros entre duas datas |
| 49 | NOW = AGORA ## Retorna o número de série seqüencial da data e hora atuais | 49 | NOW = AGORA ## Retorna o número de série seqüencial da data e hora atuais |
| 50 | SECOND = SEGUNDO ## Converte um número de série em um segundo | 50 | SECOND = SEGUNDO ## Converte um número de série em um segundo |
| 51 | TIME = HORA ## Retorna o número de série de uma hora específica | 51 | TIME = HORA ## Retorna o número de série de uma hora específica |
| 52 | TIMEVALUE = VALOR.TEMPO ## Converte um horário na forma de texto para um número de série | 52 | TIMEVALUE = VALOR.TEMPO ## Converte um horário na forma de texto para um número de série |
| 53 | TODAY = HOJE ## Retorna o número de série da data de hoje | 53 | TODAY = HOJE ## Retorna o número de série da data de hoje |
| 54 | WEEKDAY = DIA.DA.SEMANA ## Converte um número de série em um dia da semana | 54 | WEEKDAY = DIA.DA.SEMANA ## Converte um número de série em um dia da semana |
| 55 | WEEKNUM = NÚMSEMANA ## Converte um número de série em um número que representa onde a semana cai numericamente em um ano | 55 | WEEKNUM = NÚMSEMANA ## Converte um número de série em um número que representa onde a semana cai numericamente em um ano |
| 56 | WORKDAY = DIATRABALHO ## Retorna o número de série da data antes ou depois de um número específico de dias úteis | 56 | WORKDAY = DIATRABALHO ## Retorna o número de série da data antes ou depois de um número específico de dias úteis |
| 57 | YEAR = ANO ## Converte um número de série em um ano | 57 | YEAR = ANO ## Converte um número de série em um ano |
| 58 | YEARFRAC = FRAÇÃOANO ## Retorna a fração do ano que representa o número de dias entre data_inicial e data_final | 58 | YEARFRAC = FRAÇÃOANO ## Retorna a fração do ano que representa o número de dias entre data_inicial e data_final |
| 59 | 59 | ||
| 60 | 60 | ||
| 61 | ## | 61 | ## |
| 62 | ## Engineering functions Funções de engenharia | 62 | ## Engineering functions Funções de engenharia |
| 63 | ## | 63 | ## |
| 64 | BESSELI = BESSELI ## Retorna a função de Bessel In(x) modificada | 64 | BESSELI = BESSELI ## Retorna a função de Bessel In(x) modificada |
| 65 | BESSELJ = BESSELJ ## Retorna a função de Bessel Jn(x) | 65 | BESSELJ = BESSELJ ## Retorna a função de Bessel Jn(x) |
| 66 | BESSELK = BESSELK ## Retorna a função de Bessel Kn(x) modificada | 66 | BESSELK = BESSELK ## Retorna a função de Bessel Kn(x) modificada |
| 67 | BESSELY = BESSELY ## Retorna a função de Bessel Yn(x) | 67 | BESSELY = BESSELY ## Retorna a função de Bessel Yn(x) |
| 68 | BIN2DEC = BIN2DEC ## Converte um número binário em decimal | 68 | BIN2DEC = BIN2DEC ## Converte um número binário em decimal |
| 69 | BIN2HEX = BIN2HEX ## Converte um número binário em hexadecimal | 69 | BIN2HEX = BIN2HEX ## Converte um número binário em hexadecimal |
| 70 | BIN2OCT = BIN2OCT ## Converte um número binário em octal | 70 | BIN2OCT = BIN2OCT ## Converte um número binário em octal |
| 71 | COMPLEX = COMPLEX ## Converte coeficientes reais e imaginários e um número complexo | 71 | COMPLEX = COMPLEX ## Converte coeficientes reais e imaginários e um número complexo |
| 72 | CONVERT = CONVERTER ## Converte um número de um sistema de medida para outro | 72 | CONVERT = CONVERTER ## Converte um número de um sistema de medida para outro |
| 73 | DEC2BIN = DECABIN ## Converte um número decimal em binário | 73 | DEC2BIN = DECABIN ## Converte um número decimal em binário |
| 74 | DEC2HEX = DECAHEX ## Converte um número decimal em hexadecimal | 74 | DEC2HEX = DECAHEX ## Converte um número decimal em hexadecimal |
| 75 | DEC2OCT = DECAOCT ## Converte um número decimal em octal | 75 | DEC2OCT = DECAOCT ## Converte um número decimal em octal |
| 76 | DELTA = DELTA ## Testa se dois valores são iguais | 76 | DELTA = DELTA ## Testa se dois valores são iguais |
| 77 | ERF = FUNERRO ## Retorna a função de erro | 77 | ERF = FUNERRO ## Retorna a função de erro |
| 78 | ERFC = FUNERROCOMPL ## Retorna a função de erro complementar | 78 | ERFC = FUNERROCOMPL ## Retorna a função de erro complementar |
| 79 | GESTEP = DEGRAU ## Testa se um número é maior do que um valor limite | 79 | GESTEP = DEGRAU ## Testa se um número é maior do que um valor limite |
| 80 | HEX2BIN = HEXABIN ## Converte um número hexadecimal em binário | 80 | HEX2BIN = HEXABIN ## Converte um número hexadecimal em binário |
| 81 | HEX2DEC = HEXADEC ## Converte um número hexadecimal em decimal | 81 | HEX2DEC = HEXADEC ## Converte um número hexadecimal em decimal |
| 82 | HEX2OCT = HEXAOCT ## Converte um número hexadecimal em octal | 82 | HEX2OCT = HEXAOCT ## Converte um número hexadecimal em octal |
| 83 | IMABS = IMABS ## Retorna o valor absoluto (módulo) de um número complexo | 83 | IMABS = IMABS ## Retorna o valor absoluto (módulo) de um número complexo |
| 84 | IMAGINARY = IMAGINÁRIO ## Retorna o coeficiente imaginário de um número complexo | 84 | IMAGINARY = IMAGINÁRIO ## Retorna o coeficiente imaginário de um número complexo |
| 85 | IMARGUMENT = IMARG ## Retorna o argumento teta, um ângulo expresso em radianos | 85 | IMARGUMENT = IMARG ## Retorna o argumento teta, um ângulo expresso em radianos |
| 86 | IMCONJUGATE = IMCONJ ## Retorna o conjugado complexo de um número complexo | 86 | IMCONJUGATE = IMCONJ ## Retorna o conjugado complexo de um número complexo |
| 87 | IMCOS = IMCOS ## Retorna o cosseno de um número complexo | 87 | IMCOS = IMCOS ## Retorna o cosseno de um número complexo |
| 88 | IMDIV = IMDIV ## Retorna o quociente de dois números complexos | 88 | IMDIV = IMDIV ## Retorna o quociente de dois números complexos |
| 89 | IMEXP = IMEXP ## Retorna o exponencial de um número complexo | 89 | IMEXP = IMEXP ## Retorna o exponencial de um número complexo |
| 90 | IMLN = IMLN ## Retorna o logaritmo natural de um número complexo | 90 | IMLN = IMLN ## Retorna o logaritmo natural de um número complexo |
| 91 | IMLOG10 = IMLOG10 ## Retorna o logaritmo de base 10 de um número complexo | 91 | IMLOG10 = IMLOG10 ## Retorna o logaritmo de base 10 de um número complexo |
| 92 | IMLOG2 = IMLOG2 ## Retorna o logaritmo de base 2 de um número complexo | 92 | IMLOG2 = IMLOG2 ## Retorna o logaritmo de base 2 de um número complexo |
| 93 | IMPOWER = IMPOT ## Retorna um número complexo elevado a uma potência inteira | 93 | IMPOWER = IMPOT ## Retorna um número complexo elevado a uma potência inteira |
| 94 | IMPRODUCT = IMPROD ## Retorna o produto de números complexos | 94 | IMPRODUCT = IMPROD ## Retorna o produto de números complexos |
| 95 | IMREAL = IMREAL ## Retorna o coeficiente real de um número complexo | 95 | IMREAL = IMREAL ## Retorna o coeficiente real de um número complexo |
| 96 | IMSIN = IMSENO ## Retorna o seno de um número complexo | 96 | IMSIN = IMSENO ## Retorna o seno de um número complexo |
| 97 | IMSQRT = IMRAIZ ## Retorna a raiz quadrada de um número complexo | 97 | IMSQRT = IMRAIZ ## Retorna a raiz quadrada de um número complexo |
| 98 | IMSUB = IMSUBTR ## Retorna a diferença entre dois números complexos | 98 | IMSUB = IMSUBTR ## Retorna a diferença entre dois números complexos |
| 99 | IMSUM = IMSOMA ## Retorna a soma de números complexos | 99 | IMSUM = IMSOMA ## Retorna a soma de números complexos |
| 100 | OCT2BIN = OCTABIN ## Converte um número octal em binário | 100 | OCT2BIN = OCTABIN ## Converte um número octal em binário |
| 101 | OCT2DEC = OCTADEC ## Converte um número octal em decimal | 101 | OCT2DEC = OCTADEC ## Converte um número octal em decimal |
| 102 | OCT2HEX = OCTAHEX ## Converte um número octal em hexadecimal | 102 | OCT2HEX = OCTAHEX ## Converte um número octal em hexadecimal |
| 103 | 103 | ||
| 104 | 104 | ||
| 105 | ## | 105 | ## |
| 106 | ## Financial functions Funções financeiras | 106 | ## Financial functions Funções financeiras |
| 107 | ## | 107 | ## |
| 108 | ACCRINT = JUROSACUM ## Retorna a taxa de juros acumulados de um título que paga uma taxa periódica de juros | 108 | ACCRINT = JUROSACUM ## Retorna a taxa de juros acumulados de um título que paga uma taxa periódica de juros |
| 109 | ACCRINTM = JUROSACUMV ## Retorna os juros acumulados de um título que paga juros no vencimento | 109 | ACCRINTM = JUROSACUMV ## Retorna os juros acumulados de um título que paga juros no vencimento |
| 110 | AMORDEGRC = AMORDEGRC ## Retorna a depreciação para cada período contábil usando o coeficiente de depreciação | 110 | AMORDEGRC = AMORDEGRC ## Retorna a depreciação para cada período contábil usando o coeficiente de depreciação |
| 111 | AMORLINC = AMORLINC ## Retorna a depreciação para cada período contábil | 111 | AMORLINC = AMORLINC ## Retorna a depreciação para cada período contábil |
| 112 | COUPDAYBS = CUPDIASINLIQ ## Retorna o número de dias do início do período de cupom até a data de liquidação | 112 | COUPDAYBS = CUPDIASINLIQ ## Retorna o número de dias do início do período de cupom até a data de liquidação |
| 113 | COUPDAYS = CUPDIAS ## Retorna o número de dias no período de cupom que contém a data de quitação | 113 | COUPDAYS = CUPDIAS ## Retorna o número de dias no período de cupom que contém a data de quitação |
| 114 | COUPDAYSNC = CUPDIASPRÓX ## Retorna o número de dias da data de liquidação até a data do próximo cupom | 114 | COUPDAYSNC = CUPDIASPRÓX ## Retorna o número de dias da data de liquidação até a data do próximo cupom |
| 115 | COUPNCD = CUPDATAPRÓX ## Retorna a próxima data de cupom após a data de quitação | 115 | COUPNCD = CUPDATAPRÓX ## Retorna a próxima data de cupom após a data de quitação |
| 116 | COUPNUM = CUPNÚM ## Retorna o número de cupons pagáveis entre as datas de quitação e vencimento | 116 | COUPNUM = CUPNÚM ## Retorna o número de cupons pagáveis entre as datas de quitação e vencimento |
| 117 | COUPPCD = CUPDATAANT ## Retorna a data de cupom anterior à data de quitação | 117 | COUPPCD = CUPDATAANT ## Retorna a data de cupom anterior à data de quitação |
| 118 | CUMIPMT = PGTOJURACUM ## Retorna os juros acumulados pagos entre dois períodos | 118 | CUMIPMT = PGTOJURACUM ## Retorna os juros acumulados pagos entre dois períodos |
| 119 | CUMPRINC = PGTOCAPACUM ## Retorna o capital acumulado pago sobre um empréstimo entre dois períodos | 119 | CUMPRINC = PGTOCAPACUM ## Retorna o capital acumulado pago sobre um empréstimo entre dois períodos |
| 120 | DB = BD ## Retorna a depreciação de um ativo para um período especificado, usando o método de balanço de declínio fixo | 120 | DB = BD ## Retorna a depreciação de um ativo para um período especificado, usando o método de balanço de declínio fixo |
| 121 | DDB = BDD ## Retorna a depreciação de um ativo com relação a um período especificado usando o método de saldos decrescentes duplos ou qualquer outro método especificado por você | 121 | DDB = BDD ## Retorna a depreciação de um ativo com relação a um período especificado usando o método de saldos decrescentes duplos ou qualquer outro método especificado por você |
| 122 | DISC = DESC ## Retorna a taxa de desconto de um título | 122 | DISC = DESC ## Retorna a taxa de desconto de um título |
| 123 | DOLLARDE = MOEDADEC ## Converte um preço em formato de moeda, na forma fracionária, em um preço na forma decimal | 123 | DOLLARDE = MOEDADEC ## Converte um preço em formato de moeda, na forma fracionária, em um preço na forma decimal |
| 124 | DOLLARFR = MOEDAFRA ## Converte um preço, apresentado na forma decimal, em um preço apresentado na forma fracionária | 124 | DOLLARFR = MOEDAFRA ## Converte um preço, apresentado na forma decimal, em um preço apresentado na forma fracionária |
| 125 | DURATION = DURAÇÃO ## Retorna a duração anual de um título com pagamentos de juros periódicos | 125 | DURATION = DURAÇÃO ## Retorna a duração anual de um título com pagamentos de juros periódicos |
| 126 | EFFECT = EFETIVA ## Retorna a taxa de juros anual efetiva | 126 | EFFECT = EFETIVA ## Retorna a taxa de juros anual efetiva |
| 127 | FV = VF ## Retorna o valor futuro de um investimento | 127 | FV = VF ## Retorna o valor futuro de um investimento |
| 128 | FVSCHEDULE = VFPLANO ## Retorna o valor futuro de um capital inicial após a aplicação de uma série de taxas de juros compostas | 128 | FVSCHEDULE = VFPLANO ## Retorna o valor futuro de um capital inicial após a aplicação de uma série de taxas de juros compostas |
| 129 | INTRATE = TAXAJUROS ## Retorna a taxa de juros de um título totalmente investido | 129 | INTRATE = TAXAJUROS ## Retorna a taxa de juros de um título totalmente investido |
| 130 | IPMT = IPGTO ## Retorna o pagamento de juros para um investimento em um determinado período | 130 | IPMT = IPGTO ## Retorna o pagamento de juros para um investimento em um determinado período |
| 131 | IRR = TIR ## Retorna a taxa interna de retorno de uma série de fluxos de caixa | 131 | IRR = TIR ## Retorna a taxa interna de retorno de uma série de fluxos de caixa |
| 132 | ISPMT = ÉPGTO ## Calcula os juros pagos durante um período específico de um investimento | 132 | ISPMT = ÉPGTO ## Calcula os juros pagos durante um período específico de um investimento |
| 133 | MDURATION = MDURAÇÃO ## Retorna a duração de Macauley modificada para um título com um valor de paridade equivalente a R$ 100 | 133 | MDURATION = MDURAÇÃO ## Retorna a duração de Macauley modificada para um título com um valor de paridade equivalente a R$ 100 |
| 134 | MIRR = MTIR ## Calcula a taxa interna de retorno em que fluxos de caixa positivos e negativos são financiados com diferentes taxas | 134 | MIRR = MTIR ## Calcula a taxa interna de retorno em que fluxos de caixa positivos e negativos são financiados com diferentes taxas |
| 135 | NOMINAL = NOMINAL ## Retorna a taxa de juros nominal anual | 135 | NOMINAL = NOMINAL ## Retorna a taxa de juros nominal anual |
| 136 | NPER = NPER ## Retorna o número de períodos de um investimento | 136 | NPER = NPER ## Retorna o número de períodos de um investimento |
| 137 | NPV = VPL ## Retorna o valor líquido atual de um investimento com base em uma série de fluxos de caixa periódicos e em uma taxa de desconto | 137 | NPV = VPL ## Retorna o valor líquido atual de um investimento com base em uma série de fluxos de caixa periódicos e em uma taxa de desconto |
| 138 | ODDFPRICE = PREÇOPRIMINC ## Retorna o preço por R$ 100 de valor nominal de um título com um primeiro período indefinido | 138 | ODDFPRICE = PREÇOPRIMINC ## Retorna o preço por R$ 100 de valor nominal de um título com um primeiro período indefinido |
| 139 | ODDFYIELD = LUCROPRIMINC ## Retorna o rendimento de um título com um primeiro período indefinido | 139 | ODDFYIELD = LUCROPRIMINC ## Retorna o rendimento de um título com um primeiro período indefinido |
| 140 | ODDLPRICE = PREÇOÚLTINC ## Retorna o preço por R$ 100 de valor nominal de um título com um último período de cupom indefinido | 140 | ODDLPRICE = PREÇOÚLTINC ## Retorna o preço por R$ 100 de valor nominal de um título com um último período de cupom indefinido |
| 141 | ODDLYIELD = LUCROÚLTINC ## Retorna o rendimento de um título com um último período indefinido | 141 | ODDLYIELD = LUCROÚLTINC ## Retorna o rendimento de um título com um último período indefinido |
| 142 | PMT = PGTO ## Retorna o pagamento periódico de uma anuidade | 142 | PMT = PGTO ## Retorna o pagamento periódico de uma anuidade |
| 143 | PPMT = PPGTO ## Retorna o pagamento de capital para determinado período de investimento | 143 | PPMT = PPGTO ## Retorna o pagamento de capital para determinado período de investimento |
| 144 | PRICE = PREÇO ## Retorna a preço por R$ 100,00 de valor nominal de um título que paga juros periódicos | 144 | PRICE = PREÇO ## Retorna a preço por R$ 100,00 de valor nominal de um título que paga juros periódicos |
| 145 | PRICEDISC = PREÇODESC ## Retorna o preço por R$ 100,00 de valor nominal de um título descontado | 145 | PRICEDISC = PREÇODESC ## Retorna o preço por R$ 100,00 de valor nominal de um título descontado |
| 146 | PRICEMAT = PREÇOVENC ## Retorna o preço por R$ 100,00 de valor nominal de um título que paga juros no vencimento | 146 | PRICEMAT = PREÇOVENC ## Retorna o preço por R$ 100,00 de valor nominal de um título que paga juros no vencimento |
| 147 | PV = VP ## Retorna o valor presente de um investimento | 147 | PV = VP ## Retorna o valor presente de um investimento |
| 148 | RATE = TAXA ## Retorna a taxa de juros por período de uma anuidade | 148 | RATE = TAXA ## Retorna a taxa de juros por período de uma anuidade |
| 149 | RECEIVED = RECEBER ## Retorna a quantia recebida no vencimento de um título totalmente investido | 149 | RECEIVED = RECEBER ## Retorna a quantia recebida no vencimento de um título totalmente investido |
| 150 | SLN = DPD ## Retorna a depreciação em linha reta de um ativo durante um período | 150 | SLN = DPD ## Retorna a depreciação em linha reta de um ativo durante um período |
| 151 | SYD = SDA ## Retorna a depreciação dos dígitos da soma dos anos de um ativo para um período especificado | 151 | SYD = SDA ## Retorna a depreciação dos dígitos da soma dos anos de um ativo para um período especificado |
| 152 | TBILLEQ = OTN ## Retorna o rendimento de um título equivalente a uma obrigação do Tesouro | 152 | TBILLEQ = OTN ## Retorna o rendimento de um título equivalente a uma obrigação do Tesouro |
| 153 | TBILLPRICE = OTNVALOR ## Retorna o preço por R$ 100,00 de valor nominal de uma obrigação do Tesouro | 153 | TBILLPRICE = OTNVALOR ## Retorna o preço por R$ 100,00 de valor nominal de uma obrigação do Tesouro |
| 154 | TBILLYIELD = OTNLUCRO ## Retorna o rendimento de uma obrigação do Tesouro | 154 | TBILLYIELD = OTNLUCRO ## Retorna o rendimento de uma obrigação do Tesouro |
| 155 | VDB = BDV ## Retorna a depreciação de um ativo para um período especificado ou parcial usando um método de balanço declinante | 155 | VDB = BDV ## Retorna a depreciação de um ativo para um período especificado ou parcial usando um método de balanço declinante |
| 156 | XIRR = XTIR ## Fornece a taxa interna de retorno para um programa de fluxos de caixa que não é necessariamente periódico | 156 | XIRR = XTIR ## Fornece a taxa interna de retorno para um programa de fluxos de caixa que não é necessariamente periódico |
| 157 | XNPV = XVPL ## Retorna o valor presente líquido de um programa de fluxos de caixa que não é necessariamente periódico | 157 | XNPV = XVPL ## Retorna o valor presente líquido de um programa de fluxos de caixa que não é necessariamente periódico |
| 158 | YIELD = LUCRO ## Retorna o lucro de um título que paga juros periódicos | 158 | YIELD = LUCRO ## Retorna o lucro de um título que paga juros periódicos |
| 159 | YIELDDISC = LUCRODESC ## Retorna o rendimento anual de um título descontado. Por exemplo, uma obrigação do Tesouro | 159 | YIELDDISC = LUCRODESC ## Retorna o rendimento anual de um título descontado. Por exemplo, uma obrigação do Tesouro |
| 160 | YIELDMAT = LUCROVENC ## Retorna o lucro anual de um título que paga juros no vencimento | 160 | YIELDMAT = LUCROVENC ## Retorna o lucro anual de um título que paga juros no vencimento |
| 161 | 161 | ||
| 162 | 162 | ||
| 163 | ## | 163 | ## |
| 164 | ## Information functions Funções de informação | 164 | ## Information functions Funções de informação |
| 165 | ## | 165 | ## |
| 166 | CELL = CÉL ## Retorna informações sobre formatação, localização ou conteúdo de uma célula | 166 | CELL = CÉL ## Retorna informações sobre formatação, localização ou conteúdo de uma célula |
| 167 | ERROR.TYPE = TIPO.ERRO ## Retorna um número correspondente a um tipo de erro | 167 | ERROR.TYPE = TIPO.ERRO ## Retorna um número correspondente a um tipo de erro |
| 168 | INFO = INFORMAÇÃO ## Retorna informações sobre o ambiente operacional atual | 168 | INFO = INFORMAÇÃO ## Retorna informações sobre o ambiente operacional atual |
| 169 | ISBLANK = ÉCÉL.VAZIA ## Retorna VERDADEIRO se o valor for vazio | 169 | ISBLANK = ÉCÉL.VAZIA ## Retorna VERDADEIRO se o valor for vazio |
| 170 | ISERR = ÉERRO ## Retorna VERDADEIRO se o valor for um valor de erro diferente de #N/D | 170 | ISERR = ÉERRO ## Retorna VERDADEIRO se o valor for um valor de erro diferente de #N/D |
| 171 | ISERROR = ÉERROS ## Retorna VERDADEIRO se o valor for um valor de erro | 171 | ISERROR = ÉERROS ## Retorna VERDADEIRO se o valor for um valor de erro |
| 172 | ISEVEN = ÉPAR ## Retorna VERDADEIRO se o número for par | 172 | ISEVEN = ÉPAR ## Retorna VERDADEIRO se o número for par |
| 173 | ISLOGICAL = ÉLÓGICO ## Retorna VERDADEIRO se o valor for um valor lógico | 173 | ISLOGICAL = ÉLÓGICO ## Retorna VERDADEIRO se o valor for um valor lógico |
| 174 | ISNA = É.NÃO.DISP ## Retorna VERDADEIRO se o valor for o valor de erro #N/D | 174 | ISNA = É.NÃO.DISP ## Retorna VERDADEIRO se o valor for o valor de erro #N/D |
| 175 | ISNONTEXT = É.NÃO.TEXTO ## Retorna VERDADEIRO se o valor for diferente de texto | 175 | ISNONTEXT = É.NÃO.TEXTO ## Retorna VERDADEIRO se o valor for diferente de texto |
| 176 | ISNUMBER = ÉNÚM ## Retorna VERDADEIRO se o valor for um número | 176 | ISNUMBER = ÉNÚM ## Retorna VERDADEIRO se o valor for um número |
| 177 | ISODD = ÉIMPAR ## Retorna VERDADEIRO se o número for ímpar | 177 | ISODD = ÉIMPAR ## Retorna VERDADEIRO se o número for ímpar |
| 178 | ISREF = ÉREF ## Retorna VERDADEIRO se o valor for uma referência | 178 | ISREF = ÉREF ## Retorna VERDADEIRO se o valor for uma referência |
| 179 | ISTEXT = ÉTEXTO ## Retorna VERDADEIRO se o valor for texto | 179 | ISTEXT = ÉTEXTO ## Retorna VERDADEIRO se o valor for texto |
| 180 | N = N ## Retorna um valor convertido em um número | 180 | N = N ## Retorna um valor convertido em um número |
| 181 | NA = NÃO.DISP ## Retorna o valor de erro #N/D | 181 | NA = NÃO.DISP ## Retorna o valor de erro #N/D |
| 182 | TYPE = TIPO ## Retorna um número indicando o tipo de dados de um valor | 182 | TYPE = TIPO ## Retorna um número indicando o tipo de dados de um valor |
| 183 | 183 | ||
| 184 | 184 | ||
| 185 | ## | 185 | ## |
| 186 | ## Logical functions Funções lógicas | 186 | ## Logical functions Funções lógicas |
| 187 | ## | 187 | ## |
| 188 | AND = E ## Retorna VERDADEIRO se todos os seus argumentos forem VERDADEIROS | 188 | AND = E ## Retorna VERDADEIRO se todos os seus argumentos forem VERDADEIROS |
| 189 | FALSE = FALSO ## Retorna o valor lógico FALSO | 189 | FALSE = FALSO ## Retorna o valor lógico FALSO |
| 190 | IF = SE ## Especifica um teste lógico a ser executado | 190 | IF = SE ## Especifica um teste lógico a ser executado |
| 191 | IFERROR = SEERRO ## Retornará um valor que você especifica se uma fórmula for avaliada para um erro; do contrário, retornará o resultado da fórmula | 191 | IFERROR = SEERRO ## Retornará um valor que você especifica se uma fórmula for avaliada para um erro; do contrário, retornará o resultado da fórmula |
| 192 | NOT = NÃO ## Inverte o valor lógico do argumento | 192 | NOT = NÃO ## Inverte o valor lógico do argumento |
| 193 | OR = OU ## Retorna VERDADEIRO se um dos argumentos for VERDADEIRO | 193 | OR = OU ## Retorna VERDADEIRO se um dos argumentos for VERDADEIRO |
| 194 | TRUE = VERDADEIRO ## Retorna o valor lógico VERDADEIRO | 194 | TRUE = VERDADEIRO ## Retorna o valor lógico VERDADEIRO |
| 195 | 195 | ||
| 196 | 196 | ||
| 197 | ## | 197 | ## |
| 198 | ## Lookup and reference functions Funções de pesquisa e referência | 198 | ## Lookup and reference functions Funções de pesquisa e referência |
| 199 | ## | 199 | ## |
| 200 | ADDRESS = ENDEREÇO ## Retorna uma referência como texto para uma única célula em uma planilha | 200 | ADDRESS = ENDEREÇO ## Retorna uma referência como texto para uma única célula em uma planilha |
| 201 | AREAS = ÁREAS ## Retorna o número de áreas em uma referência | 201 | AREAS = ÁREAS ## Retorna o número de áreas em uma referência |
| 202 | CHOOSE = ESCOLHER ## Escolhe um valor a partir de uma lista de valores | 202 | CHOOSE = ESCOLHER ## Escolhe um valor a partir de uma lista de valores |
| 203 | COLUMN = COL ## Retorna o número da coluna de uma referência | 203 | COLUMN = COL ## Retorna o número da coluna de uma referência |
| 204 | COLUMNS = COLS ## Retorna o número de colunas em uma referência | 204 | COLUMNS = COLS ## Retorna o número de colunas em uma referência |
| 205 | HLOOKUP = PROCH ## Procura na linha superior de uma matriz e retorna o valor da célula especificada | 205 | HLOOKUP = PROCH ## Procura na linha superior de uma matriz e retorna o valor da célula especificada |
| 206 | HYPERLINK = HYPERLINK ## Cria um atalho ou salto que abre um documento armazenado em um servidor de rede, uma intranet ou na Internet | 206 | HYPERLINK = HYPERLINK ## Cria um atalho ou salto que abre um documento armazenado em um servidor de rede, uma intranet ou na Internet |
| 207 | INDEX = ÍNDICE ## Usa um índice para escolher um valor de uma referência ou matriz | 207 | INDEX = ÍNDICE ## Usa um índice para escolher um valor de uma referência ou matriz |
| 208 | INDIRECT = INDIRETO ## Retorna uma referência indicada por um valor de texto | 208 | INDIRECT = INDIRETO ## Retorna uma referência indicada por um valor de texto |
| 209 | LOOKUP = PROC ## Procura valores em um vetor ou em uma matriz | 209 | LOOKUP = PROC ## Procura valores em um vetor ou em uma matriz |
| 210 | MATCH = CORRESP ## Procura valores em uma referência ou em uma matriz | 210 | MATCH = CORRESP ## Procura valores em uma referência ou em uma matriz |
| 211 | OFFSET = DESLOC ## Retorna um deslocamento de referência com base em uma determinada referência | 211 | OFFSET = DESLOC ## Retorna um deslocamento de referência com base em uma determinada referência |
| 212 | ROW = LIN ## Retorna o número da linha de uma referência | 212 | ROW = LIN ## Retorna o número da linha de uma referência |
| 213 | ROWS = LINS ## Retorna o número de linhas em uma referência | 213 | ROWS = LINS ## Retorna o número de linhas em uma referência |
| 214 | RTD = RTD ## Recupera dados em tempo real de um programa que ofereça suporte a automação COM (automação: uma forma de trabalhar com objetos de um aplicativo a partir de outro aplicativo ou ferramenta de desenvolvimento. Chamada inicialmente de automação OLE, a automação é um padrão industrial e um recurso do modelo de objeto componente (COM).) | 214 | RTD = RTD ## Recupera dados em tempo real de um programa que ofereça suporte a automação COM (automação: uma forma de trabalhar com objetos de um aplicativo a partir de outro aplicativo ou ferramenta de desenvolvimento. Chamada inicialmente de automação OLE, a automação é um padrão industrial e um recurso do modelo de objeto componente (COM).) |
| 215 | TRANSPOSE = TRANSPOR ## Retorna a transposição de uma matriz | 215 | TRANSPOSE = TRANSPOR ## Retorna a transposição de uma matriz |
| 216 | VLOOKUP = PROCV ## Procura na primeira coluna de uma matriz e move ao longo da linha para retornar o valor de uma célula | 216 | VLOOKUP = PROCV ## Procura na primeira coluna de uma matriz e move ao longo da linha para retornar o valor de uma célula |
| 217 | 217 | ||
| 218 | 218 | ||
| 219 | ## | 219 | ## |
| 220 | ## Math and trigonometry functions Funções matemáticas e trigonométricas | 220 | ## Math and trigonometry functions Funções matemáticas e trigonométricas |
| 221 | ## | 221 | ## |
| 222 | ABS = ABS ## Retorna o valor absoluto de um número | 222 | ABS = ABS ## Retorna o valor absoluto de um número |
| 223 | ACOS = ACOS ## Retorna o arco cosseno de um número | 223 | ACOS = ACOS ## Retorna o arco cosseno de um número |
| 224 | ACOSH = ACOSH ## Retorna o cosseno hiperbólico inverso de um número | 224 | ACOSH = ACOSH ## Retorna o cosseno hiperbólico inverso de um número |
| 225 | ASIN = ASEN ## Retorna o arco seno de um número | 225 | ASIN = ASEN ## Retorna o arco seno de um número |
| 226 | ASINH = ASENH ## Retorna o seno hiperbólico inverso de um número | 226 | ASINH = ASENH ## Retorna o seno hiperbólico inverso de um número |
| 227 | ATAN = ATAN ## Retorna o arco tangente de um número | 227 | ATAN = ATAN ## Retorna o arco tangente de um número |
| 228 | ATAN2 = ATAN2 ## Retorna o arco tangente das coordenadas x e y especificadas | 228 | ATAN2 = ATAN2 ## Retorna o arco tangente das coordenadas x e y especificadas |
| 229 | ATANH = ATANH ## Retorna a tangente hiperbólica inversa de um número | 229 | ATANH = ATANH ## Retorna a tangente hiperbólica inversa de um número |
| 230 | CEILING = TETO ## Arredonda um número para o inteiro mais próximo ou para o múltiplo mais próximo de significância | 230 | CEILING = TETO ## Arredonda um número para o inteiro mais próximo ou para o múltiplo mais próximo de significância |
| 231 | COMBIN = COMBIN ## Retorna o número de combinações de um determinado número de objetos | 231 | COMBIN = COMBIN ## Retorna o número de combinações de um determinado número de objetos |
| 232 | COS = COS ## Retorna o cosseno de um número | 232 | COS = COS ## Retorna o cosseno de um número |
| 233 | COSH = COSH ## Retorna o cosseno hiperbólico de um número | 233 | COSH = COSH ## Retorna o cosseno hiperbólico de um número |
| 234 | DEGREES = GRAUS ## Converte radianos em graus | 234 | DEGREES = GRAUS ## Converte radianos em graus |
| 235 | EVEN = PAR ## Arredonda um número para cima até o inteiro par mais próximo | 235 | EVEN = PAR ## Arredonda um número para cima até o inteiro par mais próximo |
| 236 | EXP = EXP ## Retorna e elevado à potência de um número especificado | 236 | EXP = EXP ## Retorna e elevado à potência de um número especificado |
| 237 | FACT = FATORIAL ## Retorna o fatorial de um número | 237 | FACT = FATORIAL ## Retorna o fatorial de um número |
| 238 | FACTDOUBLE = FATDUPLO ## Retorna o fatorial duplo de um número | 238 | FACTDOUBLE = FATDUPLO ## Retorna o fatorial duplo de um número |
| 239 | FLOOR = ARREDMULTB ## Arredonda um número para baixo até zero | 239 | FLOOR = ARREDMULTB ## Arredonda um número para baixo até zero |
| 240 | GCD = MDC ## Retorna o máximo divisor comum | 240 | GCD = MDC ## Retorna o máximo divisor comum |
| 241 | INT = INT ## Arredonda um número para baixo até o número inteiro mais próximo | 241 | INT = INT ## Arredonda um número para baixo até o número inteiro mais próximo |
| 242 | LCM = MMC ## Retorna o mínimo múltiplo comum | 242 | LCM = MMC ## Retorna o mínimo múltiplo comum |
| 243 | LN = LN ## Retorna o logaritmo natural de um número | 243 | LN = LN ## Retorna o logaritmo natural de um número |
| 244 | LOG = LOG ## Retorna o logaritmo de um número de uma base especificada | 244 | LOG = LOG ## Retorna o logaritmo de um número de uma base especificada |
| 245 | LOG10 = LOG10 ## Retorna o logaritmo de base 10 de um número | 245 | LOG10 = LOG10 ## Retorna o logaritmo de base 10 de um número |
| 246 | MDETERM = MATRIZ.DETERM ## Retorna o determinante de uma matriz de uma variável do tipo matriz | 246 | MDETERM = MATRIZ.DETERM ## Retorna o determinante de uma matriz de uma variável do tipo matriz |
| 247 | MINVERSE = MATRIZ.INVERSO ## Retorna a matriz inversa de uma matriz | 247 | MINVERSE = MATRIZ.INVERSO ## Retorna a matriz inversa de uma matriz |
| 248 | MMULT = MATRIZ.MULT ## Retorna o produto de duas matrizes | 248 | MMULT = MATRIZ.MULT ## Retorna o produto de duas matrizes |
| 249 | MOD = RESTO ## Retorna o resto da divisão | 249 | MOD = RESTO ## Retorna o resto da divisão |
| 250 | MROUND = MARRED ## Retorna um número arredondado ao múltiplo desejado | 250 | MROUND = MARRED ## Retorna um número arredondado ao múltiplo desejado |
| 251 | MULTINOMIAL = MULTINOMIAL ## Retorna o multinomial de um conjunto de números | 251 | MULTINOMIAL = MULTINOMIAL ## Retorna o multinomial de um conjunto de números |
| 252 | ODD = ÍMPAR ## Arredonda um número para cima até o inteiro ímpar mais próximo | 252 | ODD = ÍMPAR ## Arredonda um número para cima até o inteiro ímpar mais próximo |
| 253 | PI = PI ## Retorna o valor de Pi | 253 | PI = PI ## Retorna o valor de Pi |
| 254 | POWER = POTÊNCIA ## Fornece o resultado de um número elevado a uma potência | 254 | POWER = POTÊNCIA ## Fornece o resultado de um número elevado a uma potência |
| 255 | PRODUCT = MULT ## Multiplica seus argumentos | 255 | PRODUCT = MULT ## Multiplica seus argumentos |
| 256 | QUOTIENT = QUOCIENTE ## Retorna a parte inteira de uma divisão | 256 | QUOTIENT = QUOCIENTE ## Retorna a parte inteira de uma divisão |
| 257 | RADIANS = RADIANOS ## Converte graus em radianos | 257 | RADIANS = RADIANOS ## Converte graus em radianos |
| 258 | RAND = ALEATÓRIO ## Retorna um número aleatório entre 0 e 1 | 258 | RAND = ALEATÓRIO ## Retorna um número aleatório entre 0 e 1 |
| 259 | RANDBETWEEN = ALEATÓRIOENTRE ## Retorna um número aleatório entre os números especificados | 259 | RANDBETWEEN = ALEATÓRIOENTRE ## Retorna um número aleatório entre os números especificados |
| 260 | ROMAN = ROMANO ## Converte um algarismo arábico em romano, como texto | 260 | ROMAN = ROMANO ## Converte um algarismo arábico em romano, como texto |
| 261 | ROUND = ARRED ## Arredonda um número até uma quantidade especificada de dígitos | 261 | ROUND = ARRED ## Arredonda um número até uma quantidade especificada de dígitos |
| 262 | ROUNDDOWN = ARREDONDAR.PARA.BAIXO ## Arredonda um número para baixo até zero | 262 | ROUNDDOWN = ARREDONDAR.PARA.BAIXO ## Arredonda um número para baixo até zero |
| 263 | ROUNDUP = ARREDONDAR.PARA.CIMA ## Arredonda um número para cima, afastando-o de zero | 263 | ROUNDUP = ARREDONDAR.PARA.CIMA ## Arredonda um número para cima, afastando-o de zero |
| 264 | SERIESSUM = SOMASEQÜÊNCIA ## Retorna a soma de uma série polinomial baseada na fórmula | 264 | SERIESSUM = SOMASEQÜÊNCIA ## Retorna a soma de uma série polinomial baseada na fórmula |
| 265 | SIGN = SINAL ## Retorna o sinal de um número | 265 | SIGN = SINAL ## Retorna o sinal de um número |
| 266 | SIN = SEN ## Retorna o seno de um ângulo dado | 266 | SIN = SEN ## Retorna o seno de um ângulo dado |
| 267 | SINH = SENH ## Retorna o seno hiperbólico de um número | 267 | SINH = SENH ## Retorna o seno hiperbólico de um número |
| 268 | SQRT = RAIZ ## Retorna uma raiz quadrada positiva | 268 | SQRT = RAIZ ## Retorna uma raiz quadrada positiva |
| 269 | SQRTPI = RAIZPI ## Retorna a raiz quadrada de (núm* pi) | 269 | SQRTPI = RAIZPI ## Retorna a raiz quadrada de (núm* pi) |
| 270 | SUBTOTAL = SUBTOTAL ## Retorna um subtotal em uma lista ou em um banco de dados | 270 | SUBTOTAL = SUBTOTAL ## Retorna um subtotal em uma lista ou em um banco de dados |
| 271 | SUM = SOMA ## Soma seus argumentos | 271 | SUM = SOMA ## Soma seus argumentos |
| 272 | SUMIF = SOMASE ## Adiciona as células especificadas por um determinado critério | 272 | SUMIF = SOMASE ## Adiciona as células especificadas por um determinado critério |
| 273 | SUMIFS = SOMASE ## Adiciona as células em um intervalo que atende a vários critérios | 273 | SUMIFS = SOMASE ## Adiciona as células em um intervalo que atende a vários critérios |
| 274 | SUMPRODUCT = SOMARPRODUTO ## Retorna a soma dos produtos de componentes correspondentes de matrizes | 274 | SUMPRODUCT = SOMARPRODUTO ## Retorna a soma dos produtos de componentes correspondentes de matrizes |
| 275 | SUMSQ = SOMAQUAD ## Retorna a soma dos quadrados dos argumentos | 275 | SUMSQ = SOMAQUAD ## Retorna a soma dos quadrados dos argumentos |
| 276 | SUMX2MY2 = SOMAX2DY2 ## Retorna a soma da diferença dos quadrados dos valores correspondentes em duas matrizes | 276 | SUMX2MY2 = SOMAX2DY2 ## Retorna a soma da diferença dos quadrados dos valores correspondentes em duas matrizes |
| 277 | SUMX2PY2 = SOMAX2SY2 ## Retorna a soma da soma dos quadrados dos valores correspondentes em duas matrizes | 277 | SUMX2PY2 = SOMAX2SY2 ## Retorna a soma da soma dos quadrados dos valores correspondentes em duas matrizes |
| 278 | SUMXMY2 = SOMAXMY2 ## Retorna a soma dos quadrados das diferenças dos valores correspondentes em duas matrizes | 278 | SUMXMY2 = SOMAXMY2 ## Retorna a soma dos quadrados das diferenças dos valores correspondentes em duas matrizes |
| 279 | TAN = TAN ## Retorna a tangente de um número | 279 | TAN = TAN ## Retorna a tangente de um número |
| 280 | TANH = TANH ## Retorna a tangente hiperbólica de um número | 280 | TANH = TANH ## Retorna a tangente hiperbólica de um número |
| 281 | TRUNC = TRUNCAR ## Trunca um número para um inteiro | 281 | TRUNC = TRUNCAR ## Trunca um número para um inteiro |
| 282 | 282 | ||
| 283 | 283 | ||
| 284 | ## | 284 | ## |
| 285 | ## Statistical functions Funções estatísticas | 285 | ## Statistical functions Funções estatísticas |
| 286 | ## | 286 | ## |
| 287 | AVEDEV = DESV.MÉDIO ## Retorna a média aritmética dos desvios médios dos pontos de dados a partir de sua média | 287 | AVEDEV = DESV.MÉDIO ## Retorna a média aritmética dos desvios médios dos pontos de dados a partir de sua média |
| 288 | AVERAGE = MÉDIA ## Retorna a média dos argumentos | 288 | AVERAGE = MÉDIA ## Retorna a média dos argumentos |
| 289 | AVERAGEA = MÉDIAA ## Retorna a média dos argumentos, inclusive números, texto e valores lógicos | 289 | AVERAGEA = MÉDIAA ## Retorna a média dos argumentos, inclusive números, texto e valores lógicos |
| 290 | AVERAGEIF = MÉDIASE ## Retorna a média (média aritmética) de todas as células em um intervalo que atendem a um determinado critério | 290 | AVERAGEIF = MÉDIASE ## Retorna a média (média aritmética) de todas as células em um intervalo que atendem a um determinado critério |
| 291 | AVERAGEIFS = MÉDIASES ## Retorna a média (média aritmética) de todas as células que atendem a múltiplos critérios. | 291 | AVERAGEIFS = MÉDIASES ## Retorna a média (média aritmética) de todas as células que atendem a múltiplos critérios. |
| 292 | BETADIST = DISTBETA ## Retorna a função de distribuição cumulativa beta | 292 | BETADIST = DISTBETA ## Retorna a função de distribuição cumulativa beta |
| 293 | BETAINV = BETA.ACUM.INV ## Retorna o inverso da função de distribuição cumulativa para uma distribuição beta especificada | 293 | BETAINV = BETA.ACUM.INV ## Retorna o inverso da função de distribuição cumulativa para uma distribuição beta especificada |
| 294 | BINOMDIST = DISTRBINOM ## Retorna a probabilidade de distribuição binomial do termo individual | 294 | BINOMDIST = DISTRBINOM ## Retorna a probabilidade de distribuição binomial do termo individual |
| 295 | CHIDIST = DIST.QUI ## Retorna a probabilidade unicaudal da distribuição qui-quadrada | 295 | CHIDIST = DIST.QUI ## Retorna a probabilidade unicaudal da distribuição qui-quadrada |
| 296 | CHIINV = INV.QUI ## Retorna o inverso da probabilidade uni-caudal da distribuição qui-quadrada | 296 | CHIINV = INV.QUI ## Retorna o inverso da probabilidade uni-caudal da distribuição qui-quadrada |
| 297 | CHITEST = TESTE.QUI ## Retorna o teste para independência | 297 | CHITEST = TESTE.QUI ## Retorna o teste para independência |
| 298 | CONFIDENCE = INT.CONFIANÇA ## Retorna o intervalo de confiança para uma média da população | 298 | CONFIDENCE = INT.CONFIANÇA ## Retorna o intervalo de confiança para uma média da população |
| 299 | CORREL = CORREL ## Retorna o coeficiente de correlação entre dois conjuntos de dados | 299 | CORREL = CORREL ## Retorna o coeficiente de correlação entre dois conjuntos de dados |
| 300 | COUNT = CONT.NÚM ## Calcula quantos números há na lista de argumentos | 300 | COUNT = CONT.NÚM ## Calcula quantos números há na lista de argumentos |
| 301 | COUNTA = CONT.VALORES ## Calcula quantos valores há na lista de argumentos | 301 | COUNTA = CONT.VALORES ## Calcula quantos valores há na lista de argumentos |
| 302 | COUNTBLANK = CONTAR.VAZIO ## Conta o número de células vazias no intervalo especificado | 302 | COUNTBLANK = CONTAR.VAZIO ## Conta o número de células vazias no intervalo especificado |
| 303 | COUNTIF = CONT.SE ## Calcula o número de células não vazias em um intervalo que corresponde a determinados critérios | 303 | COUNTIF = CONT.SE ## Calcula o número de células não vazias em um intervalo que corresponde a determinados critérios |
| 304 | COUNTIFS = CONT.SES ## Conta o número de células dentro de um intervalo que atende a múltiplos critérios | 304 | COUNTIFS = CONT.SES ## Conta o número de células dentro de um intervalo que atende a múltiplos critérios |
| 305 | COVAR = COVAR ## Retorna a covariância, a média dos produtos dos desvios pares | 305 | COVAR = COVAR ## Retorna a covariância, a média dos produtos dos desvios pares |
| 306 | CRITBINOM = CRIT.BINOM ## Retorna o menor valor para o qual a distribuição binomial cumulativa é menor ou igual ao valor padrão | 306 | CRITBINOM = CRIT.BINOM ## Retorna o menor valor para o qual a distribuição binomial cumulativa é menor ou igual ao valor padrão |
| 307 | DEVSQ = DESVQ ## Retorna a soma dos quadrados dos desvios | 307 | DEVSQ = DESVQ ## Retorna a soma dos quadrados dos desvios |
| 308 | EXPONDIST = DISTEXPON ## Retorna a distribuição exponencial | 308 | EXPONDIST = DISTEXPON ## Retorna a distribuição exponencial |
| 309 | FDIST = DISTF ## Retorna a distribuição de probabilidade F | 309 | FDIST = DISTF ## Retorna a distribuição de probabilidade F |
| 310 | FINV = INVF ## Retorna o inverso da distribuição de probabilidades F | 310 | FINV = INVF ## Retorna o inverso da distribuição de probabilidades F |
| 311 | FISHER = FISHER ## Retorna a transformação Fisher | 311 | FISHER = FISHER ## Retorna a transformação Fisher |
| 312 | FISHERINV = FISHERINV ## Retorna o inverso da transformação Fisher | 312 | FISHERINV = FISHERINV ## Retorna o inverso da transformação Fisher |
| 313 | FORECAST = PREVISÃO ## Retorna um valor ao longo de uma linha reta | 313 | FORECAST = PREVISÃO ## Retorna um valor ao longo de uma linha reta |
| 314 | FREQUENCY = FREQÜÊNCIA ## Retorna uma distribuição de freqüência como uma matriz vertical | 314 | FREQUENCY = FREQÜÊNCIA ## Retorna uma distribuição de freqüência como uma matriz vertical |
| 315 | FTEST = TESTEF ## Retorna o resultado de um teste F | 315 | FTEST = TESTEF ## Retorna o resultado de um teste F |
| 316 | GAMMADIST = DISTGAMA ## Retorna a distribuição gama | 316 | GAMMADIST = DISTGAMA ## Retorna a distribuição gama |
| 317 | GAMMAINV = INVGAMA ## Retorna o inverso da distribuição cumulativa gama | 317 | GAMMAINV = INVGAMA ## Retorna o inverso da distribuição cumulativa gama |
| 318 | GAMMALN = LNGAMA ## Retorna o logaritmo natural da função gama, G(x) | 318 | GAMMALN = LNGAMA ## Retorna o logaritmo natural da função gama, G(x) |
| 319 | GEOMEAN = MÉDIA.GEOMÉTRICA ## Retorna a média geométrica | 319 | GEOMEAN = MÉDIA.GEOMÉTRICA ## Retorna a média geométrica |
| 320 | GROWTH = CRESCIMENTO ## Retorna valores ao longo de uma tendência exponencial | 320 | GROWTH = CRESCIMENTO ## Retorna valores ao longo de uma tendência exponencial |
| 321 | HARMEAN = MÉDIA.HARMÔNICA ## Retorna a média harmônica | 321 | HARMEAN = MÉDIA.HARMÔNICA ## Retorna a média harmônica |
| 322 | HYPGEOMDIST = DIST.HIPERGEOM ## Retorna a distribuição hipergeométrica | 322 | HYPGEOMDIST = DIST.HIPERGEOM ## Retorna a distribuição hipergeométrica |
| 323 | INTERCEPT = INTERCEPÇÃO ## Retorna a intercepção da linha de regressão linear | 323 | INTERCEPT = INTERCEPÇÃO ## Retorna a intercepção da linha de regressão linear |
| 324 | KURT = CURT ## Retorna a curtose de um conjunto de dados | 324 | KURT = CURT ## Retorna a curtose de um conjunto de dados |
| 325 | LARGE = MAIOR ## Retorna o maior valor k-ésimo de um conjunto de dados | 325 | LARGE = MAIOR ## Retorna o maior valor k-ésimo de um conjunto de dados |
| 326 | LINEST = PROJ.LIN ## Retorna os parâmetros de uma tendência linear | 326 | LINEST = PROJ.LIN ## Retorna os parâmetros de uma tendência linear |
| 327 | LOGEST = PROJ.LOG ## Retorna os parâmetros de uma tendência exponencial | 327 | LOGEST = PROJ.LOG ## Retorna os parâmetros de uma tendência exponencial |
| 328 | LOGINV = INVLOG ## Retorna o inverso da distribuição lognormal | 328 | LOGINV = INVLOG ## Retorna o inverso da distribuição lognormal |
| 329 | LOGNORMDIST = DIST.LOGNORMAL ## Retorna a distribuição lognormal cumulativa | 329 | LOGNORMDIST = DIST.LOGNORMAL ## Retorna a distribuição lognormal cumulativa |
| 330 | MAX = MÁXIMO ## Retorna o valor máximo em uma lista de argumentos | 330 | MAX = MÁXIMO ## Retorna o valor máximo em uma lista de argumentos |
| 331 | MAXA = MÁXIMOA ## Retorna o maior valor em uma lista de argumentos, inclusive números, texto e valores lógicos | 331 | MAXA = MÁXIMOA ## Retorna o maior valor em uma lista de argumentos, inclusive números, texto e valores lógicos |
| 332 | MEDIAN = MED ## Retorna a mediana dos números indicados | 332 | MEDIAN = MED ## Retorna a mediana dos números indicados |
| 333 | MIN = MÍNIMO ## Retorna o valor mínimo em uma lista de argumentos | 333 | MIN = MÍNIMO ## Retorna o valor mínimo em uma lista de argumentos |
| 334 | MINA = MÍNIMOA ## Retorna o menor valor em uma lista de argumentos, inclusive números, texto e valores lógicos | 334 | MINA = MÍNIMOA ## Retorna o menor valor em uma lista de argumentos, inclusive números, texto e valores lógicos |
| 335 | MODE = MODO ## Retorna o valor mais comum em um conjunto de dados | 335 | MODE = MODO ## Retorna o valor mais comum em um conjunto de dados |
| 336 | NEGBINOMDIST = DIST.BIN.NEG ## Retorna a distribuição binomial negativa | 336 | NEGBINOMDIST = DIST.BIN.NEG ## Retorna a distribuição binomial negativa |
| 337 | NORMDIST = DIST.NORM ## Retorna a distribuição cumulativa normal | 337 | NORMDIST = DIST.NORM ## Retorna a distribuição cumulativa normal |
| 338 | NORMINV = INV.NORM ## Retorna o inverso da distribuição cumulativa normal | 338 | NORMINV = INV.NORM ## Retorna o inverso da distribuição cumulativa normal |
| 339 | NORMSDIST = DIST.NORMP ## Retorna a distribuição cumulativa normal padrão | 339 | NORMSDIST = DIST.NORMP ## Retorna a distribuição cumulativa normal padrão |
| 340 | NORMSINV = INV.NORMP ## Retorna o inverso da distribuição cumulativa normal padrão | 340 | NORMSINV = INV.NORMP ## Retorna o inverso da distribuição cumulativa normal padrão |
| 341 | PEARSON = PEARSON ## Retorna o coeficiente de correlação do momento do produto Pearson | 341 | PEARSON = PEARSON ## Retorna o coeficiente de correlação do momento do produto Pearson |
| 342 | PERCENTILE = PERCENTIL ## Retorna o k-ésimo percentil de valores em um intervalo | 342 | PERCENTILE = PERCENTIL ## Retorna o k-ésimo percentil de valores em um intervalo |
| 343 | PERCENTRANK = ORDEM.PORCENTUAL ## Retorna a ordem percentual de um valor em um conjunto de dados | 343 | PERCENTRANK = ORDEM.PORCENTUAL ## Retorna a ordem percentual de um valor em um conjunto de dados |
| 344 | PERMUT = PERMUT ## Retorna o número de permutações de um determinado número de objetos | 344 | PERMUT = PERMUT ## Retorna o número de permutações de um determinado número de objetos |
| 345 | POISSON = POISSON ## Retorna a distribuição Poisson | 345 | POISSON = POISSON ## Retorna a distribuição Poisson |
| 346 | PROB = PROB ## Retorna a probabilidade de valores em um intervalo estarem entre dois limites | 346 | PROB = PROB ## Retorna a probabilidade de valores em um intervalo estarem entre dois limites |
| 347 | QUARTILE = QUARTIL ## Retorna o quartil do conjunto de dados | 347 | QUARTILE = QUARTIL ## Retorna o quartil do conjunto de dados |
| 348 | RANK = ORDEM ## Retorna a posição de um número em uma lista de números | 348 | RANK = ORDEM ## Retorna a posição de um número em uma lista de números |
| 349 | RSQ = RQUAD ## Retorna o quadrado do coeficiente de correlação do momento do produto de Pearson | 349 | RSQ = RQUAD ## Retorna o quadrado do coeficiente de correlação do momento do produto de Pearson |
| 350 | SKEW = DISTORÇÃO ## Retorna a distorção de uma distribuição | 350 | SKEW = DISTORÇÃO ## Retorna a distorção de uma distribuição |
| 351 | SLOPE = INCLINAÇÃO ## Retorna a inclinação da linha de regressão linear | 351 | SLOPE = INCLINAÇÃO ## Retorna a inclinação da linha de regressão linear |
| 352 | SMALL = MENOR ## Retorna o menor valor k-ésimo do conjunto de dados | 352 | SMALL = MENOR ## Retorna o menor valor k-ésimo do conjunto de dados |
| 353 | STANDARDIZE = PADRONIZAR ## Retorna um valor normalizado | 353 | STANDARDIZE = PADRONIZAR ## Retorna um valor normalizado |
| 354 | STDEV = DESVPAD ## Estima o desvio padrão com base em uma amostra | 354 | STDEV = DESVPAD ## Estima o desvio padrão com base em uma amostra |
| 355 | STDEVA = DESVPADA ## Estima o desvio padrão com base em uma amostra, inclusive números, texto e valores lógicos | 355 | STDEVA = DESVPADA ## Estima o desvio padrão com base em uma amostra, inclusive números, texto e valores lógicos |
| 356 | STDEVP = DESVPADP ## Calcula o desvio padrão com base na população total | 356 | STDEVP = DESVPADP ## Calcula o desvio padrão com base na população total |
| 357 | STDEVPA = DESVPADPA ## Calcula o desvio padrão com base na população total, inclusive números, texto e valores lógicos | 357 | STDEVPA = DESVPADPA ## Calcula o desvio padrão com base na população total, inclusive números, texto e valores lógicos |
| 358 | STEYX = EPADYX ## Retorna o erro padrão do valor-y previsto para cada x da regressão | 358 | STEYX = EPADYX ## Retorna o erro padrão do valor-y previsto para cada x da regressão |
| 359 | TDIST = DISTT ## Retorna a distribuição t de Student | 359 | TDIST = DISTT ## Retorna a distribuição t de Student |
| 360 | TINV = INVT ## Retorna o inverso da distribuição t de Student | 360 | TINV = INVT ## Retorna o inverso da distribuição t de Student |
| 361 | TREND = TENDÊNCIA ## Retorna valores ao longo de uma tendência linear | 361 | TREND = TENDÊNCIA ## Retorna valores ao longo de uma tendência linear |
| 362 | TRIMMEAN = MÉDIA.INTERNA ## Retorna a média do interior de um conjunto de dados | 362 | TRIMMEAN = MÉDIA.INTERNA ## Retorna a média do interior de um conjunto de dados |
| 363 | TTEST = TESTET ## Retorna a probabilidade associada ao teste t de Student | 363 | TTEST = TESTET ## Retorna a probabilidade associada ao teste t de Student |
| 364 | VAR = VAR ## Estima a variância com base em uma amostra | 364 | VAR = VAR ## Estima a variância com base em uma amostra |
| 365 | VARA = VARA ## Estima a variância com base em uma amostra, inclusive números, texto e valores lógicos | 365 | VARA = VARA ## Estima a variância com base em uma amostra, inclusive números, texto e valores lógicos |
| 366 | VARP = VARP ## Calcula a variância com base na população inteira | 366 | VARP = VARP ## Calcula a variância com base na população inteira |
| 367 | VARPA = VARPA ## Calcula a variância com base na população total, inclusive números, texto e valores lógicos | 367 | VARPA = VARPA ## Calcula a variância com base na população total, inclusive números, texto e valores lógicos |
| 368 | WEIBULL = WEIBULL ## Retorna a distribuição Weibull | 368 | WEIBULL = WEIBULL ## Retorna a distribuição Weibull |
| 369 | ZTEST = TESTEZ ## Retorna o valor de probabilidade uni-caudal de um teste-z | 369 | ZTEST = TESTEZ ## Retorna o valor de probabilidade uni-caudal de um teste-z |
| 370 | 370 | ||
| 371 | 371 | ||
| 372 | ## | 372 | ## |
| 373 | ## Text functions Funções de texto | 373 | ## Text functions Funções de texto |
| 374 | ## | 374 | ## |
| 375 | ASC = ASC ## Altera letras do inglês ou katakana de largura total (bytes duplos) dentro de uma seqüência de caracteres para caracteres de meia largura (byte único) | 375 | ASC = ASC ## Altera letras do inglês ou katakana de largura total (bytes duplos) dentro de uma seqüência de caracteres para caracteres de meia largura (byte único) |
| 376 | BAHTTEXT = BAHTTEXT ## Converte um número em um texto, usando o formato de moeda ß (baht) | 376 | BAHTTEXT = BAHTTEXT ## Converte um número em um texto, usando o formato de moeda ß (baht) |
| 377 | CHAR = CARACT ## Retorna o caractere especificado pelo número de código | 377 | CHAR = CARACT ## Retorna o caractere especificado pelo número de código |
| 378 | CLEAN = TIRAR ## Remove todos os caracteres do texto que não podem ser impressos | 378 | CLEAN = TIRAR ## Remove todos os caracteres do texto que não podem ser impressos |
| 379 | CODE = CÓDIGO ## Retorna um código numérico para o primeiro caractere de uma seqüência de caracteres de texto | 379 | CODE = CÓDIGO ## Retorna um código numérico para o primeiro caractere de uma seqüência de caracteres de texto |
| 380 | CONCATENATE = CONCATENAR ## Agrupa vários itens de texto em um único item de texto | 380 | CONCATENATE = CONCATENAR ## Agrupa vários itens de texto em um único item de texto |
| 381 | DOLLAR = MOEDA ## Converte um número em texto, usando o formato de moeda $ (dólar) | 381 | DOLLAR = MOEDA ## Converte um número em texto, usando o formato de moeda $ (dólar) |
| 382 | EXACT = EXATO ## Verifica se dois valores de texto são idênticos | 382 | EXACT = EXATO ## Verifica se dois valores de texto são idênticos |
| 383 | FIND = PROCURAR ## Procura um valor de texto dentro de outro (diferencia maiúsculas de minúsculas) | 383 | FIND = PROCURAR ## Procura um valor de texto dentro de outro (diferencia maiúsculas de minúsculas) |
| 384 | FINDB = PROCURARB ## Procura um valor de texto dentro de outro (diferencia maiúsculas de minúsculas) | 384 | FINDB = PROCURARB ## Procura um valor de texto dentro de outro (diferencia maiúsculas de minúsculas) |
| 385 | FIXED = DEF.NÚM.DEC ## Formata um número como texto com um número fixo de decimais | 385 | FIXED = DEF.NÚM.DEC ## Formata um número como texto com um número fixo de decimais |
| 386 | JIS = JIS ## Altera letras do inglês ou katakana de meia largura (byte único) dentro de uma seqüência de caracteres para caracteres de largura total (bytes duplos) | 386 | JIS = JIS ## Altera letras do inglês ou katakana de meia largura (byte único) dentro de uma seqüência de caracteres para caracteres de largura total (bytes duplos) |
| 387 | LEFT = ESQUERDA ## Retorna os caracteres mais à esquerda de um valor de texto | 387 | LEFT = ESQUERDA ## Retorna os caracteres mais à esquerda de um valor de texto |
| 388 | LEFTB = ESQUERDAB ## Retorna os caracteres mais à esquerda de um valor de texto | 388 | LEFTB = ESQUERDAB ## Retorna os caracteres mais à esquerda de um valor de texto |
| 389 | LEN = NÚM.CARACT ## Retorna o número de caracteres em uma seqüência de texto | 389 | LEN = NÚM.CARACT ## Retorna o número de caracteres em uma seqüência de texto |
| 390 | LENB = NÚM.CARACTB ## Retorna o número de caracteres em uma seqüência de texto | 390 | LENB = NÚM.CARACTB ## Retorna o número de caracteres em uma seqüência de texto |
| 391 | LOWER = MINÚSCULA ## Converte texto para minúsculas | 391 | LOWER = MINÚSCULA ## Converte texto para minúsculas |
| 392 | MID = EXT.TEXTO ## Retorna um número específico de caracteres de uma seqüência de texto começando na posição especificada | 392 | MID = EXT.TEXTO ## Retorna um número específico de caracteres de uma seqüência de texto começando na posição especificada |
| 393 | MIDB = EXT.TEXTOB ## Retorna um número específico de caracteres de uma seqüência de texto começando na posição especificada | 393 | MIDB = EXT.TEXTOB ## Retorna um número específico de caracteres de uma seqüência de texto começando na posição especificada |
| 394 | PHONETIC = FONÉTICA ## Extrai os caracteres fonéticos (furigana) de uma seqüência de caracteres de texto | 394 | PHONETIC = FONÉTICA ## Extrai os caracteres fonéticos (furigana) de uma seqüência de caracteres de texto |
| 395 | PROPER = PRI.MAIÚSCULA ## Coloca a primeira letra de cada palavra em maiúscula em um valor de texto | 395 | PROPER = PRI.MAIÚSCULA ## Coloca a primeira letra de cada palavra em maiúscula em um valor de texto |
| 396 | REPLACE = MUDAR ## Muda os caracteres dentro do texto | 396 | REPLACE = MUDAR ## Muda os caracteres dentro do texto |
| 397 | REPLACEB = MUDARB ## Muda os caracteres dentro do texto | 397 | REPLACEB = MUDARB ## Muda os caracteres dentro do texto |
| 398 | REPT = REPT ## Repete o texto um determinado número de vezes | 398 | REPT = REPT ## Repete o texto um determinado número de vezes |
| 399 | RIGHT = DIREITA ## Retorna os caracteres mais à direita de um valor de texto | 399 | RIGHT = DIREITA ## Retorna os caracteres mais à direita de um valor de texto |
| 400 | RIGHTB = DIREITAB ## Retorna os caracteres mais à direita de um valor de texto | 400 | RIGHTB = DIREITAB ## Retorna os caracteres mais à direita de um valor de texto |
| 401 | SEARCH = LOCALIZAR ## Localiza um valor de texto dentro de outro (não diferencia maiúsculas de minúsculas) | 401 | SEARCH = LOCALIZAR ## Localiza um valor de texto dentro de outro (não diferencia maiúsculas de minúsculas) |
| 402 | SEARCHB = LOCALIZARB ## Localiza um valor de texto dentro de outro (não diferencia maiúsculas de minúsculas) | 402 | SEARCHB = LOCALIZARB ## Localiza um valor de texto dentro de outro (não diferencia maiúsculas de minúsculas) |
| 403 | SUBSTITUTE = SUBSTITUIR ## Substitui um novo texto por um texto antigo em uma seqüência de texto | 403 | SUBSTITUTE = SUBSTITUIR ## Substitui um novo texto por um texto antigo em uma seqüência de texto |
| 404 | T = T ## Converte os argumentos em texto | 404 | T = T ## Converte os argumentos em texto |
| 405 | TEXT = TEXTO ## Formata um número e o converte em texto | 405 | TEXT = TEXTO ## Formata um número e o converte em texto |
| 406 | TRIM = ARRUMAR ## Remove espaços do texto | 406 | TRIM = ARRUMAR ## Remove espaços do texto |
| 407 | UPPER = MAIÚSCULA ## Converte o texto em maiúsculas | 407 | UPPER = MAIÚSCULA ## Converte o texto em maiúsculas |
| 408 | VALUE = VALOR ## Converte um argumento de texto em um número | 408 | VALUE = VALOR ## Converte um argumento de texto em um número | ... | ... |
| 1 | ## | 1 | ## |
| 2 | ## Add-in and Automation functions Funções de Suplemento e Automatização | 2 | ## Add-in and Automation functions Funções de Suplemento e Automatização |
| 3 | ## | 3 | ## |
| 4 | GETPIVOTDATA = OBTERDADOSDIN ## Devolve dados armazenados num relatório de Tabela Dinâmica | 4 | GETPIVOTDATA = OBTERDADOSDIN ## Devolve dados armazenados num relatório de Tabela Dinâmica |
| 5 | 5 | ||
| 6 | 6 | ||
| 7 | ## | 7 | ## |
| 8 | ## Cube functions Funções de cubo | 8 | ## Cube functions Funções de cubo |
| 9 | ## | 9 | ## |
| 10 | CUBEKPIMEMBER = MEMBROKPICUBO ## Devolve o nome, propriedade e medição de um KPI (key performance indicator) e apresenta o nome e a propriedade na célula. Um KPI é uma medida quantificável, como, por exemplo, o lucro mensal bruto ou a rotatividade trimestral de pessoal, utilizada para monitorizar o desempenho de uma organização. | 10 | CUBEKPIMEMBER = MEMBROKPICUBO ## Devolve o nome, propriedade e medição de um KPI (key performance indicator) e apresenta o nome e a propriedade na célula. Um KPI é uma medida quantificável, como, por exemplo, o lucro mensal bruto ou a rotatividade trimestral de pessoal, utilizada para monitorizar o desempenho de uma organização. |
| 11 | CUBEMEMBER = MEMBROCUBO ## Devolve um membro ou cadeia de identificação numa hierarquia de cubo. Utilizada para validar a existência do membro ou cadeia de identificação no cubo. | 11 | CUBEMEMBER = MEMBROCUBO ## Devolve um membro ou cadeia de identificação numa hierarquia de cubo. Utilizada para validar a existência do membro ou cadeia de identificação no cubo. |
| 12 | CUBEMEMBERPROPERTY = PROPRIEDADEMEMBROCUBO ## Devolve o valor de uma propriedade de membro no cubo. Utilizada para validar a existência de um nome de membro no cubo e para devolver a propriedade especificada para esse membro. | 12 | CUBEMEMBERPROPERTY = PROPRIEDADEMEMBROCUBO ## Devolve o valor de uma propriedade de membro no cubo. Utilizada para validar a existência de um nome de membro no cubo e para devolver a propriedade especificada para esse membro. |
| 13 | CUBERANKEDMEMBER = MEMBROCLASSIFICADOCUBO ## Devolve o enésimo ou a classificação mais alta num conjunto. Utilizada para devolver um ou mais elementos num conjunto, tal como o melhor vendedor ou os 10 melhores alunos. | 13 | CUBERANKEDMEMBER = MEMBROCLASSIFICADOCUBO ## Devolve o enésimo ou a classificação mais alta num conjunto. Utilizada para devolver um ou mais elementos num conjunto, tal como o melhor vendedor ou os 10 melhores alunos. |
| 14 | CUBESET = CONJUNTOCUBO ## Define um conjunto calculado de membros ou cadeias de identificação enviando uma expressão de conjunto para o cubo no servidor, que cria o conjunto e, em seguida, devolve o conjunto ao Microsoft Office Excel. | 14 | CUBESET = CONJUNTOCUBO ## Define um conjunto calculado de membros ou cadeias de identificação enviando uma expressão de conjunto para o cubo no servidor, que cria o conjunto e, em seguida, devolve o conjunto ao Microsoft Office Excel. |
| 15 | CUBESETCOUNT = CONTARCONJUNTOCUBO ## Devolve o número de itens num conjunto. | 15 | CUBESETCOUNT = CONTARCONJUNTOCUBO ## Devolve o número de itens num conjunto. |
| 16 | CUBEVALUE = VALORCUBO ## Devolve um valor agregado do cubo. | 16 | CUBEVALUE = VALORCUBO ## Devolve um valor agregado do cubo. |
| 17 | 17 | ||
| 18 | 18 | ||
| 19 | ## | 19 | ## |
| 20 | ## Database functions Funções de base de dados | 20 | ## Database functions Funções de base de dados |
| 21 | ## | 21 | ## |
| 22 | DAVERAGE = BDMÉDIA ## Devolve a média das entradas da base de dados seleccionadas | 22 | DAVERAGE = BDMÉDIA ## Devolve a média das entradas da base de dados seleccionadas |
| 23 | DCOUNT = BDCONTAR ## Conta as células que contêm números numa base de dados | 23 | DCOUNT = BDCONTAR ## Conta as células que contêm números numa base de dados |
| 24 | DCOUNTA = BDCONTAR.VAL ## Conta as células que não estejam em branco numa base de dados | 24 | DCOUNTA = BDCONTAR.VAL ## Conta as células que não estejam em branco numa base de dados |
| 25 | DGET = BDOBTER ## Extrai de uma base de dados um único registo que corresponde aos critérios especificados | 25 | DGET = BDOBTER ## Extrai de uma base de dados um único registo que corresponde aos critérios especificados |
| 26 | DMAX = BDMÁX ## Devolve o valor máximo das entradas da base de dados seleccionadas | 26 | DMAX = BDMÁX ## Devolve o valor máximo das entradas da base de dados seleccionadas |
| 27 | DMIN = BDMÍN ## Devolve o valor mínimo das entradas da base de dados seleccionadas | 27 | DMIN = BDMÍN ## Devolve o valor mínimo das entradas da base de dados seleccionadas |
| 28 | DPRODUCT = BDMULTIPL ## Multiplica os valores de um determinado campo de registos que correspondem aos critérios numa base de dados | 28 | DPRODUCT = BDMULTIPL ## Multiplica os valores de um determinado campo de registos que correspondem aos critérios numa base de dados |
| 29 | DSTDEV = BDDESVPAD ## Calcula o desvio-padrão com base numa amostra de entradas da base de dados seleccionadas | 29 | DSTDEV = BDDESVPAD ## Calcula o desvio-padrão com base numa amostra de entradas da base de dados seleccionadas |
| 30 | DSTDEVP = BDDESVPADP ## Calcula o desvio-padrão com base na população total das entradas da base de dados seleccionadas | 30 | DSTDEVP = BDDESVPADP ## Calcula o desvio-padrão com base na população total das entradas da base de dados seleccionadas |
| 31 | DSUM = BDSOMA ## Adiciona os números na coluna de campo dos registos de base de dados que correspondem aos critérios | 31 | DSUM = BDSOMA ## Adiciona os números na coluna de campo dos registos de base de dados que correspondem aos critérios |
| 32 | DVAR = BDVAR ## Calcula a variância com base numa amostra das entradas de base de dados seleccionadas | 32 | DVAR = BDVAR ## Calcula a variância com base numa amostra das entradas de base de dados seleccionadas |
| 33 | DVARP = BDVARP ## Calcula a variância com base na população total das entradas de base de dados seleccionadas | 33 | DVARP = BDVARP ## Calcula a variância com base na população total das entradas de base de dados seleccionadas |
| 34 | 34 | ||
| 35 | 35 | ||
| 36 | ## | 36 | ## |
| 37 | ## Date and time functions Funções de data e hora | 37 | ## Date and time functions Funções de data e hora |
| 38 | ## | 38 | ## |
| 39 | DATE = DATA ## Devolve o número de série de uma determinada data | 39 | DATE = DATA ## Devolve o número de série de uma determinada data |
| 40 | DATEVALUE = DATA.VALOR ## Converte uma data em forma de texto num número de série | 40 | DATEVALUE = DATA.VALOR ## Converte uma data em forma de texto num número de série |
| 41 | DAY = DIA ## Converte um número de série num dia do mês | 41 | DAY = DIA ## Converte um número de série num dia do mês |
| 42 | DAYS360 = DIAS360 ## Calcula o número de dias entre duas datas com base num ano com 360 dias | 42 | DAYS360 = DIAS360 ## Calcula o número de dias entre duas datas com base num ano com 360 dias |
| 43 | EDATE = DATAM ## Devolve um número de série de data que corresponde ao número de meses indicado antes ou depois da data de início | 43 | EDATE = DATAM ## Devolve um número de série de data que corresponde ao número de meses indicado antes ou depois da data de início |
| 44 | EOMONTH = FIMMÊS ## Devolve o número de série do último dia do mês antes ou depois de um número de meses especificado | 44 | EOMONTH = FIMMÊS ## Devolve o número de série do último dia do mês antes ou depois de um número de meses especificado |
| 45 | HOUR = HORA ## Converte um número de série numa hora | 45 | HOUR = HORA ## Converte um número de série numa hora |
| 46 | MINUTE = MINUTO ## Converte um número de série num minuto | 46 | MINUTE = MINUTO ## Converte um número de série num minuto |
| 47 | MONTH = MÊS ## Converte um número de série num mês | 47 | MONTH = MÊS ## Converte um número de série num mês |
| 48 | NETWORKDAYS = DIATRABALHOTOTAL ## Devolve o número total de dias úteis entre duas datas | 48 | NETWORKDAYS = DIATRABALHOTOTAL ## Devolve o número total de dias úteis entre duas datas |
| 49 | NOW = AGORA ## Devolve o número de série da data e hora actuais | 49 | NOW = AGORA ## Devolve o número de série da data e hora actuais |
| 50 | SECOND = SEGUNDO ## Converte um número de série num segundo | 50 | SECOND = SEGUNDO ## Converte um número de série num segundo |
| 51 | TIME = TEMPO ## Devolve o número de série de um determinado tempo | 51 | TIME = TEMPO ## Devolve o número de série de um determinado tempo |
| 52 | TIMEVALUE = VALOR.TEMPO ## Converte um tempo em forma de texto num número de série | 52 | TIMEVALUE = VALOR.TEMPO ## Converte um tempo em forma de texto num número de série |
| 53 | TODAY = HOJE ## Devolve o número de série da data actual | 53 | TODAY = HOJE ## Devolve o número de série da data actual |
| 54 | WEEKDAY = DIA.SEMANA ## Converte um número de série num dia da semana | 54 | WEEKDAY = DIA.SEMANA ## Converte um número de série num dia da semana |
| 55 | WEEKNUM = NÚMSEMANA ## Converte um número de série num número que representa o número da semana num determinado ano | 55 | WEEKNUM = NÚMSEMANA ## Converte um número de série num número que representa o número da semana num determinado ano |
| 56 | WORKDAY = DIA.TRABALHO ## Devolve o número de série da data antes ou depois de um número de dias úteis especificado | 56 | WORKDAY = DIA.TRABALHO ## Devolve o número de série da data antes ou depois de um número de dias úteis especificado |
| 57 | YEAR = ANO ## Converte um número de série num ano | 57 | YEAR = ANO ## Converte um número de série num ano |
| 58 | YEARFRAC = FRACÇÃOANO ## Devolve a fracção de ano que representa o número de dias inteiros entre a data_de_início e a data_de_fim | 58 | YEARFRAC = FRACÇÃOANO ## Devolve a fracção de ano que representa o número de dias inteiros entre a data_de_início e a data_de_fim |
| 59 | 59 | ||
| 60 | 60 | ||
| 61 | ## | 61 | ## |
| 62 | ## Engineering functions Funções de engenharia | 62 | ## Engineering functions Funções de engenharia |
| 63 | ## | 63 | ## |
| 64 | BESSELI = BESSELI ## Devolve a função de Bessel modificada In(x) | 64 | BESSELI = BESSELI ## Devolve a função de Bessel modificada In(x) |
| 65 | BESSELJ = BESSELJ ## Devolve a função de Bessel Jn(x) | 65 | BESSELJ = BESSELJ ## Devolve a função de Bessel Jn(x) |
| 66 | BESSELK = BESSELK ## Devolve a função de Bessel modificada Kn(x) | 66 | BESSELK = BESSELK ## Devolve a função de Bessel modificada Kn(x) |
| 67 | BESSELY = BESSELY ## Devolve a função de Bessel Yn(x) | 67 | BESSELY = BESSELY ## Devolve a função de Bessel Yn(x) |
| 68 | BIN2DEC = BINADEC ## Converte um número binário em decimal | 68 | BIN2DEC = BINADEC ## Converte um número binário em decimal |
| 69 | BIN2HEX = BINAHEX ## Converte um número binário em hexadecimal | 69 | BIN2HEX = BINAHEX ## Converte um número binário em hexadecimal |
| 70 | BIN2OCT = BINAOCT ## Converte um número binário em octal | 70 | BIN2OCT = BINAOCT ## Converte um número binário em octal |
| 71 | COMPLEX = COMPLEXO ## Converte coeficientes reais e imaginários num número complexo | 71 | COMPLEX = COMPLEXO ## Converte coeficientes reais e imaginários num número complexo |
| 72 | CONVERT = CONVERTER ## Converte um número de um sistema de medida noutro | 72 | CONVERT = CONVERTER ## Converte um número de um sistema de medida noutro |
| 73 | DEC2BIN = DECABIN ## Converte um número decimal em binário | 73 | DEC2BIN = DECABIN ## Converte um número decimal em binário |
| 74 | DEC2HEX = DECAHEX ## Converte um número decimal em hexadecimal | 74 | DEC2HEX = DECAHEX ## Converte um número decimal em hexadecimal |
| 75 | DEC2OCT = DECAOCT ## Converte um número decimal em octal | 75 | DEC2OCT = DECAOCT ## Converte um número decimal em octal |
| 76 | DELTA = DELTA ## Testa se dois valores são iguais | 76 | DELTA = DELTA ## Testa se dois valores são iguais |
| 77 | ERF = FUNCERRO ## Devolve a função de erro | 77 | ERF = FUNCERRO ## Devolve a função de erro |
| 78 | ERFC = FUNCERROCOMPL ## Devolve a função de erro complementar | 78 | ERFC = FUNCERROCOMPL ## Devolve a função de erro complementar |
| 79 | GESTEP = DEGRAU ## Testa se um número é maior do que um valor limite | 79 | GESTEP = DEGRAU ## Testa se um número é maior do que um valor limite |
| 80 | HEX2BIN = HEXABIN ## Converte um número hexadecimal em binário | 80 | HEX2BIN = HEXABIN ## Converte um número hexadecimal em binário |
| 81 | HEX2DEC = HEXADEC ## Converte um número hexadecimal em decimal | 81 | HEX2DEC = HEXADEC ## Converte um número hexadecimal em decimal |
| 82 | HEX2OCT = HEXAOCT ## Converte um número hexadecimal em octal | 82 | HEX2OCT = HEXAOCT ## Converte um número hexadecimal em octal |
| 83 | IMABS = IMABS ## Devolve o valor absoluto (módulo) de um número complexo | 83 | IMABS = IMABS ## Devolve o valor absoluto (módulo) de um número complexo |
| 84 | IMAGINARY = IMAGINÁRIO ## Devolve o coeficiente imaginário de um número complexo | 84 | IMAGINARY = IMAGINÁRIO ## Devolve o coeficiente imaginário de um número complexo |
| 85 | IMARGUMENT = IMARG ## Devolve o argumento Teta, um ângulo expresso em radianos | 85 | IMARGUMENT = IMARG ## Devolve o argumento Teta, um ângulo expresso em radianos |
| 86 | IMCONJUGATE = IMCONJ ## Devolve o conjugado complexo de um número complexo | 86 | IMCONJUGATE = IMCONJ ## Devolve o conjugado complexo de um número complexo |
| 87 | IMCOS = IMCOS ## Devolve o co-seno de um número complexo | 87 | IMCOS = IMCOS ## Devolve o co-seno de um número complexo |
| 88 | IMDIV = IMDIV ## Devolve o quociente de dois números complexos | 88 | IMDIV = IMDIV ## Devolve o quociente de dois números complexos |
| 89 | IMEXP = IMEXP ## Devolve o exponencial de um número complexo | 89 | IMEXP = IMEXP ## Devolve o exponencial de um número complexo |
| 90 | IMLN = IMLN ## Devolve o logaritmo natural de um número complexo | 90 | IMLN = IMLN ## Devolve o logaritmo natural de um número complexo |
| 91 | IMLOG10 = IMLOG10 ## Devolve o logaritmo de base 10 de um número complexo | 91 | IMLOG10 = IMLOG10 ## Devolve o logaritmo de base 10 de um número complexo |
| 92 | IMLOG2 = IMLOG2 ## Devolve o logaritmo de base 2 de um número complexo | 92 | IMLOG2 = IMLOG2 ## Devolve o logaritmo de base 2 de um número complexo |
| 93 | IMPOWER = IMPOT ## Devolve um número complexo elevado a uma potência inteira | 93 | IMPOWER = IMPOT ## Devolve um número complexo elevado a uma potência inteira |
| 94 | IMPRODUCT = IMPROD ## Devolve o produto de números complexos | 94 | IMPRODUCT = IMPROD ## Devolve o produto de números complexos |
| 95 | IMREAL = IMREAL ## Devolve o coeficiente real de um número complexo | 95 | IMREAL = IMREAL ## Devolve o coeficiente real de um número complexo |
| 96 | IMSIN = IMSENO ## Devolve o seno de um número complexo | 96 | IMSIN = IMSENO ## Devolve o seno de um número complexo |
| 97 | IMSQRT = IMRAIZ ## Devolve a raiz quadrada de um número complexo | 97 | IMSQRT = IMRAIZ ## Devolve a raiz quadrada de um número complexo |
| 98 | IMSUB = IMSUBTR ## Devolve a diferença entre dois números complexos | 98 | IMSUB = IMSUBTR ## Devolve a diferença entre dois números complexos |
| 99 | IMSUM = IMSOMA ## Devolve a soma de números complexos | 99 | IMSUM = IMSOMA ## Devolve a soma de números complexos |
| 100 | OCT2BIN = OCTABIN ## Converte um número octal em binário | 100 | OCT2BIN = OCTABIN ## Converte um número octal em binário |
| 101 | OCT2DEC = OCTADEC ## Converte um número octal em decimal | 101 | OCT2DEC = OCTADEC ## Converte um número octal em decimal |
| 102 | OCT2HEX = OCTAHEX ## Converte um número octal em hexadecimal | 102 | OCT2HEX = OCTAHEX ## Converte um número octal em hexadecimal |
| 103 | 103 | ||
| 104 | 104 | ||
| 105 | ## | 105 | ## |
| 106 | ## Financial functions Funções financeiras | 106 | ## Financial functions Funções financeiras |
| 107 | ## | 107 | ## |
| 108 | ACCRINT = JUROSACUM ## Devolve os juros acumulados de um título que paga juros periódicos | 108 | ACCRINT = JUROSACUM ## Devolve os juros acumulados de um título que paga juros periódicos |
| 109 | ACCRINTM = JUROSACUMV ## Devolve os juros acumulados de um título que paga juros no vencimento | 109 | ACCRINTM = JUROSACUMV ## Devolve os juros acumulados de um título que paga juros no vencimento |
| 110 | AMORDEGRC = AMORDEGRC ## Devolve a depreciação correspondente a cada período contabilístico utilizando um coeficiente de depreciação | 110 | AMORDEGRC = AMORDEGRC ## Devolve a depreciação correspondente a cada período contabilístico utilizando um coeficiente de depreciação |
| 111 | AMORLINC = AMORLINC ## Devolve a depreciação correspondente a cada período contabilístico | 111 | AMORLINC = AMORLINC ## Devolve a depreciação correspondente a cada período contabilístico |
| 112 | COUPDAYBS = CUPDIASINLIQ ## Devolve o número de dias entre o início do período do cupão e a data de regularização | 112 | COUPDAYBS = CUPDIASINLIQ ## Devolve o número de dias entre o início do período do cupão e a data de regularização |
| 113 | COUPDAYS = CUPDIAS ## Devolve o número de dias no período do cupão que contém a data de regularização | 113 | COUPDAYS = CUPDIAS ## Devolve o número de dias no período do cupão que contém a data de regularização |
| 114 | COUPDAYSNC = CUPDIASPRÓX ## Devolve o número de dias entre a data de regularização e a data do cupão seguinte | 114 | COUPDAYSNC = CUPDIASPRÓX ## Devolve o número de dias entre a data de regularização e a data do cupão seguinte |
| 115 | COUPNCD = CUPDATAPRÓX ## Devolve a data do cupão seguinte após a data de regularização | 115 | COUPNCD = CUPDATAPRÓX ## Devolve a data do cupão seguinte após a data de regularização |
| 116 | COUPNUM = CUPNÚM ## Devolve o número de cupões a serem pagos entre a data de regularização e a data de vencimento | 116 | COUPNUM = CUPNÚM ## Devolve o número de cupões a serem pagos entre a data de regularização e a data de vencimento |
| 117 | COUPPCD = CUPDATAANT ## Devolve a data do cupão anterior antes da data de regularização | 117 | COUPPCD = CUPDATAANT ## Devolve a data do cupão anterior antes da data de regularização |
| 118 | CUMIPMT = PGTOJURACUM ## Devolve os juros cumulativos pagos entre dois períodos | 118 | CUMIPMT = PGTOJURACUM ## Devolve os juros cumulativos pagos entre dois períodos |
| 119 | CUMPRINC = PGTOCAPACUM ## Devolve o capital cumulativo pago a título de empréstimo entre dois períodos | 119 | CUMPRINC = PGTOCAPACUM ## Devolve o capital cumulativo pago a título de empréstimo entre dois períodos |
| 120 | DB = BD ## Devolve a depreciação de um activo relativo a um período especificado utilizando o método das quotas degressivas fixas | 120 | DB = BD ## Devolve a depreciação de um activo relativo a um período especificado utilizando o método das quotas degressivas fixas |
| 121 | DDB = BDD ## Devolve a depreciação de um activo relativo a um período especificado utilizando o método das quotas degressivas duplas ou qualquer outro método especificado | 121 | DDB = BDD ## Devolve a depreciação de um activo relativo a um período especificado utilizando o método das quotas degressivas duplas ou qualquer outro método especificado |
| 122 | DISC = DESC ## Devolve a taxa de desconto de um título | 122 | DISC = DESC ## Devolve a taxa de desconto de um título |
| 123 | DOLLARDE = MOEDADEC ## Converte um preço em unidade monetária, expresso como uma fracção, num preço em unidade monetária, expresso como um número decimal | 123 | DOLLARDE = MOEDADEC ## Converte um preço em unidade monetária, expresso como uma fracção, num preço em unidade monetária, expresso como um número decimal |
| 124 | DOLLARFR = MOEDAFRA ## Converte um preço em unidade monetária, expresso como um número decimal, num preço em unidade monetária, expresso como uma fracção | 124 | DOLLARFR = MOEDAFRA ## Converte um preço em unidade monetária, expresso como um número decimal, num preço em unidade monetária, expresso como uma fracção |
| 125 | DURATION = DURAÇÃO ## Devolve a duração anual de um título com pagamentos de juros periódicos | 125 | DURATION = DURAÇÃO ## Devolve a duração anual de um título com pagamentos de juros periódicos |
| 126 | EFFECT = EFECTIVA ## Devolve a taxa de juros anual efectiva | 126 | EFFECT = EFECTIVA ## Devolve a taxa de juros anual efectiva |
| 127 | FV = VF ## Devolve o valor futuro de um investimento | 127 | FV = VF ## Devolve o valor futuro de um investimento |
| 128 | FVSCHEDULE = VFPLANO ## Devolve o valor futuro de um capital inicial após a aplicação de uma série de taxas de juro compostas | 128 | FVSCHEDULE = VFPLANO ## Devolve o valor futuro de um capital inicial após a aplicação de uma série de taxas de juro compostas |
| 129 | INTRATE = TAXAJUROS ## Devolve a taxa de juros de um título investido na totalidade | 129 | INTRATE = TAXAJUROS ## Devolve a taxa de juros de um título investido na totalidade |
| 130 | IPMT = IPGTO ## Devolve o pagamento dos juros de um investimento durante um determinado período | 130 | IPMT = IPGTO ## Devolve o pagamento dos juros de um investimento durante um determinado período |
| 131 | IRR = TIR ## Devolve a taxa de rentabilidade interna para uma série de fluxos monetários | 131 | IRR = TIR ## Devolve a taxa de rentabilidade interna para uma série de fluxos monetários |
| 132 | ISPMT = É.PGTO ## Calcula os juros pagos durante um período específico de um investimento | 132 | ISPMT = É.PGTO ## Calcula os juros pagos durante um período específico de um investimento |
| 133 | MDURATION = MDURAÇÃO ## Devolve a duração modificada de Macauley de um título com um valor de paridade equivalente a € 100 | 133 | MDURATION = MDURAÇÃO ## Devolve a duração modificada de Macauley de um título com um valor de paridade equivalente a € 100 |
| 134 | MIRR = MTIR ## Devolve a taxa interna de rentabilidade em que os fluxos monetários positivos e negativos são financiados com taxas diferentes | 134 | MIRR = MTIR ## Devolve a taxa interna de rentabilidade em que os fluxos monetários positivos e negativos são financiados com taxas diferentes |
| 135 | NOMINAL = NOMINAL ## Devolve a taxa de juros nominal anual | 135 | NOMINAL = NOMINAL ## Devolve a taxa de juros nominal anual |
| 136 | NPER = NPER ## Devolve o número de períodos de um investimento | 136 | NPER = NPER ## Devolve o número de períodos de um investimento |
| 137 | NPV = VAL ## Devolve o valor actual líquido de um investimento com base numa série de fluxos monetários periódicos e numa taxa de desconto | 137 | NPV = VAL ## Devolve o valor actual líquido de um investimento com base numa série de fluxos monetários periódicos e numa taxa de desconto |
| 138 | ODDFPRICE = PREÇOPRIMINC ## Devolve o preço por € 100 do valor nominal de um título com um período inicial incompleto | 138 | ODDFPRICE = PREÇOPRIMINC ## Devolve o preço por € 100 do valor nominal de um título com um período inicial incompleto |
| 139 | ODDFYIELD = LUCROPRIMINC ## Devolve o lucro de um título com um período inicial incompleto | 139 | ODDFYIELD = LUCROPRIMINC ## Devolve o lucro de um título com um período inicial incompleto |
| 140 | ODDLPRICE = PREÇOÚLTINC ## Devolve o preço por € 100 do valor nominal de um título com um período final incompleto | 140 | ODDLPRICE = PREÇOÚLTINC ## Devolve o preço por € 100 do valor nominal de um título com um período final incompleto |
| 141 | ODDLYIELD = LUCROÚLTINC ## Devolve o lucro de um título com um período final incompleto | 141 | ODDLYIELD = LUCROÚLTINC ## Devolve o lucro de um título com um período final incompleto |
| 142 | PMT = PGTO ## Devolve o pagamento periódico de uma anuidade | 142 | PMT = PGTO ## Devolve o pagamento periódico de uma anuidade |
| 143 | PPMT = PPGTO ## Devolve o pagamento sobre o capital de um investimento num determinado período | 143 | PPMT = PPGTO ## Devolve o pagamento sobre o capital de um investimento num determinado período |
| 144 | PRICE = PREÇO ## Devolve o preço por € 100 do valor nominal de um título que paga juros periódicos | 144 | PRICE = PREÇO ## Devolve o preço por € 100 do valor nominal de um título que paga juros periódicos |
| 145 | PRICEDISC = PREÇODESC ## Devolve o preço por € 100 do valor nominal de um título descontado | 145 | PRICEDISC = PREÇODESC ## Devolve o preço por € 100 do valor nominal de um título descontado |
| 146 | PRICEMAT = PREÇOVENC ## Devolve o preço por € 100 do valor nominal de um título que paga juros no vencimento | 146 | PRICEMAT = PREÇOVENC ## Devolve o preço por € 100 do valor nominal de um título que paga juros no vencimento |
| 147 | PV = VA ## Devolve o valor actual de um investimento | 147 | PV = VA ## Devolve o valor actual de um investimento |
| 148 | RATE = TAXA ## Devolve a taxa de juros por período de uma anuidade | 148 | RATE = TAXA ## Devolve a taxa de juros por período de uma anuidade |
| 149 | RECEIVED = RECEBER ## Devolve o montante recebido no vencimento de um título investido na totalidade | 149 | RECEIVED = RECEBER ## Devolve o montante recebido no vencimento de um título investido na totalidade |
| 150 | SLN = AMORT ## Devolve uma depreciação linear de um activo durante um período | 150 | SLN = AMORT ## Devolve uma depreciação linear de um activo durante um período |
| 151 | SYD = AMORTD ## Devolve a depreciação por algarismos da soma dos anos de um activo durante um período especificado | 151 | SYD = AMORTD ## Devolve a depreciação por algarismos da soma dos anos de um activo durante um período especificado |
| 152 | TBILLEQ = OTN ## Devolve o lucro de um título equivalente a uma Obrigação do Tesouro | 152 | TBILLEQ = OTN ## Devolve o lucro de um título equivalente a uma Obrigação do Tesouro |
| 153 | TBILLPRICE = OTNVALOR ## Devolve o preço por € 100 de valor nominal de uma Obrigação do Tesouro | 153 | TBILLPRICE = OTNVALOR ## Devolve o preço por € 100 de valor nominal de uma Obrigação do Tesouro |
| 154 | TBILLYIELD = OTNLUCRO ## Devolve o lucro de uma Obrigação do Tesouro | 154 | TBILLYIELD = OTNLUCRO ## Devolve o lucro de uma Obrigação do Tesouro |
| 155 | VDB = BDV ## Devolve a depreciação de um activo relativo a um período específico ou parcial utilizando um método de quotas degressivas | 155 | VDB = BDV ## Devolve a depreciação de um activo relativo a um período específico ou parcial utilizando um método de quotas degressivas |
| 156 | XIRR = XTIR ## Devolve a taxa interna de rentabilidade de um plano de fluxos monetários que não seja necessariamente periódica | 156 | XIRR = XTIR ## Devolve a taxa interna de rentabilidade de um plano de fluxos monetários que não seja necessariamente periódica |
| 157 | XNPV = XVAL ## Devolve o valor actual líquido de um plano de fluxos monetários que não seja necessariamente periódico | 157 | XNPV = XVAL ## Devolve o valor actual líquido de um plano de fluxos monetários que não seja necessariamente periódico |
| 158 | YIELD = LUCRO ## Devolve o lucro de um título que paga juros periódicos | 158 | YIELD = LUCRO ## Devolve o lucro de um título que paga juros periódicos |
| 159 | YIELDDISC = LUCRODESC ## Devolve o lucro anual de um título emitido abaixo do valor nominal, por exemplo, uma Obrigação do Tesouro | 159 | YIELDDISC = LUCRODESC ## Devolve o lucro anual de um título emitido abaixo do valor nominal, por exemplo, uma Obrigação do Tesouro |
| 160 | YIELDMAT = LUCROVENC ## Devolve o lucro anual de um título que paga juros na data de vencimento | 160 | YIELDMAT = LUCROVENC ## Devolve o lucro anual de um título que paga juros na data de vencimento |
| 161 | 161 | ||
| 162 | 162 | ||
| 163 | ## | 163 | ## |
| 164 | ## Information functions Funções de informação | 164 | ## Information functions Funções de informação |
| 165 | ## | 165 | ## |
| 166 | CELL = CÉL ## Devolve informações sobre a formatação, localização ou conteúdo de uma célula | 166 | CELL = CÉL ## Devolve informações sobre a formatação, localização ou conteúdo de uma célula |
| 167 | ERROR.TYPE = TIPO.ERRO ## Devolve um número correspondente a um tipo de erro | 167 | ERROR.TYPE = TIPO.ERRO ## Devolve um número correspondente a um tipo de erro |
| 168 | INFO = INFORMAÇÃO ## Devolve informações sobre o ambiente de funcionamento actual | 168 | INFO = INFORMAÇÃO ## Devolve informações sobre o ambiente de funcionamento actual |
| 169 | ISBLANK = É.CÉL.VAZIA ## Devolve VERDADEIRO se o valor estiver em branco | 169 | ISBLANK = É.CÉL.VAZIA ## Devolve VERDADEIRO se o valor estiver em branco |
| 170 | ISERR = É.ERROS ## Devolve VERDADEIRO se o valor for um valor de erro diferente de #N/D | 170 | ISERR = É.ERROS ## Devolve VERDADEIRO se o valor for um valor de erro diferente de #N/D |
| 171 | ISERROR = É.ERRO ## Devolve VERDADEIRO se o valor for um valor de erro | 171 | ISERROR = É.ERRO ## Devolve VERDADEIRO se o valor for um valor de erro |
| 172 | ISEVEN = ÉPAR ## Devolve VERDADEIRO se o número for par | 172 | ISEVEN = ÉPAR ## Devolve VERDADEIRO se o número for par |
| 173 | ISLOGICAL = É.LÓGICO ## Devolve VERDADEIRO se o valor for lógico | 173 | ISLOGICAL = É.LÓGICO ## Devolve VERDADEIRO se o valor for lógico |
| 174 | ISNA = É.NÃO.DISP ## Devolve VERDADEIRO se o valor for o valor de erro #N/D | 174 | ISNA = É.NÃO.DISP ## Devolve VERDADEIRO se o valor for o valor de erro #N/D |
| 175 | ISNONTEXT = É.NÃO.TEXTO ## Devolve VERDADEIRO se o valor não for texto | 175 | ISNONTEXT = É.NÃO.TEXTO ## Devolve VERDADEIRO se o valor não for texto |
| 176 | ISNUMBER = É.NÚM ## Devolve VERDADEIRO se o valor for um número | 176 | ISNUMBER = É.NÚM ## Devolve VERDADEIRO se o valor for um número |
| 177 | ISODD = ÉÍMPAR ## Devolve VERDADEIRO se o número for ímpar | 177 | ISODD = ÉÍMPAR ## Devolve VERDADEIRO se o número for ímpar |
| 178 | ISREF = É.REF ## Devolve VERDADEIRO se o valor for uma referência | 178 | ISREF = É.REF ## Devolve VERDADEIRO se o valor for uma referência |
| 179 | ISTEXT = É.TEXTO ## Devolve VERDADEIRO se o valor for texto | 179 | ISTEXT = É.TEXTO ## Devolve VERDADEIRO se o valor for texto |
| 180 | N = N ## Devolve um valor convertido num número | 180 | N = N ## Devolve um valor convertido num número |
| 181 | NA = NÃO.DISP ## Devolve o valor de erro #N/D | 181 | NA = NÃO.DISP ## Devolve o valor de erro #N/D |
| 182 | TYPE = TIPO ## Devolve um número que indica o tipo de dados de um valor | 182 | TYPE = TIPO ## Devolve um número que indica o tipo de dados de um valor |
| 183 | 183 | ||
| 184 | 184 | ||
| 185 | ## | 185 | ## |
| 186 | ## Logical functions Funções lógicas | 186 | ## Logical functions Funções lógicas |
| 187 | ## | 187 | ## |
| 188 | AND = E ## Devolve VERDADEIRO se todos os respectivos argumentos corresponderem a VERDADEIRO | 188 | AND = E ## Devolve VERDADEIRO se todos os respectivos argumentos corresponderem a VERDADEIRO |
| 189 | FALSE = FALSO ## Devolve o valor lógico FALSO | 189 | FALSE = FALSO ## Devolve o valor lógico FALSO |
| 190 | IF = SE ## Especifica um teste lógico a ser executado | 190 | IF = SE ## Especifica um teste lógico a ser executado |
| 191 | IFERROR = SE.ERRO ## Devolve um valor definido pelo utilizador se ocorrer um erro na fórmula, e devolve o resultado da fórmula se não ocorrer nenhum erro | 191 | IFERROR = SE.ERRO ## Devolve um valor definido pelo utilizador se ocorrer um erro na fórmula, e devolve o resultado da fórmula se não ocorrer nenhum erro |
| 192 | NOT = NÃO ## Inverte a lógica do respectivo argumento | 192 | NOT = NÃO ## Inverte a lógica do respectivo argumento |
| 193 | OR = OU ## Devolve VERDADEIRO se qualquer argumento for VERDADEIRO | 193 | OR = OU ## Devolve VERDADEIRO se qualquer argumento for VERDADEIRO |
| 194 | TRUE = VERDADEIRO ## Devolve o valor lógico VERDADEIRO | 194 | TRUE = VERDADEIRO ## Devolve o valor lógico VERDADEIRO |
| 195 | 195 | ||
| 196 | 196 | ||
| 197 | ## | 197 | ## |
| 198 | ## Lookup and reference functions Funções de pesquisa e referência | 198 | ## Lookup and reference functions Funções de pesquisa e referência |
| 199 | ## | 199 | ## |
| 200 | ADDRESS = ENDEREÇO ## Devolve uma referência a uma única célula numa folha de cálculo como texto | 200 | ADDRESS = ENDEREÇO ## Devolve uma referência a uma única célula numa folha de cálculo como texto |
| 201 | AREAS = ÁREAS ## Devolve o número de áreas numa referência | 201 | AREAS = ÁREAS ## Devolve o número de áreas numa referência |
| 202 | CHOOSE = SELECCIONAR ## Selecciona um valor a partir de uma lista de valores | 202 | CHOOSE = SELECCIONAR ## Selecciona um valor a partir de uma lista de valores |
| 203 | COLUMN = COL ## Devolve o número da coluna de uma referência | 203 | COLUMN = COL ## Devolve o número da coluna de uma referência |
| 204 | COLUMNS = COLS ## Devolve o número de colunas numa referência | 204 | COLUMNS = COLS ## Devolve o número de colunas numa referência |
| 205 | HLOOKUP = PROCH ## Procura na linha superior de uma matriz e devolve o valor da célula indicada | 205 | HLOOKUP = PROCH ## Procura na linha superior de uma matriz e devolve o valor da célula indicada |
| 206 | HYPERLINK = HIPERLIGAÇÃO ## Cria um atalho ou hiperligação que abre um documento armazenado num servidor de rede, numa intranet ou na Internet | 206 | HYPERLINK = HIPERLIGAÇÃO ## Cria um atalho ou hiperligação que abre um documento armazenado num servidor de rede, numa intranet ou na Internet |
| 207 | INDEX = ÍNDICE ## Utiliza um índice para escolher um valor de uma referência ou de uma matriz | 207 | INDEX = ÍNDICE ## Utiliza um índice para escolher um valor de uma referência ou de uma matriz |
| 208 | INDIRECT = INDIRECTO ## Devolve uma referência indicada por um valor de texto | 208 | INDIRECT = INDIRECTO ## Devolve uma referência indicada por um valor de texto |
| 209 | LOOKUP = PROC ## Procura valores num vector ou numa matriz | 209 | LOOKUP = PROC ## Procura valores num vector ou numa matriz |
| 210 | MATCH = CORRESP ## Procura valores numa referência ou numa matriz | 210 | MATCH = CORRESP ## Procura valores numa referência ou numa matriz |
| 211 | OFFSET = DESLOCAMENTO ## Devolve o deslocamento de referência de uma determinada referência | 211 | OFFSET = DESLOCAMENTO ## Devolve o deslocamento de referência de uma determinada referência |
| 212 | ROW = LIN ## Devolve o número da linha de uma referência | 212 | ROW = LIN ## Devolve o número da linha de uma referência |
| 213 | ROWS = LINS ## Devolve o número de linhas numa referência | 213 | ROWS = LINS ## Devolve o número de linhas numa referência |
| 214 | RTD = RTD ## Obtém dados em tempo real a partir de um programa que suporte automatização COM (automatização: modo de trabalhar com objectos de uma aplicação a partir de outra aplicação ou ferramenta de desenvolvimento. Anteriormente conhecida como automatização OLE, a automatização é uma norma da indústria de software e uma funcionalidade COM (Component Object Model).) | 214 | RTD = RTD ## Obtém dados em tempo real a partir de um programa que suporte automatização COM (automatização: modo de trabalhar com objectos de uma aplicação a partir de outra aplicação ou ferramenta de desenvolvimento. Anteriormente conhecida como automatização OLE, a automatização é uma norma da indústria de software e uma funcionalidade COM (Component Object Model).) |
| 215 | TRANSPOSE = TRANSPOR ## Devolve a transposição de uma matriz | 215 | TRANSPOSE = TRANSPOR ## Devolve a transposição de uma matriz |
| 216 | VLOOKUP = PROCV ## Procura na primeira coluna de uma matriz e percorre a linha para devolver o valor de uma célula | 216 | VLOOKUP = PROCV ## Procura na primeira coluna de uma matriz e percorre a linha para devolver o valor de uma célula |
| 217 | 217 | ||
| 218 | 218 | ||
| 219 | ## | 219 | ## |
| 220 | ## Math and trigonometry functions Funções matemáticas e trigonométricas | 220 | ## Math and trigonometry functions Funções matemáticas e trigonométricas |
| 221 | ## | 221 | ## |
| 222 | ABS = ABS ## Devolve o valor absoluto de um número | 222 | ABS = ABS ## Devolve o valor absoluto de um número |
| 223 | ACOS = ACOS ## Devolve o arco de co-seno de um número | 223 | ACOS = ACOS ## Devolve o arco de co-seno de um número |
| 224 | ACOSH = ACOSH ## Devolve o co-seno hiperbólico inverso de um número | 224 | ACOSH = ACOSH ## Devolve o co-seno hiperbólico inverso de um número |
| 225 | ASIN = ASEN ## Devolve o arco de seno de um número | 225 | ASIN = ASEN ## Devolve o arco de seno de um número |
| 226 | ASINH = ASENH ## Devolve o seno hiperbólico inverso de um número | 226 | ASINH = ASENH ## Devolve o seno hiperbólico inverso de um número |
| 227 | ATAN = ATAN ## Devolve o arco de tangente de um número | 227 | ATAN = ATAN ## Devolve o arco de tangente de um número |
| 228 | ATAN2 = ATAN2 ## Devolve o arco de tangente das coordenadas x e y | 228 | ATAN2 = ATAN2 ## Devolve o arco de tangente das coordenadas x e y |
| 229 | ATANH = ATANH ## Devolve a tangente hiperbólica inversa de um número | 229 | ATANH = ATANH ## Devolve a tangente hiperbólica inversa de um número |
| 230 | CEILING = ARRED.EXCESSO ## Arredonda um número para o número inteiro mais próximo ou para o múltiplo de significância mais próximo | 230 | CEILING = ARRED.EXCESSO ## Arredonda um número para o número inteiro mais próximo ou para o múltiplo de significância mais próximo |
| 231 | COMBIN = COMBIN ## Devolve o número de combinações de um determinado número de objectos | 231 | COMBIN = COMBIN ## Devolve o número de combinações de um determinado número de objectos |
| 232 | COS = COS ## Devolve o co-seno de um número | 232 | COS = COS ## Devolve o co-seno de um número |
| 233 | COSH = COSH ## Devolve o co-seno hiperbólico de um número | 233 | COSH = COSH ## Devolve o co-seno hiperbólico de um número |
| 234 | DEGREES = GRAUS ## Converte radianos em graus | 234 | DEGREES = GRAUS ## Converte radianos em graus |
| 235 | EVEN = PAR ## Arredonda um número por excesso para o número inteiro mais próximo | 235 | EVEN = PAR ## Arredonda um número por excesso para o número inteiro mais próximo |
| 236 | EXP = EXP ## Devolve e elevado à potência de um determinado número | 236 | EXP = EXP ## Devolve e elevado à potência de um determinado número |
| 237 | FACT = FACTORIAL ## Devolve o factorial de um número | 237 | FACT = FACTORIAL ## Devolve o factorial de um número |
| 238 | FACTDOUBLE = FACTDUPLO ## Devolve o factorial duplo de um número | 238 | FACTDOUBLE = FACTDUPLO ## Devolve o factorial duplo de um número |
| 239 | FLOOR = ARRED.DEFEITO ## Arredonda um número por defeito até zero | 239 | FLOOR = ARRED.DEFEITO ## Arredonda um número por defeito até zero |
| 240 | GCD = MDC ## Devolve o maior divisor comum | 240 | GCD = MDC ## Devolve o maior divisor comum |
| 241 | INT = INT ## Arredonda um número por defeito para o número inteiro mais próximo | 241 | INT = INT ## Arredonda um número por defeito para o número inteiro mais próximo |
| 242 | LCM = MMC ## Devolve o mínimo múltiplo comum | 242 | LCM = MMC ## Devolve o mínimo múltiplo comum |
| 243 | LN = LN ## Devolve o logaritmo natural de um número | 243 | LN = LN ## Devolve o logaritmo natural de um número |
| 244 | LOG = LOG ## Devolve o logaritmo de um número com uma base especificada | 244 | LOG = LOG ## Devolve o logaritmo de um número com uma base especificada |
| 245 | LOG10 = LOG10 ## Devolve o logaritmo de base 10 de um número | 245 | LOG10 = LOG10 ## Devolve o logaritmo de base 10 de um número |
| 246 | MDETERM = MATRIZ.DETERM ## Devolve o determinante matricial de uma matriz | 246 | MDETERM = MATRIZ.DETERM ## Devolve o determinante matricial de uma matriz |
| 247 | MINVERSE = MATRIZ.INVERSA ## Devolve o inverso matricial de uma matriz | 247 | MINVERSE = MATRIZ.INVERSA ## Devolve o inverso matricial de uma matriz |
| 248 | MMULT = MATRIZ.MULT ## Devolve o produto matricial de duas matrizes | 248 | MMULT = MATRIZ.MULT ## Devolve o produto matricial de duas matrizes |
| 249 | MOD = RESTO ## Devolve o resto da divisão | 249 | MOD = RESTO ## Devolve o resto da divisão |
| 250 | MROUND = MARRED ## Devolve um número arredondado para o múltiplo pretendido | 250 | MROUND = MARRED ## Devolve um número arredondado para o múltiplo pretendido |
| 251 | MULTINOMIAL = POLINOMIAL ## Devolve o polinomial de um conjunto de números | 251 | MULTINOMIAL = POLINOMIAL ## Devolve o polinomial de um conjunto de números |
| 252 | ODD = ÍMPAR ## Arredonda por excesso um número para o número inteiro ímpar mais próximo | 252 | ODD = ÍMPAR ## Arredonda por excesso um número para o número inteiro ímpar mais próximo |
| 253 | PI = PI ## Devolve o valor de pi | 253 | PI = PI ## Devolve o valor de pi |
| 254 | POWER = POTÊNCIA ## Devolve o resultado de um número elevado a uma potência | 254 | POWER = POTÊNCIA ## Devolve o resultado de um número elevado a uma potência |
| 255 | PRODUCT = PRODUTO ## Multiplica os respectivos argumentos | 255 | PRODUCT = PRODUTO ## Multiplica os respectivos argumentos |
| 256 | QUOTIENT = QUOCIENTE ## Devolve a parte inteira de uma divisão | 256 | QUOTIENT = QUOCIENTE ## Devolve a parte inteira de uma divisão |
| 257 | RADIANS = RADIANOS ## Converte graus em radianos | 257 | RADIANS = RADIANOS ## Converte graus em radianos |
| 258 | RAND = ALEATÓRIO ## Devolve um número aleatório entre 0 e 1 | 258 | RAND = ALEATÓRIO ## Devolve um número aleatório entre 0 e 1 |
| 259 | RANDBETWEEN = ALEATÓRIOENTRE ## Devolve um número aleatório entre os números especificados | 259 | RANDBETWEEN = ALEATÓRIOENTRE ## Devolve um número aleatório entre os números especificados |
| 260 | ROMAN = ROMANO ## Converte um número árabe em romano, como texto | 260 | ROMAN = ROMANO ## Converte um número árabe em romano, como texto |
| 261 | ROUND = ARRED ## Arredonda um número para um número de dígitos especificado | 261 | ROUND = ARRED ## Arredonda um número para um número de dígitos especificado |
| 262 | ROUNDDOWN = ARRED.PARA.BAIXO ## Arredonda um número por defeito até zero | 262 | ROUNDDOWN = ARRED.PARA.BAIXO ## Arredonda um número por defeito até zero |
| 263 | ROUNDUP = ARRED.PARA.CIMA ## Arredonda um número por excesso, afastando-o de zero | 263 | ROUNDUP = ARRED.PARA.CIMA ## Arredonda um número por excesso, afastando-o de zero |
| 264 | SERIESSUM = SOMASÉRIE ## Devolve a soma de uma série de potências baseada na fórmula | 264 | SERIESSUM = SOMASÉRIE ## Devolve a soma de uma série de potências baseada na fórmula |
| 265 | SIGN = SINAL ## Devolve o sinal de um número | 265 | SIGN = SINAL ## Devolve o sinal de um número |
| 266 | SIN = SEN ## Devolve o seno de um determinado ângulo | 266 | SIN = SEN ## Devolve o seno de um determinado ângulo |
| 267 | SINH = SENH ## Devolve o seno hiperbólico de um número | 267 | SINH = SENH ## Devolve o seno hiperbólico de um número |
| 268 | SQRT = RAIZQ ## Devolve uma raiz quadrada positiva | 268 | SQRT = RAIZQ ## Devolve uma raiz quadrada positiva |
| 269 | SQRTPI = RAIZPI ## Devolve a raiz quadrada de (núm * pi) | 269 | SQRTPI = RAIZPI ## Devolve a raiz quadrada de (núm * pi) |
| 270 | SUBTOTAL = SUBTOTAL ## Devolve um subtotal numa lista ou base de dados | 270 | SUBTOTAL = SUBTOTAL ## Devolve um subtotal numa lista ou base de dados |
| 271 | SUM = SOMA ## Adiciona os respectivos argumentos | 271 | SUM = SOMA ## Adiciona os respectivos argumentos |
| 272 | SUMIF = SOMA.SE ## Adiciona as células especificadas por um determinado critério | 272 | SUMIF = SOMA.SE ## Adiciona as células especificadas por um determinado critério |
| 273 | SUMIFS = SOMA.SE.S ## Adiciona as células num intervalo que cumpre vários critérios | 273 | SUMIFS = SOMA.SE.S ## Adiciona as células num intervalo que cumpre vários critérios |
| 274 | SUMPRODUCT = SOMARPRODUTO ## Devolve a soma dos produtos de componentes de matrizes correspondentes | 274 | SUMPRODUCT = SOMARPRODUTO ## Devolve a soma dos produtos de componentes de matrizes correspondentes |
| 275 | SUMSQ = SOMARQUAD ## Devolve a soma dos quadrados dos argumentos | 275 | SUMSQ = SOMARQUAD ## Devolve a soma dos quadrados dos argumentos |
| 276 | SUMX2MY2 = SOMAX2DY2 ## Devolve a soma da diferença dos quadrados dos valores correspondentes em duas matrizes | 276 | SUMX2MY2 = SOMAX2DY2 ## Devolve a soma da diferença dos quadrados dos valores correspondentes em duas matrizes |
| 277 | SUMX2PY2 = SOMAX2SY2 ## Devolve a soma da soma dos quadrados dos valores correspondentes em duas matrizes | 277 | SUMX2PY2 = SOMAX2SY2 ## Devolve a soma da soma dos quadrados dos valores correspondentes em duas matrizes |
| 278 | SUMXMY2 = SOMAXMY2 ## Devolve a soma dos quadrados da diferença dos valores correspondentes em duas matrizes | 278 | SUMXMY2 = SOMAXMY2 ## Devolve a soma dos quadrados da diferença dos valores correspondentes em duas matrizes |
| 279 | TAN = TAN ## Devolve a tangente de um número | 279 | TAN = TAN ## Devolve a tangente de um número |
| 280 | TANH = TANH ## Devolve a tangente hiperbólica de um número | 280 | TANH = TANH ## Devolve a tangente hiperbólica de um número |
| 281 | TRUNC = TRUNCAR ## Trunca um número para um número inteiro | 281 | TRUNC = TRUNCAR ## Trunca um número para um número inteiro |
| 282 | 282 | ||
| 283 | 283 | ||
| 284 | ## | 284 | ## |
| 285 | ## Statistical functions Funções estatísticas | 285 | ## Statistical functions Funções estatísticas |
| 286 | ## | 286 | ## |
| 287 | AVEDEV = DESV.MÉDIO ## Devolve a média aritmética dos desvios absolutos à média dos pontos de dados | 287 | AVEDEV = DESV.MÉDIO ## Devolve a média aritmética dos desvios absolutos à média dos pontos de dados |
| 288 | AVERAGE = MÉDIA ## Devolve a média dos respectivos argumentos | 288 | AVERAGE = MÉDIA ## Devolve a média dos respectivos argumentos |
| 289 | AVERAGEA = MÉDIAA ## Devolve uma média dos respectivos argumentos, incluindo números, texto e valores lógicos | 289 | AVERAGEA = MÉDIAA ## Devolve uma média dos respectivos argumentos, incluindo números, texto e valores lógicos |
| 290 | AVERAGEIF = MÉDIA.SE ## Devolve a média aritmética de todas as células num intervalo que cumprem determinado critério | 290 | AVERAGEIF = MÉDIA.SE ## Devolve a média aritmética de todas as células num intervalo que cumprem determinado critério |
| 291 | AVERAGEIFS = MÉDIA.SE.S ## Devolve a média aritmética de todas as células que cumprem múltiplos critérios | 291 | AVERAGEIFS = MÉDIA.SE.S ## Devolve a média aritmética de todas as células que cumprem múltiplos critérios |
| 292 | BETADIST = DISTBETA ## Devolve a função de distribuição cumulativa beta | 292 | BETADIST = DISTBETA ## Devolve a função de distribuição cumulativa beta |
| 293 | BETAINV = BETA.ACUM.INV ## Devolve o inverso da função de distribuição cumulativa relativamente a uma distribuição beta específica | 293 | BETAINV = BETA.ACUM.INV ## Devolve o inverso da função de distribuição cumulativa relativamente a uma distribuição beta específica |
| 294 | BINOMDIST = DISTRBINOM ## Devolve a probabilidade de distribuição binomial de termo individual | 294 | BINOMDIST = DISTRBINOM ## Devolve a probabilidade de distribuição binomial de termo individual |
| 295 | CHIDIST = DIST.CHI ## Devolve a probabilidade unicaudal da distribuição qui-quadrada | 295 | CHIDIST = DIST.CHI ## Devolve a probabilidade unicaudal da distribuição qui-quadrada |
| 296 | CHIINV = INV.CHI ## Devolve o inverso da probabilidade unicaudal da distribuição qui-quadrada | 296 | CHIINV = INV.CHI ## Devolve o inverso da probabilidade unicaudal da distribuição qui-quadrada |
| 297 | CHITEST = TESTE.CHI ## Devolve o teste para independência | 297 | CHITEST = TESTE.CHI ## Devolve o teste para independência |
| 298 | CONFIDENCE = INT.CONFIANÇA ## Devolve o intervalo de confiança correspondente a uma média de população | 298 | CONFIDENCE = INT.CONFIANÇA ## Devolve o intervalo de confiança correspondente a uma média de população |
| 299 | CORREL = CORREL ## Devolve o coeficiente de correlação entre dois conjuntos de dados | 299 | CORREL = CORREL ## Devolve o coeficiente de correlação entre dois conjuntos de dados |
| 300 | COUNT = CONTAR ## Conta os números que existem na lista de argumentos | 300 | COUNT = CONTAR ## Conta os números que existem na lista de argumentos |
| 301 | COUNTA = CONTAR.VAL ## Conta os valores que existem na lista de argumentos | 301 | COUNTA = CONTAR.VAL ## Conta os valores que existem na lista de argumentos |
| 302 | COUNTBLANK = CONTAR.VAZIO ## Conta o número de células em branco num intervalo | 302 | COUNTBLANK = CONTAR.VAZIO ## Conta o número de células em branco num intervalo |
| 303 | COUNTIF = CONTAR.SE ## Calcula o número de células num intervalo que corresponde aos critérios determinados | 303 | COUNTIF = CONTAR.SE ## Calcula o número de células num intervalo que corresponde aos critérios determinados |
| 304 | COUNTIFS = CONTAR.SE.S ## Conta o número de células num intervalo que cumprem múltiplos critérios | 304 | COUNTIFS = CONTAR.SE.S ## Conta o número de células num intervalo que cumprem múltiplos critérios |
| 305 | COVAR = COVAR ## Devolve a covariância, que é a média dos produtos de desvios de pares | 305 | COVAR = COVAR ## Devolve a covariância, que é a média dos produtos de desvios de pares |
| 306 | CRITBINOM = CRIT.BINOM ## Devolve o menor valor em que a distribuição binomial cumulativa é inferior ou igual a um valor de critério | 306 | CRITBINOM = CRIT.BINOM ## Devolve o menor valor em que a distribuição binomial cumulativa é inferior ou igual a um valor de critério |
| 307 | DEVSQ = DESVQ ## Devolve a soma dos quadrados dos desvios | 307 | DEVSQ = DESVQ ## Devolve a soma dos quadrados dos desvios |
| 308 | EXPONDIST = DISTEXPON ## Devolve a distribuição exponencial | 308 | EXPONDIST = DISTEXPON ## Devolve a distribuição exponencial |
| 309 | FDIST = DISTF ## Devolve a distribuição da probabilidade F | 309 | FDIST = DISTF ## Devolve a distribuição da probabilidade F |
| 310 | FINV = INVF ## Devolve o inverso da distribuição da probabilidade F | 310 | FINV = INVF ## Devolve o inverso da distribuição da probabilidade F |
| 311 | FISHER = FISHER ## Devolve a transformação Fisher | 311 | FISHER = FISHER ## Devolve a transformação Fisher |
| 312 | FISHERINV = FISHERINV ## Devolve o inverso da transformação Fisher | 312 | FISHERINV = FISHERINV ## Devolve o inverso da transformação Fisher |
| 313 | FORECAST = PREVISÃO ## Devolve um valor ao longo de uma tendência linear | 313 | FORECAST = PREVISÃO ## Devolve um valor ao longo de uma tendência linear |
| 314 | FREQUENCY = FREQUÊNCIA ## Devolve uma distribuição de frequência como uma matriz vertical | 314 | FREQUENCY = FREQUÊNCIA ## Devolve uma distribuição de frequência como uma matriz vertical |
| 315 | FTEST = TESTEF ## Devolve o resultado de um teste F | 315 | FTEST = TESTEF ## Devolve o resultado de um teste F |
| 316 | GAMMADIST = DISTGAMA ## Devolve a distribuição gama | 316 | GAMMADIST = DISTGAMA ## Devolve a distribuição gama |
| 317 | GAMMAINV = INVGAMA ## Devolve o inverso da distribuição gama cumulativa | 317 | GAMMAINV = INVGAMA ## Devolve o inverso da distribuição gama cumulativa |
| 318 | GAMMALN = LNGAMA ## Devolve o logaritmo natural da função gama, Γ(x) | 318 | GAMMALN = LNGAMA ## Devolve o logaritmo natural da função gama, Γ(x) |
| 319 | GEOMEAN = MÉDIA.GEOMÉTRICA ## Devolve a média geométrica | 319 | GEOMEAN = MÉDIA.GEOMÉTRICA ## Devolve a média geométrica |
| 320 | GROWTH = CRESCIMENTO ## Devolve valores ao longo de uma tendência exponencial | 320 | GROWTH = CRESCIMENTO ## Devolve valores ao longo de uma tendência exponencial |
| 321 | HARMEAN = MÉDIA.HARMÓNICA ## Devolve a média harmónica | 321 | HARMEAN = MÉDIA.HARMÓNICA ## Devolve a média harmónica |
| 322 | HYPGEOMDIST = DIST.HIPERGEOM ## Devolve a distribuição hipergeométrica | 322 | HYPGEOMDIST = DIST.HIPERGEOM ## Devolve a distribuição hipergeométrica |
| 323 | INTERCEPT = INTERCEPTAR ## Devolve a intercepção da linha de regressão linear | 323 | INTERCEPT = INTERCEPTAR ## Devolve a intercepção da linha de regressão linear |
| 324 | KURT = CURT ## Devolve a curtose de um conjunto de dados | 324 | KURT = CURT ## Devolve a curtose de um conjunto de dados |
| 325 | LARGE = MAIOR ## Devolve o maior valor k-ésimo de um conjunto de dados | 325 | LARGE = MAIOR ## Devolve o maior valor k-ésimo de um conjunto de dados |
| 326 | LINEST = PROJ.LIN ## Devolve os parâmetros de uma tendência linear | 326 | LINEST = PROJ.LIN ## Devolve os parâmetros de uma tendência linear |
| 327 | LOGEST = PROJ.LOG ## Devolve os parâmetros de uma tendência exponencial | 327 | LOGEST = PROJ.LOG ## Devolve os parâmetros de uma tendência exponencial |
| 328 | LOGINV = INVLOG ## Devolve o inverso da distribuição normal logarítmica | 328 | LOGINV = INVLOG ## Devolve o inverso da distribuição normal logarítmica |
| 329 | LOGNORMDIST = DIST.NORMALLOG ## Devolve a distribuição normal logarítmica cumulativa | 329 | LOGNORMDIST = DIST.NORMALLOG ## Devolve a distribuição normal logarítmica cumulativa |
| 330 | MAX = MÁXIMO ## Devolve o valor máximo numa lista de argumentos | 330 | MAX = MÁXIMO ## Devolve o valor máximo numa lista de argumentos |
| 331 | MAXA = MÁXIMOA ## Devolve o valor máximo numa lista de argumentos, incluindo números, texto e valores lógicos | 331 | MAXA = MÁXIMOA ## Devolve o valor máximo numa lista de argumentos, incluindo números, texto e valores lógicos |
| 332 | MEDIAN = MED ## Devolve a mediana dos números indicados | 332 | MEDIAN = MED ## Devolve a mediana dos números indicados |
| 333 | MIN = MÍNIMO ## Devolve o valor mínimo numa lista de argumentos | 333 | MIN = MÍNIMO ## Devolve o valor mínimo numa lista de argumentos |
| 334 | MINA = MÍNIMOA ## Devolve o valor mínimo numa lista de argumentos, incluindo números, texto e valores lógicos | 334 | MINA = MÍNIMOA ## Devolve o valor mínimo numa lista de argumentos, incluindo números, texto e valores lógicos |
| 335 | MODE = MODA ## Devolve o valor mais comum num conjunto de dados | 335 | MODE = MODA ## Devolve o valor mais comum num conjunto de dados |
| 336 | NEGBINOMDIST = DIST.BIN.NEG ## Devolve a distribuição binominal negativa | 336 | NEGBINOMDIST = DIST.BIN.NEG ## Devolve a distribuição binominal negativa |
| 337 | NORMDIST = DIST.NORM ## Devolve a distribuição cumulativa normal | 337 | NORMDIST = DIST.NORM ## Devolve a distribuição cumulativa normal |
| 338 | NORMINV = INV.NORM ## Devolve o inverso da distribuição cumulativa normal | 338 | NORMINV = INV.NORM ## Devolve o inverso da distribuição cumulativa normal |
| 339 | NORMSDIST = DIST.NORMP ## Devolve a distribuição cumulativa normal padrão | 339 | NORMSDIST = DIST.NORMP ## Devolve a distribuição cumulativa normal padrão |
| 340 | NORMSINV = INV.NORMP ## Devolve o inverso da distribuição cumulativa normal padrão | 340 | NORMSINV = INV.NORMP ## Devolve o inverso da distribuição cumulativa normal padrão |
| 341 | PEARSON = PEARSON ## Devolve o coeficiente de correlação momento/produto de Pearson | 341 | PEARSON = PEARSON ## Devolve o coeficiente de correlação momento/produto de Pearson |
| 342 | PERCENTILE = PERCENTIL ## Devolve o k-ésimo percentil de valores num intervalo | 342 | PERCENTILE = PERCENTIL ## Devolve o k-ésimo percentil de valores num intervalo |
| 343 | PERCENTRANK = ORDEM.PERCENTUAL ## Devolve a ordem percentual de um valor num conjunto de dados | 343 | PERCENTRANK = ORDEM.PERCENTUAL ## Devolve a ordem percentual de um valor num conjunto de dados |
| 344 | PERMUT = PERMUTAR ## Devolve o número de permutações de um determinado número de objectos | 344 | PERMUT = PERMUTAR ## Devolve o número de permutações de um determinado número de objectos |
| 345 | POISSON = POISSON ## Devolve a distribuição de Poisson | 345 | POISSON = POISSON ## Devolve a distribuição de Poisson |
| 346 | PROB = PROB ## Devolve a probabilidade dos valores num intervalo se encontrarem entre dois limites | 346 | PROB = PROB ## Devolve a probabilidade dos valores num intervalo se encontrarem entre dois limites |
| 347 | QUARTILE = QUARTIL ## Devolve o quartil de um conjunto de dados | 347 | QUARTILE = QUARTIL ## Devolve o quartil de um conjunto de dados |
| 348 | RANK = ORDEM ## Devolve a ordem de um número numa lista numérica | 348 | RANK = ORDEM ## Devolve a ordem de um número numa lista numérica |
| 349 | RSQ = RQUAD ## Devolve o quadrado do coeficiente de correlação momento/produto de Pearson | 349 | RSQ = RQUAD ## Devolve o quadrado do coeficiente de correlação momento/produto de Pearson |
| 350 | SKEW = DISTORÇÃO ## Devolve a distorção de uma distribuição | 350 | SKEW = DISTORÇÃO ## Devolve a distorção de uma distribuição |
| 351 | SLOPE = DECLIVE ## Devolve o declive da linha de regressão linear | 351 | SLOPE = DECLIVE ## Devolve o declive da linha de regressão linear |
| 352 | SMALL = MENOR ## Devolve o menor valor de k-ésimo de um conjunto de dados | 352 | SMALL = MENOR ## Devolve o menor valor de k-ésimo de um conjunto de dados |
| 353 | STANDARDIZE = NORMALIZAR ## Devolve um valor normalizado | 353 | STANDARDIZE = NORMALIZAR ## Devolve um valor normalizado |
| 354 | STDEV = DESVPAD ## Calcula o desvio-padrão com base numa amostra | 354 | STDEV = DESVPAD ## Calcula o desvio-padrão com base numa amostra |
| 355 | STDEVA = DESVPADA ## Calcula o desvio-padrão com base numa amostra, incluindo números, texto e valores lógicos | 355 | STDEVA = DESVPADA ## Calcula o desvio-padrão com base numa amostra, incluindo números, texto e valores lógicos |
| 356 | STDEVP = DESVPADP ## Calcula o desvio-padrão com base na população total | 356 | STDEVP = DESVPADP ## Calcula o desvio-padrão com base na população total |
| 357 | STDEVPA = DESVPADPA ## Calcula o desvio-padrão com base na população total, incluindo números, texto e valores lógicos | 357 | STDEVPA = DESVPADPA ## Calcula o desvio-padrão com base na população total, incluindo números, texto e valores lógicos |
| 358 | STEYX = EPADYX ## Devolve o erro-padrão do valor de y previsto para cada x na regressão | 358 | STEYX = EPADYX ## Devolve o erro-padrão do valor de y previsto para cada x na regressão |
| 359 | TDIST = DISTT ## Devolve a distribuição t de Student | 359 | TDIST = DISTT ## Devolve a distribuição t de Student |
| 360 | TINV = INVT ## Devolve o inverso da distribuição t de Student | 360 | TINV = INVT ## Devolve o inverso da distribuição t de Student |
| 361 | TREND = TENDÊNCIA ## Devolve valores ao longo de uma tendência linear | 361 | TREND = TENDÊNCIA ## Devolve valores ao longo de uma tendência linear |
| 362 | TRIMMEAN = MÉDIA.INTERNA ## Devolve a média do interior de um conjunto de dados | 362 | TRIMMEAN = MÉDIA.INTERNA ## Devolve a média do interior de um conjunto de dados |
| 363 | TTEST = TESTET ## Devolve a probabilidade associada ao teste t de Student | 363 | TTEST = TESTET ## Devolve a probabilidade associada ao teste t de Student |
| 364 | VAR = VAR ## Calcula a variância com base numa amostra | 364 | VAR = VAR ## Calcula a variância com base numa amostra |
| 365 | VARA = VARA ## Calcula a variância com base numa amostra, incluindo números, texto e valores lógicos | 365 | VARA = VARA ## Calcula a variância com base numa amostra, incluindo números, texto e valores lógicos |
| 366 | VARP = VARP ## Calcula a variância com base na população total | 366 | VARP = VARP ## Calcula a variância com base na população total |
| 367 | VARPA = VARPA ## Calcula a variância com base na população total, incluindo números, texto e valores lógicos | 367 | VARPA = VARPA ## Calcula a variância com base na população total, incluindo números, texto e valores lógicos |
| 368 | WEIBULL = WEIBULL ## Devolve a distribuição Weibull | 368 | WEIBULL = WEIBULL ## Devolve a distribuição Weibull |
| 369 | ZTEST = TESTEZ ## Devolve o valor de probabilidade unicaudal de um teste-z | 369 | ZTEST = TESTEZ ## Devolve o valor de probabilidade unicaudal de um teste-z |
| 370 | 370 | ||
| 371 | 371 | ||
| 372 | ## | 372 | ## |
| 373 | ## Text functions Funções de texto | 373 | ## Text functions Funções de texto |
| 374 | ## | 374 | ## |
| 375 | ASC = ASC ## Altera letras ou katakana de largura total (byte duplo) numa cadeia de caracteres para caracteres de largura média (byte único) | 375 | ASC = ASC ## Altera letras ou katakana de largura total (byte duplo) numa cadeia de caracteres para caracteres de largura média (byte único) |
| 376 | BAHTTEXT = TEXTO.BAHT ## Converte um número em texto, utilizando o formato monetário ß (baht) | 376 | BAHTTEXT = TEXTO.BAHT ## Converte um número em texto, utilizando o formato monetário ß (baht) |
| 377 | CHAR = CARÁCT ## Devolve o carácter especificado pelo número de código | 377 | CHAR = CARÁCT ## Devolve o carácter especificado pelo número de código |
| 378 | CLEAN = LIMPAR ## Remove do texto todos os caracteres não imprimíveis | 378 | CLEAN = LIMPAR ## Remove do texto todos os caracteres não imprimíveis |
| 379 | CODE = CÓDIGO ## Devolve um código numérico correspondente ao primeiro carácter numa cadeia de texto | 379 | CODE = CÓDIGO ## Devolve um código numérico correspondente ao primeiro carácter numa cadeia de texto |
| 380 | CONCATENATE = CONCATENAR ## Agrupa vários itens de texto num único item de texto | 380 | CONCATENATE = CONCATENAR ## Agrupa vários itens de texto num único item de texto |
| 381 | DOLLAR = MOEDA ## Converte um número em texto, utilizando o formato monetário € (Euro) | 381 | DOLLAR = MOEDA ## Converte um número em texto, utilizando o formato monetário € (Euro) |
| 382 | EXACT = EXACTO ## Verifica se dois valores de texto são idênticos | 382 | EXACT = EXACTO ## Verifica se dois valores de texto são idênticos |
| 383 | FIND = LOCALIZAR ## Localiza um valor de texto dentro de outro (sensível às maiúsculas e minúsculas) | 383 | FIND = LOCALIZAR ## Localiza um valor de texto dentro de outro (sensível às maiúsculas e minúsculas) |
| 384 | FINDB = LOCALIZARB ## Localiza um valor de texto dentro de outro (sensível às maiúsculas e minúsculas) | 384 | FINDB = LOCALIZARB ## Localiza um valor de texto dentro de outro (sensível às maiúsculas e minúsculas) |
| 385 | FIXED = FIXA ## Formata um número como texto com um número fixo de decimais | 385 | FIXED = FIXA ## Formata um número como texto com um número fixo de decimais |
| 386 | JIS = JIS ## Altera letras ou katakana de largura média (byte único) numa cadeia de caracteres para caracteres de largura total (byte duplo) | 386 | JIS = JIS ## Altera letras ou katakana de largura média (byte único) numa cadeia de caracteres para caracteres de largura total (byte duplo) |
| 387 | LEFT = ESQUERDA ## Devolve os caracteres mais à esquerda de um valor de texto | 387 | LEFT = ESQUERDA ## Devolve os caracteres mais à esquerda de um valor de texto |
| 388 | LEFTB = ESQUERDAB ## Devolve os caracteres mais à esquerda de um valor de texto | 388 | LEFTB = ESQUERDAB ## Devolve os caracteres mais à esquerda de um valor de texto |
| 389 | LEN = NÚM.CARACT ## Devolve o número de caracteres de uma cadeia de texto | 389 | LEN = NÚM.CARACT ## Devolve o número de caracteres de uma cadeia de texto |
| 390 | LENB = NÚM.CARACTB ## Devolve o número de caracteres de uma cadeia de texto | 390 | LENB = NÚM.CARACTB ## Devolve o número de caracteres de uma cadeia de texto |
| 391 | LOWER = MINÚSCULAS ## Converte o texto em minúsculas | 391 | LOWER = MINÚSCULAS ## Converte o texto em minúsculas |
| 392 | MID = SEG.TEXTO ## Devolve um número específico de caracteres de uma cadeia de texto, a partir da posição especificada | 392 | MID = SEG.TEXTO ## Devolve um número específico de caracteres de uma cadeia de texto, a partir da posição especificada |
| 393 | MIDB = SEG.TEXTOB ## Devolve um número específico de caracteres de uma cadeia de texto, a partir da posição especificada | 393 | MIDB = SEG.TEXTOB ## Devolve um número específico de caracteres de uma cadeia de texto, a partir da posição especificada |
| 394 | PHONETIC = FONÉTICA ## Retira os caracteres fonéticos (furigana) de uma cadeia de texto | 394 | PHONETIC = FONÉTICA ## Retira os caracteres fonéticos (furigana) de uma cadeia de texto |
| 395 | PROPER = INICIAL.MAIÚSCULA ## Coloca em maiúsculas a primeira letra de cada palavra de um valor de texto | 395 | PROPER = INICIAL.MAIÚSCULA ## Coloca em maiúsculas a primeira letra de cada palavra de um valor de texto |
| 396 | REPLACE = SUBSTITUIR ## Substitui caracteres no texto | 396 | REPLACE = SUBSTITUIR ## Substitui caracteres no texto |
| 397 | REPLACEB = SUBSTITUIRB ## Substitui caracteres no texto | 397 | REPLACEB = SUBSTITUIRB ## Substitui caracteres no texto |
| 398 | REPT = REPETIR ## Repete texto um determinado número de vezes | 398 | REPT = REPETIR ## Repete texto um determinado número de vezes |
| 399 | RIGHT = DIREITA ## Devolve os caracteres mais à direita de um valor de texto | 399 | RIGHT = DIREITA ## Devolve os caracteres mais à direita de um valor de texto |
| 400 | RIGHTB = DIREITAB ## Devolve os caracteres mais à direita de um valor de texto | 400 | RIGHTB = DIREITAB ## Devolve os caracteres mais à direita de um valor de texto |
| 401 | SEARCH = PROCURAR ## Localiza um valor de texto dentro de outro (não sensível a maiúsculas e minúsculas) | 401 | SEARCH = PROCURAR ## Localiza um valor de texto dentro de outro (não sensível a maiúsculas e minúsculas) |
| 402 | SEARCHB = PROCURARB ## Localiza um valor de texto dentro de outro (não sensível a maiúsculas e minúsculas) | 402 | SEARCHB = PROCURARB ## Localiza um valor de texto dentro de outro (não sensível a maiúsculas e minúsculas) |
| 403 | SUBSTITUTE = SUBST ## Substitui texto novo por texto antigo numa cadeia de texto | 403 | SUBSTITUTE = SUBST ## Substitui texto novo por texto antigo numa cadeia de texto |
| 404 | T = T ## Converte os respectivos argumentos em texto | 404 | T = T ## Converte os respectivos argumentos em texto |
| 405 | TEXT = TEXTO ## Formata um número e converte-o em texto | 405 | TEXT = TEXTO ## Formata um número e converte-o em texto |
| 406 | TRIM = COMPACTAR ## Remove espaços do texto | 406 | TRIM = COMPACTAR ## Remove espaços do texto |
| 407 | UPPER = MAIÚSCULAS ## Converte texto em maiúsculas | 407 | UPPER = MAIÚSCULAS ## Converte texto em maiúsculas |
| 408 | VALUE = VALOR ## Converte um argumento de texto num número | 408 | VALUE = VALOR ## Converte um argumento de texto num número | ... | ... |
| 1 | ## | 1 | ## |
| 2 | ## Add-in and Automation functions Tilläggs- och automatiseringsfunktioner | 2 | ## Add-in and Automation functions Tilläggs- och automatiseringsfunktioner |
| 3 | ## | 3 | ## |
| 4 | GETPIVOTDATA = HÄMTA.PIVOTDATA ## Returnerar data som lagrats i en pivottabellrapport | 4 | GETPIVOTDATA = HÄMTA.PIVOTDATA ## Returnerar data som lagrats i en pivottabellrapport |
| 5 | 5 | ||
| 6 | 6 | ||
| 7 | ## | 7 | ## |
| 8 | ## Cube functions Kubfunktioner | 8 | ## Cube functions Kubfunktioner |
| 9 | ## | 9 | ## |
| 10 | CUBEKPIMEMBER = KUBKPIMEDLEM ## Returnerar namn, egenskap och mått för en KPI och visar namnet och egenskapen i cellen. En KPI, eller prestandaindikator, är ett kvantifierbart mått, t.ex. månatlig bruttovinst eller personalomsättning per kvartal, som används för att analysera ett företags resultat. | 10 | CUBEKPIMEMBER = KUBKPIMEDLEM ## Returnerar namn, egenskap och mått för en KPI och visar namnet och egenskapen i cellen. En KPI, eller prestandaindikator, är ett kvantifierbart mått, t.ex. månatlig bruttovinst eller personalomsättning per kvartal, som används för att analysera ett företags resultat. |
| 11 | CUBEMEMBER = KUBMEDLEM ## Returnerar en medlem eller ett par i en kubhierarki. Används för att verifiera att medlemmen eller paret finns i kuben. | 11 | CUBEMEMBER = KUBMEDLEM ## Returnerar en medlem eller ett par i en kubhierarki. Används för att verifiera att medlemmen eller paret finns i kuben. |
| 12 | CUBEMEMBERPROPERTY = KUBMEDLEMSEGENSKAP ## Returnerar värdet för en medlemsegenskap i kuben. Används för att verifiera att ett medlemsnamn finns i kuben, samt för att returnera den angivna egenskapen för medlemmen. | 12 | CUBEMEMBERPROPERTY = KUBMEDLEMSEGENSKAP ## Returnerar värdet för en medlemsegenskap i kuben. Används för att verifiera att ett medlemsnamn finns i kuben, samt för att returnera den angivna egenskapen för medlemmen. |
| 13 | CUBERANKEDMEMBER = KUBRANGORDNADMEDLEM ## Returnerar den n:te, eller rangordnade, medlemmen i en uppsättning. Används för att returnera ett eller flera element i en uppsättning, till exempelvis den bästa försäljaren eller de tio bästa eleverna. | 13 | CUBERANKEDMEMBER = KUBRANGORDNADMEDLEM ## Returnerar den n:te, eller rangordnade, medlemmen i en uppsättning. Används för att returnera ett eller flera element i en uppsättning, till exempelvis den bästa försäljaren eller de tio bästa eleverna. |
| 14 | CUBESET = KUBINSTÄLLNING ## Definierar en beräknad uppsättning medlemmar eller par genom att skicka ett bestämt uttryck till kuben på servern, som skapar uppsättningen och sedan returnerar den till Microsoft Office Excel. | 14 | CUBESET = KUBINSTÄLLNING ## Definierar en beräknad uppsättning medlemmar eller par genom att skicka ett bestämt uttryck till kuben på servern, som skapar uppsättningen och sedan returnerar den till Microsoft Office Excel. |
| 15 | CUBESETCOUNT = KUBINSTÄLLNINGANTAL ## Returnerar antalet objekt i en uppsättning. | 15 | CUBESETCOUNT = KUBINSTÄLLNINGANTAL ## Returnerar antalet objekt i en uppsättning. |
| 16 | CUBEVALUE = KUBVÄRDE ## Returnerar ett mängdvärde från en kub. | 16 | CUBEVALUE = KUBVÄRDE ## Returnerar ett mängdvärde från en kub. |
| 17 | 17 | ||
| 18 | 18 | ||
| 19 | ## | 19 | ## |
| 20 | ## Database functions Databasfunktioner | 20 | ## Database functions Databasfunktioner |
| 21 | ## | 21 | ## |
| 22 | DAVERAGE = DMEDEL ## Returnerar medelvärdet av databasposterna | 22 | DAVERAGE = DMEDEL ## Returnerar medelvärdet av databasposterna |
| 23 | DCOUNT = DANTAL ## Räknar antalet celler som innehåller tal i en databas | 23 | DCOUNT = DANTAL ## Räknar antalet celler som innehåller tal i en databas |
| 24 | DCOUNTA = DANTALV ## Räknar ifyllda celler i en databas | 24 | DCOUNTA = DANTALV ## Räknar ifyllda celler i en databas |
| 25 | DGET = DHÄMTA ## Hämtar en enstaka post från en databas som uppfyller de angivna villkoren | 25 | DGET = DHÄMTA ## Hämtar en enstaka post från en databas som uppfyller de angivna villkoren |
| 26 | DMAX = DMAX ## Returnerar det största värdet från databasposterna | 26 | DMAX = DMAX ## Returnerar det största värdet från databasposterna |
| 27 | DMIN = DMIN ## Returnerar det minsta värdet från databasposterna | 27 | DMIN = DMIN ## Returnerar det minsta värdet från databasposterna |
| 28 | DPRODUCT = DPRODUKT ## Multiplicerar värdena i ett visst fält i poster som uppfyller villkoret | 28 | DPRODUCT = DPRODUKT ## Multiplicerar värdena i ett visst fält i poster som uppfyller villkoret |
| 29 | DSTDEV = DSTDAV ## Uppskattar standardavvikelsen baserat på ett urval av databasposterna | 29 | DSTDEV = DSTDAV ## Uppskattar standardavvikelsen baserat på ett urval av databasposterna |
| 30 | DSTDEVP = DSTDAVP ## Beräknar standardavvikelsen utifrån hela populationen av valda databasposter | 30 | DSTDEVP = DSTDAVP ## Beräknar standardavvikelsen utifrån hela populationen av valda databasposter |
| 31 | DSUM = DSUMMA ## Summerar talen i kolumnfält i databasposter som uppfyller villkoret | 31 | DSUM = DSUMMA ## Summerar talen i kolumnfält i databasposter som uppfyller villkoret |
| 32 | DVAR = DVARIANS ## Uppskattar variansen baserat på ett urval av databasposterna | 32 | DVAR = DVARIANS ## Uppskattar variansen baserat på ett urval av databasposterna |
| 33 | DVARP = DVARIANSP ## Beräknar variansen utifrån hela populationen av valda databasposter | 33 | DVARP = DVARIANSP ## Beräknar variansen utifrån hela populationen av valda databasposter |
| 34 | 34 | ||
| 35 | 35 | ||
| 36 | ## | 36 | ## |
| 37 | ## Date and time functions Tid- och datumfunktioner | 37 | ## Date and time functions Tid- och datumfunktioner |
| 38 | ## | 38 | ## |
| 39 | DATE = DATUM ## Returnerar ett serienummer för ett visst datum | 39 | DATE = DATUM ## Returnerar ett serienummer för ett visst datum |
| 40 | DATEVALUE = DATUMVÄRDE ## Konverterar ett datum i textformat till ett serienummer | 40 | DATEVALUE = DATUMVÄRDE ## Konverterar ett datum i textformat till ett serienummer |
| 41 | DAY = DAG ## Konverterar ett serienummer till dag i månaden | 41 | DAY = DAG ## Konverterar ett serienummer till dag i månaden |
| 42 | DAYS360 = DAGAR360 ## Beräknar antalet dagar mellan två datum baserat på ett 360-dagarsår | 42 | DAYS360 = DAGAR360 ## Beräknar antalet dagar mellan två datum baserat på ett 360-dagarsår |
| 43 | EDATE = EDATUM ## Returnerar serienumret för ett datum som infaller ett visst antal månader före eller efter startdatumet | 43 | EDATE = EDATUM ## Returnerar serienumret för ett datum som infaller ett visst antal månader före eller efter startdatumet |
| 44 | EOMONTH = SLUTMÅNAD ## Returnerar serienumret för sista dagen i månaden ett visst antal månader tidigare eller senare | 44 | EOMONTH = SLUTMÅNAD ## Returnerar serienumret för sista dagen i månaden ett visst antal månader tidigare eller senare |
| 45 | HOUR = TIMME ## Konverterar ett serienummer till en timme | 45 | HOUR = TIMME ## Konverterar ett serienummer till en timme |
| 46 | MINUTE = MINUT ## Konverterar ett serienummer till en minut | 46 | MINUTE = MINUT ## Konverterar ett serienummer till en minut |
| 47 | MONTH = MÅNAD ## Konverterar ett serienummer till en månad | 47 | MONTH = MÅNAD ## Konverterar ett serienummer till en månad |
| 48 | NETWORKDAYS = NETTOARBETSDAGAR ## Returnerar antalet hela arbetsdagar mellan två datum | 48 | NETWORKDAYS = NETTOARBETSDAGAR ## Returnerar antalet hela arbetsdagar mellan två datum |
| 49 | NOW = NU ## Returnerar serienumret för dagens datum och aktuell tid | 49 | NOW = NU ## Returnerar serienumret för dagens datum och aktuell tid |
| 50 | SECOND = SEKUND ## Konverterar ett serienummer till en sekund | 50 | SECOND = SEKUND ## Konverterar ett serienummer till en sekund |
| 51 | TIME = KLOCKSLAG ## Returnerar serienumret för en viss tid | 51 | TIME = KLOCKSLAG ## Returnerar serienumret för en viss tid |
| 52 | TIMEVALUE = TIDVÄRDE ## Konverterar en tid i textformat till ett serienummer | 52 | TIMEVALUE = TIDVÄRDE ## Konverterar en tid i textformat till ett serienummer |
| 53 | TODAY = IDAG ## Returnerar serienumret för dagens datum | 53 | TODAY = IDAG ## Returnerar serienumret för dagens datum |
| 54 | WEEKDAY = VECKODAG ## Konverterar ett serienummer till en dag i veckan | 54 | WEEKDAY = VECKODAG ## Konverterar ett serienummer till en dag i veckan |
| 55 | WEEKNUM = VECKONR ## Konverterar ett serienummer till ett veckonummer | 55 | WEEKNUM = VECKONR ## Konverterar ett serienummer till ett veckonummer |
| 56 | WORKDAY = ARBETSDAGAR ## Returnerar serienumret för ett datum ett visst antal arbetsdagar tidigare eller senare | 56 | WORKDAY = ARBETSDAGAR ## Returnerar serienumret för ett datum ett visst antal arbetsdagar tidigare eller senare |
| 57 | YEAR = ÅR ## Konverterar ett serienummer till ett år | 57 | YEAR = ÅR ## Konverterar ett serienummer till ett år |
| 58 | YEARFRAC = ÅRDEL ## Returnerar en del av ett år som representerar antalet hela dagar mellan start- och slutdatum | 58 | YEARFRAC = ÅRDEL ## Returnerar en del av ett år som representerar antalet hela dagar mellan start- och slutdatum |
| 59 | 59 | ||
| 60 | 60 | ||
| 61 | ## | 61 | ## |
| 62 | ## Engineering functions Tekniska funktioner | 62 | ## Engineering functions Tekniska funktioner |
| 63 | ## | 63 | ## |
| 64 | BESSELI = BESSELI ## Returnerar den modifierade Bessel-funktionen In(x) | 64 | BESSELI = BESSELI ## Returnerar den modifierade Bessel-funktionen In(x) |
| 65 | BESSELJ = BESSELJ ## Returnerar Bessel-funktionen Jn(x) | 65 | BESSELJ = BESSELJ ## Returnerar Bessel-funktionen Jn(x) |
| 66 | BESSELK = BESSELK ## Returnerar den modifierade Bessel-funktionen Kn(x) | 66 | BESSELK = BESSELK ## Returnerar den modifierade Bessel-funktionen Kn(x) |
| 67 | BESSELY = BESSELY ## Returnerar Bessel-funktionen Yn(x) | 67 | BESSELY = BESSELY ## Returnerar Bessel-funktionen Yn(x) |
| 68 | BIN2DEC = BIN.TILL.DEC ## Omvandlar ett binärt tal till decimalt | 68 | BIN2DEC = BIN.TILL.DEC ## Omvandlar ett binärt tal till decimalt |
| 69 | BIN2HEX = BIN.TILL.HEX ## Omvandlar ett binärt tal till hexadecimalt | 69 | BIN2HEX = BIN.TILL.HEX ## Omvandlar ett binärt tal till hexadecimalt |
| 70 | BIN2OCT = BIN.TILL.OKT ## Omvandlar ett binärt tal till oktalt | 70 | BIN2OCT = BIN.TILL.OKT ## Omvandlar ett binärt tal till oktalt |
| 71 | COMPLEX = KOMPLEX ## Omvandlar reella och imaginära koefficienter till ett komplext tal | 71 | COMPLEX = KOMPLEX ## Omvandlar reella och imaginära koefficienter till ett komplext tal |
| 72 | CONVERT = KONVERTERA ## Omvandlar ett tal från ett måttsystem till ett annat | 72 | CONVERT = KONVERTERA ## Omvandlar ett tal från ett måttsystem till ett annat |
| 73 | DEC2BIN = DEC.TILL.BIN ## Omvandlar ett decimalt tal till binärt | 73 | DEC2BIN = DEC.TILL.BIN ## Omvandlar ett decimalt tal till binärt |
| 74 | DEC2HEX = DEC.TILL.HEX ## Omvandlar ett decimalt tal till hexadecimalt | 74 | DEC2HEX = DEC.TILL.HEX ## Omvandlar ett decimalt tal till hexadecimalt |
| 75 | DEC2OCT = DEC.TILL.OKT ## Omvandlar ett decimalt tal till oktalt | 75 | DEC2OCT = DEC.TILL.OKT ## Omvandlar ett decimalt tal till oktalt |
| 76 | DELTA = DELTA ## Testar om två värden är lika | 76 | DELTA = DELTA ## Testar om två värden är lika |
| 77 | ERF = FELF ## Returnerar felfunktionen | 77 | ERF = FELF ## Returnerar felfunktionen |
| 78 | ERFC = FELFK ## Returnerar den komplementära felfunktionen | 78 | ERFC = FELFK ## Returnerar den komplementära felfunktionen |
| 79 | GESTEP = SLSTEG ## Testar om ett tal är större än ett tröskelvärde | 79 | GESTEP = SLSTEG ## Testar om ett tal är större än ett tröskelvärde |
| 80 | HEX2BIN = HEX.TILL.BIN ## Omvandlar ett hexadecimalt tal till binärt | 80 | HEX2BIN = HEX.TILL.BIN ## Omvandlar ett hexadecimalt tal till binärt |
| 81 | HEX2DEC = HEX.TILL.DEC ## Omvandlar ett hexadecimalt tal till decimalt | 81 | HEX2DEC = HEX.TILL.DEC ## Omvandlar ett hexadecimalt tal till decimalt |
| 82 | HEX2OCT = HEX.TILL.OKT ## Omvandlar ett hexadecimalt tal till oktalt | 82 | HEX2OCT = HEX.TILL.OKT ## Omvandlar ett hexadecimalt tal till oktalt |
| 83 | IMABS = IMABS ## Returnerar absolutvärdet (modulus) för ett komplext tal | 83 | IMABS = IMABS ## Returnerar absolutvärdet (modulus) för ett komplext tal |
| 84 | IMAGINARY = IMAGINÄR ## Returnerar den imaginära koefficienten för ett komplext tal | 84 | IMAGINARY = IMAGINÄR ## Returnerar den imaginära koefficienten för ett komplext tal |
| 85 | IMARGUMENT = IMARGUMENT ## Returnerar det komplexa talets argument, en vinkel uttryckt i radianer | 85 | IMARGUMENT = IMARGUMENT ## Returnerar det komplexa talets argument, en vinkel uttryckt i radianer |
| 86 | IMCONJUGATE = IMKONJUGAT ## Returnerar det komplexa talets konjugat | 86 | IMCONJUGATE = IMKONJUGAT ## Returnerar det komplexa talets konjugat |
| 87 | IMCOS = IMCOS ## Returnerar cosinus för ett komplext tal | 87 | IMCOS = IMCOS ## Returnerar cosinus för ett komplext tal |
| 88 | IMDIV = IMDIV ## Returnerar kvoten för två komplexa tal | 88 | IMDIV = IMDIV ## Returnerar kvoten för två komplexa tal |
| 89 | IMEXP = IMEUPPHÖJT ## Returnerar exponenten för ett komplext tal | 89 | IMEXP = IMEUPPHÖJT ## Returnerar exponenten för ett komplext tal |
| 90 | IMLN = IMLN ## Returnerar den naturliga logaritmen för ett komplext tal | 90 | IMLN = IMLN ## Returnerar den naturliga logaritmen för ett komplext tal |
| 91 | IMLOG10 = IMLOG10 ## Returnerar 10-logaritmen för ett komplext tal | 91 | IMLOG10 = IMLOG10 ## Returnerar 10-logaritmen för ett komplext tal |
| 92 | IMLOG2 = IMLOG2 ## Returnerar 2-logaritmen för ett komplext tal | 92 | IMLOG2 = IMLOG2 ## Returnerar 2-logaritmen för ett komplext tal |
| 93 | IMPOWER = IMUPPHÖJT ## Returnerar ett komplext tal upphöjt till en exponent | 93 | IMPOWER = IMUPPHÖJT ## Returnerar ett komplext tal upphöjt till en exponent |
| 94 | IMPRODUCT = IMPRODUKT ## Returnerar produkten av komplexa tal | 94 | IMPRODUCT = IMPRODUKT ## Returnerar produkten av komplexa tal |
| 95 | IMREAL = IMREAL ## Returnerar den reella koefficienten för ett komplext tal | 95 | IMREAL = IMREAL ## Returnerar den reella koefficienten för ett komplext tal |
| 96 | IMSIN = IMSIN ## Returnerar sinus för ett komplext tal | 96 | IMSIN = IMSIN ## Returnerar sinus för ett komplext tal |
| 97 | IMSQRT = IMROT ## Returnerar kvadratroten av ett komplext tal | 97 | IMSQRT = IMROT ## Returnerar kvadratroten av ett komplext tal |
| 98 | IMSUB = IMDIFF ## Returnerar differensen mellan två komplexa tal | 98 | IMSUB = IMDIFF ## Returnerar differensen mellan två komplexa tal |
| 99 | IMSUM = IMSUM ## Returnerar summan av komplexa tal | 99 | IMSUM = IMSUM ## Returnerar summan av komplexa tal |
| 100 | OCT2BIN = OKT.TILL.BIN ## Omvandlar ett oktalt tal till binärt | 100 | OCT2BIN = OKT.TILL.BIN ## Omvandlar ett oktalt tal till binärt |
| 101 | OCT2DEC = OKT.TILL.DEC ## Omvandlar ett oktalt tal till decimalt | 101 | OCT2DEC = OKT.TILL.DEC ## Omvandlar ett oktalt tal till decimalt |
| 102 | OCT2HEX = OKT.TILL.HEX ## Omvandlar ett oktalt tal till hexadecimalt | 102 | OCT2HEX = OKT.TILL.HEX ## Omvandlar ett oktalt tal till hexadecimalt |
| 103 | 103 | ||
| 104 | 104 | ||
| 105 | ## | 105 | ## |
| 106 | ## Financial functions Finansiella funktioner | 106 | ## Financial functions Finansiella funktioner |
| 107 | ## | 107 | ## |
| 108 | ACCRINT = UPPLRÄNTA ## Returnerar den upplupna räntan för värdepapper med periodisk ränta | 108 | ACCRINT = UPPLRÄNTA ## Returnerar den upplupna räntan för värdepapper med periodisk ränta |
| 109 | ACCRINTM = UPPLOBLRÄNTA ## Returnerar den upplupna räntan för ett värdepapper som ger avkastning på förfallodagen | 109 | ACCRINTM = UPPLOBLRÄNTA ## Returnerar den upplupna räntan för ett värdepapper som ger avkastning på förfallodagen |
| 110 | AMORDEGRC = AMORDEGRC ## Returnerar avskrivningen för varje redovisningsperiod med hjälp av en avskrivningskoefficient | 110 | AMORDEGRC = AMORDEGRC ## Returnerar avskrivningen för varje redovisningsperiod med hjälp av en avskrivningskoefficient |
| 111 | AMORLINC = AMORLINC ## Returnerar avskrivningen för varje redovisningsperiod | 111 | AMORLINC = AMORLINC ## Returnerar avskrivningen för varje redovisningsperiod |
| 112 | COUPDAYBS = KUPDAGBB ## Returnerar antal dagar från början av kupongperioden till likviddagen | 112 | COUPDAYBS = KUPDAGBB ## Returnerar antal dagar från början av kupongperioden till likviddagen |
| 113 | COUPDAYS = KUPDAGARS ## Returnerar antalet dagar i kupongperioden som innehåller betalningsdatumet | 113 | COUPDAYS = KUPDAGARS ## Returnerar antalet dagar i kupongperioden som innehåller betalningsdatumet |
| 114 | COUPDAYSNC = KUPDAGNK ## Returnerar antalet dagar från betalningsdatumet till nästa kupongdatum | 114 | COUPDAYSNC = KUPDAGNK ## Returnerar antalet dagar från betalningsdatumet till nästa kupongdatum |
| 115 | COUPNCD = KUPNKD ## Returnerar nästa kupongdatum efter likviddagen | 115 | COUPNCD = KUPNKD ## Returnerar nästa kupongdatum efter likviddagen |
| 116 | COUPNUM = KUPANT ## Returnerar kuponger som förfaller till betalning mellan likviddagen och förfallodagen | 116 | COUPNUM = KUPANT ## Returnerar kuponger som förfaller till betalning mellan likviddagen och förfallodagen |
| 117 | COUPPCD = KUPFKD ## Returnerar föregående kupongdatum före likviddagen | 117 | COUPPCD = KUPFKD ## Returnerar föregående kupongdatum före likviddagen |
| 118 | CUMIPMT = KUMRÄNTA ## Returnerar den ackumulerade räntan som betalats mellan två perioder | 118 | CUMIPMT = KUMRÄNTA ## Returnerar den ackumulerade räntan som betalats mellan två perioder |
| 119 | CUMPRINC = KUMPRIS ## Returnerar det ackumulerade kapitalbeloppet som betalats på ett lån mellan två perioder | 119 | CUMPRINC = KUMPRIS ## Returnerar det ackumulerade kapitalbeloppet som betalats på ett lån mellan två perioder |
| 120 | DB = DB ## Returnerar avskrivningen för en tillgång under en angiven tid enligt metoden för fast degressiv avskrivning | 120 | DB = DB ## Returnerar avskrivningen för en tillgång under en angiven tid enligt metoden för fast degressiv avskrivning |
| 121 | DDB = DEGAVSKR ## Returnerar en tillgångs värdeminskning under en viss period med hjälp av dubbel degressiv avskrivning eller någon annan metod som du anger | 121 | DDB = DEGAVSKR ## Returnerar en tillgångs värdeminskning under en viss period med hjälp av dubbel degressiv avskrivning eller någon annan metod som du anger |
| 122 | DISC = DISK ## Returnerar diskonteringsräntan för ett värdepapper | 122 | DISC = DISK ## Returnerar diskonteringsräntan för ett värdepapper |
| 123 | DOLLARDE = DECTAL ## Omvandlar ett pris uttryckt som ett bråk till ett decimaltal | 123 | DOLLARDE = DECTAL ## Omvandlar ett pris uttryckt som ett bråk till ett decimaltal |
| 124 | DOLLARFR = BRÅK ## Omvandlar ett pris i kronor uttryckt som ett decimaltal till ett bråk | 124 | DOLLARFR = BRÅK ## Omvandlar ett pris i kronor uttryckt som ett decimaltal till ett bråk |
| 125 | DURATION = LÖPTID ## Returnerar den årliga löptiden för en säkerhet med periodiska räntebetalningar | 125 | DURATION = LÖPTID ## Returnerar den årliga löptiden för en säkerhet med periodiska räntebetalningar |
| 126 | EFFECT = EFFRÄNTA ## Returnerar den årliga effektiva räntesatsen | 126 | EFFECT = EFFRÄNTA ## Returnerar den årliga effektiva räntesatsen |
| 127 | FV = SLUTVÄRDE ## Returnerar det framtida värdet på en investering | 127 | FV = SLUTVÄRDE ## Returnerar det framtida värdet på en investering |
| 128 | FVSCHEDULE = FÖRRÄNTNING ## Returnerar det framtida värdet av ett begynnelsekapital beräknat på olika räntenivåer | 128 | FVSCHEDULE = FÖRRÄNTNING ## Returnerar det framtida värdet av ett begynnelsekapital beräknat på olika räntenivåer |
| 129 | INTRATE = ÅRSRÄNTA ## Returnerar räntesatsen för ett betalt värdepapper | 129 | INTRATE = ÅRSRÄNTA ## Returnerar räntesatsen för ett betalt värdepapper |
| 130 | IPMT = RBETALNING ## Returnerar räntedelen av en betalning för en given period | 130 | IPMT = RBETALNING ## Returnerar räntedelen av en betalning för en given period |
| 131 | IRR = IR ## Returnerar internräntan för en serie betalningar | 131 | IRR = IR ## Returnerar internräntan för en serie betalningar |
| 132 | ISPMT = RALÅN ## Beräknar räntan som har betalats under en specifik betalningsperiod | 132 | ISPMT = RALÅN ## Beräknar räntan som har betalats under en specifik betalningsperiod |
| 133 | MDURATION = MLÖPTID ## Returnerar den modifierade Macauley-löptiden för ett värdepapper med det antagna nominella värdet 100 kr | 133 | MDURATION = MLÖPTID ## Returnerar den modifierade Macauley-löptiden för ett värdepapper med det antagna nominella värdet 100 kr |
| 134 | MIRR = MODIR ## Returnerar internräntan där positiva och negativa betalningar finansieras med olika räntor | 134 | MIRR = MODIR ## Returnerar internräntan där positiva och negativa betalningar finansieras med olika räntor |
| 135 | NOMINAL = NOMRÄNTA ## Returnerar den årliga nominella räntesatsen | 135 | NOMINAL = NOMRÄNTA ## Returnerar den årliga nominella räntesatsen |
| 136 | NPER = PERIODER ## Returnerar antalet perioder för en investering | 136 | NPER = PERIODER ## Returnerar antalet perioder för en investering |
| 137 | NPV = NETNUVÄRDE ## Returnerar nuvärdet av en serie periodiska betalningar vid en given diskonteringsränta | 137 | NPV = NETNUVÄRDE ## Returnerar nuvärdet av en serie periodiska betalningar vid en given diskonteringsränta |
| 138 | ODDFPRICE = UDDAFPRIS ## Returnerar priset per 100 kr nominellt värde för ett värdepapper med en udda första period | 138 | ODDFPRICE = UDDAFPRIS ## Returnerar priset per 100 kr nominellt värde för ett värdepapper med en udda första period |
| 139 | ODDFYIELD = UDDAFAVKASTNING ## Returnerar avkastningen för en säkerhet med en udda första period | 139 | ODDFYIELD = UDDAFAVKASTNING ## Returnerar avkastningen för en säkerhet med en udda första period |
| 140 | ODDLPRICE = UDDASPRIS ## Returnerar priset per 100 kr nominellt värde för ett värdepapper med en udda sista period | 140 | ODDLPRICE = UDDASPRIS ## Returnerar priset per 100 kr nominellt värde för ett värdepapper med en udda sista period |
| 141 | ODDLYIELD = UDDASAVKASTNING ## Returnerar avkastningen för en säkerhet med en udda sista period | 141 | ODDLYIELD = UDDASAVKASTNING ## Returnerar avkastningen för en säkerhet med en udda sista period |
| 142 | PMT = BETALNING ## Returnerar den periodiska betalningen för en annuitet | 142 | PMT = BETALNING ## Returnerar den periodiska betalningen för en annuitet |
| 143 | PPMT = AMORT ## Returnerar amorteringsdelen av en annuitetsbetalning för en given period | 143 | PPMT = AMORT ## Returnerar amorteringsdelen av en annuitetsbetalning för en given period |
| 144 | PRICE = PRIS ## Returnerar priset per 100 kr nominellt värde för ett värdepapper som ger periodisk ränta | 144 | PRICE = PRIS ## Returnerar priset per 100 kr nominellt värde för ett värdepapper som ger periodisk ränta |
| 145 | PRICEDISC = PRISDISK ## Returnerar priset per 100 kr nominellt värde för ett diskonterat värdepapper | 145 | PRICEDISC = PRISDISK ## Returnerar priset per 100 kr nominellt värde för ett diskonterat värdepapper |
| 146 | PRICEMAT = PRISFÖRF ## Returnerar priset per 100 kr nominellt värde för ett värdepapper som ger ränta på förfallodagen | 146 | PRICEMAT = PRISFÖRF ## Returnerar priset per 100 kr nominellt värde för ett värdepapper som ger ränta på förfallodagen |
| 147 | PV = PV ## Returnerar nuvärdet av en serie lika stora periodiska betalningar | 147 | PV = PV ## Returnerar nuvärdet av en serie lika stora periodiska betalningar |
| 148 | RATE = RÄNTA ## Returnerar räntesatsen per period i en annuitet | 148 | RATE = RÄNTA ## Returnerar räntesatsen per period i en annuitet |
| 149 | RECEIVED = BELOPP ## Returnerar beloppet som utdelas på förfallodagen för ett betalat värdepapper | 149 | RECEIVED = BELOPP ## Returnerar beloppet som utdelas på förfallodagen för ett betalat värdepapper |
| 150 | SLN = LINAVSKR ## Returnerar den linjära avskrivningen för en tillgång under en period | 150 | SLN = LINAVSKR ## Returnerar den linjära avskrivningen för en tillgång under en period |
| 151 | SYD = ÅRSAVSKR ## Returnerar den årliga avskrivningssumman för en tillgång under en angiven period | 151 | SYD = ÅRSAVSKR ## Returnerar den årliga avskrivningssumman för en tillgång under en angiven period |
| 152 | TBILLEQ = SSVXEKV ## Returnerar avkastningen motsvarande en obligation för en statsskuldväxel | 152 | TBILLEQ = SSVXEKV ## Returnerar avkastningen motsvarande en obligation för en statsskuldväxel |
| 153 | TBILLPRICE = SSVXPRIS ## Returnerar priset per 100 kr nominellt värde för en statsskuldväxel | 153 | TBILLPRICE = SSVXPRIS ## Returnerar priset per 100 kr nominellt värde för en statsskuldväxel |
| 154 | TBILLYIELD = SSVXRÄNTA ## Returnerar avkastningen för en statsskuldväxel | 154 | TBILLYIELD = SSVXRÄNTA ## Returnerar avkastningen för en statsskuldväxel |
| 155 | VDB = VDEGRAVSKR ## Returnerar avskrivningen för en tillgång under en angiven period (med degressiv avskrivning) | 155 | VDB = VDEGRAVSKR ## Returnerar avskrivningen för en tillgång under en angiven period (med degressiv avskrivning) |
| 156 | XIRR = XIRR ## Returnerar internräntan för en serie betalningar som inte nödvändigtvis är periodiska | 156 | XIRR = XIRR ## Returnerar internräntan för en serie betalningar som inte nödvändigtvis är periodiska |
| 157 | XNPV = XNUVÄRDE ## Returnerar det nuvarande nettovärdet för en serie betalningar som inte nödvändigtvis är periodiska | 157 | XNPV = XNUVÄRDE ## Returnerar det nuvarande nettovärdet för en serie betalningar som inte nödvändigtvis är periodiska |
| 158 | YIELD = NOMAVK ## Returnerar avkastningen för ett värdepapper som ger periodisk ränta | 158 | YIELD = NOMAVK ## Returnerar avkastningen för ett värdepapper som ger periodisk ränta |
| 159 | YIELDDISC = NOMAVKDISK ## Returnerar den årliga avkastningen för diskonterade värdepapper, exempelvis en statsskuldväxel | 159 | YIELDDISC = NOMAVKDISK ## Returnerar den årliga avkastningen för diskonterade värdepapper, exempelvis en statsskuldväxel |
| 160 | YIELDMAT = NOMAVKFÖRF ## Returnerar den årliga avkastningen för ett värdepapper som ger ränta på förfallodagen | 160 | YIELDMAT = NOMAVKFÖRF ## Returnerar den årliga avkastningen för ett värdepapper som ger ränta på förfallodagen |
| 161 | 161 | ||
| 162 | 162 | ||
| 163 | ## | 163 | ## |
| 164 | ## Information functions Informationsfunktioner | 164 | ## Information functions Informationsfunktioner |
| 165 | ## | 165 | ## |
| 166 | CELL = CELL ## Returnerar information om formatering, plats och innehåll i en cell | 166 | CELL = CELL ## Returnerar information om formatering, plats och innehåll i en cell |
| 167 | ERROR.TYPE = FEL.TYP ## Returnerar ett tal som motsvarar ett felvärde | 167 | ERROR.TYPE = FEL.TYP ## Returnerar ett tal som motsvarar ett felvärde |
| 168 | INFO = INFO ## Returnerar information om operativsystemet | 168 | INFO = INFO ## Returnerar information om operativsystemet |
| 169 | ISBLANK = ÄRREF ## Returnerar SANT om värdet är tomt | 169 | ISBLANK = ÄRREF ## Returnerar SANT om värdet är tomt |
| 170 | ISERR = Ä ## Returnerar SANT om värdet är ett felvärde annat än #SAKNAS! | 170 | ISERR = Ä ## Returnerar SANT om värdet är ett felvärde annat än #SAKNAS! |
| 171 | ISERROR = ÄRFEL ## Returnerar SANT om värdet är ett felvärde | 171 | ISERROR = ÄRFEL ## Returnerar SANT om värdet är ett felvärde |
| 172 | ISEVEN = ÄRJÄMN ## Returnerar SANT om talet är jämnt | 172 | ISEVEN = ÄRJÄMN ## Returnerar SANT om talet är jämnt |
| 173 | ISLOGICAL = ÄREJTEXT ## Returnerar SANT om värdet är ett logiskt värde | 173 | ISLOGICAL = ÄREJTEXT ## Returnerar SANT om värdet är ett logiskt värde |
| 174 | ISNA = ÄRLOGISK ## Returnerar SANT om värdet är felvärdet #SAKNAS! | 174 | ISNA = ÄRLOGISK ## Returnerar SANT om värdet är felvärdet #SAKNAS! |
| 175 | ISNONTEXT = ÄRSAKNAD ## Returnerar SANT om värdet inte är text | 175 | ISNONTEXT = ÄRSAKNAD ## Returnerar SANT om värdet inte är text |
| 176 | ISNUMBER = ÄRTAL ## Returnerar SANT om värdet är ett tal | 176 | ISNUMBER = ÄRTAL ## Returnerar SANT om värdet är ett tal |
| 177 | ISODD = ÄRUDDA ## Returnerar SANT om talet är udda | 177 | ISODD = ÄRUDDA ## Returnerar SANT om talet är udda |
| 178 | ISREF = ÄRTOM ## Returnerar SANT om värdet är en referens | 178 | ISREF = ÄRTOM ## Returnerar SANT om värdet är en referens |
| 179 | ISTEXT = ÄRTEXT ## Returnerar SANT om värdet är text | 179 | ISTEXT = ÄRTEXT ## Returnerar SANT om värdet är text |
| 180 | N = N ## Returnerar ett värde omvandlat till ett tal | 180 | N = N ## Returnerar ett värde omvandlat till ett tal |
| 181 | NA = SAKNAS ## Returnerar felvärdet #SAKNAS! | 181 | NA = SAKNAS ## Returnerar felvärdet #SAKNAS! |
| 182 | TYPE = VÄRDETYP ## Returnerar ett tal som anger värdets datatyp | 182 | TYPE = VÄRDETYP ## Returnerar ett tal som anger värdets datatyp |
| 183 | 183 | ||
| 184 | 184 | ||
| 185 | ## | 185 | ## |
| 186 | ## Logical functions Logiska funktioner | 186 | ## Logical functions Logiska funktioner |
| 187 | ## | 187 | ## |
| 188 | AND = OCH ## Returnerar SANT om alla argument är sanna | 188 | AND = OCH ## Returnerar SANT om alla argument är sanna |
| 189 | FALSE = FALSKT ## Returnerar det logiska värdet FALSKT | 189 | FALSE = FALSKT ## Returnerar det logiska värdet FALSKT |
| 190 | IF = OM ## Anger vilket logiskt test som ska utföras | 190 | IF = OM ## Anger vilket logiskt test som ska utföras |
| 191 | IFERROR = OMFEL ## Returnerar ett värde som du anger om en formel utvärderar till ett fel; annars returneras resultatet av formeln | 191 | IFERROR = OMFEL ## Returnerar ett värde som du anger om en formel utvärderar till ett fel; annars returneras resultatet av formeln |
| 192 | NOT = ICKE ## Inverterar logiken för argumenten | 192 | NOT = ICKE ## Inverterar logiken för argumenten |
| 193 | OR = ELLER ## Returnerar SANT om något argument är SANT | 193 | OR = ELLER ## Returnerar SANT om något argument är SANT |
| 194 | TRUE = SANT ## Returnerar det logiska värdet SANT | 194 | TRUE = SANT ## Returnerar det logiska värdet SANT |
| 195 | 195 | ||
| 196 | 196 | ||
| 197 | ## | 197 | ## |
| 198 | ## Lookup and reference functions Sök- och referensfunktioner | 198 | ## Lookup and reference functions Sök- och referensfunktioner |
| 199 | ## | 199 | ## |
| 200 | ADDRESS = ADRESS ## Returnerar en referens som text till en enstaka cell i ett kalkylblad | 200 | ADDRESS = ADRESS ## Returnerar en referens som text till en enstaka cell i ett kalkylblad |
| 201 | AREAS = OMRÅDEN ## Returnerar antalet områden i en referens | 201 | AREAS = OMRÅDEN ## Returnerar antalet områden i en referens |
| 202 | CHOOSE = VÄLJ ## Väljer ett värde i en lista över värden | 202 | CHOOSE = VÄLJ ## Väljer ett värde i en lista över värden |
| 203 | COLUMN = KOLUMN ## Returnerar kolumnnumret för en referens | 203 | COLUMN = KOLUMN ## Returnerar kolumnnumret för en referens |
| 204 | COLUMNS = KOLUMNER ## Returnerar antalet kolumner i en referens | 204 | COLUMNS = KOLUMNER ## Returnerar antalet kolumner i en referens |
| 205 | HLOOKUP = LETAKOLUMN ## Söker i den översta raden i en matris och returnerar värdet för angiven cell | 205 | HLOOKUP = LETAKOLUMN ## Söker i den översta raden i en matris och returnerar värdet för angiven cell |
| 206 | HYPERLINK = HYPERLÄNK ## Skapar en genväg eller ett hopp till ett dokument i nätverket, i ett intranät eller på Internet | 206 | HYPERLINK = HYPERLÄNK ## Skapar en genväg eller ett hopp till ett dokument i nätverket, i ett intranät eller på Internet |
| 207 | INDEX = INDEX ## Använder ett index för ett välja ett värde i en referens eller matris | 207 | INDEX = INDEX ## Använder ett index för ett välja ett värde i en referens eller matris |
| 208 | INDIRECT = INDIREKT ## Returnerar en referens som anges av ett textvärde | 208 | INDIRECT = INDIREKT ## Returnerar en referens som anges av ett textvärde |
| 209 | LOOKUP = LETAUPP ## Letar upp värden i en vektor eller matris | 209 | LOOKUP = LETAUPP ## Letar upp värden i en vektor eller matris |
| 210 | MATCH = PASSA ## Letar upp värden i en referens eller matris | 210 | MATCH = PASSA ## Letar upp värden i en referens eller matris |
| 211 | OFFSET = FÖRSKJUTNING ## Returnerar en referens förskjuten i förhållande till en given referens | 211 | OFFSET = FÖRSKJUTNING ## Returnerar en referens förskjuten i förhållande till en given referens |
| 212 | ROW = RAD ## Returnerar radnumret för en referens | 212 | ROW = RAD ## Returnerar radnumret för en referens |
| 213 | ROWS = RADER ## Returnerar antalet rader i en referens | 213 | ROWS = RADER ## Returnerar antalet rader i en referens |
| 214 | RTD = RTD ## Hämtar realtidsdata från ett program som stöder COM-automation (Automation: Ett sätt att arbeta med ett programs objekt från ett annat program eller utvecklingsverktyg. Detta kallades tidigare för OLE Automation, och är en branschstandard och ingår i Component Object Model (COM).) | 214 | RTD = RTD ## Hämtar realtidsdata från ett program som stöder COM-automation (Automation: Ett sätt att arbeta med ett programs objekt från ett annat program eller utvecklingsverktyg. Detta kallades tidigare för OLE Automation, och är en branschstandard och ingår i Component Object Model (COM).) |
| 215 | TRANSPOSE = TRANSPONERA ## Transponerar en matris | 215 | TRANSPOSE = TRANSPONERA ## Transponerar en matris |
| 216 | VLOOKUP = LETARAD ## Letar i den första kolumnen i en matris och flyttar över raden för att returnera värdet för en cell | 216 | VLOOKUP = LETARAD ## Letar i den första kolumnen i en matris och flyttar över raden för att returnera värdet för en cell |
| 217 | 217 | ||
| 218 | 218 | ||
| 219 | ## | 219 | ## |
| 220 | ## Math and trigonometry functions Matematiska och trigonometriska funktioner | 220 | ## Math and trigonometry functions Matematiska och trigonometriska funktioner |
| 221 | ## | 221 | ## |
| 222 | ABS = ABS ## Returnerar absolutvärdet av ett tal | 222 | ABS = ABS ## Returnerar absolutvärdet av ett tal |
| 223 | ACOS = ARCCOS ## Returnerar arcus cosinus för ett tal | 223 | ACOS = ARCCOS ## Returnerar arcus cosinus för ett tal |
| 224 | ACOSH = ARCCOSH ## Returnerar inverterad hyperbolisk cosinus för ett tal | 224 | ACOSH = ARCCOSH ## Returnerar inverterad hyperbolisk cosinus för ett tal |
| 225 | ASIN = ARCSIN ## Returnerar arcus cosinus för ett tal | 225 | ASIN = ARCSIN ## Returnerar arcus cosinus för ett tal |
| 226 | ASINH = ARCSINH ## Returnerar hyperbolisk arcus sinus för ett tal | 226 | ASINH = ARCSINH ## Returnerar hyperbolisk arcus sinus för ett tal |
| 227 | ATAN = ARCTAN ## Returnerar arcus tangens för ett tal | 227 | ATAN = ARCTAN ## Returnerar arcus tangens för ett tal |
| 228 | ATAN2 = ARCTAN2 ## Returnerar arcus tangens för en x- och en y- koordinat | 228 | ATAN2 = ARCTAN2 ## Returnerar arcus tangens för en x- och en y- koordinat |
| 229 | ATANH = ARCTANH ## Returnerar hyperbolisk arcus tangens för ett tal | 229 | ATANH = ARCTANH ## Returnerar hyperbolisk arcus tangens för ett tal |
| 230 | CEILING = RUNDA.UPP ## Avrundar ett tal till närmaste heltal eller närmaste signifikanta multipel | 230 | CEILING = RUNDA.UPP ## Avrundar ett tal till närmaste heltal eller närmaste signifikanta multipel |
| 231 | COMBIN = KOMBIN ## Returnerar antalet kombinationer för ett givet antal objekt | 231 | COMBIN = KOMBIN ## Returnerar antalet kombinationer för ett givet antal objekt |
| 232 | COS = COS ## Returnerar cosinus för ett tal | 232 | COS = COS ## Returnerar cosinus för ett tal |
| 233 | COSH = COSH ## Returnerar hyperboliskt cosinus för ett tal | 233 | COSH = COSH ## Returnerar hyperboliskt cosinus för ett tal |
| 234 | DEGREES = GRADER ## Omvandlar radianer till grader | 234 | DEGREES = GRADER ## Omvandlar radianer till grader |
| 235 | EVEN = JÄMN ## Avrundar ett tal uppåt till närmaste heltal | 235 | EVEN = JÄMN ## Avrundar ett tal uppåt till närmaste heltal |
| 236 | EXP = EXP ## Returnerar e upphöjt till ett givet tal | 236 | EXP = EXP ## Returnerar e upphöjt till ett givet tal |
| 237 | FACT = FAKULTET ## Returnerar fakulteten för ett tal | 237 | FACT = FAKULTET ## Returnerar fakulteten för ett tal |
| 238 | FACTDOUBLE = DUBBELFAKULTET ## Returnerar dubbelfakulteten för ett tal | 238 | FACTDOUBLE = DUBBELFAKULTET ## Returnerar dubbelfakulteten för ett tal |
| 239 | FLOOR = RUNDA.NED ## Avrundar ett tal nedåt mot noll | 239 | FLOOR = RUNDA.NED ## Avrundar ett tal nedåt mot noll |
| 240 | GCD = SGD ## Returnerar den största gemensamma nämnaren | 240 | GCD = SGD ## Returnerar den största gemensamma nämnaren |
| 241 | INT = HELTAL ## Avrundar ett tal nedåt till närmaste heltal | 241 | INT = HELTAL ## Avrundar ett tal nedåt till närmaste heltal |
| 242 | LCM = MGM ## Returnerar den minsta gemensamma multipeln | 242 | LCM = MGM ## Returnerar den minsta gemensamma multipeln |
| 243 | LN = LN ## Returnerar den naturliga logaritmen för ett tal | 243 | LN = LN ## Returnerar den naturliga logaritmen för ett tal |
| 244 | LOG = LOG ## Returnerar logaritmen för ett tal för en given bas | 244 | LOG = LOG ## Returnerar logaritmen för ett tal för en given bas |
| 245 | LOG10 = LOG10 ## Returnerar 10-logaritmen för ett tal | 245 | LOG10 = LOG10 ## Returnerar 10-logaritmen för ett tal |
| 246 | MDETERM = MDETERM ## Returnerar matrisen som är avgörandet av en matris | 246 | MDETERM = MDETERM ## Returnerar matrisen som är avgörandet av en matris |
| 247 | MINVERSE = MINVERT ## Returnerar matrisinversen av en matris | 247 | MINVERSE = MINVERT ## Returnerar matrisinversen av en matris |
| 248 | MMULT = MMULT ## Returnerar matrisprodukten av två matriser | 248 | MMULT = MMULT ## Returnerar matrisprodukten av två matriser |
| 249 | MOD = REST ## Returnerar resten vid en division | 249 | MOD = REST ## Returnerar resten vid en division |
| 250 | MROUND = MAVRUNDA ## Returnerar ett tal avrundat till en given multipel | 250 | MROUND = MAVRUNDA ## Returnerar ett tal avrundat till en given multipel |
| 251 | MULTINOMIAL = MULTINOMIAL ## Returnerar multinomialen för en uppsättning tal | 251 | MULTINOMIAL = MULTINOMIAL ## Returnerar multinomialen för en uppsättning tal |
| 252 | ODD = UDDA ## Avrundar ett tal uppåt till närmaste udda heltal | 252 | ODD = UDDA ## Avrundar ett tal uppåt till närmaste udda heltal |
| 253 | PI = PI ## Returnerar värdet pi | 253 | PI = PI ## Returnerar värdet pi |
| 254 | POWER = UPPHÖJT.TILL ## Returnerar resultatet av ett tal upphöjt till en exponent | 254 | POWER = UPPHÖJT.TILL ## Returnerar resultatet av ett tal upphöjt till en exponent |
| 255 | PRODUCT = PRODUKT ## Multiplicerar argumenten | 255 | PRODUCT = PRODUKT ## Multiplicerar argumenten |
| 256 | QUOTIENT = KVOT ## Returnerar heltalsdelen av en division | 256 | QUOTIENT = KVOT ## Returnerar heltalsdelen av en division |
| 257 | RADIANS = RADIANER ## Omvandlar grader till radianer | 257 | RADIANS = RADIANER ## Omvandlar grader till radianer |
| 258 | RAND = SLUMP ## Returnerar ett slumptal mellan 0 och 1 | 258 | RAND = SLUMP ## Returnerar ett slumptal mellan 0 och 1 |
| 259 | RANDBETWEEN = SLUMP.MELLAN ## Returnerar ett slumptal mellan de tal som du anger | 259 | RANDBETWEEN = SLUMP.MELLAN ## Returnerar ett slumptal mellan de tal som du anger |
| 260 | ROMAN = ROMERSK ## Omvandlar vanliga (arabiska) siffror till romerska som text | 260 | ROMAN = ROMERSK ## Omvandlar vanliga (arabiska) siffror till romerska som text |
| 261 | ROUND = AVRUNDA ## Avrundar ett tal till ett angivet antal siffror | 261 | ROUND = AVRUNDA ## Avrundar ett tal till ett angivet antal siffror |
| 262 | ROUNDDOWN = AVRUNDA.NEDÅT ## Avrundar ett tal nedåt mot noll | 262 | ROUNDDOWN = AVRUNDA.NEDÅT ## Avrundar ett tal nedåt mot noll |
| 263 | ROUNDUP = AVRUNDA.UPPÅT ## Avrundar ett tal uppåt, från noll | 263 | ROUNDUP = AVRUNDA.UPPÅT ## Avrundar ett tal uppåt, från noll |
| 264 | SERIESSUM = SERIESUMMA ## Returnerar summan av en potensserie baserat på formeln | 264 | SERIESSUM = SERIESUMMA ## Returnerar summan av en potensserie baserat på formeln |
| 265 | SIGN = TECKEN ## Returnerar tecknet för ett tal | 265 | SIGN = TECKEN ## Returnerar tecknet för ett tal |
| 266 | SIN = SIN ## Returnerar sinus för en given vinkel | 266 | SIN = SIN ## Returnerar sinus för en given vinkel |
| 267 | SINH = SINH ## Returnerar hyperbolisk sinus för ett tal | 267 | SINH = SINH ## Returnerar hyperbolisk sinus för ett tal |
| 268 | SQRT = ROT ## Returnerar den positiva kvadratroten | 268 | SQRT = ROT ## Returnerar den positiva kvadratroten |
| 269 | SQRTPI = ROTPI ## Returnerar kvadratroten för (tal * pi) | 269 | SQRTPI = ROTPI ## Returnerar kvadratroten för (tal * pi) |
| 270 | SUBTOTAL = DELSUMMA ## Returnerar en delsumma i en lista eller databas | 270 | SUBTOTAL = DELSUMMA ## Returnerar en delsumma i en lista eller databas |
| 271 | SUM = SUMMA ## Summerar argumenten | 271 | SUM = SUMMA ## Summerar argumenten |
| 272 | SUMIF = SUMMA.OM ## Summerar celler enligt ett angivet villkor | 272 | SUMIF = SUMMA.OM ## Summerar celler enligt ett angivet villkor |
| 273 | SUMIFS = SUMMA.OMF ## Lägger till cellerna i ett område som uppfyller flera kriterier | 273 | SUMIFS = SUMMA.OMF ## Lägger till cellerna i ett område som uppfyller flera kriterier |
| 274 | SUMPRODUCT = PRODUKTSUMMA ## Returnerar summan av produkterna i motsvarande matriskomponenter | 274 | SUMPRODUCT = PRODUKTSUMMA ## Returnerar summan av produkterna i motsvarande matriskomponenter |
| 275 | SUMSQ = KVADRATSUMMA ## Returnerar summan av argumentens kvadrater | 275 | SUMSQ = KVADRATSUMMA ## Returnerar summan av argumentens kvadrater |
| 276 | SUMX2MY2 = SUMMAX2MY2 ## Returnerar summan av differensen mellan kvadraterna för motsvarande värden i två matriser | 276 | SUMX2MY2 = SUMMAX2MY2 ## Returnerar summan av differensen mellan kvadraterna för motsvarande värden i två matriser |
| 277 | SUMX2PY2 = SUMMAX2PY2 ## Returnerar summan av summan av kvadraterna av motsvarande värden i två matriser | 277 | SUMX2PY2 = SUMMAX2PY2 ## Returnerar summan av summan av kvadraterna av motsvarande värden i två matriser |
| 278 | SUMXMY2 = SUMMAXMY2 ## Returnerar summan av kvadraten av skillnaden mellan motsvarande värden i två matriser | 278 | SUMXMY2 = SUMMAXMY2 ## Returnerar summan av kvadraten av skillnaden mellan motsvarande värden i två matriser |
| 279 | TAN = TAN ## Returnerar tangens för ett tal | 279 | TAN = TAN ## Returnerar tangens för ett tal |
| 280 | TANH = TANH ## Returnerar hyperbolisk tangens för ett tal | 280 | TANH = TANH ## Returnerar hyperbolisk tangens för ett tal |
| 281 | TRUNC = AVKORTA ## Avkortar ett tal till ett heltal | 281 | TRUNC = AVKORTA ## Avkortar ett tal till ett heltal |
| 282 | 282 | ||
| 283 | 283 | ||
| 284 | ## | 284 | ## |
| 285 | ## Statistical functions Statistiska funktioner | 285 | ## Statistical functions Statistiska funktioner |
| 286 | ## | 286 | ## |
| 287 | AVEDEV = MEDELAVV ## Returnerar medelvärdet för datapunkters absoluta avvikelse från deras medelvärde | 287 | AVEDEV = MEDELAVV ## Returnerar medelvärdet för datapunkters absoluta avvikelse från deras medelvärde |
| 288 | AVERAGE = MEDEL ## Returnerar medelvärdet av argumenten | 288 | AVERAGE = MEDEL ## Returnerar medelvärdet av argumenten |
| 289 | AVERAGEA = AVERAGEA ## Returnerar medelvärdet av argumenten, inklusive tal, text och logiska värden | 289 | AVERAGEA = AVERAGEA ## Returnerar medelvärdet av argumenten, inklusive tal, text och logiska värden |
| 290 | AVERAGEIF = MEDELOM ## Returnerar medelvärdet (aritmetiskt medelvärde) för alla celler i ett område som uppfyller ett givet kriterium | 290 | AVERAGEIF = MEDELOM ## Returnerar medelvärdet (aritmetiskt medelvärde) för alla celler i ett område som uppfyller ett givet kriterium |
| 291 | AVERAGEIFS = MEDELOMF ## Returnerar medelvärdet (det aritmetiska medelvärdet) för alla celler som uppfyller flera villkor. | 291 | AVERAGEIFS = MEDELOMF ## Returnerar medelvärdet (det aritmetiska medelvärdet) för alla celler som uppfyller flera villkor. |
| 292 | BETADIST = BETAFÖRD ## Returnerar den kumulativa betafördelningsfunktionen | 292 | BETADIST = BETAFÖRD ## Returnerar den kumulativa betafördelningsfunktionen |
| 293 | BETAINV = BETAINV ## Returnerar inversen till den kumulativa fördelningsfunktionen för en viss betafördelning | 293 | BETAINV = BETAINV ## Returnerar inversen till den kumulativa fördelningsfunktionen för en viss betafördelning |
| 294 | BINOMDIST = BINOMFÖRD ## Returnerar den individuella binomialfördelningen | 294 | BINOMDIST = BINOMFÖRD ## Returnerar den individuella binomialfördelningen |
| 295 | CHIDIST = CHI2FÖRD ## Returnerar den ensidiga sannolikheten av c2-fördelningen | 295 | CHIDIST = CHI2FÖRD ## Returnerar den ensidiga sannolikheten av c2-fördelningen |
| 296 | CHIINV = CHI2INV ## Returnerar inversen av chi2-fördelningen | 296 | CHIINV = CHI2INV ## Returnerar inversen av chi2-fördelningen |
| 297 | CHITEST = CHI2TEST ## Returnerar oberoendetesten | 297 | CHITEST = CHI2TEST ## Returnerar oberoendetesten |
| 298 | CONFIDENCE = KONFIDENS ## Returnerar konfidensintervallet för en populations medelvärde | 298 | CONFIDENCE = KONFIDENS ## Returnerar konfidensintervallet för en populations medelvärde |
| 299 | CORREL = KORREL ## Returnerar korrelationskoefficienten mellan två datamängder | 299 | CORREL = KORREL ## Returnerar korrelationskoefficienten mellan två datamängder |
| 300 | COUNT = ANTAL ## Räknar hur många tal som finns bland argumenten | 300 | COUNT = ANTAL ## Räknar hur många tal som finns bland argumenten |
| 301 | COUNTA = ANTALV ## Räknar hur många värden som finns bland argumenten | 301 | COUNTA = ANTALV ## Räknar hur många värden som finns bland argumenten |
| 302 | COUNTBLANK = ANTAL.TOMMA ## Räknar antalet tomma celler i ett område | 302 | COUNTBLANK = ANTAL.TOMMA ## Räknar antalet tomma celler i ett område |
| 303 | COUNTIF = ANTAL.OM ## Räknar antalet celler i ett område som uppfyller angivna villkor. | 303 | COUNTIF = ANTAL.OM ## Räknar antalet celler i ett område som uppfyller angivna villkor. |
| 304 | COUNTIFS = ANTAL.OMF ## Räknar antalet celler i ett område som uppfyller flera villkor. | 304 | COUNTIFS = ANTAL.OMF ## Räknar antalet celler i ett område som uppfyller flera villkor. |
| 305 | COVAR = KOVAR ## Returnerar kovariansen, d.v.s. medelvärdet av produkterna för parade avvikelser | 305 | COVAR = KOVAR ## Returnerar kovariansen, d.v.s. medelvärdet av produkterna för parade avvikelser |
| 306 | CRITBINOM = KRITBINOM ## Returnerar det minsta värdet för vilket den kumulativa binomialfördelningen är mindre än eller lika med ett villkorsvärde | 306 | CRITBINOM = KRITBINOM ## Returnerar det minsta värdet för vilket den kumulativa binomialfördelningen är mindre än eller lika med ett villkorsvärde |
| 307 | DEVSQ = KVADAVV ## Returnerar summan av kvadrater på avvikelser | 307 | DEVSQ = KVADAVV ## Returnerar summan av kvadrater på avvikelser |
| 308 | EXPONDIST = EXPONFÖRD ## Returnerar exponentialfördelningen | 308 | EXPONDIST = EXPONFÖRD ## Returnerar exponentialfördelningen |
| 309 | FDIST = FFÖRD ## Returnerar F-sannolikhetsfördelningen | 309 | FDIST = FFÖRD ## Returnerar F-sannolikhetsfördelningen |
| 310 | FINV = FINV ## Returnerar inversen till F-sannolikhetsfördelningen | 310 | FINV = FINV ## Returnerar inversen till F-sannolikhetsfördelningen |
| 311 | FISHER = FISHER ## Returnerar Fisher-transformationen | 311 | FISHER = FISHER ## Returnerar Fisher-transformationen |
| 312 | FISHERINV = FISHERINV ## Returnerar inversen till Fisher-transformationen | 312 | FISHERINV = FISHERINV ## Returnerar inversen till Fisher-transformationen |
| 313 | FORECAST = PREDIKTION ## Returnerar ett värde längs en linjär trendlinje | 313 | FORECAST = PREDIKTION ## Returnerar ett värde längs en linjär trendlinje |
| 314 | FREQUENCY = FREKVENS ## Returnerar en frekvensfördelning som en lodrät matris | 314 | FREQUENCY = FREKVENS ## Returnerar en frekvensfördelning som en lodrät matris |
| 315 | FTEST = FTEST ## Returnerar resultatet av en F-test | 315 | FTEST = FTEST ## Returnerar resultatet av en F-test |
| 316 | GAMMADIST = GAMMAFÖRD ## Returnerar gammafördelningen | 316 | GAMMADIST = GAMMAFÖRD ## Returnerar gammafördelningen |
| 317 | GAMMAINV = GAMMAINV ## Returnerar inversen till den kumulativa gammafördelningen | 317 | GAMMAINV = GAMMAINV ## Returnerar inversen till den kumulativa gammafördelningen |
| 318 | GAMMALN = GAMMALN ## Returnerar den naturliga logaritmen för gammafunktionen, G(x) | 318 | GAMMALN = GAMMALN ## Returnerar den naturliga logaritmen för gammafunktionen, G(x) |
| 319 | GEOMEAN = GEOMEDEL ## Returnerar det geometriska medelvärdet | 319 | GEOMEAN = GEOMEDEL ## Returnerar det geometriska medelvärdet |
| 320 | GROWTH = EXPTREND ## Returnerar värden längs en exponentiell trend | 320 | GROWTH = EXPTREND ## Returnerar värden längs en exponentiell trend |
| 321 | HARMEAN = HARMMEDEL ## Returnerar det harmoniska medelvärdet | 321 | HARMEAN = HARMMEDEL ## Returnerar det harmoniska medelvärdet |
| 322 | HYPGEOMDIST = HYPGEOMFÖRD ## Returnerar den hypergeometriska fördelningen | 322 | HYPGEOMDIST = HYPGEOMFÖRD ## Returnerar den hypergeometriska fördelningen |
| 323 | INTERCEPT = SKÄRNINGSPUNKT ## Returnerar skärningspunkten för en linjär regressionslinje | 323 | INTERCEPT = SKÄRNINGSPUNKT ## Returnerar skärningspunkten för en linjär regressionslinje |
| 324 | KURT = TOPPIGHET ## Returnerar toppigheten av en mängd data | 324 | KURT = TOPPIGHET ## Returnerar toppigheten av en mängd data |
| 325 | LARGE = STÖRSTA ## Returnerar det n:te största värdet i en mängd data | 325 | LARGE = STÖRSTA ## Returnerar det n:te största värdet i en mängd data |
| 326 | LINEST = REGR ## Returnerar parametrar till en linjär trendlinje | 326 | LINEST = REGR ## Returnerar parametrar till en linjär trendlinje |
| 327 | LOGEST = EXPREGR ## Returnerar parametrarna i en exponentiell trend | 327 | LOGEST = EXPREGR ## Returnerar parametrarna i en exponentiell trend |
| 328 | LOGINV = LOGINV ## Returnerar inversen till den lognormala fördelningen | 328 | LOGINV = LOGINV ## Returnerar inversen till den lognormala fördelningen |
| 329 | LOGNORMDIST = LOGNORMFÖRD ## Returnerar den kumulativa lognormala fördelningen | 329 | LOGNORMDIST = LOGNORMFÖRD ## Returnerar den kumulativa lognormala fördelningen |
| 330 | MAX = MAX ## Returnerar det största värdet i en lista av argument | 330 | MAX = MAX ## Returnerar det största värdet i en lista av argument |
| 331 | MAXA = MAXA ## Returnerar det största värdet i en lista av argument, inklusive tal, text och logiska värden | 331 | MAXA = MAXA ## Returnerar det största värdet i en lista av argument, inklusive tal, text och logiska värden |
| 332 | MEDIAN = MEDIAN ## Returnerar medianen för angivna tal | 332 | MEDIAN = MEDIAN ## Returnerar medianen för angivna tal |
| 333 | MIN = MIN ## Returnerar det minsta värdet i en lista med argument | 333 | MIN = MIN ## Returnerar det minsta värdet i en lista med argument |
| 334 | MINA = MINA ## Returnerar det minsta värdet i en lista över argument, inklusive tal, text och logiska värden | 334 | MINA = MINA ## Returnerar det minsta värdet i en lista över argument, inklusive tal, text och logiska värden |
| 335 | MODE = TYPVÄRDE ## Returnerar det vanligaste värdet i en datamängd | 335 | MODE = TYPVÄRDE ## Returnerar det vanligaste värdet i en datamängd |
| 336 | NEGBINOMDIST = NEGBINOMFÖRD ## Returnerar den negativa binomialfördelningen | 336 | NEGBINOMDIST = NEGBINOMFÖRD ## Returnerar den negativa binomialfördelningen |
| 337 | NORMDIST = NORMFÖRD ## Returnerar den kumulativa normalfördelningen | 337 | NORMDIST = NORMFÖRD ## Returnerar den kumulativa normalfördelningen |
| 338 | NORMINV = NORMINV ## Returnerar inversen till den kumulativa normalfördelningen | 338 | NORMINV = NORMINV ## Returnerar inversen till den kumulativa normalfördelningen |
| 339 | NORMSDIST = NORMSFÖRD ## Returnerar den kumulativa standardnormalfördelningen | 339 | NORMSDIST = NORMSFÖRD ## Returnerar den kumulativa standardnormalfördelningen |
| 340 | NORMSINV = NORMSINV ## Returnerar inversen till den kumulativa standardnormalfördelningen | 340 | NORMSINV = NORMSINV ## Returnerar inversen till den kumulativa standardnormalfördelningen |
| 341 | PEARSON = PEARSON ## Returnerar korrelationskoefficienten till Pearsons momentprodukt | 341 | PEARSON = PEARSON ## Returnerar korrelationskoefficienten till Pearsons momentprodukt |
| 342 | PERCENTILE = PERCENTIL ## Returnerar den n:te percentilen av värden i ett område | 342 | PERCENTILE = PERCENTIL ## Returnerar den n:te percentilen av värden i ett område |
| 343 | PERCENTRANK = PROCENTRANG ## Returnerar procentrangen för ett värde i en datamängd | 343 | PERCENTRANK = PROCENTRANG ## Returnerar procentrangen för ett värde i en datamängd |
| 344 | PERMUT = PERMUT ## Returnerar antal permutationer för ett givet antal objekt | 344 | PERMUT = PERMUT ## Returnerar antal permutationer för ett givet antal objekt |
| 345 | POISSON = POISSON ## Returnerar Poisson-fördelningen | 345 | POISSON = POISSON ## Returnerar Poisson-fördelningen |
| 346 | PROB = SANNOLIKHET ## Returnerar sannolikheten att värden i ett område ligger mellan två gränser | 346 | PROB = SANNOLIKHET ## Returnerar sannolikheten att värden i ett område ligger mellan två gränser |
| 347 | QUARTILE = KVARTIL ## Returnerar kvartilen av en mängd data | 347 | QUARTILE = KVARTIL ## Returnerar kvartilen av en mängd data |
| 348 | RANK = RANG ## Returnerar rangordningen för ett tal i en lista med tal | 348 | RANK = RANG ## Returnerar rangordningen för ett tal i en lista med tal |
| 349 | RSQ = RKV ## Returnerar kvadraten av Pearsons produktmomentkorrelationskoefficient | 349 | RSQ = RKV ## Returnerar kvadraten av Pearsons produktmomentkorrelationskoefficient |
| 350 | SKEW = SNEDHET ## Returnerar snedheten för en fördelning | 350 | SKEW = SNEDHET ## Returnerar snedheten för en fördelning |
| 351 | SLOPE = LUTNING ## Returnerar lutningen på en linjär regressionslinje | 351 | SLOPE = LUTNING ## Returnerar lutningen på en linjär regressionslinje |
| 352 | SMALL = MINSTA ## Returnerar det n:te minsta värdet i en mängd data | 352 | SMALL = MINSTA ## Returnerar det n:te minsta värdet i en mängd data |
| 353 | STANDARDIZE = STANDARDISERA ## Returnerar ett normaliserat värde | 353 | STANDARDIZE = STANDARDISERA ## Returnerar ett normaliserat värde |
| 354 | STDEV = STDAV ## Uppskattar standardavvikelsen baserat på ett urval | 354 | STDEV = STDAV ## Uppskattar standardavvikelsen baserat på ett urval |
| 355 | STDEVA = STDEVA ## Uppskattar standardavvikelsen baserat på ett urval, inklusive tal, text och logiska värden | 355 | STDEVA = STDEVA ## Uppskattar standardavvikelsen baserat på ett urval, inklusive tal, text och logiska värden |
| 356 | STDEVP = STDAVP ## Beräknar standardavvikelsen baserat på hela populationen | 356 | STDEVP = STDAVP ## Beräknar standardavvikelsen baserat på hela populationen |
| 357 | STDEVPA = STDEVPA ## Beräknar standardavvikelsen baserat på hela populationen, inklusive tal, text och logiska värden | 357 | STDEVPA = STDEVPA ## Beräknar standardavvikelsen baserat på hela populationen, inklusive tal, text och logiska värden |
| 358 | STEYX = STDFELYX ## Returnerar standardfelet för ett förutspått y-värde för varje x-värde i regressionen | 358 | STEYX = STDFELYX ## Returnerar standardfelet för ett förutspått y-värde för varje x-värde i regressionen |
| 359 | TDIST = TFÖRD ## Returnerar Students t-fördelning | 359 | TDIST = TFÖRD ## Returnerar Students t-fördelning |
| 360 | TINV = TINV ## Returnerar inversen till Students t-fördelning | 360 | TINV = TINV ## Returnerar inversen till Students t-fördelning |
| 361 | TREND = TREND ## Returnerar värden längs en linjär trend | 361 | TREND = TREND ## Returnerar värden längs en linjär trend |
| 362 | TRIMMEAN = TRIMMEDEL ## Returnerar medelvärdet av mittpunkterna i en datamängd | 362 | TRIMMEAN = TRIMMEDEL ## Returnerar medelvärdet av mittpunkterna i en datamängd |
| 363 | TTEST = TTEST ## Returnerar sannolikheten beräknad ur Students t-test | 363 | TTEST = TTEST ## Returnerar sannolikheten beräknad ur Students t-test |
| 364 | VAR = VARIANS ## Uppskattar variansen baserat på ett urval | 364 | VAR = VARIANS ## Uppskattar variansen baserat på ett urval |
| 365 | VARA = VARA ## Uppskattar variansen baserat på ett urval, inklusive tal, text och logiska värden | 365 | VARA = VARA ## Uppskattar variansen baserat på ett urval, inklusive tal, text och logiska värden |
| 366 | VARP = VARIANSP ## Beräknar variansen baserat på hela populationen | 366 | VARP = VARIANSP ## Beräknar variansen baserat på hela populationen |
| 367 | VARPA = VARPA ## Beräknar variansen baserat på hela populationen, inklusive tal, text och logiska värden | 367 | VARPA = VARPA ## Beräknar variansen baserat på hela populationen, inklusive tal, text och logiska värden |
| 368 | WEIBULL = WEIBULL ## Returnerar Weibull-fördelningen | 368 | WEIBULL = WEIBULL ## Returnerar Weibull-fördelningen |
| 369 | ZTEST = ZTEST ## Returnerar det ensidiga sannolikhetsvärdet av ett z-test | 369 | ZTEST = ZTEST ## Returnerar det ensidiga sannolikhetsvärdet av ett z-test |
| 370 | 370 | ||
| 371 | 371 | ||
| 372 | ## | 372 | ## |
| 373 | ## Text functions Textfunktioner | 373 | ## Text functions Textfunktioner |
| 374 | ## | 374 | ## |
| 375 | ASC = ASC ## Ändrar helbredds (dubbel byte) engelska bokstäver eller katakana inom en teckensträng till tecken med halvt breddsteg (enkel byte) | 375 | ASC = ASC ## Ändrar helbredds (dubbel byte) engelska bokstäver eller katakana inom en teckensträng till tecken med halvt breddsteg (enkel byte) |
| 376 | BAHTTEXT = BAHTTEXT ## Omvandlar ett tal till text med valutaformatet ß (baht) | 376 | BAHTTEXT = BAHTTEXT ## Omvandlar ett tal till text med valutaformatet ß (baht) |
| 377 | CHAR = TECKENKOD ## Returnerar tecknet som anges av kod | 377 | CHAR = TECKENKOD ## Returnerar tecknet som anges av kod |
| 378 | CLEAN = STÄDA ## Tar bort alla icke utskrivbara tecken i en text | 378 | CLEAN = STÄDA ## Tar bort alla icke utskrivbara tecken i en text |
| 379 | CODE = KOD ## Returnerar en numerisk kod för det första tecknet i en textsträng | 379 | CODE = KOD ## Returnerar en numerisk kod för det första tecknet i en textsträng |
| 380 | CONCATENATE = SAMMANFOGA ## Sammanfogar flera textdelar till en textsträng | 380 | CONCATENATE = SAMMANFOGA ## Sammanfogar flera textdelar till en textsträng |
| 381 | DOLLAR = VALUTA ## Omvandlar ett tal till text med valutaformat | 381 | DOLLAR = VALUTA ## Omvandlar ett tal till text med valutaformat |
| 382 | EXACT = EXAKT ## Kontrollerar om två textvärden är identiska | 382 | EXACT = EXAKT ## Kontrollerar om två textvärden är identiska |
| 383 | FIND = HITTA ## Hittar en text i en annan (skiljer på gemener och versaler) | 383 | FIND = HITTA ## Hittar en text i en annan (skiljer på gemener och versaler) |
| 384 | FINDB = HITTAB ## Hittar en text i en annan (skiljer på gemener och versaler) | 384 | FINDB = HITTAB ## Hittar en text i en annan (skiljer på gemener och versaler) |
| 385 | FIXED = FASTTAL ## Formaterar ett tal som text med ett fast antal decimaler | 385 | FIXED = FASTTAL ## Formaterar ett tal som text med ett fast antal decimaler |
| 386 | JIS = JIS ## Ändrar halvbredds (enkel byte) engelska bokstäver eller katakana inom en teckensträng till tecken med helt breddsteg (dubbel byte) | 386 | JIS = JIS ## Ändrar halvbredds (enkel byte) engelska bokstäver eller katakana inom en teckensträng till tecken med helt breddsteg (dubbel byte) |
| 387 | LEFT = VÄNSTER ## Returnerar tecken längst till vänster i en sträng | 387 | LEFT = VÄNSTER ## Returnerar tecken längst till vänster i en sträng |
| 388 | LEFTB = VÄNSTERB ## Returnerar tecken längst till vänster i en sträng | 388 | LEFTB = VÄNSTERB ## Returnerar tecken längst till vänster i en sträng |
| 389 | LEN = LÄNGD ## Returnerar antalet tecken i en textsträng | 389 | LEN = LÄNGD ## Returnerar antalet tecken i en textsträng |
| 390 | LENB = LÄNGDB ## Returnerar antalet tecken i en textsträng | 390 | LENB = LÄNGDB ## Returnerar antalet tecken i en textsträng |
| 391 | LOWER = GEMENER ## Omvandlar text till gemener | 391 | LOWER = GEMENER ## Omvandlar text till gemener |
| 392 | MID = EXTEXT ## Returnerar angivet antal tecken från en text med början vid den position som du anger | 392 | MID = EXTEXT ## Returnerar angivet antal tecken från en text med början vid den position som du anger |
| 393 | MIDB = EXTEXTB ## Returnerar angivet antal tecken från en text med början vid den position som du anger | 393 | MIDB = EXTEXTB ## Returnerar angivet antal tecken från en text med början vid den position som du anger |
| 394 | PHONETIC = PHONETIC ## Returnerar de fonetiska (furigana) tecknen i en textsträng | 394 | PHONETIC = PHONETIC ## Returnerar de fonetiska (furigana) tecknen i en textsträng |
| 395 | PROPER = INITIAL ## Ändrar första bokstaven i varje ord i ett textvärde till versal | 395 | PROPER = INITIAL ## Ändrar första bokstaven i varje ord i ett textvärde till versal |
| 396 | REPLACE = ERSÄTT ## Ersätter tecken i text | 396 | REPLACE = ERSÄTT ## Ersätter tecken i text |
| 397 | REPLACEB = ERSÄTTB ## Ersätter tecken i text | 397 | REPLACEB = ERSÄTTB ## Ersätter tecken i text |
| 398 | REPT = REP ## Upprepar en text ett bestämt antal gånger | 398 | REPT = REP ## Upprepar en text ett bestämt antal gånger |
| 399 | RIGHT = HÖGER ## Returnerar tecken längst till höger i en sträng | 399 | RIGHT = HÖGER ## Returnerar tecken längst till höger i en sträng |
| 400 | RIGHTB = HÖGERB ## Returnerar tecken längst till höger i en sträng | 400 | RIGHTB = HÖGERB ## Returnerar tecken längst till höger i en sträng |
| 401 | SEARCH = SÖK ## Hittar ett textvärde i ett annat (skiljer inte på gemener och versaler) | 401 | SEARCH = SÖK ## Hittar ett textvärde i ett annat (skiljer inte på gemener och versaler) |
| 402 | SEARCHB = SÖKB ## Hittar ett textvärde i ett annat (skiljer inte på gemener och versaler) | 402 | SEARCHB = SÖKB ## Hittar ett textvärde i ett annat (skiljer inte på gemener och versaler) |
| 403 | SUBSTITUTE = BYT.UT ## Ersätter gammal text med ny text i en textsträng | 403 | SUBSTITUTE = BYT.UT ## Ersätter gammal text med ny text i en textsträng |
| 404 | T = T ## Omvandlar argumenten till text | 404 | T = T ## Omvandlar argumenten till text |
| 405 | TEXT = TEXT ## Formaterar ett tal och omvandlar det till text | 405 | TEXT = TEXT ## Formaterar ett tal och omvandlar det till text |
| 406 | TRIM = RENSA ## Tar bort blanksteg från text | 406 | TRIM = RENSA ## Tar bort blanksteg från text |
| 407 | UPPER = VERSALER ## Omvandlar text till versaler | 407 | UPPER = VERSALER ## Omvandlar text till versaler |
| 408 | VALUE = TEXTNUM ## Omvandlar ett textargument till ett tal | 408 | VALUE = TEXTNUM ## Omvandlar ett textargument till ett tal | ... | ... |
| 1 | <?php | 1 | <?php |
| 2 | namespace Tz\WordPress\Tools\Notifications\Settings; | 2 | namespace Tz\WordPress\Tools\Notifications\Settings; |
| 3 | //error_reporting(E_ALL^E_DEPRECATED); | 3 | //error_reporting(E_ALL^E_DEPRECATED); |
| 4 | 4 | ||
| 5 | use Tz\WordPress\Tools; | 5 | use Tz\WordPress\Tools; |
| 6 | use Tz\Common; | 6 | use Tz\Common; |
| 7 | use Tz\WordPress\Tools\Notifications; | 7 | use Tz\WordPress\Tools\Notifications; |
| 8 | use Tz\WordPress\Tools\Notifications\Validation; | 8 | use Tz\WordPress\Tools\Notifications\Validation; |
| 9 | 9 | ||
| 10 | const CAPABILITY = "manage_notifications"; | 10 | const CAPABILITY = "manage_notifications"; |
| 11 | const MANAGE_SYSTEM_NOTIFICATIONS = "create_system_notifications"; | 11 | const MANAGE_SYSTEM_NOTIFICATIONS = "create_system_notifications"; |
| 12 | const SETTING_NS = 'canspam_settings'; | 12 | const SETTING_NS = 'canspam_settings'; |
| 13 | const ADMIN_PAGE = "canspam_admin"; | 13 | const ADMIN_PAGE = "canspam_admin"; |
| 14 | 14 | ||
| 15 | call_user_func(function() { | 15 | call_user_func(function() { |
| 16 | $role = get_role('administrator'); | 16 | $role = get_role('administrator'); |
| 17 | $role->add_cap(CAPABILITY); | 17 | $role->add_cap(CAPABILITY); |
| 18 | $role->add_cap(MANAGE_SYSTEM_NOTIFICATIONS); | 18 | $role->add_cap(MANAGE_SYSTEM_NOTIFICATIONS); |
| 19 | //$role->remove_cap(SUB_ADMIN_CAPABILITY); | 19 | //$role->remove_cap(SUB_ADMIN_CAPABILITY); |
| 20 | 20 | ||
| 21 | Vars::$settings = new Tools\WP_Option(SETTING_NS); | 21 | Vars::$settings = new Tools\WP_Option(SETTING_NS); |
| 22 | 22 | ||
| 23 | Tools\add_actions(__NAMESPACE__ . '\Actions'); | 23 | Tools\add_actions(__NAMESPACE__ . '\Actions'); |
| 24 | 24 | ||
| 25 | 25 | ||
| 26 | 26 | ||
| 27 | }); | 27 | }); |
| 28 | 28 | ||
| 29 | function display_page() { | 29 | function display_page() { |
| 30 | 30 | ||
| 31 | 31 | ||
| 32 | if (isset($_GET['action']) && $_GET['action']=="edit") { | 32 | if (isset($_GET['action']) && $_GET['action']=="edit") { |
| 33 | global $wpdb; | 33 | global $wpdb; |
| 34 | 34 | ||
| 35 | $entry = get_post($_GET['page_id']); | 35 | $entry = get_post($_GET['page_id']); |
| 36 | 36 | ||
| 37 | $id = $entry->ID; | 37 | $id = $entry->ID; |
| 38 | 38 | ||
| 39 | $details = get_post_meta($id,'details',true); | 39 | $details = get_post_meta($id,'details',true); |
| 40 | $email = get_post_meta($id,'email',true); | 40 | $email = get_post_meta($id,'email',true); |
| 41 | $system = get_post_meta($id,'system',true); | 41 | $system = get_post_meta($id,'system',true); |
| 42 | 42 | ||
| 43 | $entry->details = $details; | 43 | $entry->details = $details; |
| 44 | $entry->email = $email; | 44 | $entry->email = $email; |
| 45 | $entry->system = $system; | 45 | $entry->system = $system; |
| 46 | 46 | ||
| 47 | // here | 47 | // here |
| 48 | $validation = new Notifications\Validation; | 48 | $validation = new Notifications\Validation; |
| 49 | 49 | ||
| 50 | $validation->set_rules('type','Notification Type','required'); | 50 | $validation->set_rules('type','Notification Type','required'); |
| 51 | $validation->set_rules('title','Description','trim|required|min_length[4]'); | 51 | $validation->set_rules('title','Description','trim|required|min_length[4]'); |
| 52 | $validation->set_rules('type','Notification Type','required'); | 52 | $validation->set_rules('type','Notification Type','required'); |
| 53 | $validation->set_rules('sendto','Send To','required'); | 53 | $validation->set_rules('sendto','Send To','required'); |
| 54 | 54 | ||
| 55 | $type_val = ($_POST && $_POST['type'] == "scheduled") ? 'required' : ''; | 55 | $type_val = ($_POST && $_POST['type'] == "scheduled") ? 'required' : ''; |
| 56 | $validation->set_rules('execute_date','Execute Date', $type_val); | 56 | $validation->set_rules('execute_date','Execute Date', $type_val); |
| 57 | 57 | ||
| 58 | $trigger_val = ($_POST && $_POST['type'] == "triggered") ? 'required' : ''; | 58 | $trigger_val = ($_POST && $_POST['type'] == "triggered") ? 'required' : ''; |
| 59 | $validation->set_rules('trigger','Trigger',$trigger_val); | 59 | $validation->set_rules('trigger','Trigger',$trigger_val); |
| 60 | 60 | ||
| 61 | $validation->set_rules('subject','Subject','trim'); | 61 | $validation->set_rules('subject','Subject','trim'); |
| 62 | $validation->set_rules('text','Text Version','trim|min_length[16]'); | 62 | $validation->set_rules('text','Text Version','trim|min_length[16]'); |
| 63 | $validation->set_rules('html','HTML Version','trim|min_length[16]'); | 63 | $validation->set_rules('html','HTML Version','trim|min_length[16]'); |
| 64 | 64 | ||
| 65 | $validation->set_rules('system_message_type','System Message Type','trim'); | 65 | $validation->set_rules('system_message_type','System Message Type','trim'); |
| 66 | $validation->set_rules('system','System Message','trim|min_length[16]'); | 66 | $validation->set_rules('system','System Message','trim|min_length[16]'); |
| 67 | 67 | ||
| 68 | 68 | ||
| 69 | //details | 69 | //details |
| 70 | if ($validation->run() == TRUE) { | 70 | if ($validation->run() == TRUE) { |
| 71 | 71 | ||
| 72 | 72 | ||
| 73 | 73 | ||
| 74 | 74 | ||
| 75 | $type = $_POST['type']; | 75 | $type = $_POST['type']; |
| 76 | $title = $_POST['title']; | 76 | $title = $_POST['title']; |
| 77 | $sendto = $_POST['sendto']; | 77 | $sendto = $_POST['sendto']; |
| 78 | $execute_date = ($type=="scheduled") ? $_POST['execute_date'] : "0000-00-00 00:00:00"; | 78 | $execute_date = ($type=="scheduled") ? $_POST['execute_date'] : "0000-00-00 00:00:00"; |
| 79 | $trigger = ($type=="scheduled") ? "scheduled-cron-job" : $_POST['trigger']; | 79 | $trigger = ($type=="scheduled") ? "scheduled-cron-job" : $_POST['trigger']; |
| 80 | 80 | ||
| 81 | 81 | ||
| 82 | $subject = $_POST['subject']; | 82 | $subject = $_POST['subject']; |
| 83 | $text = $_POST['text']; | 83 | $text = $_POST['text']; |
| 84 | $html = $_POST['html']; | 84 | $html = $_POST['html']; |
| 85 | $attachments = array(); | 85 | $attachments = array(); |
| 86 | $upload_dir = __DIR__ . "/uploads/"; | 86 | $upload_dir = __DIR__ . "/uploads/"; |
| 87 | fixFilesArray($_FILES['attachment']); | 87 | fixFilesArray($_FILES['attachment']); |
| 88 | foreach ($_FILES['attachment'] as $position => $file) { | 88 | foreach ($_FILES['attachment'] as $position => $file) { |
| 89 | // should output array with indices name, type, tmp_name, error, size | 89 | // should output array with indices name, type, tmp_name, error, size |
| 90 | if($file['name'] != "") { | 90 | if($file['name'] != "") { |
| 91 | move_uploaded_file($file['tmp_name'],$upload_dir . $file['name']); | 91 | move_uploaded_file($file['tmp_name'],$upload_dir . $file['name']); |
| 92 | $attachments[] = $file['name']; | 92 | $attachments[] = $file['name']; |
| 93 | } | 93 | } |
| 94 | } | 94 | } |
| 95 | 95 | ||
| 96 | // system | 96 | // system |
| 97 | $system_message_type = $_POST['system_message_type']; | 97 | $system_message_type = $_POST['system_message_type']; |
| 98 | $system = $_POST['system']; | 98 | $system = $_POST['system']; |
| 99 | 99 | ||
| 100 | 100 | ||
| 101 | 101 | ||
| 102 | update_post_meta($id, 'notif_type', $type); | 102 | update_post_meta($id, 'notif_type', $type); |
| 103 | update_post_meta($id, 'execute_date', mysqldatetime_to_timestamp($execute_date)); | 103 | update_post_meta($id, 'execute_date', mysqldatetime_to_timestamp($execute_date)); |
| 104 | update_post_meta($id, 'trigger', $trigger); | 104 | update_post_meta($id, 'trigger', $trigger); |
| 105 | 105 | ||
| 106 | update_post_meta($id, "details", array( | 106 | update_post_meta($id, "details", array( |
| 107 | 'type' => $type | 107 | 'type' => $type |
| 108 | , 'sendto' => $sendto | 108 | , 'sendto' => $sendto |
| 109 | , 'status' => $entry->details['status'] | 109 | , 'status' => $entry->details['status'] |
| 110 | , 'trigger' => $trigger | 110 | , 'trigger' => $trigger |
| 111 | , 'execute_date' => $execute_date | 111 | , 'execute_date' => $execute_date |
| 112 | )); | 112 | )); |
| 113 | 113 | ||
| 114 | update_post_meta($id,'send_status',$entry->details['status']); | 114 | update_post_meta($id,'send_status',$entry->details['status']); |
| 115 | 115 | ||
| 116 | if ( count( $entry->email['attachments'] ) > 0 ) { | 116 | if ( count( $entry->email['attachments'] ) > 0 ) { |
| 117 | $attachments = array_merge($entry->email['attachments'], $attachments); | 117 | $attachments = array_merge($entry->email['attachments'], $attachments); |
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | update_post_meta($id, "email", array( | 120 | update_post_meta($id, "email", array( |
| 121 | 'subject' => $subject | 121 | 'subject' => $subject |
| 122 | , 'text' => $text | 122 | , 'text' => $text |
| 123 | , 'html' => $html | 123 | , 'html' => $html |
| 124 | , 'attachments' => $attachments | 124 | , 'attachments' => $attachments |
| 125 | )); | 125 | )); |
| 126 | update_post_meta($id, "system", array( | 126 | update_post_meta($id, "system", array( |
| 127 | 'system_message_type' => $system_message_type | 127 | 'system_message_type' => $system_message_type |
| 128 | , 'message' => $system | 128 | , 'message' => $system |
| 129 | )); | 129 | )); |
| 130 | 130 | ||
| 131 | 131 | ||
| 132 | $update = array(); | 132 | $update = array(); |
| 133 | $update['ID'] = $id; | 133 | $update['ID'] = $id; |
| 134 | $update['post_title'] = $title; | 134 | $update['post_title'] = $title; |
| 135 | wp_update_post($update); | 135 | wp_update_post($update); |
| 136 | 136 | ||
| 137 | $id = $entry->ID; | 137 | $id = $entry->ID; |
| 138 | 138 | ||
| 139 | $details = get_post_meta($id,'details',true); | 139 | $details = get_post_meta($id,'details',true); |
| 140 | $email = get_post_meta($id,'email',true); | 140 | $email = get_post_meta($id,'email',true); |
| 141 | $system = get_post_meta($id,'system',true); | 141 | $system = get_post_meta($id,'system',true); |
| 142 | 142 | ||
| 143 | 143 | ||
| 144 | $entry->details = $details; | 144 | $entry->details = $details; |
| 145 | $entry->email = $email; | 145 | $entry->email = $email; |
| 146 | $entry->system = $system; | 146 | $entry->system = $system; |
| 147 | 147 | ||
| 148 | 148 | ||
| 149 | 149 | ||
| 150 | $flash = "<strong>Notification Saved Successfully!</strong><br /><a href='/wp-admin/admin.php?page=notifications'>Click here</a> to view all notifications.</a>"; | 150 | $flash = "<strong>Notification Saved Successfully!</strong><br /><a href='/wp-admin/admin.php?page=notifications'>Click here</a> to view all notifications.</a>"; |
| 151 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'form.php'); | 151 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'form.php'); |
| 152 | } else { | 152 | } else { |
| 153 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'form.php'); | 153 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'form.php'); |
| 154 | } | 154 | } |
| 155 | 155 | ||
| 156 | 156 | ||
| 157 | 157 | ||
| 158 | } else { | 158 | } else { |
| 159 | 159 | ||
| 160 | if (isset($_GET['action']) && $_GET['action']=="delete") { | 160 | if (isset($_GET['action']) && $_GET['action']=="delete") { |
| 161 | wp_delete_post($_GET['page_id'],true); | 161 | wp_delete_post($_GET['page_id'],true); |
| 162 | 162 | ||
| 163 | } elseif (isset($_GET['action']) && $_GET['action']=="archive") { | 163 | } elseif (isset($_GET['action']) && $_GET['action']=="archive") { |
| 164 | 164 | ||
| 165 | $id = $_GET['page_id']; | 165 | $id = $_GET['page_id']; |
| 166 | 166 | ||
| 167 | $postdata = get_post_meta($id,'details',true); | 167 | $postdata = get_post_meta($id,'details',true); |
| 168 | $postdata['status'] = "archived"; | 168 | $postdata['status'] = "archived"; |
| 169 | 169 | ||
| 170 | update_post_meta($id,'details',$postdata); | 170 | update_post_meta($id,'details',$postdata); |
| 171 | update_post_meta($id,'send_status',$postdata['status']); | 171 | update_post_meta($id,'send_status',$postdata['status']); |
| 172 | } | 172 | } |
| 173 | 173 | ||
| 174 | 174 | ||
| 175 | // get all the notifications that status != "archived"; | 175 | // get all the notifications that status != "archived"; |
| 176 | $notifications = array(); | 176 | $notifications = array(); |
| 177 | $notifications['triggered'] = array(); | 177 | $notifications['triggered'] = array(); |
| 178 | $notifications['scheduled'] = array(); | 178 | $notifications['scheduled'] = array(); |
| 179 | 179 | ||
| 180 | $args = array( | 180 | $args = array( |
| 181 | 'post_type' => 'notifications' | 181 | 'post_type' => 'notifications' |
| 182 | , 'numberposts' => -1 | 182 | , 'numberposts' => -1 |
| 183 | , 'orderby' => 'modified' | 183 | , 'orderby' => 'modified' |
| 184 | , 'order' => 'desc' | 184 | , 'order' => 'desc' |
| 185 | , 'meta_key' => 'send_status' | 185 | , 'meta_key' => 'send_status' |
| 186 | , 'meta_compare' => '=' | 186 | , 'meta_compare' => '=' |
| 187 | , 'meta_value' => 'pending' | 187 | , 'meta_value' => 'pending' |
| 188 | ); | 188 | ); |
| 189 | 189 | ||
| 190 | $entries = get_posts($args); | 190 | $entries = get_posts($args); |
| 191 | 191 | ||
| 192 | 192 | ||
| 193 | 193 | ||
| 194 | foreach($entries as $entry) { | 194 | foreach($entries as $entry) { |
| 195 | $id = $entry->ID; | 195 | $id = $entry->ID; |
| 196 | 196 | ||
| 197 | $details = get_post_meta($id,'details',true); | 197 | $details = get_post_meta($id,'details',true); |
| 198 | $email = get_post_meta($id,'email',true); | 198 | $email = get_post_meta($id,'email',true); |
| 199 | $system = get_post_meta($id,'system',true); | 199 | $system = get_post_meta($id,'system',true); |
| 200 | 200 | ||
| 201 | 201 | ||
| 202 | $entry->trigger = $details['trigger']; | 202 | $entry->trigger = $details['trigger']; |
| 203 | $entry->status = isset($details['status']) ? $details['status'] : "active"; | 203 | $entry->status = isset($details['status']) ? $details['status'] : "active"; |
| 204 | $entry->type = $details['type']; | 204 | $entry->type = $details['type']; |
| 205 | $entry->sendto = $details['sendto']; | 205 | $entry->sendto = $details['sendto']; |
| 206 | 206 | ||
| 207 | $entry->is_email = (($email['text'] != "" || $email['html'] != "")) ? true : false; | 207 | $entry->is_email = (($email['text'] != "" || $email['html'] != "")) ? true : false; |
| 208 | $entry->is_system = (isset($system['message']) && $system['message'] != "") ? true : false; | 208 | $entry->is_system = (isset($system['message']) && $system['message'] != "") ? true : false; |
| 209 | 209 | ||
| 210 | 210 | ||
| 211 | $entry->execute_date = $details['execute_date']; | 211 | $entry->execute_date = $details['execute_date']; |
| 212 | 212 | ||
| 213 | if ($entry->status != "archived") { | 213 | if ($entry->status != "archived") { |
| 214 | $notifications[$entry->type][] = $entry; | 214 | $notifications[$entry->type][] = $entry; |
| 215 | } | 215 | } |
| 216 | 216 | ||
| 217 | 217 | ||
| 218 | } | 218 | } |
| 219 | 219 | ||
| 220 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'admin.php'); | 220 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'admin.php'); |
| 221 | 221 | ||
| 222 | 222 | ||
| 223 | 223 | ||
| 224 | } | 224 | } |
| 225 | 225 | ||
| 226 | 226 | ||
| 227 | 227 | ||
| 228 | } | 228 | } |
| 229 | 229 | ||
| 230 | function mysqldatetime_to_timestamp($datetime = "") | 230 | function mysqldatetime_to_timestamp($datetime = "") |
| 231 | { | 231 | { |
| 232 | // function is only applicable for valid MySQL DATETIME (19 characters) and DATE (10 characters) | 232 | // function is only applicable for valid MySQL DATETIME (19 characters) and DATE (10 characters) |
| 233 | $l = strlen($datetime); | 233 | $l = strlen($datetime); |
| 234 | if(!($l == 10 || $l == 19)) | 234 | if(!($l == 10 || $l == 19)) |
| 235 | return 0; | 235 | return 0; |
| 236 | 236 | ||
| 237 | // | 237 | // |
| 238 | $date = $datetime; | 238 | $date = $datetime; |
| 239 | $hours = 0; | 239 | $hours = 0; |
| 240 | $minutes = 0; | 240 | $minutes = 0; |
| 241 | $seconds = 0; | 241 | $seconds = 0; |
| 242 | 242 | ||
| 243 | // DATETIME only | 243 | // DATETIME only |
| 244 | if($l == 19) | 244 | if($l == 19) |
| 245 | { | 245 | { |
| 246 | list($date, $time) = explode(" ", $datetime); | 246 | list($date, $time) = explode(" ", $datetime); |
| 247 | list($hours, $minutes, $seconds) = explode(":", $time); | 247 | list($hours, $minutes, $seconds) = explode(":", $time); |
| 248 | } | 248 | } |
| 249 | 249 | ||
| 250 | list($year, $month, $day) = explode("-", $date); | 250 | list($year, $month, $day) = explode("-", $date); |
| 251 | 251 | ||
| 252 | return mktime($hours, $minutes, $seconds, $month, $day, $year); | 252 | return mktime($hours, $minutes, $seconds, $month, $day, $year); |
| 253 | } | 253 | } |
| 254 | 254 | ||
| 255 | function fixFilesArray(&$files) | 255 | function fixFilesArray(&$files) |
| 256 | { | 256 | { |
| 257 | $names = array( 'name' => 1, 'type' => 1, 'tmp_name' => 1, 'error' => 1, 'size' => 1); | 257 | $names = array( 'name' => 1, 'type' => 1, 'tmp_name' => 1, 'error' => 1, 'size' => 1); |
| 258 | 258 | ||
| 259 | foreach ($files as $key => $part) { | 259 | foreach ($files as $key => $part) { |
| 260 | // only deal with valid keys and multiple files | 260 | // only deal with valid keys and multiple files |
| 261 | $key = (string) $key; | 261 | $key = (string) $key; |
| 262 | if (isset($names[$key]) && is_array($part)) { | 262 | if (isset($names[$key]) && is_array($part)) { |
| 263 | foreach ($part as $position => $value) { | 263 | foreach ($part as $position => $value) { |
| 264 | $files[$position][$key] = $value; | 264 | $files[$position][$key] = $value; |
| 265 | } | 265 | } |
| 266 | // remove old key reference | 266 | // remove old key reference |
| 267 | unset($files[$key]); | 267 | unset($files[$key]); |
| 268 | } | 268 | } |
| 269 | } | 269 | } |
| 270 | } | 270 | } |
| 271 | 271 | ||
| 272 | 272 | ||
| 273 | function notification_settings() { | 273 | function notification_settings() { |
| 274 | 274 | ||
| 275 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'settings.php'); | 275 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'settings.php'); |
| 276 | 276 | ||
| 277 | 277 | ||
| 278 | 278 | ||
| 279 | } | 279 | } |
| 280 | 280 | ||
| 281 | function create_notification() { | 281 | function create_notification() { |
| 282 | 282 | ||
| 283 | global $wpdb; | 283 | global $wpdb; |
| 284 | 284 | ||
| 285 | 285 | ||
| 286 | // here | 286 | // here |
| 287 | $validation = new Notifications\Validation; | 287 | $validation = new Notifications\Validation; |
| 288 | 288 | ||
| 289 | $validation->set_rules('type','Notification Type','required'); | 289 | $validation->set_rules('type','Notification Type','required'); |
| 290 | $validation->set_rules('title','Description','trim|required|min_length[16]'); | 290 | $validation->set_rules('title','Description','trim|required|min_length[16]'); |
| 291 | $validation->set_rules('type','Notification Type','required'); | 291 | $validation->set_rules('type','Notification Type','required'); |
| 292 | $validation->set_rules('sendto','Send To','required'); | 292 | $validation->set_rules('sendto','Send To','required'); |
| 293 | 293 | ||
| 294 | $type_val = ($_POST && $_POST['type'] == "scheduled") ? 'required' : ''; | 294 | $type_val = ($_POST && $_POST['type'] == "scheduled") ? 'required' : ''; |
| 295 | $validation->set_rules('execute_date','Execute Date', $type_val); | 295 | $validation->set_rules('execute_date','Execute Date', $type_val); |
| 296 | 296 | ||
| 297 | $trigger_val = ($_POST && $_POST['type'] == "triggered") ? 'required' : ''; | 297 | $trigger_val = ($_POST && $_POST['type'] == "triggered") ? 'required' : ''; |
| 298 | $validation->set_rules('trigger','Trigger',$trigger_val); | 298 | $validation->set_rules('trigger','Trigger',$trigger_val); |
| 299 | 299 | ||
| 300 | $validation->set_rules('subject','Subject','trim'); | 300 | $validation->set_rules('subject','Subject','trim'); |
| 301 | $validation->set_rules('text','Text Version','trim|min_length[16]'); | 301 | $validation->set_rules('text','Text Version','trim|min_length[16]'); |
| 302 | $validation->set_rules('html','HTML Version','trim|min_length[16]'); | 302 | $validation->set_rules('html','HTML Version','trim|min_length[16]'); |
| 303 | 303 | ||
| 304 | $validation->set_rules('system','System Message','trim|min_length[16]'); | 304 | $validation->set_rules('system','System Message','trim|min_length[16]'); |
| 305 | 305 | ||
| 306 | 306 | ||
| 307 | if ($_POST && ($_POST['subject']=="" && $_POST['system']=="")) { | 307 | if ($_POST && ($_POST['subject']=="" && $_POST['system']=="")) { |
| 308 | $form_error = true; | 308 | $form_error = true; |
| 309 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'create.php'); | 309 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'create.php'); |
| 310 | } else { | 310 | } else { |
| 311 | if ($validation->run() == TRUE) { | 311 | if ($validation->run() == TRUE) { |
| 312 | 312 | ||
| 313 | // ok, so now we need to create the notification. | 313 | // ok, so now we need to create the notification. |
| 314 | class postTemplate { | 314 | class postTemplate { |
| 315 | var $post_title = ''; | 315 | var $post_title = ''; |
| 316 | var $post_content = ''; | 316 | var $post_content = ''; |
| 317 | var $post_status = 'publish'; | 317 | var $post_status = 'publish'; |
| 318 | var $post_type = 'notifications'; | 318 | var $post_type = 'notifications'; |
| 319 | var $comment_status = 'closed'; | 319 | var $comment_status = 'closed'; |
| 320 | } | 320 | } |
| 321 | 321 | ||
| 322 | //details | 322 | //details |
| 323 | $type = $_POST['type']; | 323 | $type = $_POST['type']; |
| 324 | $title = $_POST['title']; | 324 | $title = $_POST['title']; |
| 325 | $sendto = $_POST['sendto']; | 325 | $sendto = $_POST['sendto']; |
| 326 | $execute_date = ($type=="scheduled") ? $_POST['execute_date'] : "0000-00-00 00:00:00"; | 326 | $execute_date = ($type=="scheduled") ? $_POST['execute_date'] : "0000-00-00 00:00:00"; |
| 327 | $trigger = ($type=="scheduled") ? "scheduled-cron-job" : $_POST['trigger']; | 327 | $trigger = ($type=="scheduled") ? "scheduled-cron-job" : $_POST['trigger']; |
| 328 | 328 | ||
| 329 | 329 | ||
| 330 | $subject = $_POST['subject']; | 330 | $subject = $_POST['subject']; |
| 331 | $text = $_POST['text']; | 331 | $text = $_POST['text']; |
| 332 | $html = $_POST['html']; | 332 | $html = $_POST['html']; |
| 333 | $attachments = array(); | 333 | $attachments = array(); |
| 334 | $upload_dir = __DIR__ . "/uploads/"; | 334 | $upload_dir = __DIR__ . "/uploads/"; |
| 335 | fixFilesArray($_FILES['attachment']); | 335 | fixFilesArray($_FILES['attachment']); |
| 336 | foreach ($_FILES['attachment'] as $position => $file) { | 336 | foreach ($_FILES['attachment'] as $position => $file) { |
| 337 | // should output array with indices name, type, tmp_name, error, size | 337 | // should output array with indices name, type, tmp_name, error, size |
| 338 | if($file['name'] != "") { | 338 | if($file['name'] != "") { |
| 339 | move_uploaded_file($file['tmp_name'],$upload_dir . $file['name']); | 339 | move_uploaded_file($file['tmp_name'],$upload_dir . $file['name']); |
| 340 | $attachments[] = $file['name']; | 340 | $attachments[] = $file['name']; |
| 341 | } | 341 | } |
| 342 | } | 342 | } |
| 343 | 343 | ||
| 344 | // system | 344 | // system |
| 345 | $system_message_type = $_POST['system_message_type']; | 345 | $system_message_type = $_POST['system_message_type']; |
| 346 | $system = $_POST['system']; | 346 | $system = $_POST['system']; |
| 347 | 347 | ||
| 348 | 348 | ||
| 349 | 349 | ||
| 350 | 350 | ||
| 351 | // make post... | 351 | // make post... |
| 352 | 352 | ||
| 353 | $notification = new postTemplate(); | 353 | $notification = new postTemplate(); |
| 354 | $notification->post_title = $title; | 354 | $notification->post_title = $title; |
| 355 | $notification->post_content = "Notification created ".date('Y-m-d H:i:s')." --- to be sent on $execute_date"; | 355 | $notification->post_content = "Notification created ".date('Y-m-d H:i:s')." --- to be sent on $execute_date"; |
| 356 | $notification->post_date_gmt = date("Y-m-d H:i:s",time()); | 356 | $notification->post_date_gmt = date("Y-m-d H:i:s",time()); |
| 357 | 357 | ||
| 358 | $id = wp_insert_post($notification); | 358 | $id = wp_insert_post($notification); |
| 359 | 359 | ||
| 360 | update_post_meta($id, 'notif_type', $type); | 360 | update_post_meta($id, 'notif_type', $type); |
| 361 | update_post_meta($id, 'execute_date', mysqldatetime_to_timestamp($execute_date)); | 361 | update_post_meta($id, 'execute_date', mysqldatetime_to_timestamp($execute_date)); |
| 362 | update_post_meta($id, 'trigger', $trigger); | 362 | update_post_meta($id, 'trigger', $trigger); |
| 363 | 363 | ||
| 364 | add_post_meta($id, "details", array( | 364 | add_post_meta($id, "details", array( |
| 365 | 'type' => $type | 365 | 'type' => $type |
| 366 | , 'sendto' => $sendto | 366 | , 'sendto' => $sendto |
| 367 | , 'status' => 'pending' | 367 | , 'status' => 'pending' |
| 368 | , 'trigger' => $trigger | 368 | , 'trigger' => $trigger |
| 369 | , 'execute_date' => $execute_date | 369 | , 'execute_date' => $execute_date |
| 370 | )); | 370 | )); |
| 371 | 371 | ||
| 372 | update_post_meta($id,'send_status','pending'); | 372 | update_post_meta($id,'send_status','pending'); |
| 373 | 373 | ||
| 374 | add_post_meta($id, "email", array( | 374 | add_post_meta($id, "email", array( |
| 375 | 'subject' => $subject | 375 | 'subject' => $subject |
| 376 | , 'text' => $text | 376 | , 'text' => $text |
| 377 | , 'html' => $html | 377 | , 'html' => $html |
| 378 | , 'attachments' => $attachments | 378 | , 'attachments' => $attachments |
| 379 | )); | 379 | )); |
| 380 | update_post_meta($id, "system", array( | 380 | update_post_meta($id, "system", array( |
| 381 | 'system_message_type' => $system_message_type | 381 | 'system_message_type' => $system_message_type |
| 382 | , 'message' => $system | 382 | , 'message' => $system |
| 383 | )); | 383 | )); |
| 384 | 384 | ||
| 385 | $flash = "<strong>Notification Saved Successfully!</strong><br /><a href='/wp-admin/admin.php?page=notifications'>Click here</a> to view all notifications.</a>"; | 385 | $flash = "<strong>Notification Saved Successfully!</strong><br /><a href='/wp-admin/admin.php?page=notifications'>Click here</a> to view all notifications.</a>"; |
| 386 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'create.php'); | 386 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'create.php'); |
| 387 | 387 | ||
| 388 | } else { | 388 | } else { |
| 389 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'create.php'); | 389 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'create.php'); |
| 390 | } | 390 | } |
| 391 | } | 391 | } |
| 392 | 392 | ||
| 393 | 393 | ||
| 394 | } | 394 | } |
| 395 | 395 | ||
| 396 | class Actions { | 396 | class Actions { |
| 397 | 397 | ||
| 398 | public static function init() { | 398 | public static function init() { |
| 399 | global $wpdb; | 399 | global $wpdb; |
| 400 | $wpdb->show_errors(); | 400 | $wpdb->show_errors(); |
| 401 | 401 | ||
| 402 | register_post_type( 'notifications', array( | 402 | register_post_type( 'notifications', array( |
| 403 | 'label' => __('Notifs') | 403 | 'label' => __('Notifs') |
| 404 | , 'public' => true | 404 | , 'public' => true |
| 405 | , 'show_ui' => false | 405 | , 'show_ui' => false |
| 406 | , 'hierarchical' => false | 406 | , 'hierarchical' => false |
| 407 | , 'exclude_from_search' => true | 407 | , 'exclude_from_search' => true |
| 408 | )); | 408 | )); |
| 409 | 409 | ||
| 410 | } | 410 | } |
| 411 | 411 | ||
| 412 | public static function admin_menu() { | 412 | public static function admin_menu() { |
| 413 | add_menu_page('Notifications','Notifications',CAPABILITY,'notifications',__NAMESPACE__ . '\display_page' ); | 413 | add_menu_page('Notifications','Notifications',CAPABILITY,'notifications',__NAMESPACE__ . '\display_page' ); |
| 414 | add_submenu_page('notifications','New Notification', 'New Notification',CAPABILITY,'notifications-create-new',__NAMESPACE__ . '\create_notification'); | 414 | add_submenu_page('notifications','New Notification', 'New Notification',CAPABILITY,'notifications-create-new',__NAMESPACE__ . '\create_notification'); |
| 415 | //add_options_page('CAN-SPAM Settings', 'CAN-SPAM Settings', CAPABILITY, ADMIN_PAGE, __NAMESPACE__ . '\notification_settings'); | 415 | //add_options_page('CAN-SPAM Settings', 'CAN-SPAM Settings', CAPABILITY, ADMIN_PAGE, __NAMESPACE__ . '\notification_settings'); |
| 416 | //add_submenu_page('notifications','CAN-SPAM Settings', 'CAN-SPAM Settings',CAPABILITY,'notifications-settings',__NAMESPACE__ . '\notification_settings'); | 416 | //add_submenu_page('notifications','CAN-SPAM Settings', 'CAN-SPAM Settings',CAPABILITY,'notifications-settings',__NAMESPACE__ . '\notification_settings'); |
| 417 | } | 417 | } |
| 418 | 418 | ||
| 419 | public function admin_init() { | 419 | public function admin_init() { |
| 420 | // register_setting(Notifications\OPTION_NAME, Notifications\OPTION_NAME); | 420 | // register_setting(Notifications\OPTION_NAME, Notifications\OPTION_NAME); |
| 421 | register_setting(SETTING_NS, SETTING_NS); | 421 | register_setting(SETTING_NS, SETTING_NS); |
| 422 | } | 422 | } |
| 423 | 423 | ||
| 424 | } | 424 | } |
| 425 | 425 | ||
| 426 | class Vars { | 426 | class Vars { |
| 427 | public static $settings; | 427 | public static $settings; |
| 428 | } | 428 | } |
| 429 | 429 | ||
| 430 | 430 | ||
| 431 | ?> | 431 | ?> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| 1 | <?php | 1 | <?php |
| 2 | namespace Tz\WordPress\Tools\Notifications; | 2 | namespace Tz\WordPress\Tools\Notifications; |
| 3 | 3 | ||
| 4 | use Tz\Common; | 4 | use Tz\Common; |
| 5 | use Tz\WordPress\Tools; | 5 | use Tz\WordPress\Tools; |
| 6 | use Tz\WordPress\Tools\Sequencer; | 6 | use Tz\WordPress\Tools\Sequencer; |
| 7 | use Tz\WordPress\CBV; | 7 | use Tz\WordPress\CBV; |
| 8 | use Tz\WordPress\CBV\User; | 8 | use Tz\WordPress\CBV\User; |
| 9 | use WP_User; | 9 | use WP_User; |
| 10 | use Exception, StdClass; | 10 | use Exception, StdClass; |
| 11 | 11 | ||
| 12 | 12 | ||
| 13 | const OPTION_NAME = "notif_options"; | 13 | const OPTION_NAME = "notif_options"; |
| 14 | 14 | ||
| 15 | call_user_func(function() { | 15 | call_user_func(function() { |
| 16 | Tools\add_actions(__NAMESPACE__ . '\Actions'); | 16 | Tools\add_actions(__NAMESPACE__ . '\Actions'); |
| 17 | Vars::$options = new Tools\WP_Option(OPTION_NAME); | 17 | Vars::$options = new Tools\WP_Option(OPTION_NAME); |
| 18 | Vars::$notices = Array(); | 18 | Vars::$notices = Array(); |
| 19 | if (is_admin()) { | 19 | if (is_admin()) { |
| 20 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'Validation.php'); | 20 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'Validation.php'); |
| 21 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'Admin.php'); | 21 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'Admin.php'); |
| 22 | } | 22 | } |
| 23 | }); | 23 | }); |
| 24 | 24 | ||
| 25 | 25 | ||
| 26 | function subval_sort($a,$subkey,$sort) { | 26 | function subval_sort($a,$subkey,$sort) { |
| 27 | foreach($a as $k=>$v) { | 27 | foreach($a as $k=>$v) { |
| 28 | $b[$k] = strtolower($v[$subkey]); | 28 | $b[$k] = strtolower($v[$subkey]); |
| 29 | } | 29 | } |
| 30 | $sort($b); | 30 | $sort($b); |
| 31 | foreach($b as $key=>$val) { | 31 | foreach($b as $key=>$val) { |
| 32 | $c[] = $a[$key]; | 32 | $c[] = $a[$key]; |
| 33 | } | 33 | } |
| 34 | return $c; | 34 | return $c; |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | function get_user_notices($uid) { | 37 | function get_user_notices($uid) { |
| 38 | $notices = get_user_meta($uid,'notices',true); | 38 | $notices = get_user_meta($uid,'notices',true); |
| 39 | if(!empty($notices)) { | 39 | if(!empty($notices)) { |
| 40 | 40 | ||
| 41 | $notices = subval_sort($notices,'sent_date','arsort'); | 41 | $notices = subval_sort($notices,'sent_date','arsort'); |
| 42 | Vars::$notices = $notices; | 42 | Vars::$notices = $notices; |
| 43 | } | 43 | } |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | function print_user_notices($show_more = true) { | 46 | function print_user_notices($show_more = true) { |
| 47 | 47 | ||
| 48 | $user = new User\CurrentAccount(); | 48 | $user = new User\CurrentAccount(); |
| 49 | 49 | ||
| 50 | get_user_notices($user->ID); | 50 | get_user_notices($user->ID); |
| 51 | 51 | ||
| 52 | 52 | ||
| 53 | if (CBV\on_page('/dashboard')) { | 53 | if (CBV\on_page('/dashboard')) { |
| 54 | $limit = 5; | 54 | $limit = 5; |
| 55 | } else { | 55 | } else { |
| 56 | $limit = 10; | 56 | $limit = 10; |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | $notices = Vars::$notices; | 59 | $notices = Vars::$notices; |
| 60 | $total_rows = count($notices); | 60 | $total_rows = count($notices); |
| 61 | $next_id = isset($_POST['last_id']) ? ($_POST['last_id']+1) : 0; | 61 | $next_id = isset($_POST['last_id']) ? ($_POST['last_id']+1) : 0; |
| 62 | $end = (($next_id + $limit) < $total_rows) ? ($next_id + $limit) : $total_rows; | 62 | $end = (($next_id + $limit) < $total_rows) ? ($next_id + $limit) : $total_rows; |
| 63 | 63 | ||
| 64 | 64 | ||
| 65 | if (count($notices) < 1) { | 65 | if (count($notices) < 1) { |
| 66 | //print '<tr><td colspan="3">You have no new notices.</td></tr>'; | 66 | //print '<tr><td colspan="3">You have no new notices.</td></tr>'; |
| 67 | } | 67 | } |
| 68 | 68 | ||
| 69 | $rows = ""; | 69 | $rows = ""; |
| 70 | 70 | ||
| 71 | $last_id = 0; | 71 | $last_id = 0; |
| 72 | for($i = 0; $i < $total_rows; $i++) { | 72 | for($i = 0; $i < $total_rows; $i++) { |
| 73 | 73 | ||
| 74 | $the_notice = get_post($notices[$i]['notification_id']); | 74 | $the_notice = get_post($notices[$i]['notification_id']); |
| 75 | $system = get_post_meta($notices[$i]['notification_id'],'system',true); | 75 | $system = get_post_meta($notices[$i]['notification_id'],'system',true); |
| 76 | $content = $system['message']; | 76 | $content = $system['message']; |
| 77 | $id = $the_notice->ID; | 77 | $id = $the_notice->ID; |
| 78 | 78 | ||
| 79 | if (isset($notices[$i]['args']) && count($notices[$i]['args']) > 0): | 79 | if (isset($notices[$i]['args']) && count($notices[$i]['args']) > 0): |
| 80 | foreach($notices[$i]['args'] as $key => $val) { | 80 | foreach($notices[$i]['args'] as $key => $val) { |
| 81 | if (filter_var($val, FILTER_VALIDATE_URL) !== false) { | 81 | if (filter_var($val, FILTER_VALIDATE_URL) !== false) { |
| 82 | $content = str_replace("{".$key."}","<a href='".$val."'>Click here</a>",$content); | 82 | $content = str_replace("{".$key."}","<a href='".$val."'>Click here</a>",$content); |
| 83 | } else { | 83 | } else { |
| 84 | $content = str_replace("{".$key."}",$val,$content); | 84 | $content = str_replace("{".$key."}",$val,$content); |
| 85 | } | 85 | } |
| 86 | } | 86 | } |
| 87 | endif; | 87 | endif; |
| 88 | 88 | ||
| 89 | $rows .= '<tr class="notice-row" id="'.$i.'">'; | 89 | $rows .= '<tr class="notice-row" id="'.$i.'">'; |
| 90 | if ($notices[$i]['status']=="unread") { | 90 | if ($notices[$i]['status']=="unread") { |
| 91 | $rows .= '<td width="12" style="padding:0;padding-left:10px;vertical-align:middle;"><a href="#" class="notice '.(($notices[$i]['status']=="read") ? 'read' : 'unread').'"><img src="assets/images/blank.gif" width="12" height="12" /></a></td>'; | 91 | $rows .= '<td width="12" style="padding:0;padding-left:10px;vertical-align:middle;"><a href="#" class="notice '.(($notices[$i]['status']=="read") ? 'read' : 'unread').'"><img src="assets/images/blank.gif" width="12" height="12" /></a></td>'; |
| 92 | } else { | 92 | } else { |
| 93 | $rows .= '<td width="12" style="padding:0;padding-left:10px;vertical-align:middle;"><img src="assets/images/blank.gif" width="12" height="12" /></td>'; | 93 | $rows .= '<td width="12" style="padding:0;padding-left:10px;vertical-align:middle;"><img src="assets/images/blank.gif" width="12" height="12" /></td>'; |
| 94 | } | 94 | } |
| 95 | /* | 95 | /* |
| 96 | if($system['system_message_type']=="none"): | 96 | if($system['system_message_type']=="none"): |
| 97 | $rows .= '<td colspan="2" style="vertical-align:middle;">'.nl2br($content).'<br /><span class="legal">Sent: '.date("M j, Y @ h:ia",$notices[$i]['sent_date']).'</span></td>'; | 97 | $rows .= '<td colspan="2" style="vertical-align:middle;">'.nl2br($content).'<br /><span class="legal">Sent: '.date("M j, Y @ h:ia",$notices[$i]['sent_date']).'</span></td>'; |
| 98 | else: | 98 | else: |
| 99 | */ | 99 | */ |
| 100 | if ($system['system_message_type'] == "none") { | 100 | if ($system['system_message_type'] == "none") { |
| 101 | $system['system_message_type'] = "notice"; | 101 | $system['system_message_type'] = "notice"; |
| 102 | } | 102 | } |
| 103 | 103 | ||
| 104 | $rows .= '<td width="80" style="vertical-align:middle;"><span>'.ucfirst(str_replace("_"," ",$system['system_message_type'])).'</span></td>'; | 104 | $rows .= '<td width="80" style="vertical-align:middle;"><span>'.ucfirst(str_replace("_"," ",$system['system_message_type'])).'</span></td>'; |
| 105 | $rows .= '<td style="vertical-align:middle;">'.nl2br($content).'<br /><span class="legal">Sent: '.date("M j, Y @ h:ia",$notices[$i]['sent_date']).'</span></td>'; | 105 | $rows .= '<td style="vertical-align:middle;">'.nl2br($content).'<br /><span class="legal">Sent: '.date("M j, Y @ h:ia",$notices[$i]['sent_date']).'</span></td>'; |
| 106 | /*endif;*/ | 106 | /*endif;*/ |
| 107 | $rows .= '</tr>'; | 107 | $rows .= '</tr>'; |
| 108 | $last_id = $i; | 108 | $last_id = $i; |
| 109 | 109 | ||
| 110 | } | 110 | } |
| 111 | 111 | ||
| 112 | if ($end < $total_rows && CBV\on_page('/notices')) { | 112 | if ($end < $total_rows && CBV\on_page('/notices')) { |
| 113 | //$rows .= '<tr id="TzMoreRows"><td colspan="4"><a onclick="return false;" class="load_more_notices" id="'.$last_id.'" href="#">Show more...</a></td></tr>'; | 113 | //$rows .= '<tr id="TzMoreRows"><td colspan="4"><a onclick="return false;" class="load_more_notices" id="'.$last_id.'" href="#">Show more...</a></td></tr>'; |
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | if(isset($_POST['ajax'])) { | 116 | if(isset($_POST['ajax'])) { |
| 117 | die($rows); | 117 | die($rows); |
| 118 | } else { | 118 | } else { |
| 119 | print $rows; | 119 | print $rows; |
| 120 | } | 120 | } |
| 121 | 121 | ||
| 122 | 122 | ||
| 123 | } | 123 | } |
| 124 | 124 | ||
| 125 | 125 | ||
| 126 | function get_notification_by_trigger($trigger) { | 126 | function get_notification_by_trigger($trigger) { |
| 127 | $args = array( | 127 | $args = array( |
| 128 | 'post_type' => 'notifications' | 128 | 'post_type' => 'notifications' |
| 129 | , 'numberposts' => -1 | 129 | , 'numberposts' => -1 |
| 130 | , 'orderby' => 'modified' | 130 | , 'orderby' => 'modified' |
| 131 | , 'order' => 'desc' | 131 | , 'order' => 'desc' |
| 132 | ); | 132 | ); |
| 133 | 133 | ||
| 134 | $my_notif = false; | 134 | $my_notif = false; |
| 135 | 135 | ||
| 136 | foreach(get_posts($args) as $entry) { | 136 | foreach(get_posts($args) as $entry) { |
| 137 | $details = get_post_meta($entry->ID,'details',true); | 137 | $details = get_post_meta($entry->ID,'details',true); |
| 138 | if ($details['type']=="triggered" && $details['trigger'] == $trigger) { | 138 | if ($details['type']=="triggered" && $details['trigger'] == $trigger) { |
| 139 | $my_notif = $entry; | 139 | $my_notif = $entry; |
| 140 | break; | 140 | break; |
| 141 | } | 141 | } |
| 142 | } | 142 | } |
| 143 | 143 | ||
| 144 | return $my_notif; | 144 | return $my_notif; |
| 145 | 145 | ||
| 146 | } | 146 | } |
| 147 | 147 | ||
| 148 | /** | 148 | /** |
| 149 | * GET NUMBER OF NEW NOTICES | 149 | * GET NUMBER OF NEW NOTICES |
| 150 | @returns (Int) | 150 | @returns (Int) |
| 151 | */ | 151 | */ |
| 152 | function get_num_notices() { | 152 | function get_num_notices() { |
| 153 | // get number of notices for this user that are new... | 153 | // get number of notices for this user that are new... |
| 154 | $user = new User\CurrentAccount(); | 154 | $user = new User\CurrentAccount(); |
| 155 | 155 | ||
| 156 | get_user_notices($user->ID); | 156 | get_user_notices($user->ID); |
| 157 | $notices = Vars::$notices; | 157 | $notices = Vars::$notices; |
| 158 | $notifications = array(); | 158 | $notifications = array(); |
| 159 | // return $num; | 159 | // return $num; |
| 160 | if(empty($notices)) { | 160 | if(empty($notices)) { |
| 161 | return 0; | 161 | return 0; |
| 162 | } else { | 162 | } else { |
| 163 | foreach($notices as $notice) { | 163 | foreach($notices as $notice) { |
| 164 | if ($notice['status']=="unread") { | 164 | if ($notice['status']=="unread") { |
| 165 | $notifications[] = $notice; | 165 | $notifications[] = $notice; |
| 166 | } | 166 | } |
| 167 | } | 167 | } |
| 168 | } | 168 | } |
| 169 | return count($notifications); | 169 | return count($notifications); |
| 170 | } | 170 | } |
| 171 | 171 | ||
| 172 | function remove_notice($notification_id = -1) { | 172 | function remove_notice($notification_id = -1) { |
| 173 | get_user_notices(Tools\getCurrentUser()->ID); | 173 | get_user_notices(Tools\getCurrentUser()->ID); |
| 174 | $notices = Vars::$notices; | 174 | $notices = Vars::$notices; |
| 175 | if (!empty($notices)) { | 175 | if (!empty($notices)) { |
| 176 | foreach($notices as $id => $notice) { | 176 | foreach($notices as $id => $notice) { |
| 177 | if ($id==$notification_id) { | 177 | if ($id==$notification_id) { |
| 178 | $notices[$id]['status']="read"; | 178 | $notices[$id]['status']="read"; |
| 179 | break; | 179 | break; |
| 180 | } | 180 | } |
| 181 | } | 181 | } |
| 182 | } | 182 | } |
| 183 | update_user_meta(Tools\getCurrentUser()->ID,'notices',$notices); | 183 | update_user_meta(Tools\getCurrentUser()->ID,'notices',$notices); |
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | /** | 186 | /** |
| 187 | Send Notifications | 187 | Send Notifications |
| 188 | @trigger = notification unique slug name | 188 | @trigger = notification unique slug name |
| 189 | */ | 189 | */ |
| 190 | function send_triggered_notification($uid = 0,$trigger="NO_TRIGGER",$args = array(),$send_override = false) { | 190 | function send_triggered_notification($uid = 0,$trigger="NO_TRIGGER",$args = array(),$send_override = false) { |
| 191 | global $wpdb; | 191 | global $wpdb; |
| 192 | $notification = get_notification_by_trigger($trigger); | 192 | $notification = get_notification_by_trigger($trigger); |
| 193 | 193 | ||
| 194 | if($notification) { | 194 | if($notification) { |
| 195 | // get the notification and notificatio details.... | 195 | // get the notification and notificatio details.... |
| 196 | $nid = $notification->ID; | 196 | $nid = $notification->ID; |
| 197 | $details = get_post_meta($nid,'details',true); | 197 | $details = get_post_meta($nid,'details',true); |
| 198 | $email = get_post_meta($nid,'email',true); | 198 | $email = get_post_meta($nid,'email',true); |
| 199 | $system = get_post_meta($nid,'system',true); | 199 | $system = get_post_meta($nid,'system',true); |
| 200 | 200 | ||
| 201 | $notification->trigger = $details['trigger']; | 201 | $notification->trigger = $details['trigger']; |
| 202 | $notification->status = isset($details['status']) ? $details['status'] : "active"; | 202 | $notification->status = isset($details['status']) ? $details['status'] : "active"; |
| 203 | $notification->type = $details['type']; | 203 | $notification->type = $details['type']; |
| 204 | $notification->sendto = $details['sendto']; | 204 | $notification->sendto = $details['sendto']; |
| 205 | $notification->is_email = (($email['text'] != "" || $email['html'] != "") && $email['subject'] != "") ? true : false; | 205 | $notification->is_email = (($email['text'] != "" || $email['html'] != "") && $email['subject'] != "") ? true : false; |
| 206 | $notification->is_system = (isset($system['message']) && $system['message'] != "") ? true : false; | 206 | $notification->is_system = (isset($system['message']) && $system['message'] != "") ? true : false; |
| 207 | 207 | ||
| 208 | // if is_system ========================================== | 208 | // if is_system ========================================== |
| 209 | if ($notification->is_system && $uid != 0) { | 209 | if ($notification->is_system && $uid != 0) { |
| 210 | get_user_notices($uid); | 210 | get_user_notices($uid); |
| 211 | $notices = Vars::$notices; | 211 | $notices = Vars::$notices; |
| 212 | 212 | ||
| 213 | $insert = array( | 213 | $insert = array( |
| 214 | 'notification_id' => $nid | 214 | 'notification_id' => $nid |
| 215 | , 'status' => 'unread' | 215 | , 'status' => 'unread' |
| 216 | , 'sent_date' => current_time('timestamp') | 216 | , 'sent_date' => current_time('timestamp') |
| 217 | , 'args' => $args | 217 | , 'args' => $args |
| 218 | ); | 218 | ); |
| 219 | if(empty($notices)) { | 219 | if(empty($notices)) { |
| 220 | $notices = array(); | 220 | $notices = array(); |
| 221 | } | 221 | } |
| 222 | 222 | ||
| 223 | $sequence = Sequencer\generate('NTC'); | 223 | $sequence = Sequencer\generate('NTC'); |
| 224 | 224 | ||
| 225 | $notices[$sequence] = $insert; | 225 | $notices[$sequence] = $insert; |
| 226 | 226 | ||
| 227 | 227 | ||
| 228 | update_user_meta($uid,'notices',$notices); | 228 | update_user_meta($uid,'notices',$notices); |
| 229 | } | 229 | } |
| 230 | 230 | ||
| 231 | // if is_email =========================================== | 231 | // if is_email =========================================== |
| 232 | if ($notification->is_email) { | 232 | if ($notification->is_email) { |
| 233 | 233 | ||
| 234 | if ($uid == 0 && !isset($args['email'])) { | 234 | if ($uid == 0 && !isset($args['email'])) { |
| 235 | return; | 235 | return; |
| 236 | } elseif ( $uid == 0 && isset($args['email']) ) { | 236 | } elseif ( $uid == 0 && isset($args['email']) ) { |
| 237 | $to_email = $args['email']; | 237 | $to_email = $args['email']; |
| 238 | } else { | 238 | } else { |
| 239 | 239 | ||
| 240 | $user = new User\Account($uid); | 240 | $user = new User\Account($uid); |
| 241 | $email_address_preference = get_user_meta($user->ID, 'email_address_preference', true); | 241 | $email_address_preference = get_user_meta($user->ID, 'email_address_preference', true); |
| 242 | if (empty($email_address_preference)) { | 242 | if (empty($email_address_preference)) { |
| 243 | $to_email = $user->user_email; | 243 | $to_email = $user->user_email; |
| 244 | } else { | 244 | } else { |
| 245 | 245 | ||
| 246 | $pp = strtolower($email_address_preference)."_"; | 246 | $pp = strtolower($email_address_preference)."_"; |
| 247 | $to_email = get_user_meta($user->ID, $pp.'email', true); | 247 | $to_email = get_user_meta($user->ID, $pp.'email', true); |
| 248 | 248 | ||
| 249 | if (empty($to_email)) { | 249 | if (empty($to_email)) { |
| 250 | $to_email = $user->user_email; | 250 | $to_email = $user->user_email; |
| 251 | } | 251 | } |
| 252 | } | 252 | } |
| 253 | } | 253 | } |
| 254 | 254 | ||
| 255 | $contents = $email; | 255 | $contents = $email; |
| 256 | 256 | ||
| 257 | $from_email = get_bloginfo('admin_email'); | 257 | $from_email = get_bloginfo('admin_email'); |
| 258 | $subject = strip_tags($contents['subject']); | 258 | $subject = strip_tags($contents['subject']); |
| 259 | $html = $contents['html']; | 259 | $html = $contents['html']; |
| 260 | $alttext = strip_tags($contents['text']); | 260 | $alttext = strip_tags($contents['text']); |
| 261 | 261 | ||
| 262 | foreach($args as $key => $val) { | 262 | foreach($args as $key => $val) { |
| 263 | if ( (filter_var($val, FILTER_VALIDATE_URL) !== false) && !empty($html)) { | 263 | if ( (filter_var($val, FILTER_VALIDATE_URL) !== false) && !empty($html)) { |
| 264 | $html = str_replace("{".$key."}","<a href='".$val."'>".$val."</a>",$html); | 264 | $html = str_replace("{".$key."}","<a href='".$val."'>".$val."</a>",$html); |
| 265 | } else { | 265 | } else { |
| 266 | $html = str_replace("{".$key."}", $val, $html); | 266 | $html = str_replace("{".$key."}", $val, $html); |
| 267 | $alttext = str_replace("{".$key."}", $val, $alttext); | 267 | $alttext = str_replace("{".$key."}", $val, $alttext); |
| 268 | $subject = str_replace("{".$key."}", $val, $subject); | 268 | $subject = str_replace("{".$key."}", $val, $subject); |
| 269 | } | 269 | } |
| 270 | } | 270 | } |
| 271 | 271 | ||
| 272 | $attachments = array(); | 272 | $attachments = array(); |
| 273 | if (isset($contents['attachments'])) { | 273 | if (isset($contents['attachments'])) { |
| 274 | $attachments = $contents['attachments']; | 274 | $attachments = $contents['attachments']; |
| 275 | } | 275 | } |
| 276 | 276 | ||
| 277 | $att1 = isset($attachments[0]) ? $attachments[0] : ''; | 277 | $att1 = isset($attachments[0]) ? $attachments[0] : ''; |
| 278 | $att2 = isset($attachments[1]) ? $attachments[1] : ''; | 278 | $att2 = isset($attachments[1]) ? $attachments[1] : ''; |
| 279 | $att3 = isset($attachments[2]) ? $attachments[2] : ''; | 279 | $att3 = isset($attachments[2]) ? $attachments[2] : ''; |
| 280 | 280 | ||
| 281 | $wpdb->query("INSERT INTO wp_mail_daemon (notification_id,from_email,to_email,subject,text,html,attachment1,attachment2,attachment3,sent,sent_date) VALUES ($nid,'$from_email','$to_email','$subject','$alttext','$html','$att1','$att2','$att3',0,'')"); | 281 | $wpdb->query("INSERT INTO wp_mail_daemon (notification_id,from_email,to_email,subject,text,html,attachment1,attachment2,attachment3,sent,sent_date) VALUES ($nid,'$from_email','$to_email','$subject','$alttext','$html','$att1','$att2','$att3',0,'')"); |
| 282 | 282 | ||
| 283 | //send_email($uid,$email,$args, true); | 283 | //send_email($uid,$email,$args, true); |
| 284 | } | 284 | } |
| 285 | } | 285 | } |
| 286 | // if the system notification has set current user than get current user otherwise loop through the users needed. | 286 | // if the system notification has set current user than get current user otherwise loop through the users needed. |
| 287 | } | 287 | } |
| 288 | 288 | ||
| 289 | function send_email($uid = 0, $contents,$args, $override = false) { | 289 | function send_email($uid = 0, $contents,$args, $override = false) { |
| 290 | if ( $uid == 0 && !isset($args['email'])) { return; } | 290 | if ( $uid == 0 && !isset($args['email'])) { return; } |
| 291 | 291 | ||
| 292 | if ( isset($args['email'])) { | 292 | if ( isset($args['email'])) { |
| 293 | $to_email = $args['email']; | 293 | $to_email = $args['email']; |
| 294 | } else { | 294 | } else { |
| 295 | $user = new WP_User($uid); | 295 | $user = new WP_User($uid); |
| 296 | 296 | ||
| 297 | $email_address_preference = get_user_meta($user->ID, 'email_address_preference', true); | 297 | $email_address_preference = get_user_meta($user->ID, 'email_address_preference', true); |
| 298 | if (empty($email_address_preference)) { | 298 | if (empty($email_address_preference)) { |
| 299 | $to_email = $user->user_email; | 299 | $to_email = $user->user_email; |
| 300 | } else { | 300 | } else { |
| 301 | 301 | ||
| 302 | $pp = strtolower($email_address_preference)."_"; | 302 | $pp = strtolower($email_address_preference)."_"; |
| 303 | $to_email = get_user_meta($user->ID, $pp.'email', true); | 303 | $to_email = get_user_meta($user->ID, $pp.'email', true); |
| 304 | 304 | ||
| 305 | if (empty($to_email)) { | 305 | if (empty($to_email)) { |
| 306 | $to_email = $user->user_email; | 306 | $to_email = $user->user_email; |
| 307 | } | 307 | } |
| 308 | } | 308 | } |
| 309 | 309 | ||
| 310 | } | 310 | } |
| 311 | 311 | ||
| 312 | $from_address = get_bloginfo('admin_email'); | 312 | $from_address = get_bloginfo('admin_email'); |
| 313 | 313 | ||
| 314 | $subject = strip_tags($contents['subject']); | 314 | $subject = strip_tags($contents['subject']); |
| 315 | $html = $contents['html']; | 315 | $html = $contents['html']; |
| 316 | $alttext = $contents['text']; | 316 | $alttext = $contents['text']; |
| 317 | 317 | ||
| 318 | $headers = ""; | 318 | $headers = ""; |
| 319 | 319 | ||
| 320 | if (empty($html)) { | 320 | if (empty($html)) { |
| 321 | $message = $alttext; | 321 | $message = $alttext; |
| 322 | $message = strip_tags($message); | 322 | $message = strip_tags($message); |
| 323 | // it's text based only... no need to check format preference. | 323 | // it's text based only... no need to check format preference. |
| 324 | } else { | 324 | } else { |
| 325 | $message = $html; | 325 | $message = $html; |
| 326 | $headers .= 'MIME-Version: 1.0' . "\r\n"; | 326 | $headers .= 'MIME-Version: 1.0' . "\r\n"; |
| 327 | $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; | 327 | $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; |
| 328 | 328 | ||
| 329 | // it's HTML formatted. | 329 | // it's HTML formatted. |
| 330 | // Check user preference if they want Text ONly?? | 330 | // Check user preference if they want Text ONly?? |
| 331 | } | 331 | } |
| 332 | 332 | ||
| 333 | foreach($args as $key => $val) { | 333 | foreach($args as $key => $val) { |
| 334 | if ( (filter_var($val, FILTER_VALIDATE_URL) !== false) && !empty($html)) { | 334 | if ( (filter_var($val, FILTER_VALIDATE_URL) !== false) && !empty($html)) { |
| 335 | $message = str_replace("{".$key."}","<a href='".$val."'>".$val."</a>",$message); | 335 | $message = str_replace("{".$key."}","<a href='".$val."'>".$val."</a>",$message); |
| 336 | } else { | 336 | } else { |
| 337 | $message = str_replace("{".$key."}", $val, $message); | 337 | $message = str_replace("{".$key."}", $val, $message); |
| 338 | $subject = str_replace("{".$key."}", $val, $subject); | 338 | $subject = str_replace("{".$key."}", $val, $subject); |
| 339 | } | 339 | } |
| 340 | } | 340 | } |
| 341 | 341 | ||
| 342 | // Additional headers | 342 | // Additional headers |
| 343 | //$headers .= 'To: '.$to_email.' <'.$to_email.'>' . "\r\n"; | 343 | //$headers .= 'To: '.$to_email.' <'.$to_email.'>' . "\r\n"; |
| 344 | $headers .= 'From: CICBV <'.$from_address.'>' . "\r\n"; | 344 | $headers .= 'From: CICBV <'.$from_address.'>' . "\r\n"; |
| 345 | 345 | ||
| 346 | //die("To: $to_email, Subject: $subject, Message: $message, Header: $headers"); | 346 | //die("To: $to_email, Subject: $subject, Message: $message, Header: $headers"); |
| 347 | 347 | ||
| 348 | mail($to_email, $subject, $message, $headers); | 348 | mail($to_email, $subject, $message, $headers); |
| 349 | 349 | ||
| 350 | 350 | ||
| 351 | } | 351 | } |
| 352 | 352 | ||
| 353 | function getGroups($grpID=0) { | 353 | function getGroups($grpID=0) { |
| 354 | global $userAccessManager; | 354 | global $userAccessManager; |
| 355 | 355 | ||
| 356 | $groups = array(); | 356 | $groups = array(); |
| 357 | if($grpID > 0) { | 357 | if($grpID > 0) { |
| 358 | $userGroups = $userAccessManager->getAccessHandler()->getUserGroups($grpID); | 358 | $userGroups = $userAccessManager->getAccessHandler()->getUserGroups($grpID); |
| 359 | return $userGroups->getGroupName(); | 359 | return $userGroups->getGroupName(); |
| 360 | } else { | 360 | } else { |
| 361 | $userGroups = $userAccessManager->getAccessHandler()->getUserGroups(); | 361 | $userGroups = $userAccessManager->getAccessHandler()->getUserGroups(); |
| 362 | } | 362 | } |
| 363 | foreach($userGroups as $group) { | 363 | foreach($userGroups as $group) { |
| 364 | $groups[$group->getId()] = $group->getGroupName(); | 364 | $groups[$group->getId()] = $group->getGroupName(); |
| 365 | } | 365 | } |
| 366 | return $groups; | 366 | return $groups; |
| 367 | } | 367 | } |
| 368 | 368 | ||
| 369 | function get_field_lookup($var) { | 369 | function get_field_lookup($var) { |
| 370 | return isset(Vars::$field_lookup[$var]) ? Vars::$field_lookup[$var] : $var; | 370 | return isset(Vars::$field_lookup[$var]) ? Vars::$field_lookup[$var] : $var; |
| 371 | } | 371 | } |
| 372 | 372 | ||
| 373 | 373 | ||
| 374 | 374 | ||
| 375 | function current_url() { | 375 | function current_url() { |
| 376 | $pageURL = 'http'; | 376 | $pageURL = 'http'; |
| 377 | if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} | 377 | if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} |
| 378 | $pageURL .= "://"; | 378 | $pageURL .= "://"; |
| 379 | if ($_SERVER["SERVER_PORT"] != "80") { | 379 | if ($_SERVER["SERVER_PORT"] != "80") { |
| 380 | $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; | 380 | $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; |
| 381 | } else { | 381 | } else { |
| 382 | $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; | 382 | $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; |
| 383 | } | 383 | } |
| 384 | return $pageURL; | 384 | return $pageURL; |
| 385 | } | 385 | } |
| 386 | 386 | ||
| 387 | class Actions { | 387 | class Actions { |
| 388 | public static function wp_ajax_update_notification_count() { | 388 | public static function wp_ajax_update_notification_count() { |
| 389 | $count = get_num_notices(); | 389 | $count = get_num_notices(); |
| 390 | $return = array('count'=>$count); | 390 | $return = array('count'=>$count); |
| 391 | die(json_encode($return)); | 391 | die(json_encode($return)); |
| 392 | } | 392 | } |
| 393 | 393 | ||
| 394 | public static function wp_ajax_mark_read() { | 394 | public static function wp_ajax_mark_read() { |
| 395 | remove_notice($_POST['index']); | 395 | remove_notice($_POST['index']); |
| 396 | } | 396 | } |
| 397 | 397 | ||
| 398 | public static function wp_ajax_print_user_notices() { | 398 | public static function wp_ajax_print_user_notices() { |
| 399 | print_user_notices(); | 399 | print_user_notices(); |
| 400 | } | 400 | } |
| 401 | 401 | ||
| 402 | public static function wp_ajax_remove_attachment() { | 402 | public static function wp_ajax_remove_attachment() { |
| 403 | $id = $_POST['id']; | 403 | $id = $_POST['id']; |
| 404 | $email = get_post_meta($id,'email',true); | 404 | $email = get_post_meta($id,'email',true); |
| 405 | $attachments = $email['attachments']; | 405 | $attachments = $email['attachments']; |
| 406 | foreach($attachments as $key => $name) { | 406 | foreach($attachments as $key => $name) { |
| 407 | if ($name==$_POST['file']) { | 407 | if ($name==$_POST['file']) { |
| 408 | unset($attachments[$key]); | 408 | unset($attachments[$key]); |
| 409 | } | 409 | } |
| 410 | } | 410 | } |
| 411 | 411 | ||
| 412 | $email['attachments'] = $attachments; | 412 | $email['attachments'] = $attachments; |
| 413 | 413 | ||
| 414 | update_post_meta($id, 'email', $email); | 414 | update_post_meta($id, 'email', $email); |
| 415 | 415 | ||
| 416 | $return = array('success' => 'true'); | 416 | $return = array('success' => 'true'); |
| 417 | die(json_encode($return)); | 417 | die(json_encode($return)); |
| 418 | 418 | ||
| 419 | } | 419 | } |
| 420 | 420 | ||
| 421 | 421 | ||
| 422 | } | 422 | } |
| 423 | 423 | ||
| 424 | class Vars { | 424 | class Vars { |
| 425 | public static $notices; | 425 | public static $notices; |
| 426 | public static $options; | 426 | public static $options; |
| 427 | public static $field_lookup = array( | 427 | public static $field_lookup = array( |
| 428 | 'allusers' => "All Users" | 428 | 'allusers' => "All Users" |
| 429 | , 'report' => "Report" | 429 | , 'report' => "Report" |
| 430 | ); | 430 | ); |
| 431 | } | 431 | } |
| 432 | ?> | 432 | ?> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| 1 | <?php | 1 | <?php |
| 2 | use Tz\WordPress\Tools\Notifications\Settings; | 2 | use Tz\WordPress\Tools\Notifications\Settings; |
| 3 | use Tz\WordPress\Tools\Notifications; | 3 | use Tz\WordPress\Tools\Notifications; |
| 4 | use Tz\WordPress\Tools; | 4 | use Tz\WordPress\Tools; |
| 5 | ?> | 5 | ?> |
| 6 | 6 | ||
| 7 | <link type="text/css" href="<?php echo Tools\url('assets/css/smoothness/jquery-ui-1.8.4.custom.css', __FILE__)?>" rel="stylesheet" /> | 7 | <link type="text/css" href="<?php echo Tools\url('assets/css/smoothness/jquery-ui-1.8.4.custom.css', __FILE__)?>" rel="stylesheet" /> |
| 8 | <script type="text/javascript" src="<?php echo Tools\url('assets/scripts/jquery-1.4.2.min.js', __FILE__)?>"></script> | 8 | <script type="text/javascript" src="<?php echo Tools\url('assets/scripts/jquery-1.4.2.min.js', __FILE__)?>"></script> |
| 9 | <script type="text/javascript" src="<?php echo Tools\url('assets/scripts/jquery-ui-1.8.4.custom.min.js', __FILE__)?>"></script> | 9 | <script type="text/javascript" src="<?php echo Tools\url('assets/scripts/jquery-ui-1.8.4.custom.min.js', __FILE__)?>"></script> |
| 10 | <script type="text/javascript" src="<?php echo Tools\url('assets/scripts/datetimepicker.js', __FILE__)?>"></script> | 10 | <script type="text/javascript" src="<?php echo Tools\url('assets/scripts/datetimepicker.js', __FILE__)?>"></script> |
| 11 | <link rel="stylesheet" href="<?php echo Tools\url('assets/css/notifications.css', __FILE__)?>" /> | 11 | <link rel="stylesheet" href="<?php echo Tools\url('assets/css/notifications.css', __FILE__)?>" /> |
| 12 | 12 | ||
| 13 | <div id="" class="wrap"> | 13 | <div id="" class="wrap"> |
| 14 | 14 | ||
| 15 | <h2>Notifications - Edit</h2> | 15 | <h2>Notifications - Edit</h2> |
| 16 | 16 | ||
| 17 | <?php if (isset($flash) && $flash !=""): ?> | 17 | <?php if (isset($flash) && $flash !=""): ?> |
| 18 | <div class="post-success"> | 18 | <div class="post-success"> |
| 19 | <?php echo $flash; ?> | 19 | <?php echo $flash; ?> |
| 20 | </div> | 20 | </div> |
| 21 | <?php endif; ?> | 21 | <?php endif; ?> |
| 22 | <?php if($validation->validation_errors() != "" || isset($form_error)):?> | 22 | <?php if($validation->validation_errors() != "" || isset($form_error)):?> |
| 23 | <div class="post-errors"> | 23 | <div class="post-errors"> |
| 24 | <div class="post-errors-title"><strong>Oops.</strong> There was an error saving your notification.</div> | 24 | <div class="post-errors-title"><strong>Oops.</strong> There was an error saving your notification.</div> |
| 25 | <?php if (isset($form_error)):?> | 25 | <?php if (isset($form_error)):?> |
| 26 | <p class="post-errors-content">You must include either an Email, System or SMS message.</p> | 26 | <p class="post-errors-content">You must include either an Email, System or SMS message.</p> |
| 27 | <?php endif; ?> | 27 | <?php endif; ?> |
| 28 | </div> | 28 | </div> |
| 29 | <?php endif;?> | 29 | <?php endif;?> |
| 30 | 30 | ||
| 31 | 31 | ||
| 32 | 32 | ||
| 33 | 33 | ||
| 34 | 34 | ||
| 35 | <form enctype="multipart/form-data" method="post" action="/wp-admin/admin.php?page=notifications&action=edit&page_id=<?php echo $_GET['page_id']?>"> | 35 | <form enctype="multipart/form-data" method="post" action="/wp-admin/admin.php?page=notifications&action=edit&page_id=<?php echo $_GET['page_id']?>"> |
| 36 | 36 | ||
| 37 | <input type="hidden" name="_POSTED_" value="yes" /> | 37 | <input type="hidden" name="_POSTED_" value="yes" /> |
| 38 | 38 | ||
| 39 | <table cellspacing="0" class="widefat post fixed" style="margin-top:15px;"> | 39 | <table cellspacing="0" class="widefat post fixed" style="margin-top:15px;"> |
| 40 | <thead> | 40 | <thead> |
| 41 | <tr> | 41 | <tr> |
| 42 | <th width="150">Notification Details</th> | 42 | <th width="150">Notification Details</th> |
| 43 | <th> </th> | 43 | <th> </th> |
| 44 | </tr> | 44 | </tr> |
| 45 | </thead> | 45 | </thead> |
| 46 | <tbody> | 46 | <tbody> |
| 47 | <tr> | 47 | <tr> |
| 48 | <td width="150">Notification Type</td> | 48 | <td width="150">Notification Type</td> |
| 49 | <td> | 49 | <td> |
| 50 | <select name="type" id="notif_type" class="wide-input-field" onchange="updateNotificationType();"> | 50 | <select name="type" id="notif_type" class="wide-input-field" onchange="updateNotificationType();"> |
| 51 | <option value="scheduled" <?php echo ($validation->set_value('type',$entry->details['type'])=="scheduled") ? 'selected="selected"' : "";?>>Scheduled Notification</option> | 51 | <option value="scheduled" <?php echo ($validation->set_value('type',$entry->details['type'])=="scheduled") ? 'selected="selected"' : "";?>>Scheduled Notification</option> |
| 52 | <?php if (current_user_can(Settings\MANAGE_SYSTEM_NOTIFICATIONS) || ($_GET['action']=="edit" && $entry->details['type']=="triggered")): ?> | 52 | <?php if (current_user_can(Settings\MANAGE_SYSTEM_NOTIFICATIONS) || ($_GET['action']=="edit" && $entry->details['type']=="triggered")): ?> |
| 53 | <option value="triggered" <?php echo ($validation->set_value('type',$entry->details['type'])=="triggered") ? 'selected="selected"' : "";?>>System Triggered Notification</option> | 53 | <option value="triggered" <?php echo ($validation->set_value('type',$entry->details['type'])=="triggered") ? 'selected="selected"' : "";?>>System Triggered Notification</option> |
| 54 | <?php endif; ?> | 54 | <?php endif; ?> |
| 55 | </select> | 55 | </select> |
| 56 | <?php echo $validation->form_error('type');?> | 56 | <?php echo $validation->form_error('type');?> |
| 57 | </td> | 57 | </td> |
| 58 | </tr> | 58 | </tr> |
| 59 | <tr> | 59 | <tr> |
| 60 | <td width="150">Notification Description</td> | 60 | <td width="150">Notification Description</td> |
| 61 | <td><input type="text" name="title" class="wide-input-field" value="<?php echo $validation->set_value('title',$entry->post_title);?>" /><?php echo $validation->form_error('title');?></td> | 61 | <td><input type="text" name="title" class="wide-input-field" value="<?php echo $validation->set_value('title',$entry->post_title);?>" /><?php echo $validation->form_error('title');?></td> |
| 62 | </tr> | 62 | </tr> |
| 63 | <tr class="scheduled_sendto"> | 63 | <tr class="scheduled_sendto"> |
| 64 | <td>Sent To:</td> | 64 | <td>Sent To:</td> |
| 65 | <td> | 65 | <td> |
| 66 | 66 | ||
| 67 | <?php | 67 | <?php |
| 68 | if ($entry->details['sendto'] == "report" ): ?> | 68 | if ($entry->details['sendto'] == "report" ): ?> |
| 69 | <input type="hidden" name="sendto" value="<?php echo $entry->details['sendto']; ?>"/> | 69 | <input type="hidden" name="sendto" value="<?php echo $entry->details['sendto']; ?>"/> |
| 70 | <span style="color:#999;"><em>Report Generated</em></span> | 70 | <span style="color:#999;"><em>Report Generated</em></span> |
| 71 | <?php else: ?> | 71 | <?php else: ?> |
| 72 | <select name="sendto" class="wide-input-field"> | 72 | <select name="sendto" class="wide-input-field"> |
| 73 | <option value="allusers" <?php echo ($validation->set_value('sendto',$entry->details['sendto'])=="allusers") ? 'selected="selected"' : "";?>>All Users</option> | 73 | <option value="allusers" <?php echo ($validation->set_value('sendto',$entry->details['sendto'])=="allusers") ? 'selected="selected"' : "";?>>All Users</option> |
| 74 | <optgroup label="By Group:"> | 74 | <optgroup label="By Group:"> |
| 75 | <?php foreach(Notifications\getGroups() as $group_id => $group_name):?> | 75 | <?php foreach(Notifications\getGroups() as $group_id => $group_name):?> |
| 76 | <option value="<?php echo $group_id?>" <?php echo ($validation->set_value('sendto',$entry->details['sendto'])==$group_id) ? 'selected="selected"' : "";?>><?php echo $group_name;?></option> | 76 | <option value="<?php echo $group_id?>" <?php echo ($validation->set_value('sendto',$entry->details['sendto'])==$group_id) ? 'selected="selected"' : "";?>><?php echo $group_name;?></option> |
| 77 | <?php endforeach; ?> | 77 | <?php endforeach; ?> |
| 78 | </optgroup> | 78 | </optgroup> |
| 79 | </select> | 79 | </select> |
| 80 | <?php endif; ?> | 80 | <?php endif; ?> |
| 81 | 81 | ||
| 82 | 82 | ||
| 83 | <?php echo $validation->form_error('sendto');?> | 83 | <?php echo $validation->form_error('sendto');?> |
| 84 | </td> | 84 | </td> |
| 85 | </tr> | 85 | </tr> |
| 86 | 86 | ||
| 87 | <tr class="scheduled-extended"> | 87 | <tr class="scheduled-extended"> |
| 88 | <td>Execute Date / Time</td> | 88 | <td>Execute Date / Time</td> |
| 89 | <td><input type="text" name="execute_date" id="execute_date" class="wide-input-field date-pick" readonly="readonly" value="<?php echo $validation->set_value('execute_date',$entry->details['execute_date']);?>" /><?php echo $validation->form_error('execute_date');?></td> | 89 | <td><input type="text" name="execute_date" id="execute_date" class="wide-input-field date-pick" readonly="readonly" value="<?php echo $validation->set_value('execute_date',$entry->details['execute_date']);?>" /><?php echo $validation->form_error('execute_date');?></td> |
| 90 | </tr> | 90 | </tr> |
| 91 | 91 | ||
| 92 | <tr class="trigger-extended"> | 92 | <tr class="trigger-extended"> |
| 93 | <td>Trigger</td> | 93 | <td>Trigger</td> |
| 94 | <td><input type="text" name="trigger" id="trigger" class="wide-input-field" value="<?php echo $validation->set_value('trigger',$entry->details['trigger']);?>" /><?php echo $validation->form_error('trigger');?></td> | 94 | <td><input type="text" name="trigger" id="trigger" class="wide-input-field" value="<?php echo $validation->set_value('trigger',$entry->details['trigger']);?>" /><?php echo $validation->form_error('trigger');?></td> |
| 95 | </tr> | 95 | </tr> |
| 96 | 96 | ||
| 97 | </tbody> | 97 | </tbody> |
| 98 | </table> | 98 | </table> |
| 99 | 99 | ||
| 100 | <table cellspacing="0" class="widefat post fixed expandable" style="margin-top:15px;"> | 100 | <table cellspacing="0" class="widefat post fixed expandable" style="margin-top:15px;"> |
| 101 | <thead> | 101 | <thead> |
| 102 | <tr> | 102 | <tr> |
| 103 | <th width="150" class="toggle"><h6>Email</h6></th> | 103 | <th width="150" class="toggle"><h6>Email</h6></th> |
| 104 | <th class="action-bar"> </th> | 104 | <th class="action-bar"> </th> |
| 105 | </tr> | 105 | </tr> |
| 106 | </thead> | 106 | </thead> |
| 107 | <tbody style="<?php echo ($validation->set_value('subject',$entry->email['subject'])!="" || $validation->set_value('text',$entry->email['text'])!="" || $validation->set_value('html',$entry->email['html'])!="") ? "" : "display:none";?>;"> | 107 | <tbody style="<?php echo ($validation->set_value('subject',$entry->email['subject'])!="" || $validation->set_value('text',$entry->email['text'])!="" || $validation->set_value('html',$entry->email['html'])!="") ? "" : "display:none";?>;"> |
| 108 | <tr> | 108 | <tr> |
| 109 | <td width="150">Subject Line</td> | 109 | <td width="150">Subject Line</td> |
| 110 | <td><input type="text" name="subject" class="wide-input-field" style="width:100%;" value="<?php echo $validation->set_value('subject',$entry->email['subject']);?>" /><?php echo $validation->form_error('subject');?></td> | 110 | <td><input type="text" name="subject" class="wide-input-field" style="width:100%;" value="<?php echo $validation->set_value('subject',$entry->email['subject']);?>" /><?php echo $validation->form_error('subject');?></td> |
| 111 | </tr> | 111 | </tr> |
| 112 | <tr> | 112 | <tr> |
| 113 | <td>Text Version</td> | 113 | <td>Text Version</td> |
| 114 | <td><textarea name="text" class="wide-input-field" rows="10" style="width:100%;" ><?php echo $validation->set_value('text',$entry->email['text']);?></textarea><?php echo $validation->form_error('text');?></td> | 114 | <td><textarea name="text" class="wide-input-field" rows="10" style="width:100%;" ><?php echo $validation->set_value('text',$entry->email['text']);?></textarea><?php echo $validation->form_error('text');?></td> |
| 115 | </tr> | 115 | </tr> |
| 116 | <tr> | 116 | <tr> |
| 117 | <td>HTML Version (optional)</td> | 117 | <td>HTML Version (optional)</td> |
| 118 | <td><textarea name="html" id="htmlversion" class="wide-input-field" rows="10" style="width:100%;"><?php echo $validation->set_value('html',$entry->email['html']);?></textarea><?php echo $validation->form_error('html');?></td> | 118 | <td><textarea name="html" id="htmlversion" class="wide-input-field" rows="10" style="width:100%;"><?php echo $validation->set_value('html',$entry->email['html']);?></textarea><?php echo $validation->form_error('html');?></td> |
| 119 | </tr> | 119 | </tr> |
| 120 | 120 | ||
| 121 | <tr> | 121 | <tr> |
| 122 | <td width="150">Attachments</td> | 122 | <td width="150">Attachments</td> |
| 123 | <td> </td> | 123 | <td> </td> |
| 124 | </tr> | 124 | </tr> |
| 125 | 125 | ||
| 126 | <?php | 126 | <?php |
| 127 | $attachements = $entry->email['attachments']; | 127 | $attachements = $entry->email['attachments']; |
| 128 | $allowed_attachments = 3; | 128 | $allowed_attachments = 3; |
| 129 | foreach($attachements as $attachment): ?> | 129 | foreach($attachements as $attachment): ?> |
| 130 | <tr> | 130 | <tr> |
| 131 | <td> </td> | 131 | <td> </td> |
| 132 | <td><?php echo $attachment; ?> (<a href="#" entry_id="<?php echo $_GET['page_id']?>" class="attachment" rel="<?php echo $attachment; ?>">remove</a>)</td> | 132 | <td><?php echo $attachment; ?> (<a href="#" entry_id="<?php echo $_GET['page_id']?>" class="attachment" rel="<?php echo $attachment; ?>">remove</a>)</td> |
| 133 | </tr> | 133 | </tr> |
| 134 | <?php $allowed_attachments--; endforeach; ?> | 134 | <?php $allowed_attachments--; endforeach; ?> |
| 135 | 135 | ||
| 136 | <?php for($a = 1; $a <= $allowed_attachments; $a++): ?> | 136 | <?php for($a = 1; $a <= $allowed_attachments; $a++): ?> |
| 137 | 137 | ||
| 138 | <tr> | 138 | <tr> |
| 139 | <td> </td> | 139 | <td> </td> |
| 140 | <td><input type="file" name="attachment[]" /></td> | 140 | <td><input type="file" name="attachment[]" /></td> |
| 141 | </tr> | 141 | </tr> |
| 142 | <?php endfor; ?> | 142 | <?php endfor; ?> |
| 143 | 143 | ||
| 144 | </tbody> | 144 | </tbody> |
| 145 | </table> | 145 | </table> |
| 146 | 146 | ||
| 147 | <table cellspacing="0" class="widefat post fixed expandable" style="margin-top:15px;"> | 147 | <table cellspacing="0" class="widefat post fixed expandable" style="margin-top:15px;"> |
| 148 | <thead> | 148 | <thead> |
| 149 | <tr> | 149 | <tr> |
| 150 | <th width="150" class="toggle"><h6>System Message</h6></th> | 150 | <th width="150" class="toggle"><h6>System Message</h6></th> |
| 151 | <th class="action-bar"> </th> | 151 | <th class="action-bar"> </th> |
| 152 | </tr> | 152 | </tr> |
| 153 | </thead> | 153 | </thead> |
| 154 | <tbody style="<?php echo ($validation->set_value('system',$entry->system['message'])=="") ? "display:none" : "";?>;"> | 154 | <tbody style="<?php echo ($validation->set_value('system',$entry->system['message'])=="") ? "display:none" : "";?>;"> |
| 155 | <tr> | 155 | <tr> |
| 156 | <td>Message Type</td> | 156 | <td>Message Type</td> |
| 157 | <td> | 157 | <td> |
| 158 | <select name="system_message_type" class="wide-input-field"> | 158 | <select name="system_message_type" class="wide-input-field"> |
| 159 | <option value="none" <?php echo ($validation->set_value('system_message_type',$entry->system['system_message_type'])=="none") ? 'selected="selected"' : "";?>>General Message</option> | 159 | <option value="none" <?php echo ($validation->set_value('system_message_type',$entry->system['system_message_type'])=="none") ? 'selected="selected"' : "";?>>General Message</option> |
| 160 | <option value="action_required" <?php echo ($validation->set_value('system_message_type',$entry->system['system_message_type'])=="action_required") ? 'selected="selected"' : "";?>>Action Required</option> | 160 | <option value="action_required" <?php echo ($validation->set_value('system_message_type',$entry->system['system_message_type'])=="action_required") ? 'selected="selected"' : "";?>>Action Required</option> |
| 161 | <option value="e-flash" <?php echo ($validation->set_value('system_message_type',$entry->system['system_message_type'])=="e-flash") ? 'selected="selected"' : "";?>>E-Flash</option> | 161 | <option value="e-flash" <?php echo ($validation->set_value('system_message_type',$entry->system['system_message_type'])=="e-flash") ? 'selected="selected"' : "";?>>E-Flash</option> |
| 162 | <option value="new_event" <?php echo ($validation->set_value('system_message_type',$entry->system['system_message_type'])=="new_event") ? 'selected="selected"' : "";?>>New Event</option> | 162 | <option value="new_event" <?php echo ($validation->set_value('system_message_type',$entry->system['system_message_type'])=="new_event") ? 'selected="selected"' : "";?>>New Event</option> |
| 163 | </select> | 163 | </select> |
| 164 | </td> | 164 | </td> |
| 165 | </tr> | 165 | </tr> |
| 166 | <tr> | 166 | <tr> |
| 167 | <td>Message (Text/HTML)</td> | 167 | <td>Message (Text/HTML)</td> |
| 168 | <td><textarea name="system" class="wide-input-field" rows="4" style="width:100%;" ><?php echo $validation->set_value('system',isset($entry->system['message']) ? $entry->system['message'] : "");?></textarea><?php echo $validation->form_error('system');?></td> | 168 | <td><textarea name="system" class="wide-input-field" rows="4" style="width:100%;" ><?php echo $validation->set_value('system',isset($entry->system['message']) ? $entry->system['message'] : "");?></textarea><?php echo $validation->form_error('system');?></td> |
| 169 | </tr> | 169 | </tr> |
| 170 | </tbody> | 170 | </tbody> |
| 171 | </table> | 171 | </table> |
| 172 | 172 | ||
| 173 | 173 | ||
| 174 | 174 | ||
| 175 | <p> | 175 | <p> |
| 176 | <input type="submit" value=" Update " /><input type="button" value=" Cancel " onclick="document.location.href='/wp-admin/admin.php?page=notifications';" /> | 176 | <input type="submit" value=" Update " /><input type="button" value=" Cancel " onclick="document.location.href='/wp-admin/admin.php?page=notifications';" /> |
| 177 | </p> | 177 | </p> |
| 178 | 178 | ||
| 179 | </form> | 179 | </form> |
| 180 | 180 | ||
| 181 | </div> | 181 | </div> |
| 182 | 182 | ||
| 183 | <script type="text/javascript"> | 183 | <script type="text/javascript"> |
| 184 | 184 | ||
| 185 | 185 | ||
| 186 | jQuery(document).ready(function($) { | 186 | jQuery(document).ready(function($) { |
| 187 | 187 | ||
| 188 | $('#execute_date').datetimepicker({ | 188 | $('#execute_date').datetimepicker({ |
| 189 | stepMinute: 30 | 189 | stepMinute: 30 |
| 190 | , dateFormat: 'yy-mm-dd' | 190 | , dateFormat: 'yy-mm-dd' |
| 191 | , timeFormat: 'hh:mm:ss' | 191 | , timeFormat: 'hh:mm:ss' |
| 192 | }); | 192 | }); |
| 193 | 193 | ||
| 194 | updateNotificationType(); | 194 | updateNotificationType(); |
| 195 | 195 | ||
| 196 | $('.attachment').live('click', function(e) { | 196 | $('.attachment').live('click', function(e) { |
| 197 | e.preventDefault(); | 197 | e.preventDefault(); |
| 198 | var $link = $(this); | 198 | var $link = $(this); |
| 199 | var options = { | 199 | var options = { |
| 200 | action: 'remove_attachment' | 200 | action: 'remove_attachment' |
| 201 | , ajax: 'yes' | 201 | , ajax: 'yes' |
| 202 | , id: $link.attr('entry_id') | 202 | , id: $link.attr('entry_id') |
| 203 | , file: $link.attr('rel') | 203 | , file: $link.attr('rel') |
| 204 | }; | 204 | }; |
| 205 | 205 | ||
| 206 | 206 | ||
| 207 | 207 | ||
| 208 | var file_element = '<input type="file" name="attachment[]" />'; | 208 | var file_element = '<input type="file" name="attachment[]" />'; |
| 209 | 209 | ||
| 210 | var c = confirm('Are you sure you want to remove this attachment?'); | 210 | var c = confirm('Are you sure you want to remove this attachment?'); |
| 211 | if (c) { | 211 | if (c) { |
| 212 | $.ajax({ | 212 | $.ajax({ |
| 213 | url: '/wp-admin/admin-ajax.php' | 213 | url: '/wp-admin/admin-ajax.php' |
| 214 | , data: (options) | 214 | , data: (options) |
| 215 | , type: 'POST' | 215 | , type: 'POST' |
| 216 | , dataType: 'json' | 216 | , dataType: 'json' |
| 217 | , success: function(data) { | 217 | , success: function(data) { |
| 218 | if (data.success=="true") { | 218 | if (data.success=="true") { |
| 219 | $link.parent().html(file_element); | 219 | $link.parent().html(file_element); |
| 220 | } | 220 | } |
| 221 | } | 221 | } |
| 222 | }); | 222 | }); |
| 223 | } | 223 | } |
| 224 | 224 | ||
| 225 | return false; | 225 | return false; |
| 226 | }); | 226 | }); |
| 227 | 227 | ||
| 228 | 228 | ||
| 229 | //jQuery('table.expandable tbody').hide(); | 229 | //jQuery('table.expandable tbody').hide(); |
| 230 | jQuery('table.expandable thead th').click(function() { | 230 | jQuery('table.expandable thead th').click(function() { |
| 231 | var $table = jQuery(this).parent().parent().parent(); | 231 | var $table = jQuery(this).parent().parent().parent(); |
| 232 | if ( jQuery('tbody',$table).is(":visible") ) { | 232 | if ( jQuery('tbody',$table).is(":visible") ) { |
| 233 | jQuery('thead',$table).removeClass("open"); | 233 | jQuery('thead',$table).removeClass("open"); |
| 234 | jQuery('tbody',$table).fadeOut(); | 234 | jQuery('tbody',$table).fadeOut(); |
| 235 | } else { | 235 | } else { |
| 236 | jQuery('thead',$table).addClass("open"); | 236 | jQuery('thead',$table).addClass("open"); |
| 237 | jQuery('tbody',$table).fadeIn(); | 237 | jQuery('tbody',$table).fadeIn(); |
| 238 | } | 238 | } |
| 239 | }); | 239 | }); |
| 240 | 240 | ||
| 241 | }); | 241 | }); |
| 242 | 242 | ||
| 243 | function updateNotificationType() { | 243 | function updateNotificationType() { |
| 244 | var type = jQuery('#notif_type').val(); | 244 | var type = jQuery('#notif_type').val(); |
| 245 | 245 | ||
| 246 | if (type=="triggered") { | 246 | if (type=="triggered") { |
| 247 | jQuery('.scheduled-extended').hide(); | 247 | jQuery('.scheduled-extended').hide(); |
| 248 | jQuery('.trigger-extended').show(); | 248 | jQuery('.trigger-extended').show(); |
| 249 | jQuery('.scheduled_sendto').hide(); | 249 | jQuery('.scheduled_sendto').hide(); |
| 250 | } else { | 250 | } else { |
| 251 | jQuery('.scheduled-extended').show(); | 251 | jQuery('.scheduled-extended').show(); |
| 252 | jQuery('.trigger-extended').hide(); | 252 | jQuery('.trigger-extended').hide(); |
| 253 | jQuery('.scheduled_sendto').show(); | 253 | jQuery('.scheduled_sendto').show(); |
| 254 | } | 254 | } |
| 255 | 255 | ||
| 256 | } | 256 | } |
| 257 | 257 | ||
| 258 | 258 | ||
| 259 | 259 | ||
| 260 | </script> | 260 | </script> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or sign in to post a comment