Net2/usr/src/contrib/isode/others/rfa/rfa.ps

%!
%%Title: PubTeX output 1991.01.14:1031
%%Creator: Pubps,       ArborText, Inc.
%%BoundingBox: (atend)
%%Pages: (atend)
%%DocumentFonts: (atend)
%%EndComments

%! 
%  Dvips.pro - included prolog for DviLaser-generated PostScript files.
% 
%  Copyright (c) 1986-89, ArborText, Inc.
%  Permission to copy is granted so long as the PostScript code
%  is not resold or used in a commercial product.
%
%  $Header: pubps.pro,v 1.14 90/04/10 12:27:08 jsg Exp $

systemdict /setpacking known  % use array packing mode if its available
  {/savepackingmode currentpacking def 
   true setpacking}
  if
 
/$DviLaser 400 dict def
 
% Begin document
/BeginDviLaserDoc {
  vmstatus pop pop 0 eq 
    { $DviLaser begin 
      InitializeState }
    { /DviLaserJob save def
      $DviLaser begin
      InitializeState
      /DviLaserFonts save def }
    ifelse
} bind def
 
% End document
/EndDviLaserDoc {
  vmstatus pop pop 0 eq 
    { end }
    { DviLaserFonts restore
      end
      DviLaserJob restore }
    ifelse
} bind def
 
$DviLaser begin

/tempstr 64 string def
/tempint 0 def
/tempmatrix matrix def
 
%
%  Debugging routines
%
/DebugMode false def

/PrintInt {
  tempstr cvs print
} bind def

/PrintLn {
  (\n) print flush
} bind def
 
/PrintVMStats {
  print
  PrintLn
  (VM status - ) print
  vmstatus
  3 copy
  PrintInt (\(total\), ) print
  PrintInt (\(used\), ) print
  pop
  exch sub 
  PrintInt (\(remaining\), ) print
  PrintInt (\(level\)) print
  PrintLn
} bind def
 
/VMS /PrintVMStats load def 
 
/VMSDebug {
  DebugMode
    {PrintVMStats}
    {pop}
    ifelse
} bind def
 
(beginning of common prolog) VMSDebug 

% Make it easy to bind definitions.
/bdef { bind def } bind def
/xdef { exch def } bdef

% Begin page
/BP {
  /Magnification xdef
  /DviLaserPage save def
  (beginning of page) VMSDebug 
} bdef
 
% End page
/EP {
  DviLaserPage restore
} bdef
 
% Exit page (temporarily) to add fonts/characters.
/XP {
  % Save current point information so it can be reset later. 
  /Xpos where {pop Xpos} {0} ifelse
  /Ypos where {pop Ypos} {0} ifelse
  /currentpoint cvx stopped {0 0 moveto currentpoint} if 
  /DviLaserPage where {pop DviLaserPage restore} if
  moveto
  /Ypos xdef
  /Xpos xdef
} bdef
 
% Resume page
/RP {
  /DviLaserPage save def
} bdef
 
% Purge all fonts to reclaim memory space. 
/PF {
  GlobalMode
  LocalMode
} bdef
 
% Switch to base save/restore level, saving state information. 
/GlobalMode {
  /UserSave where {pop UserSave} if  % invoke "UserSave" if available
  PortraitMode 
  PaperWidth 
  PaperHeight 
  PxlResolution 
  Resolution 
  Magnification
  Ymax
  RasterScaleFactor
  % Save current point information so it can be reset later. 
  /currentpoint cvx stopped {0 0 moveto currentpoint} if 
  /DviLaserPage where {pop DviLaserPage restore} if
  DviLaserFonts restore
  RecoverState
} bdef
 
% Preserve state at the base level.
/RecoverState {
  10 copy
  /Ypos xdef
  /Xpos xdef
  /RasterScaleFactor xdef
  /Ymax xdef
  /Magnification xdef
  /Resolution xdef
  /PxlResolution xdef
  /PaperHeight xdef
  /PaperWidth xdef
  /PortraitMode xdef
  DoInitialScaling
  PortraitMode not {PaperWidth 0 SetupLandscape} if
  Xpos Ypos moveto
} bdef

% Initialize state variables to default values.
/InitializeState {
  /Resolution 3600.0 def
  /PxlResolution 300.0 def
  /RasterScaleFactor PxlResolution Resolution div def
  /PortraitMode true def
  11.0 Resolution mul /PaperHeight xdef
  8.5 Resolution mul /PaperWidth xdef
  /Ymax PaperHeight def
  /Magnification 1000.0 def
  /Xpos 0.0 def
  /Ypos 0.0 def
  /InitialMatrix matrix currentmatrix def
} bdef

% Switch from base save/restore level, restoring state information. 
/LocalMode {
  /Ypos xdef
  /Xpos xdef
  /RasterScaleFactor xdef
  /Ymax xdef
  /Magnification xdef
  /Resolution xdef
  /PxlResolution xdef
  /PaperHeight xdef
  /PaperWidth xdef
  /PortraitMode xdef
  DoInitialScaling
  PortraitMode not {PaperWidth 0 SetupLandscape} if
  Xpos Ypos moveto
  /UserRestore where {pop UserRestore} if  % invoke "UserRestore" if available
  /DviLaserFonts save def
  /DviLaserPage save def
} bdef
 
% Abbreviations 
/S /show load def
/SV /save load def
/RST /restore load def
 
/Yadjust {Ymax exch sub} bdef
 
% (x,y) position absolute, just set Xpos & Ypos, don't move.
/SXY {
  Yadjust 
  /Ypos xdef /Xpos xdef
} bdef
 
% (x,y) position absolute
/XY {
  Yadjust 
  2 copy /Ypos xdef /Xpos xdef
  moveto
} bdef
 
% (x,0) position absolute
/X {
  currentpoint exch pop 
  2 copy /Ypos xdef /Xpos xdef
  moveto
} bdef
 
% (0,y) position absolute
/Y {
  currentpoint pop exch Yadjust 
  2 copy /Ypos xdef /Xpos xdef
  moveto
} bdef
 
% (x,y) position relative
/xy {
  neg rmoveto
  currentpoint /Ypos xdef /Xpos xdef
} bdef
 
% (x,0) position relative
/x {
  0.0 rmoveto
  currentpoint /Ypos xdef /Xpos xdef
} bdef
 
% (0,y) position relative
/y {
  0.0 exch neg rmoveto
  currentpoint /Ypos xdef /Xpos xdef
  } bdef
 
% Print a rule.  In order to get correct pixel size and positioning,
% we usually create a temporary font in which the rule is the only character.
% When the rule is large, however, we fill a rectangle instead.
/R {
  /ht xdef
  /wd xdef
  ht 1950 le wd 1950 le and
    {save
    /tfd 6 dict def
    tfd begin
      /FontType 3 def
      /FontMatrix [1 0 0 1 0 0] def
      /FontBBox [0 0 wd ht] def
      /Encoding 256 array dup 97 /a put def
      /BuildChar {
        pop   % ignore character code
        pop   % ignore font dict, too
        wd 0 0 0 wd ht setcachedevice
        wd ht true
        [1 0 0 -1 0 ht] {<FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF>} imagemask
        } def
      end % tfd
    /tf tfd definefont setfont
    (a) show
    restore
    }
    {gsave
    0 setgray
    currentpoint
    newpath
      moveto
      0.0 ht rlineto
      wd 0.0 rlineto
      0.0 ht neg rlineto
      wd neg 0.0 rlineto
    closepath fill
    grestore
    }
  ifelse
  wd 0.0 rmoveto
  currentpoint /Ypos xdef /Xpos xdef
} bdef

%
%  <PXL-file resolution(pix/inch)> <resolution(pix/inch)> RES
%
/RES {
  /Resolution xdef
  /PxlResolution xdef
  /RasterScaleFactor PxlResolution Resolution div def
  DoInitialScaling
} bdef

%
% Do initial scaling.
%
/DoInitialScaling {
  InitialMatrix setmatrix
  72.0 Resolution div dup scale   
} bdef
 
%
%  <paper-height(pix)> <paper-width(pix)> PM 
%
/PM { 
  XP
  /PaperWidth xdef 
  /PaperHeight xdef
  /Ymax PaperHeight def
  /PortraitMode true def
  DoInitialScaling
  RP
} bdef  
 
%
%  <paper-height(pix)> <paper-width(pix)> LM 
%
/LM {
  XP
  /PaperWidth xdef 
  /PaperHeight xdef
  /Ymax PaperWidth def
  /PortraitMode false def
  DoInitialScaling
  PaperWidth 0 SetupLandscape
  RP
} bdef  
  
% Change magnification setting
/MAG {
  XP
  /Magnification xdef
  RP
} bdef
 
%
%  Switch to landscape mode
%
/SetupLandscape {
  translate
  90.0 rotate
} bdef
 
%
%  <mode> SPB - begin "\special" mode
%
%  This is the PostScript procedure used to transfer from the internal
%  environment used for the DVI translation code emitted by DVIPS to
%  a standard PostScript environment.
%
%  Parameters: 0 - Local
%              1 - Global
%              2 - Inline
%
/SPB {
  /spc_mode xdef
  spc_mode 0 eq spc_mode 2 eq or
    {XP}
    {spc_mode 1 eq {GlobalMode} if} 
    ifelse
  Resolution 72.0 div dup scale        % Restore default scaling...
  Magnification 1000.0 div dup scale   % Adjust for any magnification...
  /Xpos Xpos 72.0 Resolution div mul 1000.0 Magnification div mul def
  /Ypos Ypos 72.0 Resolution div mul 1000.0 Magnification div mul def
} bdef
 
%
%  <mode> SPE - end "\special" mode
%
%  This is the PostScript procedure used to reenter the internal
%  environment used for the DVI translation code emitted by DVIPS from 
%  the standard PostScript environment provided for processing user-supplied
%  PostScript code.
%
%  Parameters: 0 - Local
%              1 - Global
%              2 - Inline
%
/SPE {
  /spc_mode xdef
  1000.0 Magnification div dup scale   % Un-adjust for any magnification...
  72.0 Resolution div dup scale        % Restore default internal scaling...
  spc_mode 0 eq spc_mode 2 eq or
    {RP}
    {spc_mode 1 eq {LocalMode} if} 
    ifelse
} bdef
 
%
%  <num-copies> PP
%
/PP {
  /#copies xdef
  showpage
  /#copies 1 def
} bdef
 
%
%  /font-name <point-size(pix)> DMF
%
/DMF {
  /psz xdef
  /nam xdef
  nam findfont psz scalefont setfont
} bdef
 
%
%  /abcd (xxx) str-concat  ==> /abcdxxx
%
/str-concatstr 64 string def

/str-concat {
  /xxx xdef
  /nam xdef
  /namstr nam str-concatstr cvs def
  /newnam namstr length xxx length add string def
  newnam 0 namstr putinterval
  newnam namstr length xxx putinterval
  newnam cvn 
} bdef
 
%
%  /abcdef 2 str-strip ==> /cdef
%
/str-strip {
  /num xdef
  /nam xdef
  /namstr nam tempstr cvs def
  /newlen namstr length num sub def
  namstr num newlen getinterval
  cvn
} bdef
 
%
%  <old-dict> copydict ==> new-dict on stack
%
/copydict {
  dup length 1 add dict /newdict xdef
    {1 index /FID ne
      {newdict 3 1 roll put}
      {pop pop}
     ifelse
    } forall 
  newdict
} bdef
 
%
%  <font-type> DefineCMEncoding
%
/DefineCMEncoding {
  /EncodeType xdef
 
  /CMEncoding 256 array def
  /Times-Roman findfont /Encoding get aload pop CMEncoding astore pop
 
  EncodeType 11 eq {Do-CM-rm-encoding} if
  EncodeType 12 eq {Do-CM-it-encoding} if
  EncodeType 13 eq {Do-CM-tt-encoding} if
} bdef
 
%
%  Do special mappings for the various CM-font types.  Characters that
%  get "covered up" are repositioned in the range (128,128+32).
%
/Do-standard-CM-encodings {
  CMEncoding
  dup 0 /.notdef put
  dup 1 /.notdef put
  dup 2 /.notdef put
  dup 3 /.notdef put
  dup 4 /.notdef put
  dup 5 /.notdef put
  dup 6 /.notdef put
  dup 7 /.notdef put
 
  dup 8 /.notdef put
  dup 9 /.notdef put
  dup 10 /.notdef put
  dup 11 /.notdef put
  dup 12 /fi put
  dup 13 /fl put
  dup 14 /.notdef put
  dup 15 /.notdef put
 
  dup 16 /dotlessi put
  dup 17 /.notdef put
  dup 18 /grave put
  dup 19 /acute put
  dup 20 /caron put
  dup 21 /breve put
  dup 22 /macron put
  dup 23 /ring put
 
  dup 24 /cedilla put
  dup 25 /germandbls put
  dup 26 /ae put
  dup 27 /oe put
  dup 28 /oslash put
  dup 29 /AE put
  dup 30 /OE put
  dup 31 /Oslash put

  dup 127 /dieresis put

  dup 128 /space put
  dup 129 /quotedbl put
  dup 130 /sterling put
  dup 131 /dollar put
  dup 132 /less put
  dup 133 /greater put
  dup 134 /backslash put
  dup 135 /asciicircum put

  dup 136 /underscore put
  dup 137 /braceleft put
  dup 138 /bar put
  dup 139 /braceright put
  dup 140 /asciitilde put
  pop
} bdef
 
/Do-CM-rm-encoding {
  Do-standard-CM-encodings
  CMEncoding
  dup 32 /.notdef put
  dup 34 /quotedblright put
  dup 60 /exclamdown put
  dup 62 /questiondown put
  dup 92 /quotedblleft put
  dup 94 /circumflex put
  dup 95 /dotaccent put
  dup 123 /endash put
  dup 124 /emdash put
  dup 125 /hungarumlaut put
  dup 126 /tilde put
  pop
} bdef
 
/Do-CM-it-encoding {
  Do-standard-CM-encodings
  CMEncoding
  dup 32 /.notdef put
  dup 34 /quotedblright put
  dup 36 /sterling put
  dup 60 /exclamdown put
  dup 62 /questiondown put
  dup 92 /quotedblleft put
  dup 94 /circumflex put
  dup 95 /dotaccent put
  dup 123 /endash put
  dup 124 /emdash put
  dup 125 /hungarumlaut put
  dup 126 /tilde put
  pop
} bdef
 
/Do-CM-tt-encoding {
  Do-standard-CM-encodings
  CMEncoding
  dup 12 /.notdef put
  dup 13 /quotesingle put
  dup 14 /exclamdown put
  dup 15 /questiondown put
  dup 94 /circumflex put
  dup 126 /tilde put
  pop
} bdef

%
% Routines to handle packing/unpacking numbers.
%
%  <target> <pos> <num> PackHW --> <new target>
%
/PackHW {
  /num xdef
  /pos xdef
  /target xdef
  num 16#0000FFFF and 1 pos sub 16 mul bitshift
    target or
} bdef

%
%  <target> <pos> <num> PackByte --> <new target>
%
/PackByte {
  /num xdef
  /pos xdef
  /target xdef
  num 16#000000FF and 3 pos sub 8 mul bitshift
    target or
} bdef

%
%  <pos> <num> UnpkHW --> <unpacked value>
%
/UnpkHW {
  /num xdef
  /pos xdef
  num 1 pos sub -16 mul bitshift 16#0000FFFF and
  dup 16#00007FFF gt {16#00010000 sub} if
} bdef

%
%  <pos> <num> UnpkByte --> <unpacked value>
%
/UnpkByte {
  /num xdef
  /pos xdef
  num 3 pos sub -8 mul bitshift 16#000000FF and
  dup 16#0000007F gt {16#00000100 sub} if
} bdef

%
%  <int-font-name> <ext-font-name> <pt-sz(pix)> <type> <loaded-fg> DefineCMFont
%
%    type 10: "as-is" PostScript font
%    type 11: CM-mapped PostScript font - roman
%    type 12: CM-mapped PostScript font - text italic 
%    type 13: CM-mapped PostScript font - typewriter type 
%
/int-dict-name {int (-dict) str-concat} bdef
/int-dict {int (-dict) str-concat cvx load} bdef

/DF {
  true  % signal that the font is already loaded
  DefineCMFont
} bdef
 
/DNF {
  false  % signal that the font is not already loaded
  DefineCMFont
} bdef

/DefineCMFont {
  /loaded xdef
  /typ xdef
  /psz xdef
  /ext xdef
  /int xdef
 
  typ 10 ne 
    { % font_type = 11, 12, 13
    loaded not
      { /fnam ext 3 str-strip def
        fnam findfont copydict /newdict xdef 
        typ DefineCMEncoding
        newdict /Encoding CMEncoding put
        ext newdict definefont pop
      } if
    int-dict-name ext findfont psz scalefont def
    currentdict int [int-dict /setfont cvx] cvx put
    }
    { % font_type = 10
    /fnam ext def
    int-dict-name fnam findfont psz scalefont def
    currentdict int [int-dict /setfont cvx] cvx put
    }
  ifelse
} bdef 
 
%
%  <int-font-name> <ext-font-name> <pt-sz(pix)> <PXL mag> <num-chars>
%      [llx lly urx ury] <newfont-fg> DefinePXLFont
%

/PXLF {
  true  % signal that the font is already loaded
  DefinePXLFont
} bdef
 
/PXLNF {
  false  % signal that the font is not already loaded
  DefinePXLFont
} bdef

/PXLBuildCharDict 17 dict def
 
/CMEncodingArray 256 array def
0 1 255 {CMEncodingArray exch dup tempstr cvs cvn put} for

/RasterConvert {RasterScaleFactor div} bdef
 
/TransformBBox {
  aload pop
 
  /BB-ury xdef
  /BB-urx xdef
  /BB-lly xdef
  /BB-llx xdef
 
  [BB-llx RasterConvert BB-lly RasterConvert 
   BB-urx RasterConvert BB-ury RasterConvert]
} bdef

/DefinePXLFont {
  /newfont xdef
  /bb xdef
  /num xdef
  /psz xdef
  /dsz xdef
  /pxlmag xdef
  /ext xdef
  /int xdef
 
  /fnam ext (-) str-concat pxlmag tempstr cvs str-concat def
 
  newfont not {
    int-dict-name 13 dict def
   
    int-dict begin
      /FontType 3 def
      /FontMatrix [1 dsz div 0 0 1 dsz div 0 0] def
      /FontBBox bb TransformBBox def
      /Encoding CMEncodingArray def
      /CharDict 1 dict def
      CharDict begin
        /Char-Info num array def
        end
  
      /BuildChar
        { 
          PXLBuildCharDict begin
            /char xdef
            /fontdict xdef
   
            fontdict /CharDict get /Char-Info get char get aload pop
   
            /rasters xdef
            /PackedWord1 xdef
   
            0 PackedWord1 UnpkHW 16#7FFF ne
              { /PackedWord2 xdef
                /wx 0 PackedWord1 UnpkHW def
                /rows 2 PackedWord1 UnpkByte def
                /cols 3 PackedWord1 UnpkByte def
                /llx 0 PackedWord2 UnpkByte def
                /lly 1 PackedWord2 UnpkByte def
                /urx 2 PackedWord2 UnpkByte def
                /ury 3 PackedWord2 UnpkByte def }
              { /PackedWord2 xdef
                /PackedWord3 xdef
                /PackedWord4 xdef
                /wx 1 PackedWord1 UnpkHW def
                /rows 0 PackedWord2 UnpkHW def
                /cols 1 PackedWord2 UnpkHW def
                /llx 0 PackedWord3 UnpkHW def
                /lly 1 PackedWord3 UnpkHW def
                /urx 0 PackedWord4 UnpkHW def
                /ury 1 PackedWord4 UnpkHW def }
               ifelse

            rows 0 lt
              { /rows rows neg def
                /runlength 1 def }
              { /runlength 0 def }
             ifelse
 
            wx 0 
            llx RasterConvert lly RasterConvert 
            urx RasterConvert ury RasterConvert setcachedevice
            rows 0 ne
              {
              gsave
                cols rows true 
                RasterScaleFactor 0 0 RasterScaleFactor neg llx neg ury 
                  tempmatrix astore
                {GenerateRasters} imagemask
              grestore
              } if
            end
        } def
      end
   
      fnam int-dict definefont pop 
    } if 
 
  int-dict-name fnam findfont psz scalefont def
  currentdict int [int-dict /setfont cvx] cvx put
} bdef 
 
%
%  <int-font-name> <code> <wx> <llx> <lly> <urx> <ury> <rows> <cols> <runlength> <rasters> PXLC
%
/PXLC {
 
  /rasters xdef
  /runlength xdef
  /cols xdef
  /rows xdef
  /ury xdef
  /urx xdef
  /lly xdef
  /llx xdef
  /wx xdef
  /code xdef
  /int xdef
 
  % See if the long or short format is required
  true cols CKSZ rows CKSZ ury CKSZ urx CKSZ lly CKSZ llx CKSZ 
    TackRunLengthToRows
    { int-dict /CharDict get /Char-Info get code 
        [0 0 llx PackByte 1 lly PackByte 2 urx PackByte 3 ury PackByte
         0 0 wx PackHW 2 rows PackByte 3 cols PackByte
         rasters] put}
    { int-dict /CharDict get /Char-Info get code 
        [0 0 urx PackHW 1 ury PackHW
         0 0 llx PackHW 1 lly PackHW
         0 0 rows PackHW 1 cols PackHW
         0 0 16#7FFF PackHW 1 wx PackHW
         rasters] put} 
    ifelse
} bdef
 
/CKSZ {abs 127 le and} bdef
/TackRunLengthToRows {runlength 0 ne {/rows rows neg def} if} bdef
 
%
%  <wx> <dsz> <psz> <llx> <lly> <urx> <ury> <rows> <cols> <runlength> <rasters> PLOTC
%
/PLOTC {
  /rasters xdef
  /runlength xdef
  /cols xdef
  /rows xdef
  /ury xdef
  /urx xdef
  /lly xdef
  /llx xdef
  /psz xdef
  /dsz xdef
  /wx xdef
 
  % "Plot" a character's raster pattern.
  rows 0 ne
    {
    gsave
      currentpoint translate
      psz dsz div dup scale
      cols rows true 
      RasterScaleFactor 0 0 RasterScaleFactor neg llx neg ury 
        tempmatrix astore
      {GenerateRasters} imagemask
    grestore
    } if
  wx x
} bdef
 
% Routine to generate rasters for "imagemask".
/GenerateRasters {
  rasters
  runlength 1 eq {RunLengthToRasters} if
} bdef
 
% Routine to convert from runlength encoding back to rasters.
/RunLengthToRasters {
  % ...not done yet...
} bdef
 
%
%  These procedures handle bitmap processing.
%
%  <bitmap columns> <bitmap rows> <bitmap pix/inch> <magnification> BMbeg
%
/BMbeg {
  /BMmagnification xdef
  /BMresolution xdef
  /BMrows xdef
  /BMcols xdef

  /BMcurrentrow 0 def
  gsave
    0.0 setgray
    Resolution BMresolution div dup scale
    currentpoint translate
    BMmagnification 1000.0 div dup scale
    0.0 BMrows moveto
    BMrows dup scale
    currentpoint translate
    /BMCheckpoint save def
  } bdef

/BMend {
  BMCheckpoint restore
  grestore
  } bdef

%
%  <hex raster bitmap> <rows> BMswath 
%
/BMswath {
  /rows xdef
  /rasters xdef

  BMcols rows true
  [BMrows 0 0 BMrows neg 0 BMcurrentrow neg]
  {rasters}
  imagemask

  /BMcurrentrow BMcurrentrow rows add def
  BMcurrentrow % save this on the stack around a restore...
  BMCheckpoint restore
  /BMcurrentrow xdef
  /BMCheckpoint save def
  } bdef

%
%  Procedures for implementing the "rotate <theta>" special:
%  <theta> ROTB -
%        - ROTE -

/ROTB {
  XP
  gsave
  Xpos Ypos translate
  rotate % using <theta> from the stack
  Xpos neg Ypos neg translate
  RP
  } bdef

/ROTE {XP grestore RP} bdef

%
%  Procedures for implementing the "epsfile <filename> [<mag>]" special:
%  <llx> <lly> <mag> EPSB -
%  - EPSE -

/EPSB {
  0 SPB
  save
  4 1 roll % push the savelevel below the parameters
  /showpage {} def
  Xpos Ypos translate
  1000 div dup scale % using <mag> from the stack
  neg exch neg exch translate % using <llx> <lly> from the stack
  } bdef

/EPSE {restore 0 SPE} bdef

%
%  Procedure for implementing revision bars:
%  <bary1> <bary2> <barx> <barw> REVB -
%  The bar is a line of width barw drawn from (barx,bary1) to (barx,bary2).

/REVB {
  /barw xdef
  /barx xdef
  /bary2 xdef
  /bary1 xdef
  gsave
    barw setlinewidth
    barx bary1 Yadjust moveto
    barx bary2 Yadjust lineto
    stroke
  grestore
  } bdef

%
%  A small dictionary to facilitate The Publisher's implementation
%  of gray table cells.

/grpm 40 dict def

%
%  Procedures for implementing the "paper <source>" option:
%  <name> <eop> SPS          -
%         <eop> paper-manual -
%  etc.  The boolean <eop> is passed so that a paper source procedure
%  knows if it is being called at the beginning (false) or end
%  (true) of a page.

/SPS {
  /eop xdef
  /name xdef
  name where {pop eop name cvx exec} if
  } bdef

/paper-manual {
    {statusdict /manualfeed known
      {statusdict /manualfeed true put}
    if}
  if
  } bdef

/paper-automatic {
    {statusdict /manualfeed known
      {statusdict /manualfeed false put}
    if}
  if
  } bdef

/paper-top-tray {
    {}
    {statusdict /setpapertray known
      {statusdict begin 0 setpapertray end}
    if}
  ifelse
  } bdef

/paper-bottom-tray {
    {}
    {statusdict /setpapertray known
      {statusdict begin 1 setpapertray end}
    if}
  ifelse
  } bdef

/paper-both-trays {
    {}
    {statusdict /setpapertray known
      {statusdict begin 2 setpapertray end}
    if}
  ifelse
  } bdef

(end of common prolog) VMSDebug 

end
 
systemdict /setpacking known 
  {savepackingmode setpacking}
  if

% 
% End of included prolog section.
%

%%EndProlog
%%BeginSetup
BeginDviLaserDoc
300 300 RES
%%EndSetup


%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 766 0 XY
%%EndPageSetup
XP /F46 /CM-Times-Bold 74.720 11 DNF RP
766 759 XY F46(RF)S -6 x(A)S 38 x(\320)S 37 x(Remote)S 37 x(File)S
37 x(Access)S
XP /F45 /CM-Times-Roman 74.720 11 DNF RP
688 950 XY F45(A)S 35 x(tool)S 35 x(for)S 35 x(managing)S 35 x
(access)S 35 x(to)S 34 x(\014les)S 1037 Y 689 X(that)S 35 x(are)S 
35 x(distributed)S 35 x(at)S 35 x(multiple)S 34 x(sites)S
XP /F48 /CM-Times-Italic 58.115 12 DNF RP
1069 1187 XY F48(Oliver)S 32 x(W)S -5 x(enzel)S 70 y 1057 X(GMD)S 
31 x(\261)S 31 x(Fokus)S 71 y 1015 X(Berlin)S 30 x(\261)S 31 x
(Germany)S
XP /F47 /CM-Times-Roman 58.115 11 DF RP
1112 1527 XY F47(V)S -6 x(ersion)S 35 x(1.0)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 165 473 437 667

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY
%%EndPageSetup
XP /F8 /CM-Times-Bold 41.511 11 DF RP
295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 
200 3 R 1340 281 XY 846 3 R -50 y 1977 X(The)S 26 x(Model)S 464 Y 
295 X F46(1)S 62 x(Intr)S -1 x(oduction)S
XP /F44 /CM-Times-Roman 45.662 11 DF RP
295 639 XY F44(This)S 13 x(software)S 12 x(tool)S 12 x(called)S
XP /F49 /CM-Times-Bold 45.662 11 DF RP
762 639 XY F49(Remote)S 12 x(File)S 12 x(Access)S 13 x F44(\(RF)S 
-3 x(A\))S 12 x(has)S 13 x(been)S 12 x(designed)S 12 x(to)S 12 x
(allow)S 12 x(access)S 13 x(to)S 12 x(a)S 12 x(set)S 12 x(of)S 12 x
(\014les)S 58 y 295 X(in)S 13 x(a)S 13 x(UNIX)S
XP /F74 /CM-Times-Roman 33.209 11 DF RP
492 680 XY F74(TM)S 17 y 16 x F44(\014lesystem)S 14 x(that)S 14 x
(are)S 14 x(shared)S 14 x(between)S 14 x(multiple)S 13 x(sites.)S 
20 x(It)S 13 x(has)S 14 x(been)S 13 x(created)S 14 x(within)S 13 x
(the)S 14 x(VERDI)S 58 y 295 X(3)S 14 x(project)S 13 x(as)S 14 x(a)S
14 x(result)S 13 x(of)S 14 x(our)S 14 x(own)S 14 x(requirements)S 
14 x(for)S 14 x(a)S 14 x(distributed)S 14 x(document)S 14 x(and)S 
14 x(\014le)S 14 x(management)S 14 x(system.)S 58 y 295 X(Basis)S 
15 x(for)S 15 x(this)S 15 x(requirements)S 15 x(is)S 16 x(the)S 15 x
(VERDI)S 15 x(3)S 15 x(project)S 15 x(which)S 15 x(members)S 15 x
(are)S 16 x(located)S 15 x(at)S 15 x(two)S 15 x(dif)S -1 x(ferent)S
15 x(sites.)S 58 y 295 X(Both)S 16 x(sites)S 17 x(of)S 16 x(the)S 
16 x(project)S 16 x(share)S 17 x(a)S 16 x(common)S 16 x(set)S 16 x
(of)S 16 x(documents)S 16 x(and)S 17 x(\014les)S 16 x(which)S 17 x
(need)S 16 x(to)S 16 x(be)S 16 x(accessed)S 16 x(and)S 58 y 295 X
(modi)S
(\014ed)S 15 x(during)S 15 x(the)S 15 x(everyday-project-work.)S 
20 x(For)S 15 x(some)S 15 x(time)S 15 x(we)S 15 x(used)S 15 x(the)S
15 x(FT)S -4 x(AM)S 15 x(software)S 15 x(to)S 15 x(exchange)S 58 y 
295 X(\014les)S 19 x(between)S 18 x(the)S 18 x(two)S 18 x(sites,)S
19 x(but)S 18 x(after)S 18 x(the)S 19 x(number)S 18 x(of)S 19 x
(shared)S 18 x(\014les)S 19 x(and)S 18 x(transfer)S 19 x(operations)S
18 x(grew,)S 19 x(very)S 58 y 295 X(often)S 21 x(questions)S 21 x
(like)S 1145 Y 378 X(\267)S 67 x(at)S 17 x(which)S 17 x(site)S 17 x
(the)S 17 x(up-to-date)S 17 x(\(master\))S 17 x(version)S 17 x(of)S
17 x(the)S 17 x(\014le)S 17 x(is)S 17 x(located)S 17 x(?)S 1228 Y 
378 X(\267)S 67 x(is)S 19 x(the)S 20 x(local)S 19 x(version)S 19 x
(up-to-date)S 20 x(?)S 1311 Y 378 X(\267)S 67 x(is)S 19 x(anyone)S
19 x(already)S 19 x(editing)S 19 x(this)S 20 x(\014le)S 20 x(?)S 
1394 Y 378 X(\267)S 67 x(are)S 20 x(there)S 19 x(any)S 20 x(newly)S
20 x(created)S 19 x(\014les)S 20 x(?)S 1493 Y 295 X(appeared.)S 26 x
(Using)S 18 x(a)S 17 x(distributed)S 17 x(\014lesystem)S 17 x(like)S
17 x(NFS)S 17 x(was)S 17 x(discussed)S 17 x(as)S 17 x(an)S 17 x
(alternative)S 17 x(solution,)S 18 x(but)S 17 x(this)S 58 y 295 X
(did)S 19 x(not)S 20 x(seemed)S 19 x(to)S 20 x(be)S 19 x
(practicable)S 20 x(because)S 19 x(of)S 20 x(the)S 19 x(very)S 19 x
(slow)S 19 x(communication)S 19 x(links)S 19 x(between)S 20 x(the)S
19 x(sites)S 58 y 295 X(\(9600Bps\).)S 20 x(Therefore,)S 14 x(we)S
13 x(tried)S 13 x(to)S 12 x(build)S 13 x(a)S 13 x(simple)S 12 x
(tool)S 13 x(to)S 12 x(handle)S 13 x(theses)S 13 x(questions.)S 20 x
(So)S 13 x(the)S 13 x(RF)S -3 x(A)S 12 x(tool)S 13 x(was)S 59 y 
295 X(born)S 17 x(and)S 17 x(because)S 16 x(the)S 16 x(project)S 
17 x(is)S 17 x(working)S 16 x(with)S 16 x(ISO)S 16 x(protocols,)S 
17 x(we)S 16 x(built)S 17 x(the)S 17 x(tool)S 17 x(on)S 17 x(top)S
17 x(of)S 16 x(the)S 17 x(ISODE)S 58 y 295 X(software)S 18 x
(package)S 18 x(using)S 17 x(the)S 17 x(remote)S 17 x(operation)S 
17 x(compiler)S
XP /F75 /CM-Times-Italic 45.662 12 DF RP
1339 1726 XY F75(r)S -2 x(osy\(1\))S F44(.)S 27 x(Currently)S 17 x
(the)S 17 x(tools)S 17 x(only)S 17 x(supports)S 18 x(to)S 58 y 295 X
(share)S 14 x(\014les)S 14 x(between)S 14 x(two)S 15 x(sites)S 15 x
(\(because)S 14 x(this)S 15 x(was)S 15 x(our)S 15 x(primary)S 15 x
(goal\),)S 15 x(but)S 15 x(it)S 15 x(should)S 14 x(be)S 14 x
(possible)S 15 x(to)S 15 x(extend)S 58 y 295 X(it)S 20 x(to)S 21 x
(support)S 20 x(multiple)S 20 x(sites.)S 2164 Y 295 X F46(2)S 62 x
(The)S 35 x(Model)S
XP /F76 /CM-Times-Bold 58.115 11 DF RP
295 2350 XY F76(2.1)S 50 x(The)S 26 x(Data)S 27 x(Model)S 2467 Y 
295 X F44(The)S 19 x(Data)S 19 x(Model)S 19 x(is)S 19 x(based)S 19 x
(on)S 19 x(the)S 19 x(hierarchical)S 19 x(structure)S 19 x(of)S 20 x
(the)S 20 x(UNIX)S -17 y F74(TM)S 17 y 22 x F44(\014lesystem.)S 32 x
(The)S 20 x(RF)S -3 x(A)S 19 x(tools)S 58 y 295 X(allows)S 18 x(to)S
18 x(share)S 18 x(a)S 17 x(subtree)S 17 x(of)S 18 x(the)S 17 x
(hierarchical)S 17 x(\014lesystem)S 17 x(structure)S 18 x(between)S
17 x(\(currently\))S 18 x(two)S 18 x(sites.)S 27 x(The)S 58 y 295 X
(structure)S 18 x(of)S 17 x(the)S 18 x(shared)S 18 x(subtree)S 17 x
(must)S 18 x(be)S 18 x(identical)S 18 x(at)S 17 x(both)S 17 x
(sites.)S 28 x(The)S 17 x(local)S 18 x(root)S 18 x(of)S 18 x(the)S
17 x(shared)S 18 x(subtree)S 58 y 295 X(may)S 16 x(be)S 16 x(dif)S
-1 x(ferent)S 17 x(at)S 16 x(both)S 16 x(sites.)S 24 x(Subject)S 
16 x(of)S 17 x(the)S 16 x(operation)S 16 x(of)S 17 x(the)S 16 x(RF)S
-3 x(A)S 16 x(tool)S 17 x(are)S 17 x(the)S 16 x(\014les)S 17 x(and)S
16 x(directories)S 58 y 295 X(within)S 21 x(the)S 20 x(shared)S 20 x
(subtree.)S 2886 Y 295 X F76(2.1.1)S 49 x(File)S 26 x(V)S -5 x
(ersion-T)S -1 x(ime)S 3003 Y 295 X F44(A)S 21 x(\014le)S 21 x
(within)S 20 x(a)S 21 x(shared)S 21 x(subtree)S 20 x(exists)S 21 x
(at)S 21 x(the)S 21 x(dif)S -1 x(ferent)S 21 x(sites)S 21 x(as)S 
21 x(dif)S -1 x(ferent)S 21 x(\(local\))S 20 x(versions)S 20 x(of)S
21 x(the)S 20 x(\014le.)S 58 y 295 X(The)S 17 x(version-time)S 17 x
(\(state)S 17 x(of)S 17 x(modi\014cation\))S 17 x(of)S 17 x(a)S 17 x
(\014le)S 17 x(version)S 17 x(at)S 17 x(a)S 17 x(site)S 17 x(is)S 
17 x(determined)S 17 x(by)S 17 x(the)S 17 x F75(modi\014cation)S
XP /F6 /CM-Times-Roman 41.511 11 DF RP
1230 3276 XY F6(1)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 71 53 524 794

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY
%%EndPageSetup
295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 
200 3 R 1340 281 XY 846 3 R -50 y 1977 X(The)S 26 x(Model)S 459 Y 
295 X F75(time)S 16 x F44(provided)S 16 x(by)S 17 x(the)S 17 x(UNIX)S
-17 y F74(TM)S 17 y 18 x F44(system)S 17 x(call)S 16 x F75
(stat\(2\))S F44(.)S 24 x(T)S -3 x(o)S 16 x(determine)S 16 x(which)S
17 x(version)S 16 x(of)S 16 x(\014le)S 17 x(is)S 17 x(up-to-date,)S
58 y 295 X(the)S 17 x(youngest)S 17 x(version-time)S 17 x(is)S 16 x
(chosen.)S 25 x(This)S 17 x(requires)S 16 x(that)S 17 x(the)S 16 x
(sites)S 16 x(participating)S 17 x(in)S 17 x(the)S 17 x(\014le)S 
17 x(sharing)S 17 x(use)S 58 y 295 X(synchronized)S 11 x(clocks.)S
19 x(This)S 12 x(is)S 12 x(necessary)S 12 x(because)S 12 x(the)S 
12 x(modi\014cation)S 11 x(time)S 12 x(is)S 11 x(set)S 12 x
(automatically)S 12 x(by)S 11 x(the)S 12 x(UNIX)S 58 y 295 X(system)S
18 x(using)S 18 x(the)S 17 x(local)S 17 x(operating)S 17 x(system)S
17 x(clock.)S 27 x(The)S 17 x(RF)S -3 x(A)S 17 x(tool)S 17 x
(provides)S 17 x(an)S 18 x(operation)S 17 x(to)S 17 x(synchronize)S
59 y 295 X(the)S 18 x(clocks)S 18 x(where)S 18 x(one)S 19 x(of)S 
18 x(the)S 18 x(sites)S 19 x(is)S 18 x(declared)S 18 x(to)S 18 x(be)S
19 x(the)S 19 x F75(time-master)S 18 x F44(which)S 18 x(provides)S
19 x(the)S 18 x(time)S 18 x(to)S 18 x(the)S 58 y 295 X F75
(time-slave)S F44(.)S 916 Y 295 X F76(2.1.2)S 49 x(RF)S -4 x(A)S 
26 x(File)S 26 x(Status)S 1025 Y 295 X F44(Each)S 17 x(local)S 18 x
(version)S 18 x(of)S 18 x(a)S 18 x(\014le)S 18 x(that)S 18 x(exists)S
17 x(within)S 18 x(the)S 18 x(shared)S 18 x(subtree)S 18 x(at)S 18 x
(a)S 18 x(site)S 17 x(has)S 18 x(a)S 18 x(RF)S -3 x(A-speci\014c)S
18 x(status)S 58 y 295 X(which)S 21 x(is)S 21 x(one)S 22 x(of:)S
XP /F1 /CM-Times-Italic 49.813 12 DF RP
295 1168 XY F1(MASTER)S -2 y 709 X F44(the)S 13 x(\014le)S 12 x(is)S
12 x(the)S 12 x(up-to-date)S 12 x(version)S 12 x(of)S 13 x(the)S 
13 x(\014le)S 12 x(and)S 13 x(modi\014cations)S 13 x(to)S 12 x(the)S
13 x(local)S 13 x(version)S 58 y 709 X(of)S 19 x(the)S 19 x(\014le)S
19 x(are)S 19 x(allowed.)S 1308 Y 295 X F1(SLA)S -2 x(VE)S -2 y 
709 X F44(the)S 18 x(\014le)S 18 x(is)S 18 x(the)S 18 x(read-only)S
18 x(version)S 18 x(of)S 18 x(the)S 18 x(\014le)S 18 x(and)S 18 x
(may)S 18 x(be)S 18 x(up-to-date)S 18 x(but)S 18 x(it)S 18 x(need)S
58 y 709 X(not.)S 20 x(For)S 14 x(each)S 13 x(local)S 13 x(\014le)S
13 x(with)S 13 x(SLA)S -6 x(VE)S 13 x(status)S 13 x(there)S 13 x
(must)S 13 x(be)S 13 x(a)S 13 x(MASTER)S 14 x(version)S 13 x(at)S 
58 y 709 X(the)S 13 x(remote)S 13 x(site.)S 19 x(File)S 13 x
(version)S 13 x(with)S 13 x(SLA)S -6 x(VE)S 13 x(status)S 13 x(will)S
12 x(have)S 12 x(\014le)S 12 x(write)S 13 x(permissions)S 59 y 709 X
(cleared.)S 1565 Y 295 X F1(UNREGISTERED)S -2 y 51 x F44(the)S 16 x
(\014le)S 15 x(not)S 15 x(shared)S 15 x(and)S 16 x(has)S 16 x(only)S
15 x(local)S 15 x(signi\014cance.)S 20 x(It)S 15 x(may)S 15 x(be)S
15 x(modi\014ed)S 15 x(locally.)S 1693 Y 295 X(This)S 14 x(\014le)S
14 x(status)S 13 x(allows)S 13 x(to)S 13 x(determine)S 13 x(which)S
13 x(site)S 13 x(has)S 13 x(the)S 14 x(up-to-date)S 14 x(version)S
14 x(of)S 13 x(a)S 13 x(\014le)S 14 x(and)S 13 x(is)S 13 x(allowed)S
13 x(to)S 13 x(do)S 58 y 295 X(modi\014cations)S 16 x(to)S 16 x(the)S
16 x(\014le.)S 22 x(The)S 16 x(site)S 16 x(holding)S 15 x(a)S 16 x
(SLA)S -6 x(VE)S 16 x(version)S 16 x(of)S 16 x(the)S 15 x(\014le)S
16 x(has)S 15 x(to)S 16 x(request)S 16 x(the)S 16 x(mastership)S 
58 y 295 X(before)S 18 x(it)S 18 x(is)S 18 x(allowed)S 18 x(to)S 
18 x(do)S 18 x(any)S 17 x(modi\014cations.)S 29 x(Further,)S 19 x
(it)S 18 x(has)S 18 x(to)S 18 x(be)S 18 x(assured)S 18 x(that)S 17 x
(the)S 18 x(local)S 18 x(version)S 18 x(of)S 58 y 295 X(the)S 16 x
(\014le)S 15 x(at)S 16 x(the)S 15 x(new)S 16 x(MASTER)S 15 x(site)S
15 x(is)S 15 x(up-to-date.)S 21 x(Otherwise)S 15 x(the)S 15 x
(\014le)S 15 x(has)S 16 x(to)S 16 x(be)S 15 x(transferred)S 15 x
(\014rst.)S 21 x(A)S 15 x(local)S 58 y 295 X(version)S 15 x(of)S 
14 x(a)S 15 x(\014le)S 15 x(may)S 15 x(change)S 15 x(its)S 15 x
(status)S 14 x(during)S 15 x(its)S 15 x(lifetime)S 14 x(\(e.g.)S 
20 x(from)S 14 x(UNREGISTERED)S 15 x(to)S 15 x(MASTER\))S 58 y 295 X
(as)S 19 x(a)S 19 x(result)S 19 x(of)S 19 x(several)S 19 x(RF)S -3 x
(A)S 18 x(operations)S 19 x(described)S 19 x(later.)S 2150 Y 295 X 
F76(2.1.3)S 49 x(File)S 26 x(Locking)S 2259 Y 295 X F44(T)S -3 x(o)S
21 x(avoid)S 22 x(that)S 21 x(a)S 21 x(\014le)S 21 x(is)S 21 x(modi)S
(\014ed)S 21 x(by)S 21 x(multiple)S 22 x(users)S 22 x(at)S 21 x(the)S
21 x(MASTER)S 21 x(site)S 21 x(or)S 21 x(that)S 22 x(the)S 22 x
(mastership)S 22 x(is)S 58 y 295 X(transferred)S 17 x(to)S 17 x(the)S
17 x(remote)S 16 x(site)S 16 x(while)S 17 x(the)S 16 x(local)S 17 x
(version)S 16 x(is)S 16 x(under)S 17 x(modify-access)S 16 x(by)S 
16 x(a)S 17 x(local)S 16 x(user,)S 17 x(a)S 16 x(local)S 58 y 295 X
(version)S 16 x(of)S 17 x(a)S 16 x(\014le)S 16 x(can)S 16 x(be)S 
17 x(\(soft\)-locked.)S 24 x(Locking)S 17 x(of)S 16 x(\014les)S 16 x
(is)S 17 x(only)S 17 x(applicable)S 17 x(to)S 17 x(\014le)S 17 x
(versions)S 16 x(with)S 16 x(status)S 58 y 295 X(MASTER)S 21 x(or)S
20 x(UNREGISTERED.)S 72 y 295 X(Setting)S 15 x(the)S 16 x(lock)S 
15 x(\015ag)S 15 x(of)S 16 x(a)S 16 x(directory)S 16 x(has)S 15 x
(the)S 16 x(ef)S -1 x(fect,)S 16 x(that)S 15 x(the)S 16 x F75
(.rfaexec)S 15 x F44(\014le)S 15 x(is)S 16 x(not)S 16 x(executed)S
16 x(during)S 16 x(a)S 16 x(RF)S -3 x(A)S 58 y 295 X F75(sync)S 16 x 
F44(or)S 15 x F75(rsync)S 15 x F44(command.)S 20 x(This)S 15 x(can)S
15 x(be)S 15 x(used)S 15 x(to)S 15 x(enable)S 15 x(the)S 15 x
(execution)S 15 x(of)S 15 x(the)S 15 x F75(.rfaexec)S 16 x F44
(\014le)S 15 x(for)S 16 x(a)S 15 x(period)S 15 x(of)S 58 y 295 X
(time)S 14 x(\(e.g.)S 19 x(while)S 13 x(doing)S 13 x(incomplete)S 
13 x(modi\014cations)S 13 x(to)S 13 x(the)S 13 x(source-code)S 13 x
(when)S 13 x F75(.rfaexec)S 13 x F44(contains)S 13 x(commands)S 58 y 
295 X(for)S 21 x(re-compilation\).)S 2846 Y 295 X F76(2.1.4)S 49 x
(T)S -4 x(ransferlevel)S 2954 Y 295 X F44(One)S 14 x(mode)S 14 x(of)S
13 x(operation)S 13 x(of)S 14 x(the)S 13 x(RF)S -3 x(A)S 13 x(tool)S
14 x(is)S 14 x(to)S 14 x(synchronize)S 13 x(sets)S 13 x(of)S 14 x
(local)S 14 x(version)S 14 x(of)S 14 x(\014les)S 13 x(with)S 14 x
(the)S 13 x(remote)S 58 y 295 X(site.)S 21 x(T)S -3 x(o)S 15 x
(determine)S 15 x(if)S 15 x(a)S 15 x(\014le)S 16 x(that)S 16 x(is)S
16 x(mastered)S 16 x(remote)S 15 x(should)S 15 x(be)S 16 x
(transferred)S 16 x(during)S 16 x(this)S 15 x(synchronization,)S 
58 y 295 X(a)S 19 x(transferlevel)S 19 x(can)S 20 x(be)S 19 x
(associated)S 19 x(with)S 19 x(each)S 19 x(\014le:)S 3276 Y 22 x F6
(2)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 71 53 524 794

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY
%%EndPageSetup
295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 
200 3 R 1340 281 XY 846 3 R -50 y 1874 X(The)S 25 x(RF)S -3 x(A)S 
26 x(Client)S 459 Y 295 X F1(REQUEST)S -2 y 709 X F44(The)S 24 x
(\014le)S 24 x(is)S 24 x(not)S 24 x(transferred)S 24 x
(automatically)S 24 x(during)S 24 x(synchronization.)S 46 x(If)S 
24 x(a)S 24 x(new)S 58 y 709 X(MASTER)S 17 x(\014le)S 17 x(is)S 17 x
(detected)S 18 x(at)S 17 x(the)S 17 x(remote)S 17 x(site,)S 18 x
(only)S 18 x(a)S 18 x(local)S 18 x(dummy)S 18 x(\(empty)S 17 x
(\014le\))S 58 y 709 X(is)S 18 x(created)S 17 x(to)S 17 x(indicate)S
18 x(the)S 18 x(existence)S 18 x(of)S 17 x(the)S 18 x(\014le.)S 
693 Y 295 X F1(AUT)S -1 x(OMA)S -2 x(TIC)S -2 y 709 X F44(The)S 15 x
(\014le)S 16 x(is)S 15 x(transferred)S 15 x(automatically)S 15 x
(during)S 15 x(synchronization)S 15 x(if)S 16 x(the)S 16 x(local)S
16 x(version)S 58 y 709 X(is)S 19 x(not)S 18 x(up-to-date.)S 31 x
(If)S 18 x(a)S 18 x(new)S 19 x(MASTER)S 18 x(\014le)S 18 x(is)S 18 x
(detected)S 19 x(at)S 18 x(the)S 18 x(remote)S 19 x(site,)S 20 x(it)S
19 x(is)S 58 y 709 X(transferred.)S 1032 Y 295 X F76(2.2)S 50 x(The)S
25 x(Functional)S 26 x(Model)S 1163 Y 295 X F44(The)S 17 x(RF)S -3 x
(A)S 16 x(tools)S 16 x(is)S 16 x(built)S 16 x(using)S 16 x(the)S 
16 x F75(Client-Server)S 17 x F44(model)S 16 x(of)S 16 x(the)S 17 x
(ISODE)S 16 x(remote)S 16 x(operations)S 16 x(environment.)S 58 y 
295 X(There)S 15 x(is)S 16 x(a)S 15 x(RF)S -3 x(A)S 15 x(server)S 
16 x(\(called)S 15 x F75(r)S -2 x(os.rfa\))S 15 x F44(at)S 15 x
(each)S 15 x(site)S 16 x(which)S 15 x(is)S 15 x(started)S 15 x
(dynamically)S 15 x(by)S 15 x(the)S 15 x(ISODE)S 16 x F75(tsapd)S 
F44(.)S 59 y 295 X(Most)S 20 x(of)S 20 x(the)S 19 x(RF)S -3 x(A)S 
20 x(commands)S 20 x(are)S 20 x(interpreted)S 20 x(by)S 20 x(the)S
20 x(RF)S -3 x(A)S 19 x(client)S 20 x(\(called)S 20 x F75(rfa)S F44
(\))S 20 x(which)S 19 x(issues)S 20 x(a)S 20 x(remote)S 58 y 295 X
(operation)S 21 x(to)S 21 x(the)S 22 x(remote)S 21 x(RF)S -3 x(A)S
21 x(server.)S 40 x(The)S 21 x(RF)S -3 x(A)S 21 x(client)S 21 x
(does)S 22 x(not)S 22 x(perform)S 21 x(a)S 22 x(1\261to-1)S 22 x
(mapping)S 21 x(of)S 22 x(its)S 58 y 295 X(commands)S 14 x(onto)S 
14 x(the)S 14 x(remote)S 13 x(operations.)S 20 x(It)S 13 x(uses)S 
14 x(none,)S 14 x(one)S 13 x(or)S 14 x(more)S 13 x(remote)S 14 x
(operations)S 14 x(to)S 14 x(execute)S 14 x(a)S 14 x(RF)S -3 x(A)S
58 y 295 X(command.)S 31 x(The)S 19 x(association)S 18 x
(establishment)S 18 x(is)S 19 x(done)S 19 x(when)S 19 x(the)S 18 x
(\014rst)S 18 x(remote)S 19 x(operation)S 19 x(is)S 18 x(invoked.)S
31 x(The)S 58 y 295 X(RF)S -3 x(A)S 17 x(client)S 17 x(can)S 17 x
(operate)S 17 x(in)S 17 x(an)S 18 x(interactive)S 17 x(mode)S 17 x
(or)S 18 x(a)S 18 x(command)S 18 x(mode.)S 1592 Y 295 X(One)S 18 x
(of)S 18 x(the)S 17 x(basic)S 18 x(principles)S 17 x(of)S 18 x(RF)S
-3 x(A)S 17 x(is)S 17 x(that)S 17 x(modi\014cations)S 18 x(to)S 18 x
(any)S 18 x(\014les)S 17 x(are)S 18 x(only)S 18 x(performed)S 17 x
(locally)S 17 x(by)S 58 y 295 X(the)S 17 x(RF)S -3 x(A)S 16 x
(client.)S 24 x(The)S 17 x(remote)S 17 x(RF)S -3 x(A)S 16 x(server)S
17 x(never)S 17 x(modi\014es)S 16 x(any)S 17 x(\014le,)S 17 x(so)S
16 x(no)S 16 x(remote)S 16 x(\014le)S 16 x(modi\014cations)S 16 x
(are)S 58 y 295 X(possible.)S 20 x(The)S 14 x(ensure)S 14 x(a)S 14 x
(certain)S 14 x(autonomy)S 14 x(of)S 14 x(the)S 15 x(two)S 14 x
(sites)S 14 x(concerning)S 14 x(modi\014cations)S 15 x(of)S 14 x
(their)S 15 x(local)S 15 x(\014les.)S 2067 Y 295 X F46(3)S 62 x(The)S
34 x(RF)S -6 x(A)S 34 x(Client)S 2279 Y 295 X F44(The)S 16 x(RF)S 
-3 x(A)S 15 x(client)S 16 x(\()S F75(rfa)S F44(\))S 15 x(provides)S
15 x(an)S 16 x(interactive)S 15 x(mode)S 15 x(and)S 16 x(a)S 16 x
(command)S 16 x(mode.)S 21 x(The)S 16 x(rfa)S 16 x(command)S 16 x
(has)S 15 x(the)S 59 y 295 X(following)S 21 x(syntax:)S
XP /F78 /CM-Courier 41.511 13 DNF RP
413 2431 XY F78(rfa)S 25 x([)S 25 x(-u)S 25 x(username)S 25 x(-p)S
24 x(password)S 25 x(])S 25 x([)S 25 x(-h)S 25 x(hostname])S 25 x([)S
25 x(-q)S 25 x(])S 49 y 538 X([)S 25 x(-c)S 24 x(rfa-command)S 25 x
(])S 2582 Y 295 X F44(The)S 16 x(name)S 16 x(of)S 16 x(the)S 16 x
(host)S 16 x(\(as)S 16 x(de\014ned)S 16 x(in)S 16 x(the)S 16 x F75
(isoentities)S 16 x F44(database\))S 16 x(where)S 16 x(the)S 16 x
(remote)S 16 x(site)S 16 x(is)S 16 x(located)S 16 x(can)S 16 x(be)S
58 y 295 X(speci\014ed)S 12 x(using)S 13 x(the)S 12 x F75(-h)S 13 x 
F44(option.)S 19 x(Because)S 12 x(the)S 13 x(RF)S -3 x(A)S 13 x
(client)S 13 x(binds)S 12 x(to)S 12 x(the)S 13 x(remote)S 12 x(RF)S
-3 x(A)S 12 x(server)S 12 x(with)S 12 x(a)S 13 x(username)S 58 y 
295 X(that)S 12 x(must)S 13 x(be)S 13 x(valid)S 12 x(at)S 13 x(the)S
12 x(remote)S 13 x(site,)S 13 x(the)S 12 x F75(-u)S 13 x F44(and)S
12 x F75(-p)S 13 x F44(options)S 13 x(can)S 13 x(be)S 13 x(used)S 
13 x(to)S 12 x(specify)S 13 x(the)S 12 x(username)S 13 x(and)S 12 x
(the)S 58 y 295 X(password)S 15 x(for)S 15 x(the)S 15 x(remote)S 
15 x(site.)S 20 x(The)S 15 x F75(-q)S 15 x F44(option)S 15 x
(directs)S 14 x F75(rfa)S 15 x F44(to)S 15 x(run)S 15 x(in)S 15 x
(quit-mode,)S 15 x(where)S 15 x(only)S 15 x(severe)S 15 x(errors)S
58 y 295 X(are)S 16 x(reported)S 16 x(and)S 15 x(no)S 16 x(user)S 
16 x(interaction)S 16 x(is)S 16 x(performed.)S 21 x(Using)S 15 x
(the)S 16 x F75(-c)S 16 x F44(option,)S 16 x(a)S 16 x(command)S 16 x
(can)S 16 x(be)S 16 x(passed)S 16 x(to)S 58 y 295 X(rfa)S 18 x(in)S
18 x(command)S 17 x(mode.)S 28 x(This)S 18 x(can)S 18 x(be)S 17 x
(any)S 18 x(command)S 17 x(described)S 18 x(below.)S 2952 Y 295 X
(If)S 15 x(the)S 16 x(rfa)S 15 x(is)S 16 x(called)S 15 x(without)S
16 x(the)S 16 x F75(-c)S 15 x F44(option,)S 16 x(is)S 15 x(runs)S 
16 x(in)S 16 x(interactive)S 16 x(mode.)S 22 x(The)S 16 x F75(rfa)S
16 x F44(provides)S 16 x(the)S 15 x(following)S 58 y 295 X
(commands.)S 26 x(A)S 17 x(command)S 17 x(can)S 17 x(be)S 17 x
(abbreviated)S 17 x(with)S 17 x(its)S 17 x(unambiguous)S 18 x(pre)S
(\014x.)S 3276 Y 1230 X F6(3)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 71 53 524 794

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY
%%EndPageSetup
295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 
200 3 R 1340 281 XY 846 3 R -50 y 1875 X(The)S 25 x(RF)S -3 x(A)S 
25 x(Client)S 459 Y 295 X F76(3.1)S 50 x(pwd)S 575 Y 295 X F44
(During)S 12 x(interactive)S 13 x(mode,)S 13 x F75(rfa)S 13 x F44
(has)S 13 x(a)S 12 x(current)S 13 x(directory.)S 19 x(This)S 13 x
(directory)S 13 x(is)S 13 x(relative)S 13 x(to)S 13 x(the)S 12 x
(root)S 13 x(of)S 12 x(the)S 13 x(shared)S 58 y 295 X(subtree.)S 
23 x(The)S 17 x F75(pwd)S 16 x F44(command)S 16 x(shows)S 17 x(the)S
17 x(name)S 16 x(of)S 17 x(the)S 17 x(current)S 17 x(working)S 16 x
(directory)S 16 x(relative)S 17 x(to)S 17 x(the)S 16 x(root)S 16 x
(of)S 58 y 295 X(the)S 18 x(shared)S 18 x(subtree.)S 29 x(Initially)S
19 x(this)S 19 x(is)S 18 x(the)S 18 x(current)S 19 x(working)S 18 x
(directory)S 18 x(of)S 18 x(the)S 18 x(UNIX)S 18 x F75(sh\(1\))S 
18 x F44(where)S 18 x F75(rfa)S 18 x F44(has)S 58 y 295 X(been)S 
20 x(called)S 19 x(if)S 19 x(it)S 19 x(is)S 19 x(within)S 19 x(the)S
19 x(shared)S 20 x(subtree.)S 934 Y 295 X F76(3.2)S 50 x(cd)S 1050 Y 
295 X F44(The)S 18 x F75(cd)S 18 x F44(command)S 17 x(changes)S 18 x
(the)S 17 x(current)S 17 x(directory)S 18 x(of)S 17 x F75(rfa)S 17 x 
F44(in)S 17 x(interactive)S 18 x(mode)S 18 x(to)S 18 x(the)S 17 x
(directory)S 18 x(given)S 18 x(as)S 58 y 295 X(the)S 15 x(\014rst)S
14 x(ar)S -1 x(gument.)S 20 x(No)S 15 x(check)S 14 x(is)S 14 x(made)S
15 x(if)S 14 x(this)S 15 x(directory)S 15 x(exists.)S 20 x(It)S 15 x
(is)S 15 x(not)S 15 x(possible)S 14 x(to)S 14 x(change)S 14 x(the)S
15 x(working)S 58 y 295 X(directory)S 19 x(above)S 20 x(the)S 20 x
(root)S 19 x(of)S 20 x(the)S 19 x(shared)S 19 x(subtree.)S 1351 Y 
295 X F76(3.3)S 50 x(list)S 1466 Y 295 X F44(The)S 12 x F75(list)S
12 x F44(command)S 11 x(provides)S 11 x(a)S 11 x(listing)S 11 x(of)S
12 x(the)S 12 x(\014les)S 11 x(within)S 11 x(the)S 11 x(directories)S
11 x(given)S 12 x(as)S 11 x(the)S 11 x(command)S 11 x(ar)S -1 x
(guments.)S 58 y 295 X(If)S 17 x(no)S 17 x(ar)S -1 x(gument)S 18 x
(is)S 17 x(given,)S 18 x(the)S 18 x(current)S 18 x(working)S 17 x
(directory)S 18 x(is)S 18 x(listed.)S 27 x(The)S 18 x(output)S 18 x
(of)S 17 x(the)S 18 x F75(list)S 18 x F44(command)S 18 x(is)S 58 y 
295 X(similar)S 19 x(to)S 19 x(the)S 18 x(output)S 18 x(of)S 19 x
(the)S 18 x(UNIX)S 19 x F75(ls)S 17 x(-lg)S 18 x F44(command,)S 19 x
(e.g.)S 1664 Y 413 X F78(-rw-rw-r--)S 25 x(M-A)S 25 x(ow)S 1011 X
(verdi)S 1360 X(754)S 24 x(Jul)S 25 x(12)S 25 x(13:59)S 50 x
(.sunview)S 50 y 413 X(drwxr-xr-x)S 25 x(---)S 25 x(ow)S 1011 X
(verdi)S 1360 X(512)S 24 x(Jul)S 25 x(12)S 25 x(14:01)S 50 x(bin)S
1804 Y 295 X F44(The)S 15 x(three)S 15 x(character)S 15 x(\014eld)S
16 x(after)S 15 x(the)S 15 x(\014le)S 15 x(permissions)S 15 x(is)S
16 x(used)S 15 x(to)S 15 x(indicated)S 16 x(the)S 16 x(dif)S -1 x
(ferent)S 15 x(rfa-speci\014c)S 16 x(states)S 59 y 295 X(of)S 17 x
(the)S 17 x(\014le.)S 25 x(The)S 17 x(\014rst)S 17 x(character)S 
17 x(indicates)S 17 x(the)S 17 x(status)S 17 x(of)S 17 x(the)S 17 x
(\014le,)S 18 x(with)S 17 x F78(M)S 17 x F44(for)S 17 x(master)S 
17 x(version,)S 17 x F78(S)S 17 x F44(for)S 17 x(slave)S 58 y 295 X
(V)S -5 x(ersion)S 13 x(and)S 13 x F78(-)S 13 x F44(for)S 13 x
(unregistered)S 13 x(version.)S 20 x(The)S 12 x(second)S 13 x
(character)S 13 x(is)S 13 x(the)S 13 x(lock)S 13 x(indicator)S 13 x
(with)S 13 x(an)S 13 x F78(L)S 12 x F44(indicating)S 58 y 295 X
(that)S 14 x(the)S 14 x(\014le)S 13 x(is)S 14 x(currently)S 14 x
(locked)S 14 x(and)S 13 x(an)S 13 x F78(-)S 14 x F44(for)S 14 x
(unlocked.)S 20 x(The)S 13 x(third)S 14 x(character)S 14 x
(indicates)S 14 x(the)S 13 x(transfer)S 14 x(mode)S 58 y 295 X(of)S
18 x(the)S 17 x(\014les)S 17 x(with)S 17 x F78(A)S 17 x F44(for)S 
17 x(automatic)S 17 x(transfer)S 17 x(and)S 18 x F78(-)S 17 x F44
(for)S 18 x(transfer)S 17 x(on)S 18 x(request.)S 2222 Y 295 X F76
(3.4)S 50 x(rlist)S 2337 Y 295 X F44(The)S 18 x F75(rlist)S 17 x F44
(command)S 17 x(is)S 18 x(similar)S 17 x(to)S 18 x(the)S 18 x F75
(list)S 18 x F44(command)S 18 x(with)S 18 x(the)S 17 x(dif)S -1 x
(ference)S 17 x(that)S 18 x(the)S 17 x(\014les)S 18 x(in)S 18 x(the)S
18 x(directory)S 59 y 295 X(at)S 21 x(the)S 20 x(remote)S 21 x(site)S
21 x(are)S 20 x(listed.)S 2580 Y 295 X F76(3.5)S 50 x(lock)S 2696 Y 
295 X F44(The)S 14 x F75(lock)S 14 x F44(command)S 14 x(is)S 14 x
(used)S 13 x(to)S 13 x(get)S 14 x(a)S 14 x(locked)S 13 x(local)S 
14 x(version)S 14 x(of)S 14 x(the)S 13 x(\014le\(s\))S 14 x(that)S
14 x(are)S 13 x(provided)S 13 x(as)S 14 x(ar)S -1 x(gument\(s\))S 
58 y 295 X(to)S 19 x(the)S 19 x(command.)S 32 x(Only)S 19 x(regular)S
19 x(\014les)S 19 x(within)S 19 x(the)S 19 x(shared)S 19 x(subtree)S
19 x(are)S 19 x(valid.)S 32 x(It)S 19 x(is)S 19 x(not)S 19 x
(possible)S 19 x(to)S 19 x(lock)S 58 y 295 X(directories,)S 16 x
(links,)S 16 x(etc.)S 21 x(.)S 21 x(If)S 15 x(the)S 15 x(name)S 15 x
(of)S 16 x(the)S 15 x(\014le)S 16 x(to)S 16 x(be)S 15 x(locked)S 
15 x(is)S 15 x(a)S 16 x(symbolic)S 16 x(link,)S 15 x(the)S 16 x
(\014le)S 15 x(referenced)S 15 x(by)S 58 y 295 X(the)S 18 x(link)S
19 x(is)S 18 x(locked)S 18 x(if)S 19 x(it)S 18 x(is)S 18 x(located)S
18 x(within)S 18 x(the)S 18 x(shared)S 19 x(subtree.)S 75 y 295 X
(The)S 18 x F75(lock)S 18 x F44(command)S 18 x(should)S 18 x(be)S 
18 x(used)S 18 x(whenever)S 18 x(a)S 18 x(\014le)S 17 x(within)S 
18 x(the)S 18 x(shared)S 18 x(subtree)S 18 x(is)S 18 x(modi\014ed)S
18 x(to)S 18 x(ensure)S 58 y 295 X(that)S 18 x(the)S 19 x(local)S 
18 x(version)S 18 x(of)S 19 x(the)S 19 x(\014le)S 19 x(is)S 19 x
(a\))S 19 x(the)S 18 x(master)S 19 x(version)S 19 x(and)S 18 x(b\))S
19 x(not)S 19 x(currently)S 19 x(under)S 18 x(modify-access)S 58 y 
295 X(by)S 21 x(another)S 21 x(local)S 21 x(user.)S 3276 Y 1230 X 
F6(4)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 71 53 524 794

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY
%%EndPageSetup
295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 
200 3 R 1340 281 XY 846 3 R -50 y 1874 X(The)S 25 x(RF)S -3 x(A)S 
26 x(Client)S 459 Y 295 X F44(If)S 15 x(the)S 15 x(local)S 15 x
(version)S 15 x(of)S 15 x(the)S 16 x(\014les)S 15 x(has)S 15 x(a)S
16 x(SLA)S -6 x(VE)S 15 x(status,)S 15 x(the)S 15 x(lock)S 15 x
(command)S 16 x(will)S 15 x(try)S 15 x(to)S 15 x(get)S 15 x(the)S 
15 x(mastership)S 58 y 295 X(for)S 17 x(the)S 18 x(\014le.)S 28 x
(Therefore,)S 18 x(it)S 18 x(\014rst)S 17 x(veri\014es)S 18 x(that)S
18 x(the)S 17 x(local)S 18 x(version)S 18 x(is)S 17 x(up-to-date,)S
19 x(otherwise)S 18 x(it)S 18 x(transfers)S 18 x(the)S 58 y 295 X
(up-to-date)S 15 x(version)S 15 x(from)S 16 x(the)S 15 x(current)S
16 x(master,)S 16 x(similar)S 15 x(to)S 15 x(the)S 16 x F75
(get\014le)S 16 x F44(command.)S 22 x(After)S 15 x(an)S 15 x
(up-to-date)S 15 x(local)S 58 y 295 X(version)S 11 x(of)S 11 x(the)S
11 x(requested)S 11 x(\014le)S 11 x(exists,)S 12 x(a)S 11 x F75
(RequestMaster)S 11 x F44(operation)S 11 x(is)S 11 x(issued)S 11 x
(to)S 11 x(the)S 11 x(remote)S 11 x(site)S 11 x(to)S 11 x(transfer)S
11 x(the)S 59 y 295 X(mastership.)S 19 x(If)S 13 x(the)S 13 x
(\014le)S 14 x(is)S 13 x(not)S 13 x(locked)S 13 x(at)S 13 x(the)S 
13 x(remote)S 13 x(site,)S 14 x(the)S 13 x(mastership)S 13 x(is)S 
14 x(granted)S 13 x(to)S 14 x(the)S 14 x(local)S 14 x(site)S 13 x
(which)S 58 y 295 X(then)S 15 x(is)S 15 x(the)S 15 x(new)S 15 x
(master.)S 20 x(The)S 15 x(local)S 16 x(lock)S 15 x(is)S 15 x(set)S
15 x(the)S 15 x(by)S 15 x(setting)S 15 x(the)S 16 x F78(L)S F44
(\(ocked\))S 15 x(\015ag)S 15 x(in)S 15 x(the)S 15 x(local)S 15 x
(\014les)S 15 x(state.)S 831 Y 295 X(If)S 16 x(the)S 16 x(local)S 
16 x(version)S 16 x(of)S 16 x(the)S 16 x(requested)S 16 x(\014le)S
16 x(already)S 16 x(is)S 16 x(the)S 16 x(MASTER)S 16 x(version)S 
16 x(or)S 16 x(is)S 16 x(an)S 16 x(UNREGISTERED)S 58 y 295 X
(\014le,)S 22 x(it)S 20 x(is)S 20 x(checked)S 21 x(if)S 20 x(the)S
21 x(\014le)S 21 x(is)S 21 x(already)S 21 x(locked)S 21 x(by)S 21 x
(another)S 21 x(local)S 21 x(user,)S 22 x(where)S 21 x(the)S 21 x
(requested)S 20 x(lock)S 21 x(is)S 58 y 295 X(rejected.)S 22 x
(Otherwise)S 16 x(the)S 16 x(local)S 16 x(lock)S 15 x(is)S 15 x(set)S
16 x(the)S 15 x(by)S 15 x(setting)S 16 x(the)S 15 x F78(L)S F44
(\(ocked\))S 15 x(\015ag)S 16 x(in)S 16 x(the)S 16 x(local)S 16 x
(\014les)S 15 x(state.)S 1029 Y 295 X(Because)S 20 x(the)S 19 x
(lock)S 19 x(command)S 19 x(will)S 20 x(be)S 19 x(applied)S 19 x(in)S
19 x(the)S 19 x(most)S 19 x(cases)S 19 x(to)S 19 x(a)S 20 x(local)S
20 x(version)S 19 x(of)S 20 x(the)S 19 x(\014le)S 20 x(that)S 20 x
(is)S 58 y 295 X(already)S 17 x(master,)S 18 x(it)S 18 x(is)S 18 x
(not)S 17 x(necessary)S 18 x(to)S 18 x(execute)S 18 x(the)S 18 x
(whole)S 18 x F75(rfa)S 18 x F44(program)S 17 x(to)S 18 x(do)S 18 x
(the)S 18 x(local)S 18 x(lock.)S 28 x(Because)S 58 y 295 X(the)S 
16 x F75(rfa)S 16 x F44(program)S 16 x(includes)S 16 x(the)S 16 x
(whole)S 16 x(code)S 17 x(needed)S 16 x(for)S 17 x(the)S 17 x
(execution)S 17 x(of)S 16 x(the)S 16 x(remote)S 16 x(operations)S 
16 x(\(ISODE)S 58 y 295 X(stack,)S 13 x(etc.\),)S 13 x(there)S 12 x
(may)S 13 x(be)S 13 x(a)S 13 x(signi\014cant)S 13 x(time)S 13 x
(delay)S 12 x(while)S 13 x(loading)S 12 x(this)S 13 x(huge)S 13 x
(program.)S 19 x(T)S -3 x(o)S 13 x(optimize)S 13 x(this,)S 13 x(a)S
58 y 295 X(stand-alone)S 12 x(program)S 12 x(called)S 12 x F75
(llock)S 12 x F44(is)S 11 x(provided)S 12 x(which)S 12 x(is)S 12 x
(able)S 12 x(to)S 12 x(perform)S 12 x(the)S 12 x(locking)S 12 x(if)S
12 x(the)S 11 x(local)S 12 x(version)S 12 x(is)S 58 y 295 X(the)S 
12 x(master)S 13 x(version.)S 20 x(If)S 13 x F75(llock)S 13 x F44
(could)S 13 x(perform)S 12 x(the)S 12 x(local)S 12 x(lock,)S 12 x
(it)S 12 x(exits)S 12 x(with)S 13 x(exit\261code)S 12 x(0.)S 19 x
(If)S 13 x(the)S 12 x(\014le)S 13 x(is)S 13 x(already)S 58 y 295 X
(locked)S 15 x(locally)S 15 x(or)S 16 x(an)S 15 x(error)S 15 x
(condition)S 15 x(occurred)S 15 x(it)S 15 x(exits)S 16 x(with)S 15 x
(exit-code)S 16 x(1.)S 21 x(If)S 16 x(the)S 15 x(local)S 15 x
(version)S 15 x(of)S 15 x(the)S 16 x(\014le)S 58 y 295 X(is)S 15 x
(not)S 15 x(MASTER,)S 15 x(it)S 15 x(returns)S 15 x(2)S 14 x(which)S
15 x(indicates)S 15 x(that)S 15 x(the)S 15 x F75(rfa)S 15 x F44
(command)S 15 x(is)S 15 x(needed)S 15 x(to)S 15 x(perform)S 15 x
(the)S 15 x(locking.)S 1671 Y 295 X F76(3.6)S 50 x(unlock)S 1807 Y 
295 X F44(The)S 15 x F75(unlock)S 15 x F44(command)S 14 x(is)S 14 x
(used)S 14 x(to)S 14 x(release)S 14 x(a)S 14 x(lock)S 14 x(for)S 
15 x(a)S 14 x(local)S 14 x(MASTER)S 14 x(version)S 15 x(of)S 14 x
(the)S 14 x(\014le\(s\))S 14 x(provided)S 14 x(as)S 58 y 295 X
(command)S 17 x(ar)S -1 x(gument\(s\).)S 24 x(If)S 17 x(the)S 16 x
(name)S 17 x(of)S 16 x(the)S 16 x(\014le)S 16 x(to)S 16 x(be)S 17 x
(unlocked)S 17 x(is)S 16 x(a)S 16 x(symbolic)S 16 x(link,)S 16 x
(the)S 17 x(\014le)S 16 x(referenced)S 58 y 295 X(by)S 16 x(the)S 
15 x(link)S 15 x(is)S 16 x(unlocked)S 16 x(if)S 16 x(it)S 16 x(is)S
16 x(located)S 16 x(within)S 16 x(the)S 16 x(shared)S 16 x(subtree.)S
22 x(There)S 16 x(is)S 15 x(are)S 16 x(no)S 16 x(checks)S 16 x(made)S
15 x(if)S 16 x(the)S 59 y 295 X(\014le)S 17 x(has)S 18 x(been)S 18 x
(locked)S 18 x(by)S 17 x(the)S 18 x(user)S 17 x(that)S 17 x
(performs)S 18 x(the)S 17 x(unlock)S 17 x(operation.)S 2063 Y 295 X
(Similar)S 12 x(to)S 13 x(the)S 12 x F75(llock)S 12 x F44(command)S
12 x(there)S 13 x(exists)S 12 x(an)S 12 x F75(lunlock)S 12 x F44
(command)S 12 x(which)S 12 x(is)S 13 x(capable)S 12 x(to)S 12 x
(perform)S 12 x(the)S 12 x(release)S 58 y 295 X(of)S 17 x(the)S 17 x
(\(always\))S 18 x(local)S 17 x(locks)S 17 x(to)S 17 x(avoid)S 17 x
(the)S 17 x(expensive)S 17 x(use)S 17 x(of)S 17 x(the)S 17 x F75
(rfa)S 17 x F44(command.)S 2357 Y 295 X F76(3.7)S 50 x(master)S 
2493 Y 295 X F44(The)S 11 x F75(master)S 11 x F44(command)S 11 x
(can)S 11 x(be)S 11 x(used)S 11 x(to)S 11 x(request)S 11 x(that)S 
11 x(the)S 12 x(local)S 11 x(version)S 11 x(of)S 11 x(the)S 11 x
(\014le\(s\))S 11 x(provided)S 11 x(as)S 11 x(ar)S -1 x(gument\(s\))S
58 y 295 X(will)S 17 x(become)S 16 x(the)S 16 x(MASTER)S 16 x
(version.)S 23 x(If)S 16 x(the)S 16 x(name)S 16 x(of)S 16 x(the)S 
17 x(\014le)S 16 x(is)S 16 x(a)S 16 x(symbolic)S 16 x(link,)S 17 x
(the)S 16 x(\014le)S 17 x(referenced)S 16 x(by)S 58 y 295 X(the)S 
17 x(link)S 17 x(is)S 17 x(tar)S -1 x(get)S 17 x(of)S 17 x(the)S 
17 x(operation)S 17 x(if)S 17 x(it)S 17 x(is)S 17 x(located)S 17 x
(within)S 17 x(the)S 17 x(shared)S 17 x(subtree.)S 2690 Y 295 X(If)S
16 x(the)S 16 x(local)S 16 x(version)S 15 x(of)S 16 x(the)S 16 x
(\014le)S 15 x(is)S 16 x(in)S 16 x(UNREGISTERED)S 16 x(status,)S 
16 x(its)S 16 x(status)S 16 x(is)S 16 x(set)S 16 x(to)S 16 x(MASTER)S
16 x(if)S 16 x(there)S 16 x(is)S 58 y 295 X(no)S 17 x(version)S 17 x
(of)S 17 x(the)S 17 x(\014le)S 17 x(with)S 17 x(MASTER)S 17 x
(status)S 17 x(at)S 18 x(the)S 18 x(remote)S 18 x(site.)S 27 x(This)S
17 x(is)S 18 x(the)S 18 x(way)S 17 x(how)S 17 x(locally)S 17 x
(created)S 59 y 295 X(\014les)S 16 x(will)S 15 x(be)S 15 x
(introduced)S 15 x(into)S 15 x(the)S 15 x(set)S 15 x(of)S 15 x
(shared)S 16 x(\014les)S 15 x(where)S 15 x(the)S 15 x(creating)S 
15 x(site)S 15 x(becomes)S 15 x(the)S 15 x(initial)S 16 x(master.)S
2888 Y 295 X(If)S 16 x(the)S 16 x(local)S 16 x(version)S 16 x(of)S
17 x(the)S 17 x(\014le)S 17 x(is)S 16 x(in)S 16 x(SLA)S -6 x(VE)S 
16 x(status,)S 17 x(then)S 16 x(the)S 16 x(mastership)S 17 x(for)S
16 x(the)S 16 x(\014le)S 16 x(is)S 16 x(requested)S 16 x(from)S 58 y 
295 X(the)S 13 x(remote)S 13 x(site)S 13 x(similar)S 13 x(to)S 13 x
(the)S 13 x F75(lock)S 13 x F44(command.)S 20 x(The)S 13 x(write)S
13 x(access)S 13 x(permissions)S 13 x(of)S 13 x(the)S 13 x(new)S 
13 x(local)S 13 x(MASTER)S 58 y 295 X(version)S 21 x(are)S 22 x
(set.)S 3276 Y 1230 X F6(5)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 71 53 524 794

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY
%%EndPageSetup
295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 
200 3 R 1340 281 XY 846 3 R -50 y 1875 X(The)S 25 x(RF)S -3 x(A)S 
25 x(Client)S 459 Y 295 X F76(3.8)S 50 x(slave)S 579 Y 295 X F44
(The)S 13 x F75(slave)S 13 x F44(command)S 13 x(can)S 13 x(be)S 13 x
(used)S 13 x(to)S 13 x(request)S 13 x(that)S 13 x(the)S 13 x(local)S
13 x(version)S 13 x(of)S 13 x(the)S 13 x(\014le\(s\))S 13 x
(provided)S 13 x(as)S 13 x(ar)S -1 x(gument\(s\))S 58 y 295 X(will)S
17 x(become)S 16 x(a)S 16 x(SLA)S -6 x(VE)S 16 x(version.)S 24 x(If)S
16 x(the)S 17 x(name)S 16 x(of)S 17 x(the)S 16 x(\014le)S 16 x(is)S
16 x(a)S 17 x(symbolic)S 17 x(link,)S 16 x(the)S 17 x(\014le)S 17 x
(referenced)S 17 x(by)S 16 x(the)S 58 y 295 X(link)S 18 x(is)S 18 x
(tar)S -1 x(get)S 17 x(of)S 18 x(the)S 18 x(operation)S 18 x(if)S 
17 x(it)S 18 x(is)S 18 x(located)S 18 x(within)S 17 x(the)S 17 x
(shared)S 18 x(subtree.)S 771 Y 295 X(If)S 15 x(the)S 15 x(local)S
15 x(version)S 15 x(of)S 16 x(the)S 16 x(\014le)S 15 x(is)S 15 x(in)S
16 x(UNREGISTERED)S 15 x(or)S 15 x(MASTER)S 15 x(status,)S 15 x(its)S
15 x(status)S 16 x(is)S 15 x(set)S 15 x(to)S 15 x(SLA)S -6 x(VE)S 
58 y 295 X(if)S 17 x(there)S 17 x(is)S 17 x(version)S 16 x(of)S 17 x
(the)S 17 x(\014le)S 17 x(with)S 17 x(MASTER)S 17 x(status)S 17 x
(at)S 17 x(the)S 17 x(remote)S 16 x(site.)S 25 x(The)S 17 x(write)S
16 x(access)S 17 x(permissions)S 58 y 295 X(of)S 20 x(the)S 20 x
(new)S 19 x(local)S 19 x(SLA)S -6 x(VE)S 19 x(version)S 20 x(are)S
20 x(cleared.)S 1082 Y 295 X F76(3.9)S 50 x(unr)S -1 x(egister)S 
1201 Y 295 X F44(The)S 22 x F75(unr)S -2 x(egister)S 23 x F44
(command)S 21 x(can)S 21 x(be)S 21 x(used)S 22 x(to)S 22 x(request)S
21 x(that)S 22 x(the)S 22 x(local)S 21 x(version)S 22 x(of)S 21 x
(the)S 22 x(\014le\(s\))S 22 x(provided)S 22 x(as)S 59 y 295 X(ar)S
-1 x(gument\(s\))S 15 x(will)S 15 x(become)S 15 x(an)S 15 x
(UNREGISTERED)S 15 x(version.)S 20 x(If)S 15 x(the)S 15 x(local)S 
15 x(version)S 15 x(of)S 15 x(the)S 15 x(\014le)S 15 x(is)S 15 x
(locked,)S 15 x(this)S 58 y 295 X(results)S 16 x(in)S 16 x(an)S 16 x
(error.)S 22 x(If)S 16 x(the)S 15 x(name)S 16 x(of)S 16 x(the)S 16 x
(\014le)S 16 x(is)S 16 x(a)S 16 x(symbolic)S 16 x(link,)S 16 x(the)S
16 x(\014le)S 16 x(referenced)S 16 x(by)S 16 x(the)S 16 x(link)S 
16 x(is)S 16 x(tar)S -1 x(get)S 58 y 295 X(of)S 19 x(the)S 18 x
(operation)S 19 x(if)S 18 x(it)S 19 x(is)S 19 x(located)S 18 x
(within)S 18 x(the)S 18 x(shared)S 19 x(subtree.)S 1571 Y 295 X F76
(3.10)S 50 x(setr)S -1 x(equest)S 1690 Y 295 X F44(The)S 17 x F75
(setr)S -2 x(equest)S 16 x F44(command)S 16 x(is)S 17 x(used)S 17 x
(to)S 17 x(set)S 17 x(the)S 16 x(transfer)S 17 x(mode)S 17 x(of)S 
16 x(the)S 16 x(local)S 16 x(version)S 16 x(of)S 17 x(the)S 17 x
(\014le\(s\))S 17 x(provided)S 59 y 295 X(as)S 16 x(ar)S -1 x
(gument\(s\))S 16 x(to)S 16 x(REQUEST)S 16 x(mode.)S 21 x(If)S 15 x
(the)S 16 x(name)S 15 x(of)S 16 x(the)S 15 x(\014le)S 15 x(is)S 15 x
(a)S 15 x(symbolic)S 15 x(link,)S 16 x(the)S 16 x(\014le)S 16 x
(referenced)S 15 x(by)S 58 y 295 X(the)S 17 x(link)S 17 x(is)S 17 x
(tar)S -1 x(get)S 17 x(of)S 17 x(the)S 17 x(operation)S 17 x(if)S 
17 x(it)S 17 x(is)S 17 x(located)S 17 x(within)S 17 x(the)S 17 x
(shared)S 17 x(subtree.)S 2002 Y 295 X F76(3.11)S 50 x(setauto)S 
2121 Y 295 X F44(The)S 16 x F75(setauto)S 17 x F44(command)S 16 x
(is)S 17 x(used)S 17 x(to)S 16 x(set)S 16 x(the)S 16 x(transfer)S 
16 x(mode)S 17 x(of)S 16 x(the)S 16 x(local)S 16 x(version)S 16 x
(of)S 17 x(the)S 16 x(\014le\(s\))S 16 x(provided)S 16 x(as)S 58 y 
295 X(ar)S -1 x(gument\(s\))S 15 x(to)S 15 x(AUT)S -1 x(OMA)S -5 x
(TIC)S 14 x(mode.)S 20 x(If)S 15 x(the)S 15 x(name)S 15 x(of)S 15 x
(the)S 15 x(\014le)S 15 x(is)S 15 x(a)S 15 x(symbolic)S 15 x(link,)S
15 x(the)S 15 x(\014le)S 16 x(referenced)S 15 x(by)S 58 y 295 X(the)S
17 x(link)S 17 x(is)S 17 x(tar)S -1 x(get)S 17 x(of)S 17 x(the)S 
17 x(operation)S 17 x(if)S 17 x(it)S 17 x(is)S 17 x(located)S 17 x
(within)S 17 x(the)S 17 x(shared)S 17 x(subtree.)S 2432 Y 295 X F76
(3.12)S 50 x(get\014le)S 2552 Y 295 X F44(The)S 17 x F75(get\014le)S
17 x F44(command)S 16 x(is)S 17 x(used)S 17 x(to)S 17 x(request)S 
16 x(the)S 16 x(transfer)S 17 x(of)S 16 x(the)S 16 x(shared)S 16 x
(\014le\(s\))S 17 x(provided)S 16 x(as)S 17 x(ar)S -1 x
(gument\(s\).)S 24 x(If)S 58 y 295 X(the)S 17 x(name)S 16 x(of)S 
17 x(the)S 16 x(\014le)S 16 x(is)S 16 x(a)S 16 x(symbolic)S 16 x
(link,)S 17 x(the)S 16 x(\014le)S 16 x(referenced)S 17 x(by)S 17 x
(the)S 16 x(link)S 17 x(is)S 17 x(tar)S -1 x(get)S 17 x(of)S 17 x
(the)S 17 x(operation)S 17 x(if)S 17 x(it)S 58 y 295 X(is)S 20 x
(located)S 20 x(within)S 20 x(the)S 20 x(shared)S 20 x(subtree.)S 
2744 Y 295 X(If)S 12 x(the)S 13 x(remote)S 13 x(version)S 13 x(of)S
12 x(the)S 13 x(\014le)S 12 x(is)S 12 x(in)S 12 x(MASTER)S 12 x
(status,)S 13 x(a)S 12 x(local)S 13 x(SLA)S -6 x(VE)S 13 x(version)S
12 x(is)S 12 x(created)S 13 x(if)S 12 x(the)S 12 x(\014le)S 12 x
(does)S 58 y 295 X(locally)S 17 x(not)S 18 x(exist.)S 27 x(If)S 18 x
(a)S 17 x(local)S 18 x(SLA)S -6 x(VE)S 17 x(version)S 17 x(already)S
18 x(exists,)S 18 x(it)S 18 x(is)S 17 x(updated)S 17 x(from)S 18 x
(the)S 18 x(remote)S 18 x(MASTER)S 58 y 295 X(version.)S 2936 Y 
295 X(If)S 15 x(the)S 16 x(remote)S 15 x(version)S 16 x(of)S 15 x
(the)S 16 x(\014le)S 16 x(is)S 16 x(in)S 15 x(UNREGISTERED)S 16 x
(status,)S 16 x(a)S 16 x(local)S 16 x(version)S 16 x(of)S 16 x(the)S
16 x(\014le)S 16 x(with)S 16 x(status)S 58 y 295 X(UNREGISTERED)S 
17 x(is)S 17 x(created)S 17 x(if)S 17 x(the)S 17 x(\014le)S 17 x
(does)S 17 x(locally)S 17 x(not)S 17 x(exist.)S 25 x(If)S 17 x(a)S
17 x(local)S 17 x(version)S 17 x(already)S 16 x(exists,)S 17 x(it)S
17 x(is)S 58 y 295 X(updated)S 20 x(from)S 20 x(the)S 20 x(remote)S
20 x(version.)S 3276 Y 1230 X F6(6)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 71 53 524 794

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY
%%EndPageSetup
295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 
200 3 R 1340 281 XY 846 3 R -50 y 1874 X(The)S 25 x(RF)S -3 x(A)S 
26 x(Client)S 459 Y 295 X F44(The)S 14 x(transfer)S 13 x(of)S 14 x
(the)S 13 x(\014le)S 14 x(is)S 13 x(performed)S 13 x(according)S 
13 x(the)S 13 x(version-time)S 14 x(\(time)S 13 x(of)S 14 x(last)S
13 x(modi\014cation\))S 14 x(of)S 13 x(the)S 13 x(local)S 58 y 295 X
(and)S 18 x(remote)S 18 x(\014les.)S 28 x(If)S 18 x(both)S 18 x(the)S
18 x(version-times)S 18 x(of)S 18 x(both)S 18 x(\014les)S 18 x(are)S
18 x(equal,)S 18 x(no)S 18 x(transfer)S 18 x(has)S 18 x(to)S 18 x
(be)S 18 x(performed)S 58 y 295 X(because)S 13 x(the)S 13 x(SLA)S 
-6 x(VE)S 13 x(version)S 14 x(is)S 13 x(already)S 14 x(up-to-date.)S
19 x(If)S 13 x(the)S 13 x(version-time)S 14 x(of)S 13 x(the)S 14 x
(remote)S 13 x(MASTER)S 13 x(is)S 13 x(older)S 58 y 295 X(that)S 
16 x(the)S 16 x(version-time)S 16 x(of)S 17 x(the)S 16 x(local)S 
16 x(SLA)S -6 x(VE)S 17 x(\(or)S 16 x(UNREGISTERED\))S 17 x
(version,)S 16 x(an)S 17 x(inconsistency)S 17 x(has)S 17 x(been)S 
59 y 295 X(detected)S 18 x(and)S 17 x(an)S 17 x(error)S 17 x(is)S 
18 x(reported.)S 27 x(Otherwise,)S 17 x(the)S 17 x(content)S 17 x
(of)S 17 x(the)S 17 x(\014le)S 17 x(has)S 17 x(to)S 18 x(be)S 17 x
(transmitted)S 18 x(to)S 17 x(update)S 58 y 295 X(the)S 18 x(local)S
18 x(SLA)S -6 x(VE)S 18 x(\(or)S 18 x(UNREGISTERED\))S 19 x(version)S
18 x(of)S 19 x(the)S 19 x(\014le.)S 831 Y 295 X(The)S 16 x(content)S
16 x(of)S 16 x(the)S 15 x(\014le)S 15 x(can)S 15 x(be)S 16 x
(transferred)S 15 x(either)S 16 x(in)S 15 x(uncompressed)S 16 x(or)S
16 x(in)S 16 x(compressed)S 15 x(mode,)S 16 x(depending)S 59 y 295 X
(on)S 17 x(the)S 16 x(size)S 17 x(of)S 17 x(the)S 16 x(\014le.)S 
25 x(The)S 17 x(size)S 17 x(limit)S 17 x(when)S 16 x(compression)S
17 x(shall)S 17 x(occur)S 17 x(can)S 16 x(be)S 17 x(con\014gured)S
17 x(as)S 17 x(described)S 58 y 295 X(in)S 22 x(chapter)S 22 x(5.)S
42 x(The)S 23 x(compression)S 22 x(and)S 23 x(decompression)S 22 x
(is)S 22 x(done)S 23 x(using)S 22 x(the)S 23 x(UNIX)S -17 y F74(TM)S
17 y 24 x F75(compr)S -2 x(ess\(1\))S 23 x F44(and)S 58 y 295 X F75
(uncompr)S -2 x(ess\(1\))S 21 x F44(commands.)S 1088 Y 295 X
(Optionally,)S 16 x(the)S 16 x(old)S 16 x(version)S 16 x(of)S 16 x
(the)S 16 x(local)S 15 x(\014le)S 16 x(will)S 15 x(be)S 15 x(saved)S
16 x(in)S 16 x(as)S 16 x(a)S 16 x(\014le)S 16 x(with)S 16 x(the)S 
16 x(suf)S -1 x(\014x)S 17 x F75(.bak)S 16 x F44(if)S 16 x(the)S 
16 x(local)S 58 y 295 X(\014le)S 17 x(is)S 18 x(updated.)S 26 x
(This)S 18 x(option)S 18 x(can)S 17 x(be)S 18 x(con\014gured)S 17 x
(as)S 17 x(described)S 18 x(in)S 18 x(chapter)S 17 x(5.)S 1385 Y 
295 X F76(3.13)S 50 x(syncdir)S 1523 Y 295 X F44(The)S 13 x F75
(syncdir)S 13 x F44(command)S 13 x(is)S 13 x(used)S 13 x(to)S 13 x
(synchronize)S 13 x(the)S 13 x(\014les)S 13 x(within)S 13 x(the)S 
13 x(directory/ies)S 13 x(provided)S 13 x(as)S 13 x(ar)S -1 x
(gument\(s\))S 58 y 295 X(with)S 12 x(their)S 12 x(counterparts)S 
12 x(at)S 12 x(the)S 12 x(remote)S 12 x(site.)S 19 x(Here)S 12 x
(the)S 11 x(basic)S 12 x(principle)S 11 x(is,)S 13 x(that)S 12 x
(the)S 12 x(site)S 12 x(executing)S 12 x(the)S 12 x F75(syncdir)S 
58 y 295 X F44(command)S 14 x(is)S 13 x(only)S 14 x(synchronizing)S
14 x(the)S 14 x(local)S 14 x(site)S 14 x(by)S 14 x(applying)S 14 x
(the)S 13 x(following)S 14 x(actions)S 14 x(to)S 14 x(the)S 13 x
(list)S 14 x(of)S 14 x(\014les)S 14 x(that)S 58 y 295 X(exists)S 
19 x(at)S 19 x(the)S 19 x F49(r)S -1 x(emote)S 18 x F44(site)S 19 x
(within)S 19 x(the)S 19 x(given)S 19 x(directory:)S 1804 Y 378 X
(\267)S 67 x(Create)S 17 x(a)S 17 x(local)S 17 x(SLA)S -6 x(VE)S 
18 x(\014le)S 16 x(versions)S 17 x(for)S 17 x(newly)S 17 x(found)S
16 x(remote)S 17 x(MASTER)S 17 x(version)S 17 x(\014le.)S 26 x(This)S
17 x(is)S 58 y 461 X(done)S 18 x(according)S 18 x(to)S 18 x(the)S 
18 x(transfer)S 18 x(mode)S 18 x(of)S 18 x(the)S 18 x(\014le.)S 28 x
(If)S 18 x(the)S 18 x(transfer)S 18 x(mode)S 18 x(is)S 18 x(set)S 
18 x(to)S 18 x(REQUEST,)S 58 y 461 X(only)S 14 x(a)S 14 x(dummy)S 
14 x(SLA)S -6 x(VE)S 14 x(version)S 14 x(of)S 14 x(\014le)S 15 x(is)S
14 x(created)S 14 x(which)S 14 x(indicates)S 14 x(the)S 14 x
(existence)S 14 x(of)S 15 x(the)S 15 x(\014le,)S 15 x(but)S 58 y 
461 X(does)S 14 x(not)S 14 x(have)S 14 x(its)S 14 x(actual)S 14 x
(content.)S 20 x(Otherwise,)S 14 x(the)S 14 x(content)S 14 x(of)S 
14 x(the)S 14 x(\014le)S 14 x(is)S 13 x(transferred)S 14 x(as)S 14 x
(described)S 58 y 461 X(with)S 20 x(the)S 21 x F75(get\014le)S 20 x 
F44(command.)S 2119 Y 378 X(\267)S 67 x(Update)S 19 x(local)S 19 x
(SLA)S -6 x(VE)S 19 x(\014le)S 18 x(version)S 18 x(with)S 19 x(a)S
19 x(remote)S 19 x(MASTER)S 19 x(version)S 19 x(if)S 19 x(the)S 18 x
(transfer)S 18 x(mode)S 18 x(of)S 58 y 461 X(the)S 20 x(\014le)S 
20 x(is)S 21 x(AUT)S -1 x(OMA)S -5 x(TIC)S 2260 Y 378 X(\267)S 67 x
(Create)S 19 x(local)S 19 x(SLA)S -6 x(VE)S 18 x(sub-directory)S 
19 x(if)S 19 x(a)S 18 x(new)S 18 x(MASTER)S 19 x(sub-directory)S 
18 x(has)S 18 x(been)S 18 x(found)S 18 x(at)S 18 x(the)S 58 y 461 X
(remote)S 17 x(site.)S 26 x(By)S 17 x(this,)S 18 x(the)S 17 x
(shared)S 17 x(subtree)S 18 x(will)S 17 x(grow)S 17 x(in)S 18 x
(size.)S 26 x(Directories)S 17 x(found)S 17 x(at)S 17 x(the)S 17 x
(remote)S 58 y 461 X(site)S 17 x(that)S 18 x(are)S 17 x(in)S 17 x
(status)S 17 x(UNREGISTERED)S 17 x(are)S 17 x F49(NOT)S 17 x F44
(created)S 17 x(locally.)S 2459 Y 378 X(\267)S 67 x(Create)S 18 x(a)S
18 x(local)S 18 x(symbolic)S 18 x(link)S 18 x(if)S 18 x(a)S 17 x
(symbolic)S 18 x(link)S 18 x(has)S 18 x(been)S 18 x(found)S 18 x(at)S
18 x(the)S 18 x(remote)S 18 x(site.)S 28 x(This)S 18 x(is)S 59 y 
461 X(only)S 16 x(done)S 17 x(if)S 17 x(the)S 16 x(\014le)S 16 x
(referenced)S 16 x(by)S 16 x(the)S 16 x(link)S 17 x(is)S 16 x
(located)S 16 x(within)S 16 x(the)S 16 x(shared)S 16 x(subtree.)S 
2601 Y 378 X(\267)S 67 x(Perform)S 18 x(various)S 18 x(checks)S 18 x
(to)S 18 x(insure)S 18 x(consistency)S 19 x(between)S 18 x(local)S
18 x(and)S 19 x(remote)S 18 x(sites)S 19 x(views)S 19 x(of)S 18 x
(the)S 58 y 461 X(\014les)S 21 x(within)S 21 x(the)S 21 x
(directory.)S 2742 Y 378 X(\267)S 67 x(Removes)S 15 x(local)S 15 x
(SLA)S -6 x(VE)S 15 x(\014les)S 14 x(if)S 15 x(there)S 15 x(is)S 
14 x(no)S 15 x(corresponding)S 15 x(MASTER)S 15 x(\014le)S 15 x(at)S
15 x(the)S 15 x(remote)S 15 x(site.)S 21 x(If)S 58 y 461 X(there)S
15 x(is)S 16 x(a)S 15 x(UNREGISTERED)S 16 x(\014le)S 15 x(at)S 16 x
(remote,)S 15 x(the)S 15 x(local)S 16 x(\014le)S 15 x(state)S 15 x
(is)S 15 x(set)S 15 x(to)S 15 x(UNREGISTERED.)S 2883 Y 378 X(\267)S
67 x(Execute)S 21 x(a)S 20 x(existing)S 20 x F75(.rfaexec)S 20 x F44
(\014le)S 20 x(if)S 20 x(any)S 20 x(\014le)S 20 x(within)S 20 x(the)S
20 x(directory)S 20 x(has)S 21 x(been)S 20 x(updated)S 20 x(and)S 
20 x(the)S 58 y 461 X(directory)S 20 x(itself)S 20 x(in)S 20 x(not)S
20 x(LOCKED.)S 3275 Y 1230 X F6(7)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 71 53 524 794

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY
%%EndPageSetup
295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 
200 3 R 1340 281 XY 846 3 R -50 y 1734 X(The)S 24 x(RF)S -3 x
(A-EXEC)S 24 x(facility)S 459 Y 295 X F44(T)S -3 x(o)S 19 x(achieve)S
20 x(a)S 20 x(fully)S 20 x(synchronized)S 20 x(directory,)S 21 x
(both)S 20 x(sites)S 20 x(need)S 19 x(to)S 20 x(perform)S 19 x(a)S
19 x F75(syncdir)S 19 x F44(operation)S 20 x(for)S 20 x(that)S 58 y 
295 X(directory)S 14 x(at)S 15 x(periodic)S 15 x(times.)S 20 x(This)S
15 x(will)S 14 x(be)S 14 x(typically)S 15 x(done)S 15 x(by)S 15 x
(creating)S 14 x(an)S 15 x(entry)S 15 x(into)S 14 x(the)S 14 x
(systems)S 14 x F75(cr)S -2 x(ontab)S F44(.)S 746 Y 295 X F76(3.14)S
50 x(rsyncdir)S 880 Y 295 X F44(The)S 13 x F75(rsyncdir)S 13 x F44
(command)S 13 x(is)S 14 x(very)S 13 x(similar)S 13 x(to)S 13 x(the)S
13 x F75(syncdir)S 13 x F44(command,)S 14 x(but)S 13 x(performs)S 
13 x(a)S 13 x(recursive)S 13 x(synchroniza-)S 58 y 295 X(tion)S 16 x
(of)S 16 x(the)S 16 x(whole)S 16 x(subtree)S 16 x(starting)S 16 x
(at)S 16 x(the)S 16 x(directory/ies)S 16 x(provided)S 16 x(as)S 15 x
(ar)S -1 x(gument\(s\).)S 22 x(The)S 16 x(same)S 16 x(actions)S 16 x
(are)S 58 y 295 X(performed)S 18 x(as)S 18 x(within)S 18 x(the)S 
17 x F75(syncdir)S 18 x F44(command)S 18 x(with)S 17 x(an)S 18 x
(additional)S 17 x(actions:)S 1124 Y 378 X(\267)S 67 x(If)S 14 x(a)S
15 x(MASTER)S 14 x(directory)S 15 x(is)S 14 x(detected)S 15 x(at)S
14 x(the)S 14 x(remote)S 15 x(site)S 14 x(and)S 15 x(the)S 15 x
(transfer)S 15 x(mode)S 14 x(of)S 15 x(this)S 14 x(directory)S 58 y 
461 X(is)S 17 x(set)S 17 x(to)S 18 x(AUT)S -1 x(OMA)S -5 x(TIC,)S 
18 x(the)S 17 x(directory)S 17 x(is)S 17 x(synchronized)S 17 x
(recursively.)S 1265 Y 378 X(\267)S 67 x(It)S 18 x(does)S 18 x(not)S
18 x(follow)S 18 x(symbolic)S 18 x(links)S 18 x(pointing)S 18 x(to)S
17 x(directories)S 1370 Y 295 X(Directories)S 16 x(found)S 15 x(at)S
16 x(the)S 15 x(remote)S 15 x(site)S 15 x(that)S 15 x(are)S 15 x(in)S
15 x(status)S 15 x(UNREGISTERED)S 16 x(or)S 15 x(don't)S 15 x(have)S
16 x(transfer)S 16 x(mode)S 58 y 295 X(AUT)S -1 x(OMA)S -5 x(TIC)S
15 x(are)S 14 x F49(NOT)S 15 x F44(synchronized)S 15 x(recursively.)S
20 x(They)S 14 x(have)S 15 x(to)S 14 x(be)S 15 x(updated)S 15 x
(individually)S 14 x(by)S 14 x(applying)S 58 y 295 X(the)S 21 x F75
(syncdir)S 21 x F44(command.)S 1567 Y 295 X(Using)S 13 x(the)S 13 x 
F75(rsyncdir)S 13 x F44(command)S 13 x(it)S 13 x(is)S 12 x(possible)S
13 x(to)S 13 x(synchronize)S 13 x(the)S 12 x(whole)S 13 x(shared)S
13 x(subtree.)S 20 x(The)S 13 x(con\014guration)S 58 y 295 X(which)S
13 x(parts)S 13 x(of)S 14 x(a)S 13 x(subtree)S 14 x(at)S 13 x(a)S 
14 x(site)S 13 x(belongs)S 14 x(to)S 14 x(that)S 13 x(shared)S 13 x
(subtree)S 13 x(is)S 13 x(done)S 13 x(by)S 13 x(setting)S 13 x(the)S
13 x(MASTER)S 13 x(status)S 58 y 295 X(and)S 18 x(the)S 18 x
(transfer)S 19 x(level)S 18 x(of)S 18 x(the)S 18 x(\014les)S 18 x
(and)S 18 x(directories)S 18 x(appropriately.)S 1912 Y 295 X F76
(3.15)S 50 x(timesync)S 2046 Y 295 X F44(T)S -3 x(o)S 17 x
(synchronize)S 18 x(the)S 17 x(local)S 17 x(clocks)S 17 x(of)S 17 x
(the)S 17 x(participating)S 17 x(sites,)S 18 x(the)S 18 x F75
(timesync)S 17 x F44(command)S 17 x(can)S 17 x(be)S 17 x(used.)S 
26 x(This)S 58 y 295 X(command)S 16 x(synchronizes)S 16 x(the)S 16 x
(local)S 16 x(clock)S 16 x(of)S 16 x(the)S 16 x(site)S 16 x(acting)S
16 x(as)S 16 x(the)S 16 x F75(time)S 14 x(slave)S 16 x F44(with)S 
16 x(the)S 16 x(clock)S 16 x(of)S 16 x(the)S 15 x F75(time)S 58 y 
295 X(master)S 11 x F44(site.)S 19 x(The)S 12 x(command)S 12 x(can)S
12 x(be)S 12 x(called)S 12 x(at)S 12 x(both)S 11 x(sites)S 12 x(to)S
12 x(initiate)S 12 x(the)S 12 x(synchronization.)S 20 x(The)S 12 x
(con)S
(\014guration)S 58 y 295 X(of)S 18 x(a)S 18 x(site)S 17 x(to)S 18 x
(be)S 17 x F75(time)S 16 x(slave)S 18 x F44(or)S 17 x F75(time)S 
16 x(master)S 18 x F44(is)S 18 x(described)S 18 x(in)S 18 x(chapter)S
18 x(5)S 2449 Y 295 X F76(3.16)S 50 x(help)S 2583 Y 295 X F44(The)S
20 x F75(help)S 19 x F44(command)S 20 x(shows)S 20 x(the)S 20 x
(list)S 20 x(of)S 19 x(available)S 20 x(command)S 19 x(and)S 20 x
(gives)S 20 x(a)S 20 x(one-line)S 19 x(description)S 20 x(of)S 19 x
(each)S 58 y 295 X(command.)S 2870 Y 295 X F76(3.17)S 50 x(quit)S 
3004 Y 295 X F44(Obviously,)S 19 x(the)S 18 x F75(quit)S 19 x F44
(commands)S 18 x(terminates)S 19 x(the)S 18 x F75(rfa)S 19 x F44
(session.)S 3276 Y 1230 X F6(8)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 71 53 524 794

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY
%%EndPageSetup
295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 
200 3 R 1340 281 XY 846 3 R -50 y 1829 X(RF)S -3 x(A)S 25 x
(Con\014guration)S 464 Y 295 X F46(4)S 62 x(The)S 32 x(RF)S -6 x
(A-EXEC)S 32 x(facility)S 669 Y 295 X F44(When)S 16 x(a)S 15 x
(directory)S 16 x(within)S 16 x(the)S 16 x(shared)S 15 x(subtree)S
16 x(is)S 15 x(synchronized)S 15 x(using)S 16 x(the)S 16 x(RF)S -3 x
(A)S 15 x F75(sync)S 15 x F44(or)S 15 x F75(rsync)S 16 x F44
(commands,)S 58 y 295 X(in)S 17 x(most)S 17 x(cases)S 17 x(there)S
18 x(are)S 17 x(further)S 18 x(actions)S 17 x(required)S 17 x(if)S
17 x(any)S 18 x(\014les)S 17 x(have)S 18 x(been)S 17 x(updated,)S 
18 x(e.g.)S 27 x(issuing)S 17 x(a)S 18 x F75(make)S 58 y 295 X F44
(command)S 18 x(to)S 17 x(re-build)S 18 x(the)S 18 x(updated)S 18 x
(software.)S 28 x(This)S 18 x(can)S 18 x(be)S 18 x(achieved)S 18 x
(by)S 17 x(RF)S -3 x(A's)S 18 x(facility)S 18 x(to)S 18 x(create)S
18 x(a)S 18 x(\014le)S 58 y 295 X(called)S 12 x F75(.rfaexec)S 11 x 
F44(in)S 11 x(each)S 11 x(directory.)S 19 x(This)S 11 x(\014le)S 
12 x(is)S 12 x(executed)S 11 x(by)S 11 x F75(sh\(1\))S 12 x F44
(every)S 12 x(time)S 11 x(the)S 11 x(directory)S 12 x(is)S 12 x
(synchronized)S 58 y 295 X(and)S 13 x(minimally)S 12 x(one)S 13 x
(\014le)S 13 x(within)S 13 x(the)S 12 x(directory)S 13 x(has)S 12 x
(been)S 13 x(updated.)S 19 x(The)S 13 x(\014le)S 13 x F75(.rfaexec)S
12 x F44(can)S 12 x(be)S 13 x(have)S 13 x(executable)S 58 y 295 X
(format)S 16 x(\(sh,)S 17 x(csh,)S 16 x(binary\))S 16 x(and)S 17 x
(should)S 16 x(have)S 16 x(the)S 16 x(executed)S 16 x(permission)S
16 x(set.)S 23 x(When)S 16 x(RF)S -3 x(A)S 16 x(executed)S 16 x
(this)S 16 x(\014le,)S 58 y 295 X(it)S 17 x(passes)S 18 x(the)S 18 x
(names)S 17 x(of)S 18 x(the)S 18 x(\014les)S 17 x(that)S 17 x(have)S
17 x(been)S 17 x(updated)S 17 x(as)S 17 x(ar)S -1 x(guments)S 18 x
(to)S 17 x(it.)S 1096 Y 295 X(This)S 16 x(facility)S 16 x(can)S 15 x
(be)S 16 x(disabled)S 15 x(by)S 15 x(setting)S 15 x(the)S 16 x F75
(rfaexec)S 15 x F44(tailoring)S 15 x(option)S 15 x(to)S 15 x F75
(off)S F44(.)S 21 x(Further,)S 15 x(it)S 16 x(can)S 15 x(be)S 16 x
(disabled)S 58 y 295 X(for)S 21 x(a)S 22 x(single)S 22 x(directory)S
21 x(by)S 22 x(setting)S 22 x(the)S 21 x(LOCKED)S 21 x(status)S 22 x
(of)S 22 x(the)S 22 x(directory.)S 40 x(This)S 22 x(is)S 22 x
(useful)S 22 x(to)S 22 x(prevent)S 58 y 295 X(re-compilations)S 17 x
(of)S 17 x(software)S 18 x(during)S 18 x(an)S 17 x(un\014nished)S 
17 x(development)S 18 x(cycle.)S 1291 Y 295 X(For)S 10 x(security)S
11 x(reasons,)S 12 x(the)S 11 x F75(.rfaexec)S 11 x F44(\014le)S 
11 x(can)S 11 x F49(NOT)S 10 x F44(be)S 11 x(registered)S 11 x(as)S
10 x(MASTER)S 10 x(or)S 11 x(SLA)S -6 x(VE)S 11 x(\014le.)S 18 x(An)S
11 x(automatic)S 58 y 295 X(transfer)S 15 x(of)S 14 x(this)S 15 x
(\014le)S 15 x(may)S 15 x(cause)S 15 x(a)S 15 x(user)S 15 x(to)S 
15 x(execute)S 14 x(something)S 14 x(during)S 14 x(the)S 15 x F75
(sync)S 15 x F44(command)S 15 x(which)S 15 x(has)S 15 x(been)S 58 y 
295 X(\252imported\272)S 15 x(from)S 16 x(the)S 15 x(remote)S 16 x
(site.)S 22 x(Therefore,)S 16 x(the)S 15 x F75(.rfaexec)S 16 x F44
(\014le)S 16 x(is)S 16 x(always)S 15 x(a)S 15 x(local)S 16 x
(unregistered)S 16 x(\014le.)S 1759 Y 295 X F46(5)S 62 x(RF)S -6 x
(A)S 32 x(Con\014guration)S 1964 Y 295 X F44(The)S 22 x
(con\014guration)S 22 x(of)S 21 x(the)S 22 x(RF)S -3 x(A)S 21 x
(client)S 22 x(\()S F75(rfa)S F44(\))S 22 x(and)S 22 x(the)S 22 x
(RF)S -3 x(A)S 21 x(server)S 21 x(\()S F75(r)S -2 x(os.rfa\))S 23 x 
F44(server)S 21 x(can)S 22 x(be)S 22 x(tailored)S 22 x(at)S 58 y 
295 X(start)S 19 x(time)S 19 x(by)S 19 x(a)S 19 x(con\014guration)S
19 x(\014le.)S 32 x(This)S 20 x(\014le)S 19 x(is)S 19 x(called)S 
19 x F75(rfatailor)S 19 x F44(and)S 19 x(can)S 19 x(exist)S 19 x
(either)S 19 x(in)S 19 x(the)S 20 x(ISODE's)S 58 y 295 X
(\203\(ETCDIR\))S 19 x(or)S 19 x(the)S 18 x(RF)S -3 x(A)S 19 x
(speci)S
(\014c)S 19 x(tailoring)S 18 x(directory)S 19 x(which)S 18 x(is)S 
18 x(de\014ned)S 19 x(in)S 19 x(the)S 18 x F75(con\014g.h)S 19 x F44
(\014le)S 19 x(of)S 19 x(RF)S -3 x(A)S 18 x(as)S 58 y 295 X F75(RF)S
-6 x(A\210T)S -3 x(AILDIR)S F44(.)S 16 x(This)S 16 x(\014le)S 16 x
(is)S 16 x(read)S 16 x(by)S 16 x(both)S 16 x(the)S 16 x(RF)S -3 x(A)S
15 x(client)S 16 x(and)S 16 x(server.)S 22 x(The)S 16 x(\014le)S 
16 x(consists)S 16 x(of)S 16 x(a)S 16 x(number)S 16 x(of)S 58 y 
295 X(tailoring)S 20 x(statements)S 20 x(with)S 20 x(the)S 20 x
(syntax)S 2287 Y 413 X F78(tailoringOption)S 912 X(=)S 1036 X
(tailoringValue)S 2386 Y 295 X F44(Lines)S 20 x(with)S 20 x
(comments)S 20 x(start)S 20 x(with)S 20 x(a)S 20 x(\252#\272.)S 
2465 Y 295 X(The)S 18 x(options)S 17 x(that)S 18 x(are)S 18 x(valid)S
18 x(for)S 18 x(both)S 18 x(the)S 18 x(RF)S -3 x(A)S 17 x(client)S
18 x(and)S 18 x(server)S 18 x(are:)S 2585 Y 295 X F1(r)S -2 x(oot)S
4 y 709 X F44(the)S 17 x(pathname)S 17 x(of)S 16 x(the)S 16 x(root)S
16 x(of)S 17 x(the)S 16 x(shared)S 17 x(subtree)S 17 x(at)S 16 x
(the)S 16 x(local)S 17 x(site)S 2714 Y 295 X F1(time)S -2 y 709 X 
F44(the)S 18 x(role)S 17 x(that)S 17 x(the)S 17 x(local)S 17 x(site)S
17 x(plays)S 17 x(for)S 17 x(time)S 17 x(synchronization.)S 26 x
(Possible)S 17 x(values)S 17 x(are)S 58 y 709 X F75(master)S 20 x 
F44(or)S 20 x F75(slave)S F44(.)S 2849 Y 295 X(The)S 18 x(following)S
18 x(options)S 18 x(are)S 18 x(only)S 18 x(recognized)S 18 x(by)S 
18 x(the)S 18 x(RF)S -3 x(A)S 18 x(server:)S 2964 Y 295 X F1(compr)S
-2 x(ess)S 8 y 709 X F44(The)S 11 x(limit)S 11 x(for)S 11 x(the)S 
11 x(\014lesize)S 11 x(in)S 11 x(bytes)S 11 x(when)S 11 x
(compression)S 11 x(during)S 11 x(the)S 11 x(transfer)S 11 x
(operation)S 59 y 709 X(shall)S 20 x(occur.)S 3276 Y 1230 X F6(9)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 71 53 524 794

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY
%%EndPageSetup
295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 
200 3 R 1340 281 XY 846 3 R -50 y 1829 X(RF)S -3 x(A)S 25 x
(Con\014guration)S 459 Y 295 X F1(chmod)S -2 y 709 X F44(determines)S
15 x(if)S 15 x(the)S 15 x(write)S 15 x(permissions)S 15 x(of)S 15 x
(local)S 15 x(SLA)S -6 x(VE)S 16 x(\014les)S 15 x(shall)S 15 x(be)S
15 x(removed)S 15 x(and)S 58 y 709 X(write)S 19 x(permissions)S 18 x
(to)S 18 x(local)S 18 x(MASTER)S 18 x(and)S 18 x(UNREGISTERED)S 18 x
(versions)S 18 x(shall)S 18 x(be)S 58 y 709 X(set.)S 21 x(This)S 
16 x(requires)S 15 x(that)S 15 x(user)S 16 x(executing)S 16 x(the)S
16 x F75(rfa)S 16 x F44(command)S 15 x(is)S 15 x(the)S 15 x(owner)S
16 x(of)S 15 x(the)S 16 x(\014le)S 58 y 709 X(or)S 15 x(the)S 15 x 
F75(rfa)S 15 x F44(program)S 15 x(runs)S 15 x(under)S 15 x(the)S 
15 x(ef)S -1 x(fective)S 15 x(user)S 15 x(id)S 15 x(of)S 16 x(root.)S
20 x(Possible)S 15 x(values)S 15 x(are)S 58 y 709 X F75(on)S 21 x 
F44(and)S 20 x F75(off)S F44(.)S 807 Y 295 X F1(debuglog)S -4 y 
709 X F44(enables)S 22 x(more)S 22 x(detailed)S 23 x(logging)S 22 x
(information)S 22 x(to)S 22 x(be)S 22 x(written)S 22 x(to)S 23 x
(the)S 23 x(RF)S -3 x(A)S 21 x(log\014le)S 58 y 709 X F75(rfa.log)S
16 x F44(in)S 16 x(the)S 17 x(ISODE)S 17 x(logdir.)S 25 x(Possible)S
16 x(values)S 17 x(are)S 17 x F75(on)S 16 x F44(and)S 17 x F75(off)S
F44(.)S 938 Y 295 X(The)S 15 x(following)S 15 x(options)S 14 x(are)S
15 x(only)S 14 x(recognized)S 15 x(by)S 15 x(the)S 14 x(RF)S -3 x(A)S
14 x(client.)S 20 x(They)S 14 x(may)S 14 x(additionally)S 14 x(be)S
14 x(de\014ned)S 15 x(on)S 15 x(a)S 58 y 295 X(per-user)S 18 x
(basis)S 18 x(in)S 17 x(a)S 18 x(\014le)S 18 x(called)S 18 x F75
(.rfar)S -2 x(c)S 19 x F44(in)S 18 x(the)S 18 x(users)S 18 x(home)S
18 x(directory.)S 1113 Y 295 X F1(host)S -3 y 709 X F44(the)S 23 x
(name)S 22 x(of)S 22 x(the)S 22 x(remote)S 22 x(host.)S 41 x(This)S
23 x(name)S 23 x(must)S 22 x(be)S 22 x(de\014ned)S 22 x(in)S 23 x
(the)S 23 x(ISODE's)S 59 y 709 X F75(isoentities)S 20 x F44
(database.)S 1265 Y 295 X F1(user)S 9 y 709 X F44(the)S 20 x
(username)S 20 x(that)S 20 x(shall)S 20 x(be)S 19 x(used)S 20 x(to)S
20 x(authenticate)S 19 x(with)S 20 x(the)S 20 x(remote)S 20 x(RF)S
-3 x(A)S 19 x(server.)S 58 y 709 X(This)S 16 x(must)S 16 x(be)S 16 x
(a)S 16 x(UNIX)S -17 y F74(TM)S 17 y 18 x F44(login)S 16 x(name)S 
16 x(that)S 16 x(is)S 16 x(valid)S 16 x(on)S 16 x(the)S 16 x(remote)S
16 x(site.)S 1448 Y 295 X F1(passwor)S -2 x(d)S -2 y 709 X F44(The)S
21 x(password)S 21 x(corresponding)S 22 x(to)S 21 x(the)S 22 x(user)S
21 x(name.)S 39 x(This)S 22 x(password)S 22 x(must)S 22 x(be)S 21 x
(the)S 58 y 709 X(password)S 17 x(for)S 17 x(the)S 17 x(given)S 17 x
(login)S 17 x(name)S 17 x(at)S 17 x(the)S 17 x(remote)S 18 x(site.)S
1622 Y 295 X F1(backup)S -3 y 709 X F44(determines)S 15 x(if)S 15 x
(a)S 15 x(backup)S 14 x(\014le)S 14 x(with)S 15 x(suf)S -1 x(\014x)S
15 x F75(.bak)S 14 x F44(shall)S 14 x(be)S 15 x(created)S 14 x(when)S
15 x(a)S 14 x(local)S 15 x(\014le)S 15 x(is)S 59 y 709 X(updated.)S
28 x(Possible)S 18 x(values)S 18 x(are)S 18 x F75(on)S 18 x F44(and)S
18 x F75(off)S F44(.)S 1794 Y 295 X F1(chgrp)S -2 y 709 X F44
(determines)S 18 x(if)S 19 x(the)S 18 x(group-id)S 19 x(of)S 18 x
(local)S 18 x(SLA)S -6 x(VE)S 18 x(\014les)S 18 x(shall)S 18 x(be)S
19 x(set)S 19 x(according)S 18 x(to)S 18 x(the)S 58 y 709 X
(group-id)S 15 x(of)S 15 x(the)S 14 x(remote)S 15 x(MASTER)S 15 x
(\014le.)S 20 x(This)S 15 x(requires)S 15 x(that)S 15 x(user)S 15 x
(executing)S 15 x(the)S 15 x F75(rfa)S 58 y 709 X F44(command)S 20 x
(is)S 20 x(member)S 20 x(of)S 20 x(all)S 20 x(groups)S 20 x(that)S
20 x(may)S 20 x(appear)S 20 x(or)S 20 x(the)S 20 x F75(rfa)S 20 x 
F44(program)S 20 x(runs)S 58 y 709 X(under)S 16 x(the)S 16 x(ef)S 
-1 x(fective)S 16 x(user)S 16 x(id)S 17 x(of)S 16 x(root.)S 23 x
(Possible)S 16 x(values)S 16 x(are)S 16 x F75(on)S 17 x F44(and)S 
16 x F75(off)S F44(.)S 2083 Y 295 X F1(chown)S -2 y 709 X F44
(determines)S 21 x(if)S 20 x(the)S 21 x(user-id)S 21 x(of)S 20 x
(local)S 21 x(SLA)S -6 x(VE)S 21 x(\014les)S 21 x(shall)S 21 x(be)S
21 x(set)S 21 x(according)S 21 x(to)S 21 x(the)S 58 y 709 X(user-id)S
18 x(of)S 17 x(the)S 17 x(remote)S 17 x(MASTER)S 17 x(\014le.)S 26 x
(This)S 17 x(requires)S 17 x(that)S 17 x(user)S 17 x(executing)S 
17 x(the)S 17 x F75(rfa)S 58 y 709 X F44(command)S 17 x(is)S 17 x
(the)S 17 x(owner)S 17 x(of)S 18 x(the)S 18 x(\014le)S 18 x(or)S 
17 x(the)S 17 x F75(rfa)S 17 x F44(program)S 17 x(runs)S 17 x(under)S
18 x(the)S 17 x(ef)S -1 x(fective)S 58 y 709 X(user)S 17 x(id)S 17 x
(of)S 18 x(root.)S 27 x(Possible)S 18 x(values)S 17 x(are)S 17 x F75
(on)S 18 x F44(and)S 17 x F75(off)S F44(.)S 2371 Y 295 X F1
(transfer)S -2 y 709 X F44(the)S 22 x(default)S 22 x(transfer)S 21 x
(mode)S 21 x(that)S 21 x(is)S 21 x(set)S 21 x(when)S 21 x(a)S 21 x
(\014le)S 22 x(is)S 21 x(registered)S 21 x(the)S 21 x(\014rst)S 21 x
(time.)S 58 y 709 X(Possible)S 18 x(values)S 18 x(are)S 18 x F75
(auto)S 18 x F44(and)S 18 x F75(r)S -2 x(equest)S 2545 Y 295 X F1
(clearsuid)S -4 y 709 X F44(determines)S 11 x(if)S 11 x(the)S 11 x
(set-uid-on-execution)S 11 x(bit)S 11 x(of)S 11 x(\014les)S 11 x(is)S
11 x(cleared)S 11 x(if)S 11 x(they)S 11 x(are)S 11 x(transferred)S
58 y 709 X(to)S 17 x(the)S 17 x(remote)S 16 x(site.)S 25 x(Possible)S
17 x(values)S 17 x(are)S 17 x F75(on)S 17 x F44(and)S 17 x F75(off)S
F44(.)S 25 x(If)S 17 x(RF)S -3 x(A)S 17 x(runs)S 17 x(with)S 17 x
(ef)S -1 x(fective)S 58 y 709 X(user-id)S 19 x(of)S 18 x(root)S 18 x
(and)S 19 x F75(chown)S 18 x F44(options)S 18 x(is)S 18 x(enabled,)S
19 x F75(clearsuid)S 18 x F44(should)S 19 x(be)S 18 x(enabled)S 19 x
(to)S 58 y 709 X(avoid)S 17 x(that)S 17 x(privileged)S 17 x(users)S
17 x(from)S 16 x(one)S 17 x(sites)S 17 x(are)S 17 x(able)S 16 x(to)S
17 x(gain)S 17 x(illegal)S 17 x(privileges)S 17 x(at)S 59 y 709 X
(the)S 21 x(other)S 20 x(site.)S 2882 Y 295 X F1(rmslaves)S -3 y 
709 X F44(determines)S 15 x(if)S 16 x(slave)S 15 x(\014les)S 16 x
(with)S 15 x(no)S 15 x(remote)S 16 x(master)S 16 x(\014le)S 16 x
(are)S 16 x(deleted)S 15 x(during)S 16 x(the)S 16 x F75(sync)S 58 y 
709 X F44(and)S 19 x F75(rsync)S 20 x F44(command.)S 34 x(Possible)S
19 x(values)S 20 x(are)S 19 x F75(on)S 20 x F44(and)S 19 x F75(off)S
F44(.)S 34 x(If)S 20 x(a)S 20 x(there)S 20 x(is)S 20 x(a)S 20 x
(remote)S 58 y 709 X(UNREGISTERED)S 18 x(\014le,)S 19 x(the)S 18 x
(status)S 18 x(of)S 19 x(the)S 19 x(local)S 19 x(SLA)S -6 x(VE)S 
18 x(\014le)S 18 x(is)S 19 x(only)S 18 x(changed)S 19 x(to)S 58 y 
709 X(UNREGISTERED.)S 3276 Y 1219 X F6(10)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 71 53 524 794

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY
%%EndPageSetup
295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 
200 3 R 1340 281 XY 846 3 R -50 y 1731 X(What)S 25 x(is)S 25 x
(still)S 25 x(missing)S 24 x(...)S 459 Y 295 X F1(rfaexec)S -2 y 
709 X F44(determines)S 17 x(if)S 17 x(the)S 17 x F75(.rfaexec)S 17 x 
F44(\014les)S 17 x(are)S 17 x(executed)S 17 x(during)S 17 x(a)S 17 x 
F75(sync)S 17 x F44(or)S 17 x F75(rsync)S 17 x F44(command.)S 58 y 
709 X(Possible)S 19 x(values)S 19 x(are)S 19 x F75(on)S 19 x F44
(and)S 19 x F75(off)S F44(.)S 906 Y 295 X F46(6)S 62 x(Some)S 28 x
(W)S -4 x(ords)S 27 x(on)S 27 x(User-IDs)S 27 x(and)S 27 x
(Permissions)S 1149 Y 295 X F44(In)S 15 x(principle,)S 15 x(the)S 
15 x(RF)S -3 x(A)S 14 x(client)S 15 x(runs)S 15 x(with)S 15 x(the)S
15 x(user-id)S 15 x(of)S 16 x(the)S 15 x(user)S 15 x(that)S 15 x
(invokes)S 15 x(the)S 15 x(client.)S 20 x(The)S 15 x(RF)S -3 x(A)S
14 x(server)S 58 y 295 X(either)S 16 x(runs)S 16 x(with)S 16 x(the)S
15 x(user-id)S 16 x(of)S 16 x(the)S 16 x(user)S 16 x(who)S 16 x
(owns)S 16 x(the)S 16 x(server)S 16 x(program)S 16 x(\(as)S 15 x
(performed)S 16 x(by)S 16 x F75(tsapd\(8\))S F44(\),)S 16 x(or)S 
58 y 295 X(it)S 16 x(runs)S 16 x(with)S 16 x(the)S 16 x(user-id)S 
16 x(the)S 16 x(invoker)S 16 x(has)S 16 x(supplied)S 16 x(with)S 
16 x(the)S 16 x(bind)S 16 x(ar)S -1 x(guments)S 15 x(\(a)S 16 x
(username)S 16 x(and)S 16 x(password)S 59 y 295 X(valid)S 16 x(at)S
16 x(the)S 16 x(remote)S 16 x(server)S 16 x(host\).)S 23 x(In)S 16 x
(the)S 16 x(later)S 16 x(case)S 16 x F75(tsapd)S 16 x F44(needs)S 
16 x(to)S 16 x(run)S 16 x(with)S 16 x(user-id)S 16 x(of)S 16 x(root)S
16 x(and)S 16 x(ros.rfa)S 58 y 295 X(needs)S 21 x(to)S 21 x(be)S 
21 x(owned)S 20 x(by)S 21 x(root.)S 1466 Y 295 X(Under)S 19 x
(certain)S 19 x(circumstances,)S 20 x(RF)S -3 x(A)S 18 x(client)S 
19 x(and)S 19 x(server)S 19 x(need)S 19 x(to)S 19 x(do)S 18 x(modi)S
(\014cation)S 19 x(to)S 19 x(\014les)S 19 x(which)S 18 x(are)S 19 x
(not)S 58 y 295 X(owned)S 19 x(by)S 19 x(the)S 19 x(user-id)S 18 x
(that)S 18 x(RF)S -3 x(A)S 18 x(is)S 18 x(running)S 19 x(with,)S 
20 x(such)S 19 x(as)S 1633 Y 378 X(\267)S 67 x(changing)S 17 x(a)S
17 x(\014les)S 17 x(access)S 18 x(right)S 17 x(\(e.g.)S 27 x(if)S 
17 x(it)S 17 x(becomes)S 17 x(a)S 17 x(slave)S 17 x(version\))S 
1716 Y 378 X(\267)S 67 x(changing)S 13 x(a)S 14 x(\014les)S 13 x
(owner)S 13 x(of)S 14 x(group)S 14 x(\(e.g.)S 19 x(if)S 14 x(a)S 
13 x(local)S 14 x(slave)S 13 x(is)S 14 x(updates)S 14 x(according)S
13 x(to)S 13 x(a)S 13 x(remote)S 13 x(master)S 58 y 461 X(and)S 19 x
(the)S 18 x F75(chown)S 19 x F44(and)S 19 x F75(chmod)S 19 x F44
(options)S 19 x(are)S 18 x(enabled)S 1883 Y 295 X(One)S 14 x(way)S
14 x(to)S 14 x(deal)S 14 x(with)S 14 x(these)S 14 x(problems)S 14 x
(is)S 14 x(to)S 14 x(disable)S 13 x(these)S 14 x(facilities)S 14 x
(of)S 14 x(RF)S -3 x(A)S 14 x(by)S 14 x(setting)S 14 x(the)S 14 x 
F75(chown)S F44(,)S 15 x F75(chgrp)S 58 y 295 X F44(and)S 17 x F75
(chmod)S 17 x F44(options)S 17 x(to)S 18 x F75(off)S F44(.)S 26 x
(This)S 18 x(will)S 17 x(be)S 17 x(suitable)S 17 x(in)S 17 x(an)S 
17 x(environment)S 17 x(where)S 17 x(all)S 17 x(\014les)S 17 x
(within)S 17 x(the)S 17 x(shared)S 59 y 295 X(subtree)S 16 x(belong)S
16 x(to)S 16 x(a)S 16 x(single)S 16 x(user)S 16 x(and)S 16 x(only)S
16 x(this)S 16 x(user)S 16 x(runs)S 16 x(RF)S -3 x(A)S 15 x(client)S
16 x(and)S 16 x(server)S 16 x(processes.)S 2084 Y 295 X(Otherwise,)S
15 x(if)S 16 x(dif)S -1 x(ferent)S 15 x(users)S 15 x(access)S 15 x
(the)S 16 x(\014les,)S 15 x(minimally)S 15 x(the)S 15 x F75(chmod)S
15 x F44(option)S 15 x(should)S 16 x(be)S 15 x(enabled)S 15 x(to)S
16 x(avoid)S 58 y 295 X(modi\014cations)S 13 x(to)S 13 x(slave)S 
14 x(\014les)S 13 x(\(remember)S 14 x(that)S 14 x(locking)S 13 x(in)S
13 x(rfa)S 13 x(is)S 13 x(advisory\))S 13 x(by)S 13 x(making)S 14 x
(slave)S 13 x(\014les)S 14 x(read-only.)S 58 y 295 X(Further,)S 15 x
(the)S 15 x F75(chown)S 15 x F44(and)S 15 x F75(chgrp)S 15 x F44
(options)S 14 x(should)S 15 x(be)S 15 x(enabled)S 15 x(if)S 15 x
(the)S 15 x(users)S 15 x(and)S 15 x(groups)S 15 x(are)S 15 x(the)S
15 x(same)S 15 x(at)S 15 x(both)S 58 y 295 X(sites)S 17 x(to)S 16 x
(maintain)S 16 x(the)S 16 x(ownership)S 16 x(\(and)S 16 x
(originatorship)S 16 x(of)S 16 x(modi\014cation\))S 16 x(across)S 
17 x(the)S 16 x(two)S 16 x(sites.)S 2342 Y 295 X(This)S 12 x(can)S
12 x(be)S 12 x(achieved)S 12 x(by)S 12 x(running)S 12 x(the)S 12 x
(RF)S -3 x(A)S 12 x(client)S 12 x(and)S 12 x(server)S 11 x(with)S 
12 x(the)S 12 x(ef)S -1 x(fective)S 12 x(user-id)S 12 x(of)S 12 x
(root)S 11 x(\(by)S 12 x(setting)S 58 y 295 X(the)S 15 x
(set-uid-on-execution)S 14 x(\015ag\).)S 20 x(The)S 14 x(RF)S -3 x
(A)S 15 x(client)S 15 x(will)S 15 x(set)S 15 x(his)S 15 x(ef)S -1 x
(fective)S 16 x(user-id)S 15 x(during)S 15 x(start-up)S 14 x(to)S 
15 x(his)S 15 x(real)S 59 y 295 X(user-id)S 18 x(and)S 17 x
(switches)S 18 x(back)S 18 x(to)S 18 x(the)S 18 x(ef)S -1 x(fective)S
18 x(user-id)S 18 x(of)S 17 x(root)S 17 x(only)S 17 x(for)S 18 x
(these)S 17 x(sections)S 18 x(of)S 17 x(code)S 17 x(where)S 17 x
(the)S 58 y 295 X(root)S 16 x(permissions)S 17 x(are)S 17 x(really)S
16 x(required)S 17 x(to)S 16 x(change)S 16 x(the)S 16 x(access)S 
16 x(mode,)S 17 x(owner)S 16 x(or)S 17 x(group)S 16 x(of)S 17 x
(\014les.)S 24 x(Otherwise,)S 58 y 295 X(the)S 18 x(RF)S -3 x(A)S 
17 x(client)S 17 x(run)S 18 x(with)S 17 x(the)S 18 x(ef)S -1 x
(fective)S 17 x(user-id)S 17 x(equal)S 18 x(to)S 18 x(his)S 17 x
(real)S 17 x(user-id.)S 2659 Y 295 X(The)S 18 x(RF)S -3 x(A)S 18 x
(server)S 18 x(changes)S 19 x(his)S 18 x(ef)S -1 x(fective)S 19 x
(user-id)S 18 x(during)S 18 x(start-up)S 19 x(to)S 18 x(the)S 18 x
(user-id)S 18 x(provided)S 18 x(by)S 18 x(the)S 18 x(calling)S 58 y 
295 X(client.)S 20 x(Like)S 15 x(the)S 15 x(RF)S -3 x(A)S 14 x
(client,)S 15 x(it)S 14 x(switches)S 14 x(back)S 14 x(to)S 14 x(the)S
15 x(ef)S -1 x(fective)S 14 x(user-id)S 15 x(of)S 14 x(root)S 14 x
(only)S 15 x(for)S 15 x(these)S 14 x(sections)S 15 x(of)S 58 y 295 X
(code)S 17 x(where)S 16 x(the)S 16 x(root)S 16 x(permissions)S 16 x
(are)S 16 x(really)S 16 x(required)S 16 x(to)S 16 x(change)S 16 x
(the)S 16 x(access)S 16 x(mode)S 16 x(of)S 16 x(a)S 16 x(\014le.)S
2859 Y 295 X(If)S 22 x(the)S 22 x(RF)S -3 x(A)S 21 x(client)S 22 x
(and)S 22 x(server)S 23 x(do)S 22 x(not)S 22 x(run)S 22 x(with)S 
22 x(ef)S -1 x(fective)S 22 x(user-id)S 22 x(of)S 22 x(root,)S 24 x
(the)S 22 x(time)S 22 x(synchronization)S 59 y 295 X(command)S 16 x
(of)S 16 x(RF)S -3 x(A)S 16 x(can)S 16 x(only)S 16 x(be)S 16 x
(used,)S 16 x(if)S 16 x(the)S 16 x(external)S 16 x(program)S 16 x 
F75(rfatime)S 16 x F44(of)S 16 x(the)S 16 x(RF)S -3 x(A)S 15 x
(package)S 16 x(is)S 16 x(installed)S 58 y 295 X(to)S 21 x(run)S 
21 x(with)S 21 x(set-uid)S 21 x(root)S 3276 Y 1219 X F6(11)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 71 53 524 794

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY
%%EndPageSetup
295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 
200 3 R 1340 281 XY 846 3 R -50 y 1733 X(What)S 24 x(is)S 24 x
(still)S 24 x(missing)S 24 x(...)S 464 Y 295 X F46(7)S 62 x(What)S
32 x(is)S 32 x(still)S 31 x(missing)S 32 x(...)S 640 Y 295 X F44
(The)S 16 x(current)S 16 x(version)S 16 x(of)S 16 x(RF)S -3 x(A)S 
16 x(is)S 17 x(a)S 16 x(\014rst)S 16 x(shot)S 16 x(which)S 16 x
(needs)S 16 x(some)S 16 x(completion)S 16 x(and)S 16 x(extensions.)S
740 Y 378 X(\267)S 67 x(A)S 17 x(command)S 16 x(like)S 17 x
(\252remote-dif)S -1 x(f\272)S 17 x(could)S 16 x(be)S 16 x(helpful)S
16 x(for)S 16 x(resolving)S 16 x(inconsistencies.)S 823 Y 378 X
(\267)S 67 x(The)S 17 x(time)S 16 x(synchronization)S 16 x(only)S 
16 x(works)S 16 x(if)S 16 x(the)S 16 x(local)S 16 x(time)S 16 x(of)S
16 x(a)S 17 x F75(time-slave)S 17 x F44(site)S 16 x(can)S 16 x(be)S
16 x(modi\014ed,)S 58 y 461 X(which)S 18 x(may)S 19 x(not)S 19 x
(hold)S 18 x(true)S 19 x(in)S 19 x(each)S 18 x(environment.)S 964 Y 
378 X(\267)S 67 x(There)S 14 x(is)S 14 x(a)S 14 x(problem)S 14 x
(with)S 14 x(the)S 14 x F75(chown)S F44(,)S 14 x F75(chgrp)S 14 x 
F44(and)S 14 x F75(chmod)S 14 x F44(facilities)S 14 x(of)S 14 x(RF)S
-3 x(A)S 14 x(because)S 15 x(the)S 14 x(enabling)S 58 y 461 X(of)S
19 x(them)S 19 x(may)S 19 x(cause)S 19 x(\252permission)S 19 x
(denied)S
(\272)S 18 x(errors)S 18 x(if)S 19 x(the)S 19 x(RF)S -3 x(A)S 18 x
(does)S 18 x(not)S 19 x(run)S 18 x(with)S 19 x(the)S 18 x(ef)S -1 x
(fective)S 58 y 461 X(used)S 21 x(id)S 21 x(of)S 21 x(root.)S 1163 Y 
378 X(\267)S 67 x(RF)S -3 x(A)S 20 x(is)S 21 x(only)S 20 x(capable)S
20 x(to)S 21 x(support)S 20 x(distribution)S 20 x(over)S 20 x(two)S
20 x(sites,)S 21 x(which)S 20 x(should)S 20 x(be)S 20 x(extended)S
21 x(to)S 59 y 461 X(allow)S 18 x(a)S 18 x(multiple)S 18 x(site)S 
18 x(con\014guration.)S 31 x(This)S 18 x(may)S 19 x(require)S 19 x
(the)S 19 x(redesign)S 18 x(of)S 19 x(the)S 18 x(RF)S -3 x(A)S 18 x
(model)S 19 x(and)S 58 y 461 X(will)S 19 x(introduce)S 19 x(a)S 19 x
(new)S 19 x(level)S 19 x(of)S 19 x(complexity.)S 3276 Y -40 x F6(12)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 71 53 524 794

%%Trailer
EndDviLaserDoc

%%BoundingBox: 71 53 524 794
%%Pages: 13
%%DocumentFonts: Times-Bold Times-Roman Times-Italic Courier