ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                      5.8.1                                   2       t        debian/zsh-common//usr/share/zsh/functions/Calendar/after 2f  x             debian/zsh-common//usr/share/zsh/functions/Calendar/age        t        debian/zsh-common//usr/share/zsh/functions/Calendar/before 8  .             debian/zsh-common//usr/share/zsh/functions/Calendar/calendar 8                debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_add  F  Z             debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_edit F]               debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_lockfiles ]               debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_parse        ,        debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_read k  aB  2   &        debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_scandate k/  +      D        debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_show //  6  
   l        debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_showdate /1  	              debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_sort 1A       f       d қCA              4 D   h   A     C  f       L    A       f      ۬   A     C  G   ,  D      A          ,   d  k    A   B        y      F       A   B   C        d     y    C  F       A           A  #        A    	    1  A.  $   r   + 9     A,  %        -     A   B(  	       k4 }         	  F       A    	  '   ,              A    C
  '   ,          + A   4  C  '           4  M  E   p     E        A       g   ,          A    C      A    C  f      ۤ   A,  2      p  y     A      $  + 0          A  6        0     P     A  :      l  0     ;     A              F       A      F       q  A      F           emulate zmodload zsh/stat b:zstat zsh/parameter autoload calendar_scandate local timefmt vals REPLY return zstat +mtime  # == 1  timefmt %Y/%m/%d:%H:%M:%S timefmt 1: AGEREF tmp1 AGEREF integer mtime vals1 date1 date2 REPLY REPLY2 AGEREF after  mtime >= date1  before  mtime < date1  print 0: must be named 'after' or 'before'    A       f       d қCA              4 D   h   A     C  f       L    A       f      ۬   A     C	  G   ,  D      A     	     ,   d  k    A   B  (     y    
  F       A   B   C
        d     y    C
  F       A    
  <  ;  A  +        A           A.  ,   r   + 9     A  -   	  1  A  -        A.  .      0  Q     q  A.  0             A   B(         k4            F       A      '   ,        ,  I    A    C  '   ,        h  + A        1  A.  8   r   + 9    A   B(  C       k4 Q         C  F       A      '   ,          I    A      '   ,          + A   4    '               E        E   4     A     C  g   ,  L  d      A  \   *  &  A      f      ۤ   A,  E        y     A         1  A  G       A        1  A.  H   r     [9    A   B  C  f      ۔    C  F       A  J      $  q	  A   B    f      ۤ       F       A.  M      4  y     q  A  P        A  S      $  q  A    C  F           emulate zmodload zsh/stat b:zstat zsh/parameter autoload calendar_scandate local timefmt vals REPLY return zstat +mtime  # >= 1   # > 1  timefmt %Y/%m/%d:%H:%M:%S timefmt %Y/%m/%d timefmt 1: AGEREF tmp1 AGEREF 2: AGEREF2 integer mtime vals1 date1 date2 REPLY REPLY2 AGEREF AGEREF2 AGEREF2 AGEREF22,1  date2 = date1 + REPLY  AGEREF2  date2 = date1 + 24 * 60 * 60   date1 <= mtime && mtime <= date2  A       f       d қCA              4 D   h   A     C  f       L    A       f      ۬   A     C  G   ,  D      A          ,   d  k    A   B        y      F       A   B   C        d     y    C  F       A           A  #        A    	    1  A.  $   r   + 9     A,  %        -     A   B(  	       k4 }         	  F       A    	  '   ,              A    C
  '   ,          + A   4  C  '           4  M  E   p     E        A       g   ,          A    C      A    C  f      ۤ   A,  2      p  y     A      $  + 0          A  6        0     P     A  :      l  0     ;     A              F       A      F       q  A      F           emulate zmodload zsh/stat b:zstat zsh/parameter autoload calendar_scandate local timefmt vals REPLY return zstat +mtime  # == 1  timefmt %Y/%m/%d:%H:%M:%S timefmt 1: AGEREF tmp1 AGEREF integer mtime vals1 date1 date2 REPLY REPLY2 AGEREF after  mtime >= date1  before  mtime < date1  print 0: must be named 'after' or 'before'    A        f       d қCA        F       <   A   0  C  '  p                    <  `      A   ,      p                 H      A   `    '  h              j  "          ی E        E   $     E   8     A   4    G  T  t            J    0      A   ,  C    X  x          0  P      A          p    h        A   4    G  p        ,  P  x            A       g   p          A   B    f     L        F   T    A   B    f     L p      F   T    A   B         4         F   T    A       f     ۬  A   B  C       ۜ   A	  x	          	  	     A,          	     A   B         ۜ I
  
  
          
       A   B  C        U    ,         ,       A   B  C       ۜ   e                   A   B         ۜ   A  p                  A           A  "       A        1  A.  #   r     l    A  $      <  Q  A    C	  f       A     	         F       A,  (        %     A  )      H  q  A  +        A   B  /           F   T    A       '           ,    A     C     p   z@  `      A      NM  A.  7   r   }  <    A  8        A,  9      z     A,  :      @  %     A   ""  ;   R`  R  u  r   u           &     A  <   NC  A  <     u  A    C    u  0          A         1  A  B       A,  C      `       A.  D      @        Q  A  E        A,  F      `       A.  G      @        q  A      C         f     ۔ I  A      F   T    A  x   \  u  0"          A,  O      P       A  \    
  1
  A  P        A      C         f     ۔ A  A      F   T    0	          A.  X              0"     r     A,  ]      $       A  \    
  1
  A  ^      L  A               f     ۔   A      F   T    0
          A         ,  Q     0     
     A  q        0       	   A  v        0     "  
   A  {        0     "     A        $  0          A        X  0          A,               A          0	          A.        t       0	     l   A.          u     0     ;     A     &         F       A    '  F   T    A,        zE     A.        @  u     A     (            A     )  F     !  A   B        P                  A    *  3  $  A          A     *    1  A.     r   + r{   A.          I     Q  A.     r   + l   A.          +      A   d  ,    1  A    ,  f      + A     C,         F       A    ,  F   T    A.               A    -  &     q  A\          -     j  q     "       A      .       ۜ   ۔   I  A.          u     A     /       ۜ #     A    0  \  1G  A          A   d C0  +    A.     r   + [9    A   l  0    1  A    0        ۔     A     0         F     9  A    1  F   T    A          Q  A.     r   + l   A.          +      A   d  2    1  A    2  f      + A     2         F       A    3  F   T    A.               A     4      A          A     C4       ۜ        A     4       ۜ   !  E  A     4         F     ]  A    5  F   T    A    6  &     q  A      +#0	          A.               0	          A.               0	     ;     A.               A.                A   X  ;  
  	  A        %!  A     ;         F     9!  A    <  F   T    A     <  f   !  ۬"  A   "       A"    C=  f   k 4 i"  A     =    1  A        "  A     >  f     t "  A     C>  f     "    A     >  f     t #  A  T  >  	  1  A        $#  A    ?  F     U#    A    ?  f     q#  E  A     @  '   p         #  #  A   B  @     X$  4sq$  $    @  F   T    A  " A  \      A   l CB  5[  Y  A     B      A  
    A"  A    C      A  "  C       4 $  $  "  C  f   %  (%  L%  "   C        %  f   d%  L%       D        %  f   %  L%  A"  A    D  &     q  A  B  E  f   %    A"    E  F   &    A     F  F   ,&    A   p CF  ,           e&  A   B  F  F   &  &    F  &    '  A       %'  A,  !     x'  '     A  #    1  A  #    '  A  $     !(  A.  %     (  (     q  A  '     ()  A.  (     )       A  +  	  1  A  +    )  A  -     )  A  .     |*  q  A  0     *  A     M      A  4     *  A     CM  F     %+  A     M  f     t q+  A     M  f     +  + A  4  N    1  A  8    +  A    CN  F     +  A  <     ,  A   l  CO      A  =     ,  A     O     -  5-     A.  ?        i-     q  A.  A        &     A     P  %   x     At  E    A.  E  r   -  	.     A.  F        .     A,  I        !/     A   D R  '    A  J     /  A   0  S  D      $       ۔  0    E  0  A  M     81  A  "  O     d1    O     1  Q  A  P    +  A  Q     1  A    T    1  A  R     L2  A,  S        2     A  0  U  D      $       ۔  ]3    E  3  Q  A  U     3  A  X     1  A    V  1  0  A  [    +  A     W      A  \      4  A     W       ۜ H  u4  4  A  _  	    AV  _  2     4  4        !5  I5     A.  `  E   H     A     X     |5  5     A  h     6  q  A  j     6  A  m    1  A  m     6  A  o     \7    A  r     8  A  "  t     L8    t     p8  A^  v    1  A  v     8  A  w     L9  A   ^  5  15  A  z    A"  A   ^  1  1  A  {     9  A    C_    1  A  !  C_  D      A"  f     ۔ &  A  P  _  	    A  ~     9  A       9  A    `         F     	:  Q  A       :  A       :  q  A    a    1  A  !  a  D      :  f     ۔ &  A  P  b  	    A       ;  A       9  A    b         F     9;  Q  A       ;  A       :  A   4 d  %  1%  A      +  A   e  !  1  A&      ;    A,       J  ;     A  |  e  D      $  I      A   "       I  f  f       ,LA  ,  Cf  &    ۔  <  ;  =  -=  ;  ;      q
  A,          m=     A  0  g  D      $       ۔  >    E  1?  A    h  "  1  A       p?  A     h    1
  A    h  f   j   ?  A     i         F     ?  A       A  Q
  A    i  f   j AA    A     j         F     eA  A       A  A.       B        A      A"  A    k  f   k 4 B  A  8  l  ,           B  A    l     0C  d eC  &      A  "       C    m  f   k 4 C  A    Cn  F   &  C      T  n  i      A   "    r  $    o  F   r  $  A    Co  f   k 4 $          emulate setopt extendedglob local line showline restline REPLY REPLY2 userange nobackup datefmt calendar donefile sched newfile warnstr mywarnstr newdate integer time start stop today ndays next shown done nodone integer verbose warntime mywarntime tcalc tsched rstat remaining integer showcount icount repeating repeattime resched showall brief calendar_entries calendar_addlines times calopts showprog lockfiles match mbegin mend tmplines reply zmodload zsh/datetime return zsh/zutil zsh/files b:zf_ln autoload calendar_addparsereadscandateshowlockfiles zstyle :datetime:calendar: calendarfile calendar calendar /calendar calendar.new.HOST. :datetime:calendar: donefile donefile donefile calendar.done :datetime:calendar: showprog calendar_show :datetime:calendar: warntime warnstr warnstr 0:05 :datetime:calendar: dateformat datefmt datefmt %a %b %d %H:%M:%S %Z %Y warnstr  warntime = warnstr  calendar_scandate print warn-time value 'warnstr' not understood; using default 5 minutes warnstr 5 mins  warntime = 5 * 60   warntime = REPLY  calendar integer opti optrest optarg argvopti+1  opti++  argvopti2 argvopti3,1 opt break BCnS optrest  opti < #  argv++opti 0: option -opt requires an argument. optarg  brief <= 0  0: option -opt requires a positive integer. calendar showcount  showcount <= 0  0: option -opt requires a positive integer. s.:.optarg  showall = 1   brief = 1   done = 1   nodone = 1   remaining = 1  showcount 0: unrecognised option: -opt optrest1 optrest2,1 calopts argv1,opti shift ( opti )  done && !nodone  donefile  # > 1 || (# == 1 && remaining)  EPOCHSECONDS 0: failed to parse date/time: 1 REPLY %:%D{%Y} %:%D{%m} %:%D{%d} strftime %Y/%m/%d y/m/d today %u start  # && !remaining  12,1 0: failed to parse relative time: 1  stop = REPLY  0: failed to parse date/time: 1  stop < start  datefmt REPLY2 datefmt stop 0: requested end time is before start time:
  start: REPLY
  end: REPLY2 ( start + ndays * 24 * 60 * 60 )  #  Usage: 0 [ start-date-time stop-date-time ] autoload matchdate donefile newfile  verbose  start:  datefmt stop:   remaining  none datefmt mycmds TMPPREFIX:-/tmp/zsh.calendar_cmds.$ zf_ln <<<'' mycmds zsh/system b:zsystem zsystem supports flock zsystem /dev/null zsystem calendar_lockfiles exit calendar_read calendar_entries calendar_parse line continue  t = reply[time]  restline replytext1 replywarntime  mywarntime = t - reply[warntime]  mywarnstr replywarnstr  mywarntime = warntime  mywarnstr replyrpttime  repeattime = reply[rpttime]   repeating = 1   repeating = 0   verbose  Examining: line   Date/time:  datefmt sched   Warning mywarntime seconds (mywarnstr) before  shown = 0   brief  tmplines (f)line Ftmplines1brief showline b\n:space:#\n\n match[1]match[3] showline%%:space:  showall || (t >= start && (remaining || t <= stop || icount < showcount))  qqshowprog qqshowline  icount++   t <= EPOCHSECONDS   shown = 1   tsched = t - mywarntime   tsched >= start && tsched <= stop due in mywarnstr: showline qqshowprog qqshowline  tsched < start   shown && repeating  datefmt repeattime newdate :space: restline :space: calendar_addlines newdaterestline  tcalc = repeattime, resched = 1   tcalc = t   tcalc - mywarntime > EPOCHSECONDS   tsched = tcalc - mywarntime, resched = 1   tsched = tcalc   !shown   resched = 1   resched && (next < 0 || tsched < next)   next = tsched   shown   done != 3   done = 3  Failed to append to donefile  done != 3   done = 2  newfile  done != 3  Failed to append to newfile  done != 3  next (@)zsh_scheduled_events#*:*:Icalendar s qqsched calendar calopts[@] No more calendar events: calendar not rescheduled.
Run "calendar -s" again if you add to it. qqshowprog qqshowline  done == 2  calendar.old Couldn't back up calendar to calendar.old.
New calendar left in newfile.  rstat = 1  newfile Failed to rename newfile to calendar.
Old calendar left in calendar.old. nobackup newfile calendar_addlines calendar_add nobackup  #lockfiles  lockfiles rstat    A       f       d қCA       F       <   A     C  '   p               A       '   p           5  A       '   p         "  u  A   ,  C    p           z,  @      A   $       p    X            A   (         ,  L  `  x          A       G           A      C     p      @  h      A           p              A       g   p           A     C  f     ۬A  A       
  A      f       zA          0	           A.               0	     b     A.  "      x       0	     ;     A    	  F   ,    A     
  F   H  a  A   B  C       ۜ          .      D  i     A,  /             A     C  '   p             A   `      
  A      F   $  a  A              F       A      F   ,    A          	  E	     A  7      	  A           A           ۤ 	  
  A     C  G   p   T
      A   B         ۜ u
  
  
    ;      
  	     A          p  ۜ       A.  =             A   4   %  1%  A  ?     i  A  @        A    C    1  A.  A   r     P     A  B      x  
  A.  C   r          A     C     p  ۜ       A.  F             q  A   B  I   r     )       I   E     E     A          p  ۜ     ]  A.  K   E          A       '   p         (  E  A|  T     1  A.  T   r   Y  }     A.  U             A  d	 C  J      A   4	   uI  G  A     C      A  ]        A        1  A  "         4 4  `  "    f                    ,  f         A    C  &       A  B    F   T        F       A        1  A  g       A       F       A   x       A  j       A  T             !  A   B  C  F   $  i    C  &     A                 A     }  |  A.  p   r   i       A,  q        9     A     t  1t  A.  r   r   u       A   x        A  w   R    A       1  AN     2p  r      r   -  u  	   A        x  A    !  &     A    "  _    A          A    $  &   X  Y  A,        ,  }     A     *  %        A   T  *    A.     r       
   A     +            A.        ,       A   \  +  
  1
  A        =  A     ,     p  ۜ       A    ,            A         @     E  A,               AF        AV     2  r          r   i       A.                	  A   B     r   i  )          E     E     A.     E           A,          i     A    2    1  A    2  F   $  !  A     2     <!  e!     A        !  A    C3    1  A    C3       ۤ !"  
  A     3       ۜ E"  
  h"  A     3     p  ۜ   "    A.               A     C6        %  i      A    6  8          "  A   B  6  F   $  i    6  &   "  A     7     #  A#     A   L  C7    1  A        #  A     7       ۔  %$  A        x  A     8    1  Af     2  r  I$    2`      r   i  }$     A,          $     A  "     r     u       C9  &   $  A   h  9      AN     2p  r  	%  M%  r   i  q%     A   "        %    :  &   %  A        x  A    :       ۔  i  A  B        %    C;       ۔  %      A    ;      A        &  A  \  <  
  1
  A    <  f   j   Q&  A     C<         F     &  A        '    A  B        %  $  =        (       ۔  '  A  l  >    1  A  "        8(    >  f   j ](    A     >         F     (  A        '      A  "        )    @  f   k 4 )  A    @  F     %*          emulate setopt extendedglob local context :datetime:calendar_add: vdatefmt %Y%m%dT%H%M%S [[:digit:]] calendar newfile REPLY lastline text occur calendar_entries lockfiles reply occurrences integer my_date done rstat nolock nobackup new_recurring integer keep_my_uid parse_new parse_old match mbegin mend my_uid their_uid autoload calendar_parsereadlockfiles getopts BL opt nobackup return shift ( OPTIND - 1 ) zstyle context calendarfile calendar calendar /calendar calendar.new.HOST. addline * calendar_parse addline print 0: failed to parse date/time parse_new (@kv)reply  my_date = parse_new[time]  context reformatdate datefmt context dateformat datefmt datefmt %a %b %d %H:%M:%S %Z %Y strftime datefmt parse_newtime REPLY parse_new[text1] parse_newrptstr  new_recurring = 1  parse_newrptstr CANCELLED  done = 1  addline b:space:#RECURRENCE:space::space::space: vdatefmt parse_newschedrpttime match[1]REPLYmatch[3] addline \n \n parse_newschedrpttime   # RECURRENCE REPLY uidpat (|*[[:space:]])UID[[:space:]]##(#b)([[:xdigit:]]##)(|[[:space:]]*) addline uidpat Umatch1  ! nolock  zmodload zsh/system b:zsystem zsystem supports flock zsystem calendar /dev/null calendar_lockfiles exit calendar_read my_uid line calendar_entries line continue parse_old (@kv)reply uidpat Umatch1 their_uid parse_oldrpttime new_recurring parse_newtext1 :space:#OCCURRENCE:space::space::space:CANCELLED:space: continue  new_recurring  continue addline occurrences text b:space:#OCCURRENCE:space::space::space::space::space: occurrences match2 match[1] match[3]  ! #occurrences  my_date occurrences XXXXXXXXTXXXXXX REPLY ooccurrences occur%%:space: REPLY :digit:c8T:digit:c6 b:space:#OCCURRENCE:space:REPLY:space::space::space: match[1]match[2]occurmatch[3]   # OCCURRENCE occur addline parse_new (@kv)reply  my_date = parse_new[time]  context context datefmt datefmt calendar_entries continue parse_old (@kv)reply  ! done && parse_old[time] > my_date  addline keep_my_uid uidpat Umatch1 continue parse_oldtime my_date addline  done  continue addline newfile  ! nobackup  calendar.old Couldn't back up calendar to calendar.old.
New calendar left in newfile.  rstat = 1  addline newfile  !rstat  newfile Failed to rename newfile to calendar.
Old calendar left in calendar.old.  #lockfiles  lockfiles rstat A        g          ,       A                P   x       A     C  G             A   X    
    A           A                   A         (  E     A   \  c     &     C  N  A    C  F        A  "     r                   T  A   B  C       ۜ     H          l       A   $         A     5    A         1  A  "         4     "    f   4  T  x     C          f     x    A      &       A  B  C  F          C  F   L    A      f   `  u        A  "  "            f   k 4       A  "  &      ,    	  F   d  ۜ     local line calendar lockfiles editor integer cal_running  #  editor @ editor VISUAL:EDITOR:vi sched read line  calendar -s - -  cal_running = 1  zstyle :datetime:calendar: calendarfile calendar calendar /calendar zmodload zsh/system b:zsystem zsystem supports flock zsystem calendar /dev/null calendar_lockfiles exit eval editor $calendar  #lockfiles  lockfiles  cal_running  calendar   A     C            ,   P       A   (    '   p              E         A      a        A,                A    C  L7  L  d    A   t      1  A  0                       bs ۜ     A          (       A      &   P  A   d      1  A  "    &   c+     R  i  A,               A      f   c+l I  A   T    	  1	  A        l  A                 f     L   A          A  `      1  A      f     , 8  A      f   h  ۤ   q  A    C  F       A   P  	  	    A  $     %  A     C	  f   c+l I  A.  &              A    
      A.  (              A,  )             A   d      1  A      &   c+A    C  f   c+l     A             F       A      F       A      F           local file lockfile msgdone integer lockattempts loadtried lockfile file.lockfile i = 0 i <= lockattempts i++  file lockfile /dev/null lockfiles break msgdone msgdone lockfile: waiting to acquire lock msgdone  ! loadtried  zmodload zsh/zselect  loadtried = 1  zsh/zselect zselect ( 10 + RANDOM * 190 / 32768 ) sleep msgdone msgdone///  msgdone lockfiles1 msgdone Failed to lock file; giving up after lockattempts attempts.
Another instance of calendar may be using it.
Delete lockfiles if you believe this to be an error. msgdone print msgdone return   A       f       d қCA     C  F       <   A       '   p               A   0  C	  '  p           @  l            A      	     p        $      A   $  	     8  r{X  l          A     
  g   p          A       f     ۬4  A       g   |  <      A       %        A   X    
  	  A  2        A              F       A      F   `    A   B  C  f   4  +   C  F   `    A,  :      }       A,  ;             A,  <      A  u     A,  =        	     A      N1  A      &   H  A   C    ]  0            A   B  C       ۔X                 F     E  A,  G        		     A.  H      !	  U	     0*     	     A    C      A    C     4  q
  ۔ 
  
  A,  N      
  !     A,  O      =  y     A.  R        	     q  A.  U             0U     5     A,  Z             A,  [             A     !  1  A.  \   r     5     A,  ]             A,  ^      =  t     A,  _             A.  `        P       A    C     4   ۔ y    A,  e             A,  f      9  q     A.  i        y     q  A.  l             0     u     A,  q        M     A.  s             0     ;     A      &   8  A   D   g  1g  AF  |   2`    Q            A  ~        A,        X       A,        }  y     Al       1  A          A.          y     A    !    A          A   D  !    1  A    !     4   ۔     A    "  &   8  A   0  "      A        a  A    #  &   8  A,          !     A,          !     Al       1  A        9  A.          !     A,                A    C%      A        %  A     %       ۜ l      A,        @       An       1  A         A.               A     (  ,     @     =  A    C(      A.        q       A   B  (       ۔X        (         F       An       1  A          A.          		     A.        =       A,               A    C,  F   `        emulate setopt extendedglob local vdatefmt %Y%m%dT%H%M%S REPLY REPLY2 timefmt occurrence skip try_to_recover before after match mbegin mend integer then replaced firstsched schedrpt occurrences autoload calendar_scandate typeset reply  # != 1  print Usage: 0 calendar-entry return replytime ( REPLY ) schedrpt replytime replytext1 REPLY2:space: replytext2 replytext1 true replytext2 b:space:#RECURRENCE:space::space::space: strftime vdatefmt match2 format: vdatefmt, string match[2] schedrpt then replytext2 match[1]match[3]##[ 	]# b:space:,WARN:space: asm replytime match2 replywarntime REPLY replywarnstr match2%%REPLY2 replytext2 match[1]REPLY2##[ 	]# replytext2 match[1]match[2]##[ 	]# b:space:,RPT:space: before match1 after CANCELLED:space: replytext2 beforematch[2]##[ 	]# replyrptstr CANCELLED replyrpttime CANCELLED replyschedrpttime CANCELLED schedrpt replytext2 beforeREPLY2##[	]# replyrptstr after%%REPLY2 replytext2 beforeafter##[[:space:]]# b:space:#OCCURRENCE:space::space::space::space: occurrencesmatch2 match[3] replytext2 match[1]match[4]##[ 	]# break replyrpttime replyrptstr CANCELLED  now = EPOCHSECONDS  replaced replyschedrpttime  schedrpt >= now   reply[schedrpttime] < now || replaced  replyschedrpttime replyrptstr  REPLY <= reply[schedrpttime]  replyschedrpttime  reply[schedrpttime] > now && firstsched == 0  replaced  #occurrences  timefmt occurrencestimefmt occurrence replaced occurrences occurrence CANCELLED occurrence format: vdatefmt, string occurrence  then > now && then < reply[rpttime]  replyschedrpttime firstsched replytext2 reply[text2]##[[:space:],]#    A   (  C  '                + E   <      A       g        P       A          P   i      A       %         A           <        A  |  C    1
  A.     r   !  9      An       1  A        m  A.     E            A         H           local calendar line lines f<$calendar calendar_entries lines line :space:  #calendar_entries  calendar_entries1 \nline calendar_entries line&  A     &  f       d қCA     C&  F       <   A   B  &  f   p   L      &  F        A     (  '                 A     )  '            `    A     )  '                A     C*  '            T  q  A     *  g             A   ,  *      sj{s++#C2K   A     +  '                A     C-  '                A     -  '                A     .  '              U  A     .  '                A     /  '              !  A     /  '           (  I  A     0  '            "    A   D  0            4  "P  d  x      rC        A   8  0  g     z  	  ,	  D	  \	  x	   	  	      A      1         	  	  	      A     1  g   
  0
  \
      A     2  G   
  
      A      3     
  
    8  d      A      C3                   A   \  3     $  D  h                E         E   B    E   B    E   B#    A   ` 4    A    4  f     =  zA  4 C4  K  m  0     
      A          0     
     A          0     "     A        (  0     j     A        X  0          A          0          A          0          A        p  0          A          0	     ;     A    C>  F        A     C?  F       A,          +    A     C@        <  T        A   )    A         A,       <       A,       T       A    	  1  A       H  A.         u     q  A.  
            A      1  AN    2p  r      r       	   A,         i     A.              q	  A,       <       A,       T       A.              A,       	       A     I  G             A,  (        5     A )      A.  )     	    
   A,  *     d       A,  +     x  !     A,  ,       I     A   "  -  r   q       "  -         -       A.  .     \
       A 0      A  0       A,  2        a     AV 3      A.  3     	       A,  4     d       A,  5     x  !     A   "  6  r          "  6         6     <  A.  7     \
       A :      A  :     p  A,  <             AV =      A.  =     	       A,  >     d       A,  ?     x       A   "  @  r   !       "  @         @     H  A.  A     \
       A| D    1  A  D     |  A,  F             A G    1  A.  G     	       A,  H     d       A,  I     x  !     A,  J       I     A.  K     \
       AL N    1  A  N       A,  O        U     A  P    1  A.  P     	       A,  Q     d       A,  R     x  !     A.  S     \
       A V  .  -  A  V     H  A   "  Y         Y            A,  [             A. \  !  1!  A.  \     	       A,  ]       !     A,  ^            A,  _     "I     A,  `     d       A,  a     x  q     A,  b            A,  d     \
       A,  e     0
       A,  f     8        A.  g     ,   Q      A   "  j     x     j     d       A    [    1  A  l        A,  n     
  !!     A,  o     L!  q!     A  u    1  A~  u  R  r   !  !     R  r   !  )#     r   !  1$     A  x     u%  A.  y      i     A,  {       %     A  "  |     &    _  F   &  &  A   | _   1 A        '  A  X C`     0$     '     A,              A,              A,       "I     AD       8  !!     (  (     A.       0
       0$     (     A,              A,       ,	       A,       "I     AD       8  !!     )  (     A.       0
       0$     *     A,       "     A,       ,	       A,              AD       8  !!     +  +     A.       0
       0$     +     A,       ,	       A,       "!     A,              AD       8  !!     `-  +     A.       0
       0'     -     A,       "     A,       ,	       A     j     .  ۜ   .  	/  AD       8  !!     @/  (     A.       0
       0'     e/     A,       ,	       A,       "!     A     l     .  ۜ   .  0  AD       8  !!     0  (     A.       0
       0$     1     A,       "     A,              A,         q     AD       8  !!     h2  2     A.       0
       0$     2     A,              A,       "!     A,         q     AD       8  !!     4  2     A.       0
       0r     14     A     Cs  g   4  5        A     s  '            05  Q5  AD       8  !!     5  5     A     t  g       5      A   0  u  %  5  sj{s++#C2Ks   A       5  A       x6  A     Cv     .  ۜ 6  6  	7  A   "        7         h7  A       7  A     Cw     .  ۜ   .  	7  A     w     .  ۜ   U8  	7  A     w     .  ۜ "i8  	7  A.       0
       0q     }8     A       x6  A     y  <  9  0     9      A       9  0     ,:  !   A       P:  0*     r{"   A\       \
       :       
       A     C|     .  ۜ d  :  	7  A     |     .  ۜ x  :  	7  A    |     .  ۜ   :  	7  A     }     .  ۜ   .  	7  A     }     .  ۜ   U8  	7  A     ~     .  ۜ "i8  	7  AD       8  !!     :  5     A.       0
       A      r  1r  A       ;  A      1  A       ;  A|      1  A.    r   ;  U<  #   A.       8  <     A.         <     A      _  ^  A       =  A   X C  J  .  A  	     ;  A\      1  A       =  A       `>  A\      1  A       ?  A       l?  A    Å    1  A       @  A  X  Æ  
  1  A.       }@  A  $   A    Ç  F        q  A.  "       EA       A  $     ,B  A  '    1  A.  '     B  5C  %   A  4     hC  A.  5       5D     q  A.  8       E       A   P    	    A  "  @     F    A     )F  F  &   A    Ð  F        A     C     .  ۜ   .  F  A          .  ۜ   U8  	G  A     Ñ     .  ۜ "i8  AG  A  I     xG  A  |  Ò    1  A  K     G  A       f   &  G  uH  A   "  N     I      f   &  -I  I  A      F   &  UJ  A   t	 C  - 1- A  U     J  A         1  A  V     K  A     C     .  ۜ   .  QK  A          .  ۜ   U8  QK  A     Ö     .  ۜ "i8  QK  A         .  ۔  K  K  A   D   '  1'  A.  ^  r     %L  '   A   "  _  R      _     M       A           A  `     K  A  d     9M  A     C     .  ۔  K  M  A          .  ۜ 4  U8  AN  A   "  i     dN    i     N  A  l      O  q  A  n     mO  A,  p       uP     A.  q     \
       A    Ü  ;  :  A.  s  r     -Q  (   A   "  t  R      t     ER       A   X C  *  1'  A  u     K  A  w     iR  A  x    1  A  x     S  A  z     DS  q  A  |     TT  A          .  ۔  K  ]U  A     à      A       U  A  t      A      &   U  A     C     .  ۜ P  i8  V  A   "       0V      &   dV  A       |V  A        O  q  A       V  A,         uP     A.       \
       A      <  1<  AV    2  r   W    )   r     W  *   A,       rC     A,       	  X     A,         Y     A  d   +  1+  A       Y  A,         uP     A,       \
       A       Y  A        Z  A          .  ۜ   .  Z  A     C     .  ۜ 4  U8  Z  A     è     .  ۔  K  Z  A          .  ۜ   6  	7  A       T[  A   "        \         <\  A     C     .  ۜ P  i8  i\  A       \  A$       A.    r     ]  +   A   "    R           	^       A       -^  A,         uP     A.       \
       A$       A.    r     ^  ,   A   "    R           _       A       _  A,         uP     A.       \
       A           A       `  A     ö     .  ۜ B :  a  A          .  ۜ B :  a  A       ,b  A    	  1  A       hb  A       b  Q  A       b  A       b  A       c  A       lc  A$       A.    r     c  -   A   "    R           d       A       d  A,         uP     A.       \
       A      1  A.    r     }e  .   A       Qf  A,         uP     A.       \
       A      1  A.    r     f  /   A       g  A,         uP     A.       \
       A   | C  .  (  A       Ph  A    þ  !  1!  A       |h  A   `      
  A       h  A  <      1  A.         h  0   A    ÿ  F        A       i  A       g   i  < i      A       j  A   "      j       G   i  <       j  j  A      F        A    C  F        Q  A  
     k  A      F        A   `      
  A       `k  A  <      1  A.         k  1   A    C  F        A     C  g      2kk      A     1  A      k  A,       2kk     A.       k  El     q  A,       2kl     A.       k  =m     A           .  ۜ i  ۔ m  m  A   "       j       G   i  <       n  -n  A      F            emulate setopt extendedglob zmodload zsh/datetime return local tschars [-,:[:blank:]] tspat_anchor (tschars#) tspat_noanchor (|*tschars) schars [.,[:space:]] dayarr dayarr daypat schars#((#B)((j.|.)dayarr)[a-z]#~month*) dspat_anchor (|(#B)(daypat|)(#b)schars#) dspat_anchor_noday (|schars#) dspat_noanchor (|*schars) repat (|s)(|schars*) monthpat (jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[a-z]# integer daysecs ( 24 * 60 * 60 ) [[:digit:]] integer year year2 month month2 day2 hour minute second then wday wday2 line orig_line mname MATCH MBEGIN MEND test rest_line match mbegin mend integer date_found time_found integer time_ok integer time_start time_end date_start date_end integer anchor anchor_end debug setvar integer relative relative_start reladd reldate relsign newadd getopts aAdmrR:st opt  anchor = 1   anchor = 1, anchor_end = 1   debug = 1   relsign = -1   relative = 1   relative_start = OPTARG, relative = 2   setvar = 1   time_ok = 1  shift ( OPTIND - 1 ) dspat dspat_noday tspat  anchor  dspat_anchor dspat_anchor_noday  relative  tspat_anchor tspat_noanchor line b\n\n match1 rest_line match2 dspat_noanchor rest lineibmtspat0-12:0-59.:0-59.-:space:ap.:space:m.:space:e rest match3 match5 match7 ip  hour <= 12   hour += 12   time_found == 0  lineibmtspat0-12:0-59:space:ap.:space:m.:space:e match4  hour <= 12   hour += 12   time_found == 0  lineibmtspat0-12:space:ap.:space:m.:space:e  hour <= 12   hour += 12   time_found == 0  lineibmtspat0-24:0-59.:0-59.-.:space:e  time_found == 0  lineibmtspat0-24:0-59.:space:e  time_found == 0   anchor  tspat_anchor lineibmtspat""":ddddddddTdddddd:space:e match6 match8 mbegin3 date_end mend1  hour == 24   time_found && ! date_found  mbegin2 time_end mend1 linetime_end+1,1 b:space:AZAZAZ+09090909:space:e b:space:AZAZAZ+0-12:space:e b:space:AZAZAZ+0-12AZAZAZ:space:e  time_end += mend[-1]  line1,time_start1linetime_end+1,1  debug  print line after time: line  relative == 0 && date_found == 0  bidspat19200909/1-12/1-31 date_end mend5 bidspat19200909/monthpat/1-31 date_end bidspat1-31thstndrd:space:monthpat,:space:19200909 date_end mend6 bidspatmonthpat:space:1-31thstndrd,:space:19200909 date_end bidspat1-31thstndrd:space:monthpat,:space: strftime %Y EPOCHSECONDS date_end bidspatmonthpat:space:1-31thstndrd,:space: EPOCHSECONDS date_end bidspat1-31thstndrd/1-12,:space:/19200909 date_end mend7 bidspat1-12/1-31thstndrd,:space:/19200909 date_end bidspat_nodaydaypatschars integer wday_now wdaystr Lmatch3 date_end mend2 wdays  wday = wdays[(i)wdaystr] - 1   then = EPOCHSECONDS  wday_now %w then  wday_now < wday   wday_now += 7   then -= (wday_now - wday) * 24 * 60 * 60  %m %d bidspat_nodayyesterdaytodaytomorrownowschars Lmatch2 yesterday  then -= daysecs  tomorrow  then += daysecs  time_end %H %M %S date_end  date_found || (time_ok && time_found)   date_found  line1,date_start1 bidaypatschars mbegin1 line1,date_start1linedate_end+1,1  time_found == 1   time_start <= date_start   date_start += time_end - time_start + 1   time_start <= date_end   date_end += time_end - time_start + 1   time_end + 1 < date_start  orig_linetime_end+1,date_start1 schars orig_line[1,time_start-1]orig_line[date_end+1,-1]  date_end + 1 < time_start  orig_linedate_end+1,time_start1 tschars  time_found = 0, hour = 0, minute = 0, second = 0  orig_line[1,date_start-1]orig_line[date_end+1,-1] orig_line[1,date_start-1]orig_line[time_end+1,-1]  anchor  orig_line1,time_start1 tschars EPOCHSECONDS EPOCHSECONDS EPOCHSECONDS  date_found = 1   debug  Time string: time_start,time_end: 'orig_line[time_start,time_end]'  date_ok  Date string: date_start,date_end: 'orig_line[date_start,date_end]' Remaining line: 'linerest_line'  relative   relative == 2  relative_start %Y:%m:%d year:month:day bidspat-:space:yyryearyearlyrepat match2  year2 = year + relsign * match[2]  year2:month:day reldate  month2 != month   reldate -= daysecs   reladd += reldate - then   reladd += relsign * ((365*4+1) * daysecs * match[2] + 1) / 4  line1,mbegin21linemend4+1,1 bidspat-:space:mthmonmnthmonthmonthlyrepat match2  month2 = month + relsign * match[2]   month2 <= 0   year2 = year + month2 / 12 - 1, month2 = month2 + (year-year2)*12   year2 = year + (month2 - 1)/ 12, month2 = (month2 - 1) % 12 + 1  year2:month2:day  day > 28  true reldate  day2 >= 28  break  reldate -= daysecs   reladd += relsign * 30 * daysecs * match[2]  relative bidspat_noday-thrdndstdaypatschars Lmatch4schars%%schars1,3 dayarrItest  wday   wday--   reldate = relative_start + reladd  reldate reldate year2:month2:1  day = 1 + (wday - wday2) + (nth - 1) * 7   wday < wday2   day += 7  reldate  newadd += (day - day2) * daysecs  bidspat-:space:wwkweekweeklyrepat match2  newadd += relsign * 7 * daysecs * match[2]  bidspat-:space:ddydaydailyrepat match2  newadd += relsign * daysecs * match[2]   relative == 2 && newadd  ( relative_start + reladd ) ( relative_start + reladd + newadd )  hd = h2 - h1   hd > 12   hd -= 24   hd < -12   hd += 24   newadd -= hd * 3600   reladd += newadd  bidspat-:space:hhrhourhourlyrepat match2  reladd += relsign * 60 * 60 * match[2]  bidspat-:space:minminuterepat  reladd += relsign * 60 * match[2]  bidspat-:space:ssecsecondrepat  reladd += relsign * match[2]   relative   time_found   anchor_end  schars  reladd += (hour * 60 + minute) * 60 + second  typeset REPLY  REPLY = relative_start + reladd   setvar REPLY2 linerest_line  date_found == 0   anchor_end  schars nums mname %Y %b %d %H %M %S year mname day hour minute second %Y %m %d %H %M %S year month day hour minute second fmt nums REPLY2 linerest_line    A   (     '                 +    8   + A        F   L     A   "       c+  C  F   c+L A       f   d   ۔ }   A       g       k#    A   B  C  f      L      C  &     A   H   (  '  A>     2P    !  r  E  a  A   |  C      A6     2@    y      A    C  %  k#  1     Q  A       U  A      %  k#       A          A  "         =       F              `         F   ,  A  A  (  C            C  F     }       A    C	  F           integer start stop shift print * local zmodload zsh/parameter return DISPLAY start stop commandskdialog KDE_SESSION_UID kdialog msgbox commandsxmessage xmessage center cmd1 uUID grep cmd1 /dev/null cmd  A        f       d қCA        F       <   A       f   p   L    A                   z    A       g     4  H      A   B  C     l  ۜ     4    
      T  u     A         A~     R  r   + ۔     R  r   +     r   + 4;   A   C  l  + 0     ۔    A       &     A,               A.        4       0G     4;   A   C       A.     r   +      A,           A     A      &       A     C  &     A   l      1  AF     R`  R  +    + ;,9   A              F   d  }  A      F   ,    A,  "      H  +    A      &     0         A     
  &     A    C
  &   h  A   B  .            G            A   X    
  	  A  0        A     C         F   d    A      F   ,    A    C    A  5      -  A,  6               A 7       A.  7   r   + A     A   "  9   r   + < 	     9         l    A,  :        Y     A  =     1  A  =        A,  >             A.  ?             A           A  C        A   B        @    ۔   +     F   ,    A.  E             q  A  B    f   @  +     F   ,    A      &     A   "  M          C  &   ,  A      f             emulate setopt extendedglob zmodload zsh/datetime local optm datefmt integer optr replyset zstyle :datetime:calendar_showdate: dateformat datefmt datefmt %a %b %d %H:%M:%S %Z %Y shift REPLY f datefmt 13,1 print 0: -f requires a date/time specification return datefmt break  optr   ! #  Usage: 0 datespec [ ... ]  #  + 12,1  ! replyset  EPOCHSECONDS replyset  replyset  calendar_scandate optm REPLY replyset strftime datefmt   A        f       d қCA        F       <   A     C  f   p   ۬   A   $          8  \  p  r+      A       g             A   (  C             <  x        A       G     J      A   B  C       ۜ   i                   A  P   H"      A  8   !     A           A  "         4 8  d  "    f           C  f       	  A      &       A  B  C  F   0  	    C  F   |    A,        r+     A     C  F     	  A   T    	  1	  A^     R  r      2P  r      R  a  A      F       A            \       A  d  	    1  A    	  f      a  A    C	     <  y       A    	       a     A   8  
      A  +        A         l       A             
  i      A   0    ,     \     )	  A    C  F   |	  	  A  "  3      	      f   |	  d -
      A           A&  6      r  
  A       F   |	  
  A      F       Q  A  9      
  A       F   |	  I  A      F       A   X    
  	  A      f   j 	    A       F   |	  !  A      F       A   X    
  	  A      f   j 
  	  A     C  F   |	  E  A      F       A      F   |	  i      A  "  L            f   k ۔3=          emulate setopt extendedglob autoload calendar_readscandatelockfiles local calendar line REPLY lockfile calendar_entries times lines_sorted lines_unsorted lines_failed lockfiles integer zstyle :datetime:calendar: calendarfile calendar calendar /calendar zmodload zsh/system b:zsystem zsystem supports flock zsystem calendar calendar_lockfiles exit calendar.new. calendar_read calendar_entries calendar_entries1 return calendar_entries calendar_scandate line (l.16..0.)REPLY:line lines_failed  #lines_unsorted  lines_sorted olines_unsorted09: lines_failed[@] print line # BAD DATE  #lines_sorted  lines_sorted[@] new Writing to new failed.  #lines_failed  Warning: lines with date that couldn't be parsed.
Output (with unparseable dates marked) left in new calendar.old Couldn't back-up calendar to calendar.old.
New calendar left in new Failed to rename new to calendar.
Old calendar left in calendar.old Old calendar left in calendar.old  #lockfiles  lockfiles    5.8.1                                     2       t      debian/zsh-common//usr/share/zsh/functions/Calendar/after     f  x           debian/zsh-common//usr/share/zsh/functions/Calendar/age          t      debian/zsh-common//usr/share/zsh/functions/Calendar/before    8  .           debian/zsh-common//usr/share/zsh/functions/Calendar/calendar                  debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_add     F  Z           debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_edit     ]             debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_lockfiles                 debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_parse           ,      debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_read     k  Ba   2  &      debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_scandate     /  +      D      debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_show     /  6   
  l      debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_showdate     1  	            debian/zsh-common//usr/share/zsh/functions/Calendar/calendar_sort      A       f     dC   A            4   D   h   A    C   f     L      A       f   Ҭ      A    C   G  ,  D       A         ,   dk       A  B        y       F       A   B  C        d     y    C   F       A          A   #       A    	    1  .A   $   r + 9      ,A   %       -      A  (B  	     k 4  }         	   F      A    	   '  ,              A    
C   '  ,         +   A  4  C   '          4  M   E  p      E        A       g  ,          A    C      A    C   f        ,A   2     p  y     A      $ +  0          A   6       0     P     A   :     l  0     ;      A              F      A       F      q  A       F        emulate zmodload zsh/stat b:zstat zsh/parameter autoload calendar_scandate local timefmt vals REPLY return zstat +mtime  # == 1  timefmt %Y/%m/%d:%H:%M:%S timefmt 1: AGEREF tmp1 AGEREF integer mtime vals1 date1 date2 REPLY REPLY2 AGEREF after  mtime >= date1  before  mtime < date1  print 0: must be named 'after' or 'before'       A       f     dC   A            4   D   h   A    C   f     L      A       f   Ҭ      A    	C   G  ,  D       A    	     ,   dk       A  B   (    y    
   F       A   B  
C        d     y    
C   F       A   
  <  ;  A   +        A          .A   ,   r + 9      A   -  	  1  A   -       .A   .     0  Q     q  .A   0             A  (B       k 4              F      A       '  ,        ,  I    A    C   '  ,        h +  A        1  .A   8   r + 9      A  (B  C     k 4  Q         C   F      A       '  ,          I    A       '  ,         +   A  4     '               E        E  4      A    C   g  ,  L  d      A \    *  &  A       f        ,A   E       y      A        1  A   G      A        1  .A   H   r   9[      A  B  C   f         C   F      A   J     $  	q   A  B     f             F      .A   M     4  y     q  A   P       A   S     $  q  A    C   F        emulate zmodload zsh/stat b:zstat zsh/parameter autoload calendar_scandate local timefmt vals REPLY return zstat +mtime  # >= 1   # > 1  timefmt %Y/%m/%d:%H:%M:%S timefmt %Y/%m/%d timefmt 1: AGEREF tmp1 AGEREF 2: AGEREF2 integer mtime vals1 date1 date2 REPLY REPLY2 AGEREF AGEREF2 AGEREF2 AGEREF22,1  date2 = date1 + REPLY  AGEREF2  date2 = date1 + 24 * 60 * 60   date1 <= mtime && mtime <= date2     A       f     dC   A            4   D   h   A    C   f     L      A       f   Ҭ      A    C   G  ,  D       A         ,   dk       A  B        y       F       A   B  C        d     y    C   F       A          A   #       A    	    1  .A   $   r + 9      ,A   %       -      A  (B  	     k 4  }         	   F      A    	   '  ,              A    
C   '  ,         +   A  4  C   '          4  M   E  p      E        A       g  ,          A    C      A    C   f        ,A   2     p  y     A      $ +  0          A   6       0     P     A   :     l  0     ;      A              F      A       F      q  A       F        emulate zmodload zsh/stat b:zstat zsh/parameter autoload calendar_scandate local timefmt vals REPLY return zstat +mtime  # == 1  timefmt %Y/%m/%d:%H:%M:%S timefmt 1: AGEREF tmp1 AGEREF integer mtime vals1 date1 date2 REPLY REPLY2 AGEREF after  mtime >= date1  before  mtime < date1  print 0: must be named 'after' or 'before'       A        f     dC   A        F       <   A  0  C  '   p                   <  `       A  ,       p                H       A  `    '  h              j  "            E        E  $      E  8      A  4    G  T  t            J    0       A  ,  C    X  x          0  P       A          p   h         A  4    G   p       ,  P  x             A       g   p          A  B     f   L          F  T     A  B     f   L  p       F  T     A  B        4           F  T     A       f  Ҭ     A  B  C          	A  	x          	  	     ,A          	      A  B          
I  
  
          
        A  B  C        U    ,         ,        A  B  C          e                    A  B            A  p                   A          A   "      A        1  .A   #   r  l      A   $     <  Q  A    	C   f       A    	          F      ,A   (       %     A   )     H  q  A   +        A  B   /           F  T     A       '          ,     A    C      pz  @  `       A     MN  .A   7   r  } <     A   8       ,A   9   z       ,A   :     @  %      A  ""   ;  `R  R  u   r  u            &    A <    CN  A   <    u   A   C    u  0           A        1  A   B      ,A   C     `       .A   D     @        Q  A   E       ,A   F     `       .A   G     @        q   A     C          f     I  A       F  T    A x    \  u  "0          ,A   O     P       A  \    
  
1  A   P        A     C          f     A  A       F  T    	0          .A   X             "0     r     ,A   ]     $       A  \    
  
1  A   ^     L   A               f       A       F  T    
0          A         ,  Q     0     
     A   q       0        	  A   v       0     "   
  A   {       0     "     A        $  0          A        X  0          ,A               A          	0          .A        t       	0   l     .A          u     0     ;      A    &          F      A    '   F  T    ,A      z  E     .A        @  u      A    (             A    )   F    !   A  B        P                   A   *  3  $  A           A    *    1  .A      r +{r     .A          I     Q  .A      r +l     .A         +        A  d  ,    1  A    ,   f    +   A    ,C          F      A    ,   F  T    .A               A    -   &    q  \A          -     j  q     "        A     .             I  .A          u      A    /       #       A   0  \  G1  A           A d  0C  +    .A      r + 9[      A  l  0    1  A    0              A    0          F    9  A    1   F  T    A          Q  .A      r +l     .A         +        A  d  2    1  A    2   f    +   A    2          F      A    3   F  T    .A                A    4      A           A    4C                A    4          !  E   A    4          F    ]  A    5   F  T    A    6   &    q A     #+  	0          .A               	0          .A               	0     ;     .A               .A                 A  X  ;  
  	  A        !%   A    ;          F    !9  A    <   F  T     A    <   f  !Ҭ  "   A  "       "A    =C   f k 4  "i   A    =    1  A        "   A    >   f   t  "   A    >C   f    "     A    >   f   t  #  A  T  >  	  1  A        #$  A    ?   F    #U    A    ?   f    #q  E   A    @   '   p        #  #   A  B  @     $Xs4  $q  $    @   F  T    A "  A  \       A l  BC  [5  Y   A    B      A  
    "A  A    C      A  "  C      4  $  $  "  C   f  %  %(  %L   "  C        %   f  %d  %L       D        %   f  %  %L  "A  A    D   &    q  A  B  E   f  %    "A    E   F  &     A    F   F  &,     A p  FC  ,           &e   A  B  F   F  &  &    F   &  '   A       '%  ,A  !     'x  '     A  #    1  A  #    '  A  $     (!  .A  %     (  (     q  A  '     )(  .A  (     )       A  +  	  1  A  +    )  A  -     )  A  .     *|  q  A  0     *   A    M      A  4     *   A    MC   F    +%   A    M   f   t  +q   A    M   f    + +  A  4  N    1  A  8    +  A    NC   F    +  A  <     ,   A  l  OC      A  =     ,   A    O     -  -5     .A  ?        -i     q  .A  A        &      A    P   %  x     tA  E    .A  E   r  -  .	     .A  F        .     ,A  I        /!      A D  R  '    A  J     /   A  0  S   D     $         0    E  0  A  M     18  A  "  O     1d    O     1  Q  A  P    +  A  Q     1  A    T    1  A  R     2L  ,A  S        2     A  0  U   D     $         3]    E  3  Q  A  U     3  A  X     1   A   V  1  0  A  [    +   A    W      A  \     4    A    W        H  4u  4  A  _  	    VA  _  2     4  4        5!  5I     .A  `   E  H      A    X     5|  5     A  h     6  q  A  j     6  A  m    1  A  m     6  A  o     7\    A  r     8  A  "  t     8L    t     8p  ^A  v    1  A  v     8  A  w     9L  A   ^  5  51  A  z    "A  A   ^  1  1  A  {     9  A    _C    1  A  !  _C   D     "A   f     &  A  P  _  	    A  ~     9  A       9  A    `          F    :	  Q  A       :  A       :  q  A    a    1  A  !  a   D     :   f     &  A  P  b  	    A       ;  A       9  A    b          F    ;9  Q  A       ;  A       :   A 4  d  %  %1  A      +  A   e  !  1  &A      ;    ,A       J  ;     A  |  e   D     $  I       A  "     I    f   f    L,  A  ,  fC  &      <  ;  =  =-  ;  ;      
q  ,A          =m     A  0  g   D     $         >    E  ?1   A   h  "  1  A       ?p   A    h    
1  A    h   f j    ?   A    i          F    ?  A       A  
Q  A    i   f j  AA     A    j          F    Ae  A       A  .A       B        A      "A  A    k   f k 4  B  A  8  l  ,           B  A    l     C0 d  Ce  &      A  "       C    m   f k 4  C  A    nC   F  &  C      T  n  i       A  "    r  $    o   F  r  $  A    oC   f k 4  $        emulate setopt extendedglob local line showline restline REPLY REPLY2 userange nobackup datefmt calendar donefile sched newfile warnstr mywarnstr newdate integer time start stop today ndays next shown done nodone integer verbose warntime mywarntime tcalc tsched rstat remaining integer showcount icount repeating repeattime resched showall brief calendar_entries calendar_addlines times calopts showprog lockfiles match mbegin mend tmplines reply zmodload zsh/datetime return zsh/zutil zsh/files b:zf_ln autoload calendar_addparsereadscandateshowlockfiles zstyle :datetime:calendar: calendarfile calendar calendar /calendar calendar.new.HOST. :datetime:calendar: donefile donefile donefile calendar.done :datetime:calendar: showprog calendar_show :datetime:calendar: warntime warnstr warnstr 0:05 :datetime:calendar: dateformat datefmt datefmt %a %b %d %H:%M:%S %Z %Y warnstr  warntime = warnstr  calendar_scandate print warn-time value 'warnstr' not understood; using default 5 minutes warnstr 5 mins  warntime = 5 * 60   warntime = REPLY  calendar integer opti optrest optarg argvopti+1  opti++  argvopti2 argvopti3,1 opt break BCnS optrest  opti < #  argv++opti 0: option -opt requires an argument. optarg  brief <= 0  0: option -opt requires a positive integer. calendar showcount  showcount <= 0  0: option -opt requires a positive integer. s.:.optarg  showall = 1   brief = 1   done = 1   nodone = 1   remaining = 1  showcount 0: unrecognised option: -opt optrest1 optrest2,1 calopts argv1,opti shift ( opti )  done && !nodone  donefile  # > 1 || (# == 1 && remaining)  EPOCHSECONDS 0: failed to parse date/time: 1 REPLY %:%D{%Y} %:%D{%m} %:%D{%d} strftime %Y/%m/%d y/m/d today %u start  # && !remaining  12,1 0: failed to parse relative time: 1  stop = REPLY  0: failed to parse date/time: 1  stop < start  datefmt REPLY2 datefmt stop 0: requested end time is before start time:
  start: REPLY
  end: REPLY2 ( start + ndays * 24 * 60 * 60 )  #  Usage: 0 [ start-date-time stop-date-time ] autoload matchdate donefile newfile  verbose  start:  datefmt stop:   remaining  none datefmt mycmds TMPPREFIX:-/tmp/zsh.calendar_cmds.$ zf_ln <<<'' mycmds zsh/system b:zsystem zsystem supports flock zsystem /dev/null zsystem calendar_lockfiles exit calendar_read calendar_entries calendar_parse line continue  t = reply[time]  restline replytext1 replywarntime  mywarntime = t - reply[warntime]  mywarnstr replywarnstr  mywarntime = warntime  mywarnstr replyrpttime  repeattime = reply[rpttime]   repeating = 1   repeating = 0   verbose  Examining: line   Date/time:  datefmt sched   Warning mywarntime seconds (mywarnstr) before  shown = 0   brief  tmplines (f)line Ftmplines1brief showline b\n:space:#\n\n match[1]match[3] showline%%:space:  showall || (t >= start && (remaining || t <= stop || icount < showcount))  qqshowprog qqshowline  icount++   t <= EPOCHSECONDS   shown = 1   tsched = t - mywarntime   tsched >= start && tsched <= stop due in mywarnstr: showline qqshowprog qqshowline  tsched < start   shown && repeating  datefmt repeattime newdate :space: restline :space: calendar_addlines newdaterestline  tcalc = repeattime, resched = 1   tcalc = t   tcalc - mywarntime > EPOCHSECONDS   tsched = tcalc - mywarntime, resched = 1   tsched = tcalc   !shown   resched = 1   resched && (next < 0 || tsched < next)   next = tsched   shown   done != 3   done = 3  Failed to append to donefile  done != 3   done = 2  newfile  done != 3  Failed to append to newfile  done != 3  next (@)zsh_scheduled_events#*:*:Icalendar s qqsched calendar calopts[@] No more calendar events: calendar not rescheduled.
Run "calendar -s" again if you add to it. qqshowprog qqshowline  done == 2  calendar.old Couldn't back up calendar to calendar.old.
New calendar left in newfile.  rstat = 1  newfile Failed to rename newfile to calendar.
Old calendar left in calendar.old. nobackup newfile calendar_addlines calendar_add nobackup  #lockfiles  lockfiles rstat       A       f     dC   A       F       <   A    C   '   p               A       '   p          5   A       '   p        "  u   A  ,  C     p        z  ,  @       A  $        p   X             A  (         ,  L  `  x           A       G           A     C      p     @  h       A           p              A       g   p           A    C   f  Ҭ  A   A      
  A       f    z  A          	0           .A               	0     b     .A   "     x       	0     ;     A    	   F  ,     A    
   F  H  a   A  B  C                  .     D  i     ,A   /             A    C   '   p             A  `      
  A       F  $  a   A              F      A       F  ,     A         	  	E     A   7     	   A          A            	  
   A    C   G   p  
T       A  B          
u  
  
     ;     
  	      A         p         .A   =             A 4    %  %1  A   ?    i  A   @       A    C    1  .A   A   r    P     A   B     x  
  .A   C   r          A    C     p         .A   F            q   A  B   I   r    )        I   E    E      A         p       ]  .A   K   E          A       '   p        (  E  |A   T    1  .A   T   r  Y  }     .A   U            A 	d  C  J       A 	4    Iu  G   A    C      A   ]       A        1  A  "        4  4  `  "     f                   ,   f        A    C   &      A  B     F  T         F       A       1  A   g       A       F       A x        A   j      A T              !   A  B  C   F  $  i    C   &     A                A     }  |  .A   p   r  i       ,A   q       9     A     t  t1  .A   r   r  u        A  x        A   w  R    A       1  NA     p2  r       r  -  u   	  A        x  A    !   &    A    "  _    A          A    $   &  X  Y  ,A        ,  }      A    *   %        A  T  *    .A      r       
   A    +            .A        ,        A  \  +  
  
1  A        =   A    ,     p         A    ,           A          @     E  ,A              FA         VA     2   r          r  i       .A                	   A  B      r  i  )           E    E     .A      E          ,A          i     A    2    1  A    2   F  $  !   A    2     !<  !e     A        !  A    3C    1  A    3C        "!  
   A    3        "E  
  "h   A    3     p     "    .A                A    6C        %  i       A   6  8          "   A  B  6   F  $  i    6   &  "   A    7     #  #A      A  L  7C    1  A        #   A    7         $%  A        x   A    8    1  fA     2  r  $I    `2       r  i  $}     ,A          $     A  "      r    u       9C   &  $   A  h  9      NA     p2  r  %	  %M   r  i  %q      A  "        %    :   &  %  A        x  A    :         i  A  B        %    ;C         %      A    ;      A        &  A  \  <  
  
1  A    <   f j    &Q   A    <C          F    &  A        '    A  B        %  $  =        (         '  A  l  >    1  A  "        (8    >   f j  (]     A    >          F    (  A        '      A  "        )    @   f k 4  )  A    @   F    *%        emulate setopt extendedglob local context :datetime:calendar_add: vdatefmt %Y%m%dT%H%M%S [[:digit:]] calendar newfile REPLY lastline text occur calendar_entries lockfiles reply occurrences integer my_date done rstat nolock nobackup new_recurring integer keep_my_uid parse_new parse_old match mbegin mend my_uid their_uid autoload calendar_parsereadlockfiles getopts BL opt nobackup return shift ( OPTIND - 1 ) zstyle context calendarfile calendar calendar /calendar calendar.new.HOST. addline * calendar_parse addline print 0: failed to parse date/time parse_new (@kv)reply  my_date = parse_new[time]  context reformatdate datefmt context dateformat datefmt datefmt %a %b %d %H:%M:%S %Z %Y strftime datefmt parse_newtime REPLY parse_new[text1] parse_newrptstr  new_recurring = 1  parse_newrptstr CANCELLED  done = 1  addline b:space:#RECURRENCE:space::space::space: vdatefmt parse_newschedrpttime match[1]REPLYmatch[3] addline \n \n parse_newschedrpttime   # RECURRENCE REPLY uidpat (|*[[:space:]])UID[[:space:]]##(#b)([[:xdigit:]]##)(|[[:space:]]*) addline uidpat Umatch1  ! nolock  zmodload zsh/system b:zsystem zsystem supports flock zsystem calendar /dev/null calendar_lockfiles exit calendar_read my_uid line calendar_entries line continue parse_old (@kv)reply uidpat Umatch1 their_uid parse_oldrpttime new_recurring parse_newtext1 :space:#OCCURRENCE:space::space::space:CANCELLED:space: continue  new_recurring  continue addline occurrences text b:space:#OCCURRENCE:space::space::space::space::space: occurrences match2 match[1] match[3]  ! #occurrences  my_date occurrences XXXXXXXXTXXXXXX REPLY ooccurrences occur%%:space: REPLY :digit:c8T:digit:c6 b:space:#OCCURRENCE:space:REPLY:space::space::space: match[1]match[2]occurmatch[3]   # OCCURRENCE occur addline parse_new (@kv)reply  my_date = parse_new[time]  context context datefmt datefmt calendar_entries continue parse_old (@kv)reply  ! done && parse_old[time] > my_date  addline keep_my_uid uidpat Umatch1 continue parse_oldtime my_date addline  done  continue addline newfile  ! nobackup  calendar.old Couldn't back up calendar to calendar.old.
New calendar left in newfile.  rstat = 1  addline newfile  !rstat  newfile Failed to rename newfile to calendar.
Old calendar left in calendar.old.  #lockfiles  lockfiles rstat    A        g          ,       A                P   x       A    C   G             A  X    
    A           A                   A         (  E      A  \  c      &    C  N  A    C   F       A  "      r                  T   A  B  C            H          l        A $          A     5     A        1  A  "        4      "     f  4  T  x     C           f    x    A       &      A  B  C   F         C   F  L    A       f  `  u        A  "   "            f k 4        A  "   &     ,    	   F  d     local line calendar lockfiles editor integer cal_running  #  editor @ editor VISUAL:EDITOR:vi sched read line  calendar -s - -  cal_running = 1  zstyle :datetime:calendar: calendarfile calendar calendar /calendar zmodload zsh/system b:zsystem zsystem supports flock zsystem calendar /dev/null calendar_lockfiles exit eval editor $calendar  #lockfiles  lockfiles  cal_running  calendar      A    C             ,   P       A  (     '   p              E         A     a        ,A                 A   C  7L  L  d     A  t      1  A  0                      sb        A         (       A       &  P   A  d      1  A  "     &+c       R  i  ,A               A       f+c l  I   A  T    	  	1  A        l   A                 f   L    A          A  `      1  A       f   ,  8  A       f  h     q  A    C   F       A  P  	  	    A   $    %   A    	C   f+c l  I  .A   &             A    
      .A   (             ,A   )             A  d      1  A       &+c  A    C   f+c l      A              F      A       F      A       F        local file lockfile msgdone integer lockattempts loadtried lockfile file.lockfile i = 0 i <= lockattempts i++  file lockfile /dev/null lockfiles break msgdone msgdone lockfile: waiting to acquire lock msgdone  ! loadtried  zmodload zsh/zselect  loadtried = 1  zsh/zselect zselect ( 10 + RANDOM * 190 / 32768 ) sleep msgdone msgdone///  msgdone lockfiles1 msgdone Failed to lock file; giving up after lockattempts attempts.
Another instance of calendar may be using it.
Delete lockfiles if you believe this to be an error. msgdone print msgdone return      A       f     dC   A    C   F       <   A       '   p               A  0  	C  '   p          @  l             A     	      p       $       A  $  	     8{r  X  l           A    
   g   p          A       f  Ҭ  4   A       g  |<         A       %        A  X    
  	  A   2        A              F      A       F  `     A  B  C   f  4 +    C   F  `    ,A   :     }       ,A   ;            ,A   <     A  u     ,A   =       	      A     1N  A       &  H  A   C    ]   0            A  B  C       X                  F    E  ,A   G       		     .A   H     	!  	U     *0     	     A    C      A    C     4  
q   
  
  ,A   N     
  !     ,A   O     =  y     .A   R       	     q  .A   U            U0     5     ,A   Z            ,A   [            A     !  1  .A   \   r    5     ,A   ]            ,A   ^     =  t     ,A   _            .A   `       P       A    C     4    y    ,A   e            ,A   f     9  q     .A   i       y     q  .A   l            0     u     ,A   q       M     .A   s            0     ;     A       &  8   A D    g  g1  FA   |  `2    Q            A   ~       ,A        X       ,A        }  y     lA       1  A          .A          y      A   !    A           A  D  !    1  A    !     4        A    "   &  8   A  0  "      A        a  A    #   &  8  ,A          !     ,A          !     lA       1  A        9  .A          !     ,A                A    %C      A        %   A    %        l      ,A        @       nA       1  A         .A                A    (  ,     @     =  A    (C      .A        q        A  B  (       X        (          F      nA       1  A          .A          		     .A        =       ,A               A    ,C   F  `      emulate setopt extendedglob local vdatefmt %Y%m%dT%H%M%S REPLY REPLY2 timefmt occurrence skip try_to_recover before after match mbegin mend integer then replaced firstsched schedrpt occurrences autoload calendar_scandate typeset reply  # != 1  print Usage: 0 calendar-entry return replytime ( REPLY ) schedrpt replytime replytext1 REPLY2:space: replytext2 replytext1 true replytext2 b:space:#RECURRENCE:space::space::space: strftime vdatefmt match2 format: vdatefmt, string match[2] schedrpt then replytext2 match[1]match[3]##[ 	]# b:space:,WARN:space: asm replytime match2 replywarntime REPLY replywarnstr match2%%REPLY2 replytext2 match[1]REPLY2##[ 	]# replytext2 match[1]match[2]##[ 	]# b:space:,RPT:space: before match1 after CANCELLED:space: replytext2 beforematch[2]##[ 	]# replyrptstr CANCELLED replyrpttime CANCELLED replyschedrpttime CANCELLED schedrpt replytext2 beforeREPLY2##[	]# replyrptstr after%%REPLY2 replytext2 beforeafter##[[:space:]]# b:space:#OCCURRENCE:space::space::space::space: occurrencesmatch2 match[3] replytext2 match[1]match[4]##[ 	]# break replyrpttime replyrptstr CANCELLED  now = EPOCHSECONDS  replaced replyschedrpttime  schedrpt >= now   reply[schedrpttime] < now || replaced  replyschedrpttime replyrptstr  REPLY <= reply[schedrpttime]  replyschedrpttime  reply[schedrpttime] > now && firstsched == 0  replaced  #occurrences  timefmt occurrencestimefmt occurrence replaced occurrences occurrence CANCELLED occurrence format: vdatefmt, string occurrence  then > now && then < reply[rpttime]  replyschedrpttime firstsched replytext2 reply[text2]##[[:space:],]#       A  (  C   '              +   E   <      A       g        P       A          P   i      A       %        A            <       A  |  C    
1  .A      r  !  9      nA       1  A        m  .A      E           A         H         local calendar line lines f<$calendar calendar_entries lines line :space:  #calendar_entries  calendar_entries1 \nline calendar_entries line&     A    &   f     dC   A    &C   F       <   A  B  &   f   p L       &   F        A    (   '                 A    )   '           `     A    )   '                A    *C   '           T  q   A    *   g             A  ,  *    ss{j+#+CK2      A    +   '                A    -C   '                A    -   '                A    .   '             U   A    .   '                A    /   '             !   A    /   '          (  I   A    0   '           "     A  D  0            4"  P  d  x    Cr           A  8  0  g   z    	  	,  	D  	\  	x Ӣ  	  	       A     1         	  	  	       A    1   g  
  
0  
\       A    2   G  
  
       A     3     
  
    8  d       A     3C                    A  \  3     $  D  h                 E         E B      E B      E #B      A `  4    A    4   f    =z  A 4  4C  K  m  0     
      A          0     
     A          0     "     A        (  0     j     A        X  0          A          0          A          0          A        p  0          A          	0     ;     A    >C   F        A    ?C   F      ,A         +      A    @C        <  T       A    )    A         ,A       <       ,A       T       A    	  1  A       H  .A         u     q  .A  
            A      1  NA    p2  r       r       	  ,A         i     .A              	q  ,A       <       ,A       T       .A              ,A       	        A    I   G            ,A  (        5    A  )      .A  )     	     
  ,A  *     d       ,A  +     x  !     ,A  ,       I      A  "  -   r  q       "  -         -       .A  .     
\      A  0      A  0       ,A  2        a    VA  3      .A  3     	       ,A  4     d       ,A  5     x  !      A  "  6   r         "  6         6     <  .A  7     
\      A  :      A  :     p  ,A  <            VA  =      .A  =     	       ,A  >     d       ,A  ?     x        A  "  @   r  !       "  @         @     H  .A  A     
\      |A  D    1  A  D     |  ,A  F            A  G    1  .A  G     	       ,A  H     d       ,A  I     x  !     ,A  J       I     .A  K     
\      LA  N    1  A  N       ,A  O        U     A  P    1  .A  P     	       ,A  Q     d       ,A  R     x  !     .A  S     
\      A  V  .  -  A  V     H   A  "  Y         Y            ,A  [            .A  \  !  !1  .A  \     	       ,A  ]       !     ,A  ^            ,A  _   "  I     ,A  `     d       ,A  a     x  q     ,A  b            ,A  d     
\       ,A  e     
0       ,A  f     8        .A  g      ,   Q      A  "  j      x    j     d        A   [    1  A  l        ,A  n     
  !!     ,A  o     !L  !q     A  u    1  ~A  u  R   r  !  !     R   r  !  #)      r  !  $1     A  x     %u  .A  y    Ӣ  i     ,A  {       %     A  "  |     &    _   F  &  &   A |  _  1  A       '   A X  `C     $0     '     ,A              ,A              ,A     "  I     DA       8  !!     (  (     .A       
0       $0     (     ,A              ,A       	,       ,A     "  I     DA       8  !!     )  (     .A       
0       $0     *     ,A     "       ,A       	,       ,A              DA       8  !!     +  +     .A       
0       $0     +     ,A       	,       ,A     "  !     ,A              DA       8  !!     -`  +     .A       
0       '0     -     ,A     "       ,A       	,        A    j     .     .  /	  DA       8  !!     /@  (     .A       
0       '0     /e     ,A       	,       ,A     "  !      A    l     .     .  0  DA       8  !!     0  (     .A       
0       $0     1     ,A     "       ,A              ,A         q     DA       8  !!     2h  2     .A       
0       $0     2     ,A              ,A     "  !     ,A         q     DA       8  !!     4  2     .A       
0       r0     41      A    sC   g  4  5         A    s   '           50  5Q  DA       8  !!     5  5      A    t   g      5       A  0  u  %  5ss{j+#+CK2s     A       5  A       6x   A    vC     .   6  6  7	   A  "       7          7h  A       7   A    wC     .     .  7	   A    w     .     8U  7	   A    w     . "  8i  7	  .A       
0       q0     8}     A       6x   A    y  <  9  0     9      A       9  0     :,   !  A       :P  *0   {r   "  \A       
\       :       
        A    |C     .   d  :  7	   A    |     .   x  :  7	  A    |     .     :  7	   A    }     .     .  7	   A    }     .     8U  7	   A    ~     . "  8i  7	  DA       8  !!     :  5     .A       
0        A     r  r1  A       ;  A      1  A       ;  |A      1  .A     r  ;  <U   #  .A       8  <     .A         <     A      _  ^  A       =   A X  C  J  .  A  	     ;  \A      1  A       =  A       >`  \A      1  A       ?  A       ?l  A        1  A       @  A  X    
  1  .A       @}  A   $  A       F       q  .A  "       AE       A  $     B,  A  '    1  .A  '     B  C5   %  A  4     Ch  .A  5       D5     q  .A  8       E        A  P    	    A  "  @     F    A     F)  F   &  A       F        A    C     .     .  F   A         .     8U  G	   A         . "  8i  GA  A  I     Gx  A  |      1  A  K     G   A       f  &  G  Hu   A  "  N     I       f  &  I-  I  A       F  &  JU   A 	t  C - -1  A  U     J   A        1  A  V     K   A    C     .     .  KQ   A         .     8U  KQ   A         . "  8i  KQ  A         .    K  K   A D    '  '1  .A  ^   r    L%   '   A  "  _  R      _     M        A          A  `     K  A  d     M9   A    C     .    K  M   A         .   4  8U  NA   A  "  i     Nd    i     N  A  l     O   q  A  n     Om  ,A  p       Pu     .A  q     
\        A     ;  :  .A  s   r    Q-   (   A  "  t  R      t     RE        A X  C  *  '1  A  u     K  A  w     Ri  A  x    1  A  x     S  A  z     SD  q  A  |     TT   A         .    K  U]   A          A       U  A  t      A       &  U   A    C     .   P  8i  V   A  "       V0       &  Vd  A       V|  A       O   q  A       V  ,A         Pu     .A       
\        A     <  <1  VA    2   r  W     )   r    W   *  ,A     Cr       ,A       	  X     ,A         Y     A d    +  +1  A       Y  ,A         Pu     ,A       
\       A       Y  A       Z    A         .     .  Z   A    C     .   4  8U  Z   A         .    K  Z   A         .     6  7	  A       [T   A  "       \          \<   A    C     .   P  8i  \i  A       \ $A        .A     r    ]   +   A  "    R           ^	       A       ^-  ,A         Pu     .A       
\      $A        .A     r    ^   ,   A  "    R           _       A       _  ,A         Pu     .A       
\        A          A       `   A         .  B  :  a   A         .  B  :  a  A       b,  A    	  1  A       bh  A       b  Q  A       b  A       b  A       c  A       cl $A        .A     r    c   -   A  "    R           d       A       d  ,A         Pu     .A       
\       A      1  .A     r    e}   .  A       fQ  ,A         Pu     .A       
\       A      1  .A     r    f   /  A       g  ,A         Pu     .A       
\        A |  C  .  (  A       hP   A     !  !1  A       h|   A  `      
  A       h  A  <      1  .A         h   0  A       F       A       i   A       g  i <  i      A       j   A  "      j        G  i <        j  j  A       F       A    C   F       Q  A  
     k  A       F        A  `  Ã    
  A       k`  A  <      1  .A         k   1  A    C   F        A    C   g   k2  k     A      1  A      k  ,A     k2  k     .A       k  lE     q  ,A     k2  l     .A       k  m=      A     ǃ     .   i   m  m   A  "       j        G  i <        n  n-  A    ȃ   F         emulate setopt extendedglob zmodload zsh/datetime return local tschars [-,:[:blank:]] tspat_anchor (tschars#) tspat_noanchor (|*tschars) schars [.,[:space:]] dayarr dayarr daypat schars#((#B)((j.|.)dayarr)[a-z]#~month*) dspat_anchor (|(#B)(daypat|)(#b)schars#) dspat_anchor_noday (|schars#) dspat_noanchor (|*schars) repat (|s)(|schars*) monthpat (jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[a-z]# integer daysecs ( 24 * 60 * 60 ) [[:digit:]] integer year year2 month month2 day2 hour minute second then wday wday2 line orig_line mname MATCH MBEGIN MEND test rest_line match mbegin mend integer date_found time_found integer time_ok integer time_start time_end date_start date_end integer anchor anchor_end debug setvar integer relative relative_start reladd reldate relsign newadd getopts aAdmrR:st opt  anchor = 1   anchor = 1, anchor_end = 1   debug = 1   relsign = -1   relative = 1   relative_start = OPTARG, relative = 2   setvar = 1   time_ok = 1  shift ( OPTIND - 1 ) dspat dspat_noday tspat  anchor  dspat_anchor dspat_anchor_noday  relative  tspat_anchor tspat_noanchor line b\n\n match1 rest_line match2 dspat_noanchor rest lineibmtspat0-12:0-59.:0-59.-:space:ap.:space:m.:space:e rest match3 match5 match7 ip  hour <= 12   hour += 12   time_found == 0  lineibmtspat0-12:0-59:space:ap.:space:m.:space:e match4  hour <= 12   hour += 12   time_found == 0  lineibmtspat0-12:space:ap.:space:m.:space:e  hour <= 12   hour += 12   time_found == 0  lineibmtspat0-24:0-59.:0-59.-.:space:e  time_found == 0  lineibmtspat0-24:0-59.:space:e  time_found == 0   anchor  tspat_anchor lineibmtspat""":ddddddddTdddddd:space:e match6 match8 mbegin3 date_end mend1  hour == 24   time_found && ! date_found  mbegin2 time_end mend1 linetime_end+1,1 b:space:AZAZAZ+09090909:space:e b:space:AZAZAZ+0-12:space:e b:space:AZAZAZ+0-12AZAZAZ:space:e  time_end += mend[-1]  line1,time_start1linetime_end+1,1  debug  print line after time: line  relative == 0 && date_found == 0  bidspat19200909/1-12/1-31 date_end mend5 bidspat19200909/monthpat/1-31 date_end bidspat1-31thstndrd:space:monthpat,:space:19200909 date_end mend6 bidspatmonthpat:space:1-31thstndrd,:space:19200909 date_end bidspat1-31thstndrd:space:monthpat,:space: strftime %Y EPOCHSECONDS date_end bidspatmonthpat:space:1-31thstndrd,:space: EPOCHSECONDS date_end bidspat1-31thstndrd/1-12,:space:/19200909 date_end mend7 bidspat1-12/1-31thstndrd,:space:/19200909 date_end bidspat_nodaydaypatschars integer wday_now wdaystr Lmatch3 date_end mend2 wdays  wday = wdays[(i)wdaystr] - 1   then = EPOCHSECONDS  wday_now %w then  wday_now < wday   wday_now += 7   then -= (wday_now - wday) * 24 * 60 * 60  %m %d bidspat_nodayyesterdaytodaytomorrownowschars Lmatch2 yesterday  then -= daysecs  tomorrow  then += daysecs  time_end %H %M %S date_end  date_found || (time_ok && time_found)   date_found  line1,date_start1 bidaypatschars mbegin1 line1,date_start1linedate_end+1,1  time_found == 1   time_start <= date_start   date_start += time_end - time_start + 1   time_start <= date_end   date_end += time_end - time_start + 1   time_end + 1 < date_start  orig_linetime_end+1,date_start1 schars orig_line[1,time_start-1]orig_line[date_end+1,-1]  date_end + 1 < time_start  orig_linedate_end+1,time_start1 tschars  time_found = 0, hour = 0, minute = 0, second = 0  orig_line[1,date_start-1]orig_line[date_end+1,-1] orig_line[1,date_start-1]orig_line[time_end+1,-1]  anchor  orig_line1,time_start1 tschars EPOCHSECONDS EPOCHSECONDS EPOCHSECONDS  date_found = 1   debug  Time string: time_start,time_end: 'orig_line[time_start,time_end]'  date_ok  Date string: date_start,date_end: 'orig_line[date_start,date_end]' Remaining line: 'linerest_line'  relative   relative == 2  relative_start %Y:%m:%d year:month:day bidspat-:space:yyryearyearlyrepat match2  year2 = year + relsign * match[2]  year2:month:day reldate  month2 != month   reldate -= daysecs   reladd += reldate - then   reladd += relsign * ((365*4+1) * daysecs * match[2] + 1) / 4  line1,mbegin21linemend4+1,1 bidspat-:space:mthmonmnthmonthmonthlyrepat match2  month2 = month + relsign * match[2]   month2 <= 0   year2 = year + month2 / 12 - 1, month2 = month2 + (year-year2)*12   year2 = year + (month2 - 1)/ 12, month2 = (month2 - 1) % 12 + 1  year2:month2:day  day > 28  true reldate  day2 >= 28  break  reldate -= daysecs   reladd += relsign * 30 * daysecs * match[2]  relative bidspat_noday-thrdndstdaypatschars Lmatch4schars%%schars1,3 dayarrItest  wday   wday--   reldate = relative_start + reladd  reldate reldate year2:month2:1  day = 1 + (wday - wday2) + (nth - 1) * 7   wday < wday2   day += 7  reldate  newadd += (day - day2) * daysecs  bidspat-:space:wwkweekweeklyrepat match2  newadd += relsign * 7 * daysecs * match[2]  bidspat-:space:ddydaydailyrepat match2  newadd += relsign * daysecs * match[2]   relative == 2 && newadd  ( relative_start + reladd ) ( relative_start + reladd + newadd )  hd = h2 - h1   hd > 12   hd -= 24   hd < -12   hd += 24   newadd -= hd * 3600   reladd += newadd  bidspat-:space:hhrhourhourlyrepat match2  reladd += relsign * 60 * 60 * match[2]  bidspat-:space:minminuterepat  reladd += relsign * 60 * match[2]  bidspat-:space:ssecsecondrepat  reladd += relsign * match[2]   relative   time_found   anchor_end  schars  reladd += (hour * 60 + minute) * 60 + second  typeset REPLY  REPLY = relative_start + reladd   setvar REPLY2 linerest_line  date_found == 0   anchor_end  schars nums mname %Y %b %d %H %M %S year mname day hour minute second %Y %m %d %H %M %S year month day hour minute second fmt nums REPLY2 linerest_line       A  (      '               +      8 +   A        F   L     A  "     +c    C   F+c L   A       f   d    }   A       g    #k       A  B  C   f    L       C   &     A H    (  '  >A     P2    !  r  E  a   A  |  C      6A     @2    y      A    C  %#k    1     Q  A       U  A      %#k         A          A  "         =        F             `          F  ,  A  A  (  C            C   F     }      A    	C   F        integer start stop shift print * local zmodload zsh/parameter return DISPLAY start stop commandskdialog KDE_SESSION_UID kdialog msgbox commandsxmessage xmessage center cmd1 uUID grep cmd1 /dev/null cmd     A        f     dC   A        F       <   A       f   p L      A                z       A       g    4  H       A  B  C     l       4     
     T  u      A        ~A     R   r +       R   r +       r +;4     A   C  l +  0          A       &    ,A               .A        4       G0   ;4     A   C       .A      r +       ,A           A     A       &       A    C   &     A  l      1  FA     `R  R +    +9,;      A              F  d  }  A       F  ,    ,A   "     H +     A       &    0          A    
   &    A    
C   &  h   A  B   .            G            A  X    
  	  A   0        A    C          F  d    A       F  ,     A   C    A   5     -  ,A   6             A   7      .A   7   r +  A      A  "   9   r + <   	     9       l     ,A   :       Y     A   =    1  A   =       ,A   >            .A   ?             A          A   C        A   B       @      +       F  ,    .A   E            q  A  B     f  @ +       F  ,    A       &     A  "   M         C   &  ,  A       f          emulate setopt extendedglob zmodload zsh/datetime local optm datefmt integer optr replyset zstyle :datetime:calendar_showdate: dateformat datefmt datefmt %a %b %d %H:%M:%S %Z %Y shift REPLY f datefmt 13,1 print 0: -f requires a date/time specification return datefmt break  optr   ! #  Usage: 0 datespec [ ... ]  #  + 12,1  ! replyset  EPOCHSECONDS replyset  replyset  calendar_scandate optm REPLY replyset strftime datefmt      A        f     dC   A        F       <   A    C   f   pҬ      A  $          8  \  p+r         A       g             A  (  C             <  x         A       G    J       A  B  C          i                   A P    "H      A 8    !      A          A  "        4  8  d  "     f          C   f      	  A       &      A  B  C   F  0  	    C   F  |    ,A      +r        A    C   F    	   A  T    	  	1  ^A     R  r      P2  r      R  a  A       F       A           \       A  d  	    1  A    	   f     a  A    	C     <  y       A    	       a      A  8  
      A   +       A         l        A            
  i       A  0    ,     \     	)  A    C   F  	|  	  A  "   3     	       f  	| d  
-       A          &A   6     r  
   A       F  	|  
  A       F      Q  A   9     
   A       F  	|  I  A       F       A  X    
  	  A       f j  	     A       F  	|  !  A       F       A  X    
  	  A       f j  
  	   A    C   F  	|  E  A       F      A       F  	|  i      A  "   L            f k3  =        emulate setopt extendedglob autoload calendar_readscandatelockfiles local calendar line REPLY lockfile calendar_entries times lines_sorted lines_unsorted lines_failed lockfiles integer zstyle :datetime:calendar: calendarfile calendar calendar /calendar zmodload zsh/system b:zsystem zsystem supports flock zsystem calendar calendar_lockfiles exit calendar.new. calendar_read calendar_entries calendar_entries1 return calendar_entries calendar_scandate line (l.16..0.)REPLY:line lines_failed  #lines_unsorted  lines_sorted olines_unsorted09: lines_failed[@] print line # BAD DATE  #lines_sorted  lines_sorted[@] new Writing to new failed.  #lines_failed  Warning: lines with date that couldn't be parsed.
Output (with unparseable dates marked) left in new calendar.old Couldn't back-up calendar to calendar.old.
New calendar left in new Failed to rename new to calendar.
Old calendar left in calendar.old Old calendar left in calendar.old  #lockfiles  lockfiles   